/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/json-kifu-format@5.5.0/dist/json-kifu-format.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
/*! For license information please see json-kifu-format.js.LICENSE.txt */
(()=>{"use strict";var r={285:r=>{function t(r,e,o,n){this.message=r,this.expected=e,this.found=o,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(r,t){function e(){this.constructor=r}e.prototype=t.prototype,r.prototype=new e}(t,Error),t.buildMessage=function(r,t){var e={literal:function(r){return'"'+n(r.text)+'"'},class:function(r){var t,e="";for(t=0;t<r.parts.length;t++)e+=r.parts[t]instanceof Array?i(r.parts[t][0])+"-"+i(r.parts[t][1]):i(r.parts[t]);return"["+(r.inverted?"^":"")+e+"]"},any:function(r){return"any character"},end:function(r){return"end of input"},other:function(r){return r.description}};function o(r){return r.charCodeAt(0).toString(16).toUpperCase()}function n(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(r){return"\\x0"+o(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+o(r)}))}function i(r){return r.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(r){return"\\x0"+o(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+o(r)}))}return"Expected "+function(r){var t,o,n,i=new Array(r.length);for(t=0;t<r.length;t++)i[t]=(n=r[t],e[n.type](n));if(i.sort(),i.length>0){for(t=1,o=1;t<i.length;t++)i[t-1]!==i[t]&&(i[o]=i[t],o++);i.length=o}switch(i.length){case 1:return i[0];case 2:return i[0]+" or "+i[1];default:return i.slice(0,-1).join(", ")+", or "+i[i.length-1]}}(r)+" but "+function(r){return r?'"'+n(r)+'"':"end of input"}(t)+" found."},r.exports={SyntaxError:t,parse:function(r,e){e=void 0!==e?e:{};var o,n,i,u,a={},c={kifu:zr},s=zr,f=function(r,t,e){var o={header:r.header,initial:t,moves:e};return r&&r.players&&(r.players[0]&&(o.header["先手"]=r.players[0]),r.players[1]&&(o.header["後手"]=r.players[1])),o},l="V2",h=Br("V2",!1),d=".1",p=Br(".1",!1),v=".2",m=Br(".2",!1),g=function(r,t){return{players:r,header:t}},A=function(r){for(var t,e={},o=0;o<r.length;o++)e[(t=r[o].k,{EVENT:"棋戦",SITE:"場所",START_TIME:"開始日時",END_TIME:"終了日時",TIME_LIMIT:"持ち時間"}[t]||t)]=r[o].v;return e},k="$",K=Br("$",!1),I=/^[^:]/,y=Lr([":"],!0,!1),C=":",F=Br(":",!1),x=function(r,t){return{k:r.join(""),v:t.join("")}},E=function(r,t,e){var o={header:{},initial:t,moves:e};return r&&(r[0]&&(o.header["先手"]=r[0]),r[1]&&(o.header["後手"]=r[1])),o},U="N+",b=Br("N+",!1),T=function(r){return r},w="N-",M=Br("N-",!1),S=function(r,t){return t},O=function(r,t){return[r?r.join(""):null,t?t.join(""):null]},N="",H=function(){return"NO"},R=function(r,t,e){"NO"==r?r=t:r.data.hands=t.data.hands;var o,n=r.data.hands.indexOf("AL_TO_REPLACE");if(n>=0){var i={FU:18,KY:4,KE:4,GI:4,KI:4,KA:2,HI:2};for(var u in r.data.hands[1-n])i[u]-=r.data.hands[1-n][u];for(var a=0;a<r.data.board.length;a++)for(var c=0;c<r.data.board[a].length;c++){var s=r.data.board[a][c];s.kind&&"OU"!=s.kind&&i[(o=s.kind,{TO:"FU",NY:"KY",NK:"KE",NG:"GI",UM:"KA",RY:"HI"}[o]||o)]--}r.data.hands[n]=i}return r.data.color=e,r},G="PI",Y=Br("PI",!1),P=function(r){for(var t={preset:"OTHER",data:{board:[[{color:1,kind:"KY"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"KY"}],[{color:1,kind:"KE"},{color:1,kind:"KA"},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{color:0,kind:"HI"},{color:0,kind:"KE"}],[{color:1,kind:"GI"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"GI"}],[{color:1,kind:"KI"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"KI"}],[{color:1,kind:"OU"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"OU"}],[{color:1,kind:"KI"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"KI"}],[{color:1,kind:"GI"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"GI"}],[{color:1,kind:"KE"},{color:1,kind:"HI"},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{color:0,kind:"KA"},{color:0,kind:"KE"}],[{color:1,kind:"KY"},{},{color:1,kind:"FU"},{},{},{},{color:0,kind:"FU"},{},{color:0,kind:"KY"}]]}},e=0;e<r.length;e++)t.data.board[r[e].xy.x-1][r[e].xy.y-1]={};return t},_=function(r){for(var t=[],e=0;e<9;e++){for(var o=[],n=0;n<9;n++)o.push(r[n][8-e]);t.push(o)}return{preset:"OTHER",data:{board:t}}},B="P",L=Br("P",!1),j=/^[1-9]/,W=Lr([["1","9"]],!1,!1),D=function(r){return r},z=function(r,t){return{color:r,kind:t}},J=" * ",V=Br(" * ",!1),Z=function(){return{}},$=function(r){for(var t=[],e=[{FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0},{FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0}],o=0;o<9;o++){for(var n=[],i=0;i<9;i++)n.push({});t.push(n)}r:for(o=0;o<r.length;o++)for(i=0;i<r[o].pieces.length;i++){var u=r[o].pieces[i];if(0==u.xy.x){if("AL"==u.piece){e[r[o].teban]="AL_TO_REPLACE";break r}e[r[o].teban][u.piece]++}else t[u.xy.x-1][u.xy.y-1]={color:r[o].teban,kind:u.piece}}return{preset:"OTHER",data:{board:t,hands:e}}},q=function(r,t){return{teban:r,pieces:t}},Q=function(r,t){return t.unshift(r),t},X=function(r){return r.length>0?{comments:r}:{}},rr=function(r,t,e,o){var n={};const i=t.concat(o);return i.length>0&&(n.comments=i),e&&(n.time=e),r.special?n.special=r.special:n.move=r,n},tr=function(r,t,e){var o={to:t,piece:e};return 0!=r.x&&(o.from=r),o},er="%",or=Br("%",!1),nr=/^[\-+_A-Z]/,ir=Lr(["-","+","_",["A","Z"]],!1,!1),ur=function(r){return{special:r.join("")}},ar="+",cr=Br("+",!1),sr=function(){return 0},fr="-",lr=Br("-",!1),hr=function(){return 1},dr="'",pr=Br("'",!1),vr=function(r){return r.join("")},mr="T",gr=Br("T",!1),Ar=/^[0-9]/,kr=Lr([["0","9"]],!1,!1),Kr=function(r){return{now:(t=parseInt(r.join("")),e=t%60,{m:(t-e)/60,s:e})};var t,e},Ir=function(r,t){return{x:parseInt(r),y:parseInt(t)}},yr=/^[A-Z]/,Cr=Lr([["A","Z"]],!1,!1),Fr=function(r,t){return r+t},xr=function(r,t){return{xy:r,piece:t}},Er="\r",Ur=Br("\r",!1),br="\n",Tr=Br("\n",!1),wr=" ",Mr=Br(" ",!1),Sr=",",Or=Br(",",!1),Nr=/^[^\r\n]/,Hr=Lr(["\r","\n"],!0,!1),Rr=0,Gr=[{line:1,column:1}],Yr=0,Pr=[],_r=0;if("startRule"in e){if(!(e.startRule in c))throw new Error("Can't start parsing from rule \""+e.startRule+'".');s=c[e.startRule]}function Br(r,t){return{type:"literal",text:r,ignoreCase:t}}function Lr(r,t,e){return{type:"class",parts:r,inverted:t,ignoreCase:e}}function jr(t){var e,o=Gr[t];if(o)return o;for(e=t-1;!Gr[e];)e--;for(o={line:(o=Gr[e]).line,column:o.column};e<t;)10===r.charCodeAt(e)?(o.line++,o.column=1):o.column++,e++;return Gr[t]=o,o}function Wr(r,t){var e=jr(r),o=jr(t);return{start:{offset:r,line:e.line,column:e.column},end:{offset:t,line:o.line,column:o.column}}}function Dr(r){Rr<Yr||(Rr>Yr&&(Yr=Rr,Pr=[]),Pr.push(r))}function zr(){var t;return(t=function(){var t,e,o,n,i;return t=Rr,e=function(){var t,e,o,n,i;for(t=Rr,e=[],o=et();o!==a;)e.push(o),o=et();return e!==a?(r.substr(Rr,2)===l?(o=l,Rr+=2):(o=a,0===_r&&Dr(h)),o!==a?(r.substr(Rr,2)===d?(n=d,Rr+=2):(n=a,0===_r&&Dr(p)),n===a&&(r.substr(Rr,2)===v?(n=v,Rr+=2):(n=a,0===_r&&Dr(m))),n===a&&(n=null),n!==a&&(i=ut())!==a?t=e=[e,o,n,i]:(Rr=t,t=a)):(Rr=t,t=a)):(Rr=t,t=a),t}(),e!==a?(o=function(){var r,t,e;return r=Rr,(t=Vr())===a&&(t=null),t!==a?(e=function(){var r,t;for(r=[],t=Jr();t!==a;)r.push(t),t=Jr();return r!==a&&(r=A(r)),r}(),e!==a?r=t=g(t,e):(Rr=r,r=a)):(Rr=r,r=a),r}(),o===a&&(o=null),o!==a&&(n=Zr())!==a?((i=Xr())===a&&(i=null),i!==a?t=e=f(o,n,i):(Rr=t,t=a)):(Rr=t,t=a)):(Rr=t,t=a),t}())===a&&(t=function(){var r,t,e,o;return r=Rr,(t=Vr())===a&&(t=null),t!==a?((e=Zr())===a&&(e=null),e!==a&&(o=Xr())!==a?r=t=E(t,e,o):(Rr=r,r=a)):(Rr=r,r=a),r}()),t}function Jr(){var t,e,o,n,i,u,c;for(t=Rr,e=[],o=et();o!==a;)e.push(o),o=et();if(e!==a)if(36===r.charCodeAt(Rr)?(o=k,Rr++):(o=a,0===_r&&Dr(K)),o!==a){if(n=[],I.test(r.charAt(Rr))?(i=r.charAt(Rr),Rr++):(i=a,0===_r&&Dr(y)),i!==a)for(;i!==a;)n.push(i),I.test(r.charAt(Rr))?(i=r.charAt(Rr),Rr++):(i=a,0===_r&&Dr(y));else n=a;if(n!==a)if(58===r.charCodeAt(Rr)?(i=C,Rr++):(i=a,0===_r&&Dr(F)),i!==a){for(u=[],c=at();c!==a;)u.push(c),c=at();u!==a&&(c=ut())!==a?t=e=x(n,u):(Rr=t,t=a)}else Rr=t,t=a;else Rr=t,t=a}else Rr=t,t=a;else Rr=t,t=a;return t}function Vr(){var t,e,o,n,i,u,c,s;for(t=Rr,e=[],o=et();o!==a;)e.push(o),o=et();if(e!==a){if(o=Rr,r.substr(Rr,2)===U?(n=U,Rr+=2):(n=a,0===_r&&Dr(b)),n!==a){for(i=[],u=at();u!==a;)i.push(u),u=at();i!==a&&(u=ut())!==a?o=n=T(i):(Rr=o,o=a)}else Rr=o,o=a;if(o===a&&(o=null),o!==a){for(n=[],i=et();i!==a;)n.push(i),i=et();if(n!==a){if(i=Rr,r.substr(Rr,2)===w?(u=w,Rr+=2):(u=a,0===_r&&Dr(M)),u!==a){for(c=[],s=at();s!==a;)c.push(s),s=at();c!==a&&(s=ut())!==a?i=u=S(o,c):(Rr=i,i=a)}else Rr=i,i=a;i===a&&(i=null),i!==a?t=e=O(o,i):(Rr=t,t=a)}else Rr=t,t=a}else Rr=t,t=a}else Rr=t,t=a;return t}function Zr(){var t,e,o,n,i,u;for(t=Rr,e=[],o=et();o!==a;)e.push(o),o=et();if(e!==a)if(o=function(){var t,e,o,n;if(t=Rr,r.substr(Rr,2)===G?(e=G,Rr+=2):(e=a,0===_r&&Dr(Y)),e!==a){for(o=[],n=it();n!==a;)o.push(n),n=it();o!==a&&(n=ut())!==a?t=e=P(o):(Rr=t,t=a)}else Rr=t,t=a;return t}(),o===a&&(o=function(){var r,t;if(r=[],(t=$r())!==a)for(;t!==a;)r.push(t),t=$r();else r=a;return r!==a&&(r=_(r)),r}(),o===a&&(o=Rr,(n=N)!==a&&(n=H()),o=n)),o!==a)if(n=function(){var r,t;for(r=[],t=Qr();t!==a;)r.push(t),t=Qr();return r!==a&&(r=$(r)),r}(),n!==a){for(i=[],u=et();u!==a;)i.push(u),u=et();i!==a&&(u=tt())!==a&&ut()!==a?t=e=R(o,n,u):(Rr=t,t=a)}else Rr=t,t=a;else Rr=t,t=a;else Rr=t,t=a;return t}function $r(){var t,e,o,n,i;if(t=Rr,80===r.charCodeAt(Rr)?(e=B,Rr++):(e=a,0===_r&&Dr(L)),e!==a)if(j.test(r.charAt(Rr))?(o=r.charAt(Rr),Rr++):(o=a,0===_r&&Dr(W)),o!==a){if(n=[],(i=qr())!==a)for(;i!==a;)n.push(i),i=qr();else n=a;n!==a&&(i=ut())!==a?t=e=D(n):(Rr=t,t=a)}else Rr=t,t=a;else Rr=t,t=a;return t}function qr(){var t,e,o;return t=Rr,(e=tt())!==a&&(o=nt())!==a?t=e=z(e,o):(Rr=t,t=a),t===a&&(t=Rr,r.substr(Rr,3)===J?(e=J,Rr+=3):(e=a,0===_r&&Dr(V)),e!==a&&(e=Z()),t=e),t}function Qr(){var t,e,o,n,i;if(t=Rr,80===r.charCodeAt(Rr)?(e=B,Rr++):(e=a,0===_r&&Dr(L)),e!==a)if((o=tt())!==a){for(n=[],i=it();i!==a;)n.push(i),i=it();n!==a&&(i=ut())!==a?t=e=q(o,n):(Rr=t,t=a)}else Rr=t,t=a;else Rr=t,t=a;return t}function Xr(){var r,t,e,o,n;if(r=Rr,t=function(){var r,t;for(r=[],t=et();t!==a;)r.push(t),t=et();return r!==a&&(r=X(r)),r}(),t!==a){for(e=[],o=rt();o!==a;)e.push(o),o=rt();if(e!==a){for(o=[],n=et();n!==a;)o.push(n),n=et();o!==a?r=t=Q(t,e):(Rr=r,r=a)}else Rr=r,r=a}else Rr=r,r=a;return r}function rt(){var t,e,o,n,i,u;if(t=Rr,e=function(){var r,t,e,o;return r=Rr,tt()!==a&&(t=ot())!==a&&(e=ot())!==a&&(o=nt())!==a&&ut()!==a?r=tr(t,e,o):(Rr=r,r=a),r}(),e===a&&(e=function(){var t,e,o,n;if(t=Rr,37===r.charCodeAt(Rr)?(e=er,Rr++):(e=a,0===_r&&Dr(or)),e!==a){if(o=[],nr.test(r.charAt(Rr))?(n=r.charAt(Rr),Rr++):(n=a,0===_r&&Dr(ir)),n!==a)for(;n!==a;)o.push(n),nr.test(r.charAt(Rr))?(n=r.charAt(Rr),Rr++):(n=a,0===_r&&Dr(ir));else o=a;o!==a&&(n=ut())!==a?t=e=ur(o):(Rr=t,t=a)}else Rr=t,t=a;return t}()),e!==a){for(o=[],n=et();n!==a;)o.push(n),n=et();if(o!==a)if(n=function(){var t,e,o,n;if(t=Rr,84===r.charCodeAt(Rr)?(e=mr,Rr++):(e=a,0===_r&&Dr(gr)),e!==a){for(o=[],Ar.test(r.charAt(Rr))?(n=r.charAt(Rr),Rr++):(n=a,0===_r&&Dr(kr));n!==a;)o.push(n),Ar.test(r.charAt(Rr))?(n=r.charAt(Rr),Rr++):(n=a,0===_r&&Dr(kr));o!==a&&(n=ut())!==a?t=e=Kr(o):(Rr=t,t=a)}else Rr=t,t=a;return t}(),n===a&&(n=null),n!==a){for(i=[],u=et();u!==a;)i.push(u),u=et();i!==a?t=e=rr(e,o,n,i):(Rr=t,t=a)}else Rr=t,t=a;else Rr=t,t=a}else Rr=t,t=a;return t}function tt(){var t,e;return t=Rr,43===r.charCodeAt(Rr)?(e=ar,Rr++):(e=a,0===_r&&Dr(cr)),e!==a&&(e=sr()),(t=e)===a&&(t=Rr,45===r.charCodeAt(Rr)?(e=fr,Rr++):(e=a,0===_r&&Dr(lr)),e!==a&&(e=hr()),t=e),t}function et(){var t,e,o,n;if(t=Rr,39===r.charCodeAt(Rr)?(e=dr,Rr++):(e=a,0===_r&&Dr(pr)),e!==a){for(o=[],n=at();n!==a;)o.push(n),n=at();o!==a&&(n=ut())!==a?t=e=vr(o):(Rr=t,t=a)}else Rr=t,t=a;return t}function ot(){var t,e,o;return t=Rr,Ar.test(r.charAt(Rr))?(e=r.charAt(Rr),Rr++):(e=a,0===_r&&Dr(kr)),e!==a?(Ar.test(r.charAt(Rr))?(o=r.charAt(Rr),Rr++):(o=a,0===_r&&Dr(kr)),o!==a?t=e=Ir(e,o):(Rr=t,t=a)):(Rr=t,t=a),t}function nt(){var t,e,o;return t=Rr,yr.test(r.charAt(Rr))?(e=r.charAt(Rr),Rr++):(e=a,0===_r&&Dr(Cr)),e!==a?(yr.test(r.charAt(Rr))?(o=r.charAt(Rr),Rr++):(o=a,0===_r&&Dr(Cr)),o!==a?t=e=Fr(e,o):(Rr=t,t=a)):(Rr=t,t=a),t}function it(){var r,t,e;return r=Rr,(t=ot())!==a&&(e=nt())!==a?r=t=xr(t,e):(Rr=r,r=a),r}function ut(){var t,e,o;if(t=Rr,13===r.charCodeAt(Rr)?(e=Er,Rr++):(e=a,0===_r&&Dr(Ur)),e===a&&(e=null),e!==a?(10===r.charCodeAt(Rr)?(o=br,Rr++):(o=a,0===_r&&Dr(Tr)),o!==a?t=e=[e,o]:(Rr=t,t=a)):(Rr=t,t=a),t===a){for(t=Rr,e=[],32===r.charCodeAt(Rr)?(o=wr,Rr++):(o=a,0===_r&&Dr(Mr));o!==a;)e.push(o),32===r.charCodeAt(Rr)?(o=wr,Rr++):(o=a,0===_r&&Dr(Mr));e!==a?(44===r.charCodeAt(Rr)?(o=Sr,Rr++):(o=a,0===_r&&Dr(Or)),o!==a?t=e=[e,o]:(Rr=t,t=a)):(Rr=t,t=a)}return t}function at(){var t;return Nr.test(r.charAt(Rr))?(t=r.charAt(Rr),Rr++):(t=a,0===_r&&Dr(Hr)),t}if((o=s())!==a&&Rr===r.length)return o;throw o!==a&&Rr<r.length&&Dr({type:"end"}),n=Pr,i=Yr<r.length?r.charAt(Yr):null,u=Yr<r.length?Wr(Yr,Yr+1):Wr(Yr,Yr),new t(t.buildMessage(n,i),n,i,u)}}},486:r=>{function t(r,e,o,n){this.message=r,this.expected=e,this.found=o,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(r,t){function e(){this.constructor=r}e.prototype=t.prototype,r.prototype=new e}(t,Error),t.buildMessage=function(r,t){var e={literal:function(r){return'"'+n(r.text)+'"'},class:function(r){var t,e="";for(t=0;t<r.parts.length;t++)e+=r.parts[t]instanceof Array?i(r.parts[t][0])+"-"+i(r.parts[t][1]):i(r.parts[t]);return"["+(r.inverted?"^":"")+e+"]"},any:function(r){return"any character"},end:function(r){return"end of input"},other:function(r){return r.description}};function o(r){return r.charCodeAt(0).toString(16).toUpperCase()}function n(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(r){return"\\x0"+o(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+o(r)}))}function i(r){return r.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(r){return"\\x0"+o(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+o(r)}))}return"Expected "+function(r){var t,o,n,i=new Array(r.length);for(t=0;t<r.length;t++)i[t]=(n=r[t],e[n.type](n));if(i.sort(),i.length>0){for(t=1,o=1;t<i.length;t++)i[t-1]!==i[t]&&(i[o]=i[t],o++);i.length=o}switch(i.length){case 1:return i[0];case 2:return i[0]+" or "+i[1];default:return i.slice(0,-1).join(", ")+", or "+i[i.length-1]}}(r)+" but "+function(r){return r?'"'+n(r)+'"':"end of input"}(t)+" found."},r.exports={SyntaxError:t,parse:function(r,e){e=void 0!==e?e:{};var o,n,i,u,a={},c={kifu:Yt},s=Yt,f=function(r,t,e,o,n){for(var i={header:{},moves:o},u=0;u<r.length;u++)i.header[r[u].k]=r[u].v;for(u=0;u<e.length;u++)i.header[e[u].k]=e[u].v;if(t)i.initial=t;else if(i.header["手合割"]){var a=function(r){return{平手:"HIRATE",香落ち:"KY",右香落ち:"KY_R",角落ち:"KA",飛車落ち:"HI",飛香落ち:"HIKY",二枚落ち:"2",三枚落ち:"3",四枚落ち:"4",五枚落ち:"5",左五枚落ち:"5_L",六枚落ち:"6",左七枚落ち:"7_L",右七枚落ち:"7_R",八枚落ち:"8",十枚落ち:"10",その他:"OTHER"}[r.replace(/\s/g,"")]}(i.header["手合割"]);"OTHER"!=a&&(i.initial={preset:a})}i.initial&&i.initial.data&&(i.header["手番"]?(i.initial.data.color="下先".indexOf(i.header["手番"])>=0?0:1,delete i.header["手番"]):i.initial.data.color=0,i.initial.data.hands=[ee(i.header["先手の持駒"in i.header?"先手の持駒":"下手の持駒"]||""),ee(i.header["後手の持駒"in i.header?"後手の持駒":"上手の持駒"]||"")],delete i.header["先手の持駒"],delete i.header["下手の持駒"],delete i.header["後手の持駒"],delete i.header["上手の持駒"]);var c=[{te:0,moves:o}];for(u=0;u<n.length;u++){for(var s=n[u],f=c.pop();f.te>=s.te;)f=c.pop();var l=f.moves[s.te-f.te];l.forks=l.forks||[],l.forks.push(s.moves),c.push(f),c.push(s)}return i},l=/^[^\uFF1A\r\n]/,h=Nt(["：","\r","\n"],!0,!1),d="：",p=Ot("：",!1),v=function(r,t){return{k:r.join(""),v:t.join("")}},m=/^[\u5148\u5F8C\u4E0A\u4E0B]/,g=Nt(["先","後","上","下"],!1,!1),A="手番",k=Ot("手番",!1),K=function(r){return{k:"手番",v:r}},I=" ",y=Ot(" ",!1),C="+",F=Ot("+",!1),x=function(r){for(var t=[],e=0;e<9;e++){for(var o=[],n=0;n<9;n++)o.push(r[n][8-e]);t.push(o)}return{preset:"OTHER",data:{board:t}}},E="|",U=Ot("|",!1),b=function(r){return r},T=function(r,t){return{color:r,kind:t}},w=" ・",M=Ot(" ・",!1),S=function(){return{}},O="^",N=Ot("^",!1),H=function(){return 0},R="v",G=Ot("v",!1),Y="V",P=Ot("V",!1),_=function(){return 1},B=function(r,t,e){return t.unshift(r),e&&!t[t.length-1].special&&t.push({special:e}),t},L=function(r){return 0==r.length?{}:{comments:r}},j=function(r,t){var e={move:r};return t.length>0&&(e.comments=t),e},W="&",D=Ot("&",!1),z=/^[\u25B2\u25B3]/,J=Nt(["▲","△"],!1,!1),V=function(r){return r},Z="成",$=Ot("成",!1),q="不成",Q=Ot("不成",!1),X="打",rr=Ot("打",!1),tr=function(r,t,e,o,n,i){var u={piece:t};if(r.same?u.same=!0:u.to=r,n&&(u.promote="成"==n),i)u.relative="H";else{var a=({左:"L",直:"C",右:"R"}[e]||"")+({上:"U",寄:"M",引:"D"}[o]||"");""!=a&&(u.relative=a)}return u},er=function(r,t){return{x:r,y:t}},or="同",nr=Ot("同",!1),ir="　",ur=Ot("　",!1),ar=function(){return{same:!0}},cr=/^[\u6B69\u9999\u6842\u9280\u91D1\u89D2\u98DB\u738B\u7389\u3068\u674F\u572D\u5168\u99AC\u7ADC\u9F8D]/,sr=Nt(["歩","香","桂","銀","金","角","飛","王","玉","と","杏","圭","全","馬","竜","龍"],!1,!1),fr=function(r,t){return te((r||"")+t)},lr=/^[\u5DE6\u76F4\u53F3]/,hr=Nt(["左","直","右"],!1,!1),dr=/^[\u4E0A\u5BC4\u5F15]/,pr=Nt(["上","寄","引"],!1,!1),vr=/^[\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]/,mr=Nt(["１","２","３","４","５","６","７","８","９"],!1,!1),gr=function(r){return"０１２３４５６７８９".indexOf(r)},Ar=/^[\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D]/,kr=Nt(["一","二","三","四","五","六","七","八","九"],!1,!1),Kr=function(r){return"〇一二三四五六七八九".indexOf(r)},Ir="*",yr=Ot("*",!1),Cr=function(r){return r.join("")},Fr="まで",xr=Ot("まで",!1),Er=/^[0-9]/,Ur=Nt([["0","9"]],!1,!1),br="手",Tr=Ot("手",!1),wr="で",Mr=Ot("で",!1),Sr="手の",Or=Ot("手の",!1),Nr="勝ち",Hr=Ot("勝ち",!1),Rr=function(r){return"TORYO"},Gr="反則",Yr=Ot("反則",!1),Pr=function(r){return"ILLEGAL_ACTION"},_r="負け",Br=Ot("負け",!1),Lr=function(r){return"ILLEGAL_MOVE"},jr=function(r,t){return t},Wr="で時間切れにより",Dr=Ot("で時間切れにより",!1),zr="手の勝ち",Jr=Ot("手の勝ち",!1),Vr=function(r){return"TIME_UP"},Zr="で中断",$r=Ot("で中断",!1),qr=function(){return"CHUDAN"},Qr="で封じ手",Xr=Ot("で封じ手",!1),rt="で持将棋",tt=Ot("で持将棋",!1),et=function(){return"JISHOGI"},ot="で千日手",nt=Ot("で千日手",!1),it=function(){return"SENNICHITE"},ut="詰",at=Ot("詰",!1),ct="み",st=Ot("み",!1),ft=function(){return"TSUMI"},lt="で不詰",ht=Ot("で不詰",!1),dt=function(){return"FUZUMI"},pt=function(r){return r},vt="変化：",mt=Ot("変化：",!1),gt=function(r,t){return{te:parseInt(r.join("")),moves:t.slice(1)}},At="#",kt=Ot("#",!1),Kt="\t",It=Ot("\t",!1),yt="\n",Ct=Ot("\n",!1),Ft="\r",xt=Ot("\r",!1),Et=/^[^\r\n]/,Ut=Nt(["\r","\n"],!0,!1),bt=0,Tt=[{line:1,column:1}],wt=0,Mt=[],St=0;if("startRule"in e){if(!(e.startRule in c))throw new Error("Can't start parsing from rule \""+e.startRule+'".');s=c[e.startRule]}function Ot(r,t){return{type:"literal",text:r,ignoreCase:t}}function Nt(r,t,e){return{type:"class",parts:r,inverted:t,ignoreCase:e}}function Ht(t){var e,o=Tt[t];if(o)return o;for(e=t-1;!Tt[e];)e--;for(o={line:(o=Tt[e]).line,column:o.column};e<t;)10===r.charCodeAt(e)?(o.line++,o.column=1):o.column++,e++;return Tt[t]=o,o}function Rt(r,t){var e=Ht(r),o=Ht(t);return{start:{offset:r,line:e.line,column:e.column},end:{offset:t,line:o.line,column:o.column}}}function Gt(r){bt<wt||(bt>wt&&(wt=bt,Mt=[]),Mt.push(r))}function Yt(){var t,e,o,n,i,u,c;for(t=bt,e=[],o=Pt();o!==a;)e.push(o),o=Pt();if(e!==a)if(o=function(){var t,e,o,n,i,u,c,s;if(t=bt,e=bt,32===r.charCodeAt(bt)?(o=I,bt++):(o=a,0===St&&Gt(y)),o!==a){for(n=[],i=Xt();i!==a;)n.push(i),i=Xt();n!==a&&(i=Zt())!==a?e=o=[o,n,i]:(bt=e,e=a)}else bt=e,e=a;if(e===a&&(e=null),e!==a){if(o=bt,43===r.charCodeAt(bt)?(n=C,bt++):(n=a,0===St&&Gt(F)),n!==a){for(i=[],u=Xt();u!==a;)i.push(u),u=Xt();i!==a&&(u=Zt())!==a?o=n=[n,i,u]:(bt=o,o=a)}else bt=o,o=a;if(o===a&&(o=null),o!==a){if(n=[],(i=_t())!==a)for(;i!==a;)n.push(i),i=_t();else n=a;if(n!==a){if(i=bt,43===r.charCodeAt(bt)?(u=C,bt++):(u=a,0===St&&Gt(F)),u!==a){for(c=[],s=Xt();s!==a;)c.push(s),s=Xt();c!==a&&(s=Zt())!==a?i=u=[u,c,s]:(bt=i,i=a)}else bt=i,i=a;i===a&&(i=null),i!==a?t=e=x(n):(bt=t,t=a)}else bt=t,t=a}else bt=t,t=a}else bt=t,t=a;return t}(),o===a&&(o=null),o!==a){for(n=[],i=Pt();i!==a;)n.push(i),i=Pt();if(n!==a)if((i=Lt())!==a){for(u=[],c=Jt();c!==a;)u.push(c),c=Jt();u!==a?t=e=f(e,o,n,i,u):(bt=t,t=a)}else bt=t,t=a;else bt=t,t=a}else bt=t,t=a;else bt=t,t=a;return t}function Pt(){var t,e,o,n,i,u;if(t=bt,e=[],l.test(r.charAt(bt))?(o=r.charAt(bt),bt++):(o=a,0===St&&Gt(h)),o!==a)for(;o!==a;)e.push(o),l.test(r.charAt(bt))?(o=r.charAt(bt),bt++):(o=a,0===St&&Gt(h));else e=a;if(e!==a)if(65306===r.charCodeAt(bt)?(o=d,bt++):(o=a,0===St&&Gt(p)),o!==a){for(n=[],i=Xt();i!==a;)n.push(i),i=Xt();if(n!==a){if(i=[],(u=Zt())!==a)for(;u!==a;)i.push(u),u=Zt();else i=a;i!==a?t=e=v(e,n):(bt=t,t=a)}else bt=t,t=a}else bt=t,t=a;else bt=t,t=a;return t===a&&(t=bt,m.test(r.charAt(bt))?(e=r.charAt(bt),bt++):(e=a,0===St&&Gt(g)),e!==a?(r.substr(bt,2)===A?(o=A,bt+=2):(o=a,0===St&&Gt(k)),o!==a&&(n=Zt())!==a?t=e=K(e):(bt=t,t=a)):(bt=t,t=a)),t}function _t(){var t,e,o,n,i,u;if(t=bt,124===r.charCodeAt(bt)?(e=E,bt++):(e=a,0===St&&Gt(U)),e!==a){if(o=[],(n=Bt())!==a)for(;n!==a;)o.push(n),n=Bt();else o=a;if(o!==a)if(124===r.charCodeAt(bt)?(n=E,bt++):(n=a,0===St&&Gt(U)),n!==a){if(i=[],(u=Xt())!==a)for(;u!==a;)i.push(u),u=Xt();else i=a;i!==a&&(u=Zt())!==a?t=e=b(o):(bt=t,t=a)}else bt=t,t=a;else bt=t,t=a}else bt=t,t=a;return t}function Bt(){var t,e,o;return t=bt,e=function(){var t,e;return t=bt,32===r.charCodeAt(bt)?(e=I,bt++):(e=a,0===St&&Gt(y)),e===a&&(43===r.charCodeAt(bt)?(e=C,bt++):(e=a,0===St&&Gt(F)),e===a&&(94===r.charCodeAt(bt)?(e=O,bt++):(e=a,0===St&&Gt(N)))),e!==a&&(e=H()),(t=e)===a&&(t=bt,118===r.charCodeAt(bt)?(e=R,bt++):(e=a,0===St&&Gt(G)),e===a&&(86===r.charCodeAt(bt)?(e=Y,bt++):(e=a,0===St&&Gt(P))),e!==a&&(e=_()),t=e),t}(),e!==a&&(o=Dt())!==a?t=e=T(e,o):(bt=t,t=a),t===a&&(t=bt,r.substr(bt,2)===w?(e=w,bt+=2):(e=a,0===St&&Gt(M)),e!==a&&(e=S()),t=e),t}function Lt(){var t,e,o,n;if(t=bt,e=function(){var r,t,e;for(r=bt,t=[],e=zt();e!==a;)t.push(e),e=zt();return t!==a?((e=Wt())===a&&(e=null),e!==a?r=t=L(t):(bt=r,r=a)):(bt=r,r=a),r}(),e!==a){for(o=[],n=jt();n!==a;)o.push(n),n=jt();o!==a?(n=function(){var t,e,o,n,i,u,c,s,f,l,h,d;if(t=bt,r.substr(bt,2)===Fr?(e=Fr,bt+=2):(e=a,0===St&&Gt(xr)),e!==a){if(o=[],Er.test(r.charAt(bt))?(n=r.charAt(bt),bt++):(n=a,0===St&&Gt(Ur)),n!==a)for(;n!==a;)o.push(n),Er.test(r.charAt(bt))?(n=r.charAt(bt),bt++):(n=a,0===St&&Gt(Ur));else o=a;o!==a?(25163===r.charCodeAt(bt)?(n=br,bt++):(n=a,0===St&&Gt(Tr)),n!==a?(i=bt,12391===r.charCodeAt(bt)?(u=wr,bt++):(u=a,0===St&&Gt(Mr)),u!==a&&(c=Vt())!==a?(r.substr(bt,2)===Sr?(s=Sr,bt+=2):(s=a,0===St&&Gt(Or)),s!==a?(f=bt,r.substr(bt,2)===Nr?(l=Nr,bt+=2):(l=a,0===St&&Gt(Hr)),l!==a&&(l=Rr(c)),(f=l)===a&&(f=bt,r.substr(bt,2)===Gr?(l=Gr,bt+=2):(l=a,0===St&&Gt(Yr)),l!==a?(h=bt,r.substr(bt,2)===Nr?(d=Nr,bt+=2):(d=a,0===St&&Gt(Hr)),d!==a&&(d=Pr(c)),(h=d)===a&&(h=bt,r.substr(bt,2)===_r?(d=_r,bt+=2):(d=a,0===St&&Gt(Br)),d!==a&&(d=Lr(c)),h=d),h!==a?f=l=jr(c,h):(bt=f,f=a)):(bt=f,f=a)),f!==a?i=u=jr(c,f):(bt=i,i=a)):(bt=i,i=a)):(bt=i,i=a),i===a&&(i=bt,r.substr(bt,8)===Wr?(u=Wr,bt+=8):(u=a,0===St&&Gt(Dr)),u!==a&&(c=Vt())!==a?(r.substr(bt,4)===zr?(s=zr,bt+=4):(s=a,0===St&&Gt(Jr)),s!==a?i=u=Vr(c):(bt=i,i=a)):(bt=i,i=a),i===a&&(i=bt,r.substr(bt,3)===Zr?(u=Zr,bt+=3):(u=a,0===St&&Gt($r)),u!==a&&(u=qr()),(i=u)===a&&(i=bt,r.substr(bt,4)===Qr?(u=Qr,bt+=4):(u=a,0===St&&Gt(Xr)),u!==a&&(u=qr()),(i=u)===a&&(i=bt,r.substr(bt,4)===rt?(u=rt,bt+=4):(u=a,0===St&&Gt(tt)),u!==a&&(u=et()),(i=u)===a&&(i=bt,r.substr(bt,4)===ot?(u=ot,bt+=4):(u=a,0===St&&Gt(nt)),u!==a&&(u=it()),(i=u)===a&&(i=bt,12391===r.charCodeAt(bt)?(u=wr,bt++):(u=a,0===St&&Gt(Mr)),u===a&&(u=null),u!==a?(35440===r.charCodeAt(bt)?(c=ut,bt++):(c=a,0===St&&Gt(at)),c!==a?(12415===r.charCodeAt(bt)?(s=ct,bt++):(s=a,0===St&&Gt(st)),s===a&&(s=null),s!==a?i=u=ft():(bt=i,i=a)):(bt=i,i=a)):(bt=i,i=a),i===a&&(i=bt,r.substr(bt,3)===lt?(u=lt,bt+=3):(u=a,0===St&&Gt(ht)),u!==a&&(u=dt()),i=u))))))),i!==a&&(u=Zt())!==a?t=e=pt(i):(bt=t,t=a)):(bt=t,t=a)):(bt=t,t=a)}else bt=t,t=a;return t}(),n===a&&(n=null),n!==a?t=e=B(e,o,n):(bt=t,t=a)):(bt=t,t=a)}else bt=t,t=a;return t}function jt(){var t,e,o,n,i,u;if(t=bt,e=function(){var t,e,o,n,i;if(t=bt,z.test(r.charAt(bt))?(e=r.charAt(bt),bt++):(e=a,0===St&&Gt(J)),e!==a)if(o=function(){var t,e,o,n,i,u,c;return t=bt,e=function(){var t,e,o;return t=bt,(e=function(){var t;return vr.test(r.charAt(bt))?(t=r.charAt(bt),bt++):(t=a,0===St&&Gt(mr)),t!==a&&(t=gr(t)),t}())!==a?(o=function(){var t;return Ar.test(r.charAt(bt))?(t=r.charAt(bt),bt++):(t=a,0===St&&Gt(kr)),t!==a&&(t=Kr(t)),t}(),o!==a?t=e=er(e,o):(bt=t,t=a)):(bt=t,t=a),t===a&&(t=bt,21516===r.charCodeAt(bt)?(e=or,bt++):(e=a,0===St&&Gt(nr)),e!==a?(12288===r.charCodeAt(bt)?(o=ir,bt++):(o=a,0===St&&Gt(ur)),o===a&&(o=null),o!==a?t=e=ar():(bt=t,t=a)):(bt=t,t=a)),t}(),e!==a&&(o=Dt())!==a?(n=function(){var t;return lr.test(r.charAt(bt))?(t=r.charAt(bt),bt++):(t=a,0===St&&Gt(hr)),t}(),n===a&&(n=null),n!==a?(i=function(){var t;return dr.test(r.charAt(bt))?(t=r.charAt(bt),bt++):(t=a,0===St&&Gt(pr)),t}(),i===a&&(i=null),i!==a?(25104===r.charCodeAt(bt)?(u=Z,bt++):(u=a,0===St&&Gt($)),u===a&&(r.substr(bt,2)===q?(u=q,bt+=2):(u=a,0===St&&Gt(Q))),u===a&&(u=null),u!==a?(25171===r.charCodeAt(bt)?(c=X,bt++):(c=a,0===St&&Gt(rr)),c===a&&(c=null),c!==a?t=e=tr(e,o,n,i,u,c):(bt=t,t=a)):(bt=t,t=a)):(bt=t,t=a)):(bt=t,t=a)):(bt=t,t=a),t}(),o!==a){for(n=[],(i=Zt())===a&&(32===r.charCodeAt(bt)?(i=I,bt++):(i=a,0===St&&Gt(y)));i!==a;)n.push(i),(i=Zt())===a&&(32===r.charCodeAt(bt)?(i=I,bt++):(i=a,0===St&&Gt(y)));n!==a?t=e=V(o):(bt=t,t=a)}else bt=t,t=a;else bt=t,t=a;return t}(),e!==a){for(o=[],n=zt();n!==a;)o.push(n),n=zt();if(o!==a)if((n=Wt())===a&&(n=null),n!==a){for(i=[],(u=Zt())===a&&(32===r.charCodeAt(bt)?(u=I,bt++):(u=a,0===St&&Gt(y)));u!==a;)i.push(u),(u=Zt())===a&&(32===r.charCodeAt(bt)?(u=I,bt++):(u=a,0===St&&Gt(y)));i!==a?t=e=j(e,o):(bt=t,t=a)}else bt=t,t=a;else bt=t,t=a}else bt=t,t=a;return t}function Wt(){var t,e,o,n;if(t=bt,38===r.charCodeAt(bt)?(e=W,bt++):(e=a,0===St&&Gt(D)),e!==a){for(o=[],n=Xt();n!==a;)o.push(n),n=Xt();o!==a&&(n=Zt())!==a?t=e=[e,o,n]:(bt=t,t=a)}else bt=t,t=a;return t}function Dt(){var t,e,o;return t=bt,25104===r.charCodeAt(bt)?(e=Z,bt++):(e=a,0===St&&Gt($)),e===a&&(e=null),e!==a?(cr.test(r.charAt(bt))?(o=r.charAt(bt),bt++):(o=a,0===St&&Gt(sr)),o!==a?t=e=fr(e,o):(bt=t,t=a)):(bt=t,t=a),t}function zt(){var t,e,o,n;if(t=bt,42===r.charCodeAt(bt)?(e=Ir,bt++):(e=a,0===St&&Gt(yr)),e!==a){for(o=[],n=Xt();n!==a;)o.push(n),n=Xt();o!==a&&(n=Zt())!==a?t=e=Cr(o):(bt=t,t=a)}else bt=t,t=a;return t}function Jt(){var t,e,o,n,i,u;if(t=bt,r.substr(bt,3)===vt?(e=vt,bt+=3):(e=a,0===St&&Gt(mt)),e!==a){for(o=[],32===r.charCodeAt(bt)?(n=I,bt++):(n=a,0===St&&Gt(y));n!==a;)o.push(n),32===r.charCodeAt(bt)?(n=I,bt++):(n=a,0===St&&Gt(y));if(o!==a){if(n=[],Er.test(r.charAt(bt))?(i=r.charAt(bt),bt++):(i=a,0===St&&Gt(Ur)),i!==a)for(;i!==a;)n.push(i),Er.test(r.charAt(bt))?(i=r.charAt(bt),bt++):(i=a,0===St&&Gt(Ur));else n=a;n!==a?(25163===r.charCodeAt(bt)?(i=br,bt++):(i=a,0===St&&Gt(Tr)),i!==a&&Zt()!==a&&(u=Lt())!==a?t=e=gt(n,u):(bt=t,t=a)):(bt=t,t=a)}else bt=t,t=a}else bt=t,t=a;return t}function Vt(){var t;return m.test(r.charAt(bt))?(t=r.charAt(bt),bt++):(t=a,0===St&&Gt(g)),t}function Zt(){var r,t,e,o;if(r=bt,t=[],(e=Qt())!==a)for(;e!==a;)t.push(e),e=Qt();else t=a;if(t!==a){for(e=[],o=$t();o!==a;)e.push(o),o=$t();e!==a?r=t=[t,e]:(bt=r,r=a)}else bt=r,r=a;return r}function $t(){var t,e,o,n;if(t=bt,35===r.charCodeAt(bt)?(e=At,bt++):(e=a,0===St&&Gt(kt)),e!==a){for(o=[],n=Xt();n!==a;)o.push(n),n=Xt();o!==a&&(n=Qt())!==a?t=e=[e,o,n]:(bt=t,t=a)}else bt=t,t=a;return t}function qt(){var t;return 32===r.charCodeAt(bt)?(t=I,bt++):(t=a,0===St&&Gt(y)),t===a&&(9===r.charCodeAt(bt)?(t=Kt,bt++):(t=a,0===St&&Gt(It))),t}function Qt(){var t,e,o,n,i;for(t=bt,e=[],o=qt();o!==a;)e.push(o),o=qt();return e!==a?(10===r.charCodeAt(bt)?(o=yt,bt++):(o=a,0===St&&Gt(Ct)),o===a&&(o=bt,13===r.charCodeAt(bt)?(n=Ft,bt++):(n=a,0===St&&Gt(xt)),n!==a?(10===r.charCodeAt(bt)?(i=yt,bt++):(i=a,0===St&&Gt(Ct)),i===a&&(i=null),i!==a?o=n=[n,i]:(bt=o,o=a)):(bt=o,o=a)),o!==a?t=e=[e,o]:(bt=t,t=a)):(bt=t,t=a),t}function Xt(){var t;return Et.test(r.charAt(bt))?(t=r.charAt(bt),bt++):(t=a,0===St&&Gt(Ut)),t}function re(r){switch(r.length){case 1:return"〇一二三四五六七八九十".indexOf(r);case 2:return"〇一二三四五六七八九十".indexOf(r[1])+10;default:throw"21以上の数値に対応していません"}}function te(r){return"成"==r[0]?{香:"NY",桂:"NK",銀:"NG"}[r[1]]:{歩:"FU",香:"KY",桂:"KE",銀:"GI",金:"KI",角:"KA",飛:"HI",玉:"OU",王:"OU",と:"TO",杏:"NY",圭:"NK",全:"NG",馬:"UM",竜:"RY",龍:"RY"}[r]}function ee(r){var t=r.replace(/　$/,"").split("　"),e={FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0};if(""==r)return e;for(var o=0;o<t.length;o++)e[te(t[o][0])]=1==t[o].length?1:re(t[o].slice(1));return e}if((o=s())!==a&&bt===r.length)return o;throw o!==a&&bt<r.length&&Gt({type:"end"}),n=Mt,i=wt<r.length?r.charAt(wt):null,u=wt<r.length?Rt(wt,wt+1):Rt(wt,wt),new t(t.buildMessage(n,i),n,i,u)}}},354:r=>{function t(r,e,o,n){this.message=r,this.expected=e,this.found=o,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(r,t){function e(){this.constructor=r}e.prototype=t.prototype,r.prototype=new e}(t,Error),t.buildMessage=function(r,t){var e={literal:function(r){return'"'+n(r.text)+'"'},class:function(r){var t,e="";for(t=0;t<r.parts.length;t++)e+=r.parts[t]instanceof Array?i(r.parts[t][0])+"-"+i(r.parts[t][1]):i(r.parts[t]);return"["+(r.inverted?"^":"")+e+"]"},any:function(r){return"any character"},end:function(r){return"end of input"},other:function(r){return r.description}};function o(r){return r.charCodeAt(0).toString(16).toUpperCase()}function n(r){return r.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(r){return"\\x0"+o(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+o(r)}))}function i(r){return r.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(r){return"\\x0"+o(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+o(r)}))}return"Expected "+function(r){var t,o,n,i=new Array(r.length);for(t=0;t<r.length;t++)i[t]=(n=r[t],e[n.type](n));if(i.sort(),i.length>0){for(t=1,o=1;t<i.length;t++)i[t-1]!==i[t]&&(i[o]=i[t],o++);i.length=o}switch(i.length){case 1:return i[0];case 2:return i[0]+" or "+i[1];default:return i.slice(0,-1).join(", ")+", or "+i[i.length-1]}}(r)+" but "+function(r){return r?'"'+n(r)+'"':"end of input"}(t)+" found."},r.exports={SyntaxError:t,parse:function(r,e){e=void 0!==e?e:{};var o,n,i,u,a={},c={kifu:te},s=te,f=function(r,t,e,o,n){for(var i={header:{},moves:o},u=0;u<r.length;u++)r[u]&&(i.header[r[u].k]=r[u].v);for(u=0;u<e.length;u++)e[u]&&(i.header[e[u].k]=e[u].v);if(t)i.initial=t;else if(i.header["手合割"]){var a=function(r){return{平手:"HIRATE",香落ち:"KY",右香落ち:"KY_R",角落ち:"KA",飛車落ち:"HI",飛香落ち:"HIKY",二枚落ち:"2",三枚落ち:"3",四枚落ち:"4",五枚落ち:"5",左五枚落ち:"5_L",六枚落ち:"6",左七枚落ち:"7_L",右七枚落ち:"7_R",八枚落ち:"8",十枚落ち:"10",その他:"OTHER"}[r.replace(/\s/g,"")]}(i.header["手合割"]);"OTHER"!=a&&(i.initial={preset:a})}i.initial&&i.initial.data&&(i.header["手番"]?(i.initial.data.color="下先".indexOf(i.header["手番"])>=0?0:1,delete i.header["手番"]):i.initial.data.color=0,i.initial.data.hands=[Ie(i.header["先手の持駒"in i.header?"先手の持駒":"下手の持駒"]||""),Ie(i.header["後手の持駒"in i.header?"後手の持駒":"上手の持駒"]||"")],delete i.header["先手の持駒"],delete i.header["下手の持駒"],delete i.header["後手の持駒"],delete i.header["上手の持駒"]);var c=[{te:0,moves:o}];for(u=0;u<n.length;u++){for(var s=n[u],f=c.pop();f.te>=s.te;)f=c.pop();var l=f.moves[s.te-f.te];l.forks=l.forks||[],l.forks.push(s.moves),c.push(f),c.push(s)}return i},l=/^[^\uFF1A\r\n]/,h=qt(["：","\r","\n"],!0,!1),d="：",p=$t("：",!1),v=function(r,t){return{k:r.join(""),v:t.join("")}},m="手番",g=$t("手番",!1),A=function(r){return{k:"手番",v:r}},k="盤面回転",K=$t("盤面回転",!1),I=function(){return null},y=/^[\u5148\u5F8C\u4E0A\u4E0B]/,C=qt(["先","後","上","下"],!1,!1),F=" ",x=$t(" ",!1),E="+",U=$t("+",!1),b=function(r){for(var t=[],e=0;e<9;e++){for(var o=[],n=0;n<9;n++)o.push(r[n][8-e]);t.push(o)}return{preset:"OTHER",data:{board:t}}},T="|",w=$t("|",!1),M=function(r){return r},S=function(r,t){return{color:r,kind:t}},O=" ・",N=$t(" ・",!1),H=function(){return{}},R="^",G=$t("^",!1),Y=function(){return 0},P="v",_=$t("v",!1),B="V",L=$t("V",!1),j=function(){return 1},W="手数----指手--",D=$t("手数----指手--",!1),z="-------消費時間--",J=$t("-------消費時間--",!1),V=function(r,t){return t.unshift(r),t},Z=function(r){return 0==r.length?{}:{comments:r}},$=function(r,t){var e={};return t.length>0&&(e.comments=t),"object"==typeof r.move?e.move=r.move:e.special={中断:"CHUDAN",封じ手:"CHUDAN",投了:"TORYO",持将棋:"JISHOGI",千日手:"SENNICHITE",詰み:"TSUMI",不詰:"FUZUMI",切れ負け:"TIME_UP",反則勝ち:"ILLEGAL_ACTION",反則負け:"ILLEGAL_MOVE"}[r.move],r.time&&(e.time=r.time),e},q="&",Q=$t("&",!1),X=function(r,t){var e={piece:r.piece};return r.to?e.to=r.to:e.same=!0,r.promote&&(e.promote=!0),t&&(e.from=t),e},rr=/^[^\r\n ]/,tr=qt(["\r","\n"," "],!0,!1),er=function(r){return r.join("")},or=function(r,t){return{move:r,time:t}},nr=/^[0-9]/,ir=qt([["0","9"]],!1,!1),ur="成",ar=$t("成",!1),cr=function(r,t,e){return{to:r,piece:t,promote:!!e}},sr=function(r,t){return{x:r,y:t}},fr="同",lr=$t("同",!1),hr="　",dr=$t("　",!1),pr=/^[\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]/,vr=qt(["１","２","３","４","５","６","７","８","９"],!1,!1),mr=function(r){return"０１２３４５６７８９".indexOf(r)},gr=/^[\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D]/,Ar=qt(["一","二","三","四","五","六","七","八","九"],!1,!1),kr=function(r){return"〇一二三四五六七八九".indexOf(r)},Kr=/^[\u6B69\u9999\u6842\u9280\u91D1\u89D2\u98DB\u738B\u7389\u3068\u674F\u572D\u5168\u99AC\u7ADC\u9F8D]/,Ir=qt(["歩","香","桂","銀","金","角","飛","王","玉","と","杏","圭","全","馬","竜","龍"],!1,!1),yr=function(r,t){return Ke((r||"")+t)},Cr="打",Fr=$t("打",!1),xr="(",Er=$t("(",!1),Ur=/^[1-9]/,br=qt([["1","9"]],!1,!1),Tr=")",wr=$t(")",!1),Mr=function(r,t){return{x:parseInt(r),y:parseInt(t)}},Sr="/",Or=$t("/",!1),Nr=function(r,t){return{now:r,total:t}},Hr=":",Rr=$t(":",!1),Gr=function(r,t,e){return{h:Ae(r),m:Ae(t),s:Ae(e)}},Yr=function(r,t){return{m:Ae(r),s:Ae(t)}},Pr="*",_r=$t("*",!1),Br=function(r){return r.join("")},Lr=function(r){return"&"+r.join("")},jr="まで",Wr=$t("まで",!1),Dr="手",zr=$t("手",!1),Jr="で",Vr=$t("で",!1),Zr="手の",$r=$t("手の",!1),qr="勝ち",Qr=$t("勝ち",!1),Xr=function(r){return"TORYO"},rt="反則",tt=$t("反則",!1),et=function(r){return"ILLEGAL_ACTION"},ot="負け",nt=$t("負け",!1),it=function(r){return"ILLEGAL_MOVE"},ut=function(r,t){return t},at="で時間切れにより",ct=$t("で時間切れにより",!1),st="手の勝ち",ft=$t("手の勝ち",!1),lt=function(r){return"TIME_UP"},ht="で中断",dt=$t("で中断",!1),pt=function(){return"CHUDAN"},vt="で封じ手",mt=$t("で封じ手",!1),gt="で持将棋",At=$t("で持将棋",!1),kt=function(){return"JISHOGI"},Kt="で千日手",It=$t("で千日手",!1),yt=function(){return"SENNICHITE"},Ct="詰",Ft=$t("詰",!1),xt="み",Et=$t("み",!1),Ut=function(){return"TSUMI"},bt="で不詰",Tt=$t("で不詰",!1),wt=function(){return"FUZUMI"},Mt=function(r){return r},St="変化：",Ot=$t("変化：",!1),Nt=function(r,t){return{te:parseInt(r.join("")),moves:t.slice(1)}},Ht="#",Rt=$t("#",!1),Gt="\t",Yt=$t("\t",!1),Pt="\n",_t=$t("\n",!1),Bt="\r",Lt=$t("\r",!1),jt=/^[^\r\n]/,Wt=qt(["\r","\n"],!0,!1),Dt=0,zt=[{line:1,column:1}],Jt=0,Vt=[],Zt=0;if("startRule"in e){if(!(e.startRule in c))throw new Error("Can't start parsing from rule \""+e.startRule+'".');s=c[e.startRule]}function $t(r,t){return{type:"literal",text:r,ignoreCase:t}}function qt(r,t,e){return{type:"class",parts:r,inverted:t,ignoreCase:e}}function Qt(t){var e,o=zt[t];if(o)return o;for(e=t-1;!zt[e];)e--;for(o={line:(o=zt[e]).line,column:o.column};e<t;)10===r.charCodeAt(e)?(o.line++,o.column=1):o.column++,e++;return zt[t]=o,o}function Xt(r,t){var e=Qt(r),o=Qt(t);return{start:{offset:r,line:e.line,column:e.column},end:{offset:t,line:o.line,column:o.column}}}function re(r){Dt<Jt||(Dt>Jt&&(Jt=Dt,Vt=[]),Vt.push(r))}function te(){var t,e,o,n,i,u,c,s,l;for(t=Dt,e=[],o=pe();o!==a;)e.push(o),o=pe();if(e!==a){for(o=[],n=ee();n!==a;)o.push(n),n=ee();if(o!==a)if(n=function(){var t,e,o,n,i,u,c,s;if(t=Dt,e=Dt,32===r.charCodeAt(Dt)?(o=F,Dt++):(o=a,0===Zt&&re(x)),o!==a){for(n=[],i=ge();i!==a;)n.push(i),i=ge();n!==a&&(i=de())!==a?e=o=[o,n,i]:(Dt=e,e=a)}else Dt=e,e=a;if(e===a&&(e=null),e!==a){if(o=Dt,43===r.charCodeAt(Dt)?(n=E,Dt++):(n=a,0===Zt&&re(U)),n!==a){for(i=[],u=ge();u!==a;)i.push(u),u=ge();i!==a&&(u=de())!==a?o=n=[n,i,u]:(Dt=o,o=a)}else Dt=o,o=a;if(o===a&&(o=null),o!==a){if(n=[],(i=ne())!==a)for(;i!==a;)n.push(i),i=ne();else n=a;if(n!==a){if(i=Dt,43===r.charCodeAt(Dt)?(u=E,Dt++):(u=a,0===Zt&&re(U)),u!==a){for(c=[],s=ge();s!==a;)c.push(s),s=ge();c!==a&&(s=de())!==a?i=u=[u,c,s]:(Dt=i,i=a)}else Dt=i,i=a;i===a&&(i=null),i!==a?t=e=b(n):(Dt=t,t=a)}else Dt=t,t=a}else Dt=t,t=a}else Dt=t,t=a;return t}(),n===a&&(n=null),n!==a){for(i=[],u=ee();u!==a;)i.push(u),u=ee();if(i!==a)if((u=ue())===a&&(u=null),u!==a)if((c=ae())!==a){for(s=[],l=he();l!==a;)s.push(l),l=he();s!==a?((l=de())===a&&(l=null),l!==a?t=e=f(o,n,i,c,s):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a;else Dt=t,t=a}else Dt=t,t=a;else Dt=t,t=a}else Dt=t,t=a;return t}function ee(){var t,e,o,n,i;if(t=Dt,e=[],l.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(h)),o!==a)for(;o!==a;)e.push(o),l.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(h));else e=a;if(e!==a)if(65306===r.charCodeAt(Dt)?(o=d,Dt++):(o=a,0===Zt&&re(p)),o!==a){for(n=[],i=ge();i!==a;)n.push(i),i=ge();n!==a&&(i=de())!==a?t=e=v(e,n):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a;return t===a&&(t=Dt,(e=oe())!==a?(r.substr(Dt,2)===m?(o=m,Dt+=2):(o=a,0===Zt&&re(g)),o!==a&&(n=de())!==a?t=e=A(e):(Dt=t,t=a)):(Dt=t,t=a),t===a&&(t=Dt,r.substr(Dt,4)===k?(e=k,Dt+=4):(e=a,0===Zt&&re(K)),e!==a&&(o=de())!==a?t=e=I():(Dt=t,t=a))),t}function oe(){var t;return y.test(r.charAt(Dt))?(t=r.charAt(Dt),Dt++):(t=a,0===Zt&&re(C)),t}function ne(){var t,e,o,n,i,u;if(t=Dt,124===r.charCodeAt(Dt)?(e=T,Dt++):(e=a,0===Zt&&re(w)),e!==a){if(o=[],(n=ie())!==a)for(;n!==a;)o.push(n),n=ie();else o=a;if(o!==a)if(124===r.charCodeAt(Dt)?(n=T,Dt++):(n=a,0===Zt&&re(w)),n!==a){if(i=[],(u=ge())!==a)for(;u!==a;)i.push(u),u=ge();else i=a;i!==a&&(u=de())!==a?t=e=M(o):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a}else Dt=t,t=a;return t}function ie(){var t,e,o;return t=Dt,e=function(){var t,e;return t=Dt,32===r.charCodeAt(Dt)?(e=F,Dt++):(e=a,0===Zt&&re(x)),e===a&&(43===r.charCodeAt(Dt)?(e=E,Dt++):(e=a,0===Zt&&re(U)),e===a&&(94===r.charCodeAt(Dt)?(e=R,Dt++):(e=a,0===Zt&&re(G)))),e!==a&&(e=Y()),(t=e)===a&&(t=Dt,118===r.charCodeAt(Dt)?(e=P,Dt++):(e=a,0===Zt&&re(_)),e===a&&(86===r.charCodeAt(Dt)?(e=B,Dt++):(e=a,0===Zt&&re(L))),e!==a&&(e=j()),t=e),t}(),e!==a&&(o=fe())!==a?t=e=S(e,o):(Dt=t,t=a),t===a&&(t=Dt,r.substr(Dt,2)===O?(e=O,Dt+=2):(e=a,0===Zt&&re(N)),e!==a&&(e=H()),t=e),t}function ue(){var t,e,o,n;return t=Dt,r.substr(Dt,10)===W?(e=W,Dt+=10):(e=a,0===Zt&&re(D)),e!==a?(r.substr(Dt,13)===z?(o=z,Dt+=13):(o=a,0===Zt&&re(J)),o===a&&(o=null),o!==a&&(n=de())!==a?t=e=[e,o,n]:(Dt=t,t=a)):(Dt=t,t=a),t}function ae(){var t,e,o,n,i;if(t=Dt,e=function(){var r,t,e;for(r=Dt,t=[],e=le();e!==a;)t.push(e),e=le();return t!==a?((e=se())===a&&(e=null),e!==a?r=t=Z(t):(Dt=r,r=a)):(Dt=r,r=a),r}(),e!==a)if((o=ue())===a&&(o=null),o!==a){for(n=[],i=ce();i!==a;)n.push(i),i=ce();n!==a?(i=function(){var t,e,o,n,i,u,c,s,f,l,h,d;if(t=Dt,r.substr(Dt,2)===jr?(e=jr,Dt+=2):(e=a,0===Zt&&re(Wr)),e!==a){if(o=[],nr.test(r.charAt(Dt))?(n=r.charAt(Dt),Dt++):(n=a,0===Zt&&re(ir)),n!==a)for(;n!==a;)o.push(n),nr.test(r.charAt(Dt))?(n=r.charAt(Dt),Dt++):(n=a,0===Zt&&re(ir));else o=a;o!==a?(25163===r.charCodeAt(Dt)?(n=Dr,Dt++):(n=a,0===Zt&&re(zr)),n!==a?(i=Dt,12391===r.charCodeAt(Dt)?(u=Jr,Dt++):(u=a,0===Zt&&re(Vr)),u!==a&&(c=oe())!==a?(r.substr(Dt,2)===Zr?(s=Zr,Dt+=2):(s=a,0===Zt&&re($r)),s!==a?(f=Dt,r.substr(Dt,2)===qr?(l=qr,Dt+=2):(l=a,0===Zt&&re(Qr)),l!==a&&(l=Xr(c)),(f=l)===a&&(f=Dt,r.substr(Dt,2)===rt?(l=rt,Dt+=2):(l=a,0===Zt&&re(tt)),l!==a?(h=Dt,r.substr(Dt,2)===qr?(d=qr,Dt+=2):(d=a,0===Zt&&re(Qr)),d!==a&&(d=et(c)),(h=d)===a&&(h=Dt,r.substr(Dt,2)===ot?(d=ot,Dt+=2):(d=a,0===Zt&&re(nt)),d!==a&&(d=it(c)),h=d),h!==a?f=l=ut(c,h):(Dt=f,f=a)):(Dt=f,f=a)),f!==a?i=u=ut(c,f):(Dt=i,i=a)):(Dt=i,i=a)):(Dt=i,i=a),i===a&&(i=Dt,r.substr(Dt,8)===at?(u=at,Dt+=8):(u=a,0===Zt&&re(ct)),u!==a&&(c=oe())!==a?(r.substr(Dt,4)===st?(s=st,Dt+=4):(s=a,0===Zt&&re(ft)),s!==a?i=u=lt(c):(Dt=i,i=a)):(Dt=i,i=a),i===a&&(i=Dt,r.substr(Dt,3)===ht?(u=ht,Dt+=3):(u=a,0===Zt&&re(dt)),u!==a&&(u=pt()),(i=u)===a&&(i=Dt,r.substr(Dt,4)===vt?(u=vt,Dt+=4):(u=a,0===Zt&&re(mt)),u!==a&&(u=pt()),(i=u)===a&&(i=Dt,r.substr(Dt,4)===gt?(u=gt,Dt+=4):(u=a,0===Zt&&re(At)),u!==a&&(u=kt()),(i=u)===a&&(i=Dt,r.substr(Dt,4)===Kt?(u=Kt,Dt+=4):(u=a,0===Zt&&re(It)),u!==a&&(u=yt()),(i=u)===a&&(i=Dt,12391===r.charCodeAt(Dt)?(u=Jr,Dt++):(u=a,0===Zt&&re(Vr)),u===a&&(u=null),u!==a?(35440===r.charCodeAt(Dt)?(c=Ct,Dt++):(c=a,0===Zt&&re(Ft)),c!==a?(12415===r.charCodeAt(Dt)?(s=xt,Dt++):(s=a,0===Zt&&re(Et)),s===a&&(s=null),s!==a?i=u=Ut():(Dt=i,i=a)):(Dt=i,i=a)):(Dt=i,i=a),i===a&&(i=Dt,r.substr(Dt,3)===bt?(u=bt,Dt+=3):(u=a,0===Zt&&re(Tt)),u!==a&&(u=wt()),i=u))))))),i!==a&&(u=de())!==a?t=e=Mt(i):(Dt=t,t=a)):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a;return t}(),i===a&&(i=null),i!==a?t=e=V(e,n):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a;return t}function ce(){var t,e,o,n;if(t=Dt,e=function(){var t,e,o,n,i,u,c,s;for(t=Dt,e=[],32===r.charCodeAt(Dt)?(o=F,Dt++):(o=a,0===Zt&&re(x));o!==a;)e.push(o),32===r.charCodeAt(Dt)?(o=F,Dt++):(o=a,0===Zt&&re(x));if(e!==a)if(o=function(){var t,e;if(t=[],nr.test(r.charAt(Dt))?(e=r.charAt(Dt),Dt++):(e=a,0===Zt&&re(ir)),e!==a)for(;e!==a;)t.push(e),nr.test(r.charAt(Dt))?(e=r.charAt(Dt),Dt++):(e=a,0===Zt&&re(ir));else t=a;return t}(),o!==a){for(n=[],32===r.charCodeAt(Dt)?(i=F,Dt++):(i=a,0===Zt&&re(x));i!==a;)n.push(i),32===r.charCodeAt(Dt)?(i=F,Dt++):(i=a,0===Zt&&re(x));if(n!==a){if(i=Dt,u=function(){var t,e,o,n;return t=Dt,e=function(){var t,e,o;return t=Dt,(e=function(){var t;return pr.test(r.charAt(Dt))?(t=r.charAt(Dt),Dt++):(t=a,0===Zt&&re(vr)),t!==a&&(t=mr(t)),t}())!==a?(o=function(){var t;return gr.test(r.charAt(Dt))?(t=r.charAt(Dt),Dt++):(t=a,0===Zt&&re(Ar)),t!==a&&(t=kr(t)),t}(),o!==a?t=e=sr(e,o):(Dt=t,t=a)):(Dt=t,t=a),t===a&&(t=Dt,21516===r.charCodeAt(Dt)?(e=fr,Dt++):(e=a,0===Zt&&re(lr)),e!==a?(12288===r.charCodeAt(Dt)?(o=hr,Dt++):(o=a,0===Zt&&re(dr)),o===a&&(o=null),o!==a?t=e=I():(Dt=t,t=a)):(Dt=t,t=a)),t}(),e!==a&&(o=fe())!==a?(25104===r.charCodeAt(Dt)?(n=ur,Dt++):(n=a,0===Zt&&re(ar)),n===a&&(n=null),n!==a?t=e=cr(e,o,n):(Dt=t,t=a)):(Dt=t,t=a),t}(),u!==a?(c=function(){var t,e,o,n,i;return t=Dt,25171===r.charCodeAt(Dt)?(e=Cr,Dt++):(e=a,0===Zt&&re(Fr)),e!==a&&(e=I()),(t=e)===a&&(t=Dt,40===r.charCodeAt(Dt)?(e=xr,Dt++):(e=a,0===Zt&&re(Er)),e!==a?(Ur.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(br)),o!==a?(Ur.test(r.charAt(Dt))?(n=r.charAt(Dt),Dt++):(n=a,0===Zt&&re(br)),n!==a?(41===r.charCodeAt(Dt)?(i=Tr,Dt++):(i=a,0===Zt&&re(wr)),i!==a?t=e=Mr(o,n):(Dt=t,t=a)):(Dt=t,t=a)):(Dt=t,t=a)):(Dt=t,t=a)),t}(),c!==a?i=u=X(u,c):(Dt=i,i=a)):(Dt=i,i=a),i===a){for(i=Dt,u=[],rr.test(r.charAt(Dt))?(c=r.charAt(Dt),Dt++):(c=a,0===Zt&&re(tr));c!==a;)u.push(c),rr.test(r.charAt(Dt))?(c=r.charAt(Dt),Dt++):(c=a,0===Zt&&re(tr));u!==a&&(u=er(u)),i=u}if(i!==a){for(u=[],32===r.charCodeAt(Dt)?(c=F,Dt++):(c=a,0===Zt&&re(x));c!==a;)u.push(c),32===r.charCodeAt(Dt)?(c=F,Dt++):(c=a,0===Zt&&re(x));u!==a?(c=function(){var t,e,o,n,i,u,c,s,f;if(t=Dt,40===r.charCodeAt(Dt)?(e=xr,Dt++):(e=a,0===Zt&&re(Er)),e!==a){for(o=[],32===r.charCodeAt(Dt)?(n=F,Dt++):(n=a,0===Zt&&re(x));n!==a;)o.push(n),32===r.charCodeAt(Dt)?(n=F,Dt++):(n=a,0===Zt&&re(x));if(o!==a)if(n=function(){var t,e,o,n,i;if(t=Dt,e=[],nr.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(ir)),o!==a)for(;o!==a;)e.push(o),nr.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(ir));else e=a;if(e!==a)if(58===r.charCodeAt(Dt)?(o=Hr,Dt++):(o=a,0===Zt&&re(Rr)),o!==a){if(n=[],nr.test(r.charAt(Dt))?(i=r.charAt(Dt),Dt++):(i=a,0===Zt&&re(ir)),i!==a)for(;i!==a;)n.push(i),nr.test(r.charAt(Dt))?(i=r.charAt(Dt),Dt++):(i=a,0===Zt&&re(ir));else n=a;n!==a?t=e=Yr(e,n):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a;return t}(),n!==a){for(i=[],32===r.charCodeAt(Dt)?(u=F,Dt++):(u=a,0===Zt&&re(x));u!==a;)i.push(u),32===r.charCodeAt(Dt)?(u=F,Dt++):(u=a,0===Zt&&re(x));if(i!==a)if(47===r.charCodeAt(Dt)?(u=Sr,Dt++):(u=a,0===Zt&&re(Or)),u!==a){for(c=[],32===r.charCodeAt(Dt)?(s=F,Dt++):(s=a,0===Zt&&re(x));s!==a;)c.push(s),32===r.charCodeAt(Dt)?(s=F,Dt++):(s=a,0===Zt&&re(x));c!==a?(s=function(){var t,e,o,n,i,u,c;if(t=Dt,e=[],nr.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(ir)),o!==a)for(;o!==a;)e.push(o),nr.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(ir));else e=a;if(e!==a)if(58===r.charCodeAt(Dt)?(o=Hr,Dt++):(o=a,0===Zt&&re(Rr)),o!==a){if(n=[],nr.test(r.charAt(Dt))?(i=r.charAt(Dt),Dt++):(i=a,0===Zt&&re(ir)),i!==a)for(;i!==a;)n.push(i),nr.test(r.charAt(Dt))?(i=r.charAt(Dt),Dt++):(i=a,0===Zt&&re(ir));else n=a;if(n!==a)if(58===r.charCodeAt(Dt)?(i=Hr,Dt++):(i=a,0===Zt&&re(Rr)),i!==a){if(u=[],nr.test(r.charAt(Dt))?(c=r.charAt(Dt),Dt++):(c=a,0===Zt&&re(ir)),c!==a)for(;c!==a;)u.push(c),nr.test(r.charAt(Dt))?(c=r.charAt(Dt),Dt++):(c=a,0===Zt&&re(ir));else u=a;u!==a?t=e=Gr(e,n,u):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a}else Dt=t,t=a;else Dt=t,t=a;return t}(),s!==a?(41===r.charCodeAt(Dt)?(f=Tr,Dt++):(f=a,0===Zt&&re(wr)),f!==a?t=e=Nr(n,s):(Dt=t,t=a)):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a;else Dt=t,t=a}else Dt=t,t=a;else Dt=t,t=a}else Dt=t,t=a;return t}(),c===a&&(c=null),c!==a?(43===r.charCodeAt(Dt)?(s=E,Dt++):(s=a,0===Zt&&re(U)),s===a&&(s=null),s!==a&&de()!==a?t=e=or(i,c):(Dt=t,t=a)):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a}else Dt=t,t=a}else Dt=t,t=a;else Dt=t,t=a;return t}(),e!==a){for(o=[],n=le();n!==a;)o.push(n),n=le();o!==a?((n=se())===a&&(n=null),n!==a?t=e=$(e,o):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a;return t}function se(){var t,e,o,n;if(t=Dt,38===r.charCodeAt(Dt)?(e=q,Dt++):(e=a,0===Zt&&re(Q)),e!==a){for(o=[],n=ge();n!==a;)o.push(n),n=ge();o!==a&&(n=de())!==a?t=e=[e,o,n]:(Dt=t,t=a)}else Dt=t,t=a;return t}function fe(){var t,e,o;return t=Dt,25104===r.charCodeAt(Dt)?(e=ur,Dt++):(e=a,0===Zt&&re(ar)),e===a&&(e=null),e!==a?(Kr.test(r.charAt(Dt))?(o=r.charAt(Dt),Dt++):(o=a,0===Zt&&re(Ir)),o!==a?t=e=yr(e,o):(Dt=t,t=a)):(Dt=t,t=a),t}function le(){var t,e,o,n;if(t=Dt,42===r.charCodeAt(Dt)?(e=Pr,Dt++):(e=a,0===Zt&&re(_r)),e!==a){for(o=[],n=ge();n!==a;)o.push(n),n=ge();o!==a&&(n=de())!==a?t=e=Br(o):(Dt=t,t=a)}else Dt=t,t=a;if(t===a)if(t=Dt,38===r.charCodeAt(Dt)?(e=q,Dt++):(e=a,0===Zt&&re(Q)),e!==a){for(o=[],n=ge();n!==a;)o.push(n),n=ge();o!==a&&(n=de())!==a?t=e=Lr(o):(Dt=t,t=a)}else Dt=t,t=a;return t}function he(){var t,e,o,n,i,u;if(t=Dt,r.substr(Dt,3)===St?(e=St,Dt+=3):(e=a,0===Zt&&re(Ot)),e!==a){for(o=[],32===r.charCodeAt(Dt)?(n=F,Dt++):(n=a,0===Zt&&re(x));n!==a;)o.push(n),32===r.charCodeAt(Dt)?(n=F,Dt++):(n=a,0===Zt&&re(x));if(o!==a){if(n=[],nr.test(r.charAt(Dt))?(i=r.charAt(Dt),Dt++):(i=a,0===Zt&&re(ir)),i!==a)for(;i!==a;)n.push(i),nr.test(r.charAt(Dt))?(i=r.charAt(Dt),Dt++):(i=a,0===Zt&&re(ir));else n=a;n!==a?(25163===r.charCodeAt(Dt)?(i=Dr,Dt++):(i=a,0===Zt&&re(zr)),i!==a&&de()!==a&&(u=ae())!==a?t=e=Nt(n,u):(Dt=t,t=a)):(Dt=t,t=a)}else Dt=t,t=a}else Dt=t,t=a;return t}function de(){var r,t,e,o;if(r=Dt,t=[],(e=me())!==a)for(;e!==a;)t.push(e),e=me();else t=a;if(t!==a){for(e=[],o=pe();o!==a;)e.push(o),o=pe();e!==a?r=t=[t,e]:(Dt=r,r=a)}else Dt=r,r=a;return r}function pe(){var t,e,o,n;if(t=Dt,35===r.charCodeAt(Dt)?(e=Ht,Dt++):(e=a,0===Zt&&re(Rt)),e!==a){for(o=[],n=ge();n!==a;)o.push(n),n=ge();o!==a&&(n=me())!==a?t=e=[e,o,n]:(Dt=t,t=a)}else Dt=t,t=a;return t}function ve(){var t;return 32===r.charCodeAt(Dt)?(t=F,Dt++):(t=a,0===Zt&&re(x)),t===a&&(9===r.charCodeAt(Dt)?(t=Gt,Dt++):(t=a,0===Zt&&re(Yt))),t}function me(){var t,e,o,n,i;for(t=Dt,e=[],o=ve();o!==a;)e.push(o),o=ve();return e!==a?(10===r.charCodeAt(Dt)?(o=Pt,Dt++):(o=a,0===Zt&&re(_t)),o===a&&(o=Dt,13===r.charCodeAt(Dt)?(n=Bt,Dt++):(n=a,0===Zt&&re(Lt)),n!==a?(10===r.charCodeAt(Dt)?(i=Pt,Dt++):(i=a,0===Zt&&re(_t)),i===a&&(i=null),i!==a?o=n=[n,i]:(Dt=o,o=a)):(Dt=o,o=a)),o!==a?t=e=[e,o]:(Dt=t,t=a)):(Dt=t,t=a),t}function ge(){var t;return jt.test(r.charAt(Dt))?(t=r.charAt(Dt),Dt++):(t=a,0===Zt&&re(Wt)),t}function Ae(r){return parseInt(r.join(""),10)}function ke(r){switch(r.length){case 1:return"〇一二三四五六七八九十".indexOf(r);case 2:return"〇一二三四五六七八九十".indexOf(r[1])+10;default:throw"21以上の数値に対応していません"}}function Ke(r){if("成"==r[0])return{香:"NY",桂:"NK",銀:"NG"}[r[1]];const t={歩:"FU",香:"KY",桂:"KE",銀:"GI",金:"KI",角:"KA",飛:"HI",玉:"OU",王:"OU",と:"TO",杏:"NY",圭:"NK",全:"NG",馬:"UM",竜:"RY",龍:"RY"}[r];if(!t)throw"不明な駒 `"+r+"`";return t}function Ie(r){var t=r.split(/[ 　]/),e={FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0};if(""==r||"なし"==r)return e;for(var o=0;o<t.length;o++)""!=t[o]&&(e[Ke(t[o][0])]=1==t[o].length?1:ke(t[o].slice(1)));return e}if((o=s())!==a&&Dt===r.length)return o;throw o!==a&&Dt<r.length&&re({type:"end"}),n=Vt,i=Jt<r.length?r.charAt(Jt):null,u=Jt<r.length?Xt(Jt,Jt+1):Xt(Jt,Jt),new t(t.buildMessage(n,i),n,i,u)}}},903:(r,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},945:(r,t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var o=e(514),n=e(288),i=e(544),u=function(){function r(r){this.forkPointers=[],this.forks_=null,this.currentStream_=null,this.shogi=new o.Shogi(r.initial||void 0),this.initialize(r)}return r.log=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];r.debug?console.log(t):r.logs.push(t)},r.parse=function(t,e){if(e){var o=e.split(".");switch(o[o.length-1].toLowerCase()){case"jkf":return r.parseJKF(t);case"kif":case"kifu":return r.parseKIF(t);case"ki2":case"ki2u":return r.parseKI2(t);case"csa":return r.parseCSA(t)}}try{return r.parseJKF(t)}catch(t){r.log("failed to parse as jkf",t)}try{return r.parseKIF(t)}catch(t){r.log("failed to parse as kif",t)}try{return r.parseKI2(t)}catch(t){r.log("failed to parse as ki2",t)}try{return r.parseCSA(t)}catch(t){r.log("failed to parse as csa",t)}throw new Error("JKF, KIF, KI2, CSAいずれの形式でも失敗しました")},r.parseJKF=function(t){return r.log("parseJKF",t),new r(JSON.parse(t))},r.parseKIF=function(t){return r.log("parseKIF",t),new r((0,i.parseKIF)(t))},r.parseKI2=function(t){return r.log("parseKI2",t),new r((0,i.parseKI2)(t))},r.parseCSA=function(t){return r.log("parseCSA",t),new r((0,i.parseCSA)(t))},r.numToZen=function(r){return"０１２３４５６７８９"[r]},r.numToKan=function(r){return"〇一二三四五六七八九"[r]},r.kindToKan=function(r){return(0,o.kindToString)(r)},r.relativeToKan=function(r){return{L:"左",C:"直",R:"右",U:"上",M:"寄",D:"引",H:"打"}[r]},r.specialToKan=function(r){return{TORYO:"投了",CHUDAN:"中断",SENNICHITE:"千日手",TIME_UP:"時間切れ",ILLEGAL_MOVE:"反則負け","+ILLEGAL_ACTION":"先手反則負け","-ILLEGAL_ACTION":"後手反則負け",JISHOGI:"持将棋",KACHI:"勝ち宣言",HIKIWAKE:"引き分け宣言",MATTA:"待った",TSUMI:"詰",FUZUMI:"不詰",ERROR:"エラー"}[r]||r},r.moveToReadableKifu=function(t){if(t.special)return r.specialToKan(t.special);var e=t.move,n=e.color===o.Color.Black?"☗":"☖";return e.same?n+="同　":n+=r.numToZen(e.to.x)+r.numToKan(e.to.y),n+=r.kindToKan(e.piece),e.relative&&(n+=e.relative.split("").map(r.relativeToKan).join("")),null!=e.promote&&(n+=e.promote?"成":"不成"),n},r.doMove=function(r,t){t&&(t.from?r.move(t.from.x,t.from.y,t.to.x,t.to.y,t.promote):r.drop(t.to.x,t.to.y,t.piece,void 0!==t.color?t.color:void 0))},r.undoMove=function(r,t){t&&(t.from?r.unmove(t.from.x,t.from.y,t.to.x,t.to.y,t.promote,t.capture):r.undrop(t.to.x,t.to.y))},r.getState=function(t){return{board:r.getBoardState(t),color:t.turn,hands:r.getHandsState(t)}},r.sameMoveMinimal=function(r,t){return r.to.x===t.to.x&&r.to.y===t.to.y&&(r.from&&t.from?r.from.x===t.from.x&&r.from.y===t.from.y&&r.promote===t.promote:r.piece===t.piece)},r.getBoardState=function(r){for(var t=[],e=1;e<=9;e++){for(var o=[],n=1;n<=9;n++){var i=r.get(e,n);o.push(i?{color:i.color,kind:i.kind}:{})}t.push(o)}return t},r.getHandsState=function(r){return[r.getHandsSummary(o.Color.Black),r.getHandsSummary(o.Color.White)]},Object.defineProperty(r.prototype,"forks",{get:function(){return null===this.forks_&&this.updateForksAndCurrentStream(),this.forks_},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"currentStream",{get:function(){return null===this.currentStream_&&this.updateForksAndCurrentStream(),this.currentStream_},enumerable:!1,configurable:!0}),r.prototype.initialize=function(r){this.kifu=r,this.tesuu=0,this.forkPointers=[]},r.fromShogi=function(t){var e=new r({header:{},moves:[{}],initial:{preset:"OTHER",data:r.getState(t)}});return e.shogi=t,e},r.prototype.forward=function(){var t=this.getMoveFormat(this.tesuu+1);if(!t)return!1;this.tesuu++;var e=t.move;return!e||(r.log("forward",this.tesuu,e),this.doMove(e),!0)},r.prototype.backward=function(){var t=this;if(this.tesuu<=0)return!1;var e=this.getMoveFormat(this.tesuu).move;return r.log("backward",this.tesuu-1,e),this.undoMove(e),this.tesuu--,this.forkPointers=this.forkPointers.filter((function(r){return r.te<=t.tesuu})),this.updateForksAndCurrentStream(),!0},r.prototype.goto=function(r,t){var e;if("string"==typeof r){var o=r.indexOf(",");o>0?(e=Number(r.slice(0,o)),t=JSON.parse(r.slice(o+1))):e=Number(r)}else e=r;if(t){for(var n=!0,i=0;i<t.length;i++){var u=t[i],a=this.forkPointers[i];n&&a&&a.te===u.te&&a.forkIndex===u.forkIndex||(n=!1,this.goto(u.te-1),this.forkAndForward(u.forkIndex))}return n&&t.length<this.forkPointers.length&&this.goto(this.forkPointers[t.length].te-1),void this.goto(e)}if(!isNaN(e)){var c=1e4;if(this.tesuu<e)for(;this.tesuu!==e&&this.forward()&&c-- >0;);else for(;this.tesuu!==e&&this.backward()&&c-- >0;);if(0===c)throw new Error("tesuu overflows")}},r.prototype.go=function(r){"string"==typeof r&&(r=Number(r)),isNaN(r)||this.goto(this.tesuu+r)},r.prototype.forkAndForward=function(r){"string"==typeof r&&(r=parseInt(r,10));var t=this.getMoveFormat(this.tesuu+1);if(!t)throw new Error("".concat(this.tesuu+1,"手目に有効な棋譜がありません"));var e=t.forks;return!(!e||e.length<=r)&&(this.forkPointers.push({te:this.tesuu+1,forkIndex:r}),this.updateForksAndCurrentStream(),this.forward())},r.prototype.getTesuuPointer=function(r){return isNaN(r)&&(r=this.tesuu),"".concat(r,",").concat(JSON.stringify(this.getForkPointers(r)))},r.prototype.getForkPointers=function(r){return isNaN(r)&&(r=this.tesuu),this.forkPointers.filter((function(t){return t.te<=r}))},r.prototype.inputMove=function(t){if(this.getMoveFormat().special)throw new Error("終了局面へ棋譜を追加することは出来ません");if(null!=t.from&&null==t.promote){var e=this.shogi.get(t.from.x,t.from.y);if(!o.Piece.isPromoted(e.kind)&&o.Piece.canPromote(e.kind)&&((0,n.canPromote)(t.from,e.color)||(0,n.canPromote)(t.to,e.color)))return!1}var i=this.getMoveFormat(this.tesuu+1);if(i){if(i.move&&r.sameMoveMinimal(i.move,t))return this.forward(),!0;if(i.forks)for(var u=0;u<i.forks.length;u++){var a=i.forks[u][0];if(a&&a.move&&r.sameMoveMinimal(a.move,t))return this.forkAndForward(u),!0}}this.doMove(t);var c,s={move:t},f=this.tesuu<this.getMaxTesuu();return f?((c=this.getMoveFormat(this.tesuu+1)).forks||(c.forks=[]),c.forks.push([s])):this.forks[this.forks.length-1].moves.push(s),this.updateForksAndCurrentStream(),(0,n.normalizeMinimal)(this.kifu),this.undoMove(t),f?this.forkAndForward(c.forks.length-1):this.forward(),!0},r.prototype.getBoard=function(r,t){return this.shogi.get(r,t)},r.prototype.getComments=function(r){return void 0===r&&(r=this.tesuu),this.getMoveFormat(r).comments||[]},r.prototype.getMove=function(r){return void 0===r&&(r=this.tesuu),this.getMoveFormat(r).move},r.prototype.getReadableKifu=function(t){return void 0===t&&(t=this.tesuu),0===t?"開始局面":r.moveToReadableKifu(this.getMoveFormat(t))},r.prototype.getReadableForkKifu=function(t){return void 0===t&&(t=this.tesuu),this.getNextFork(t).map((function(t){return r.moveToReadableKifu(t[0])}))},r.prototype.getMaxTesuu=function(){return this.currentStream.length-1},r.prototype.toJKF=function(){return JSON.stringify(this.kifu)},r.prototype.getState=function(){return r.getState(this.shogi)},r.prototype.getReadableKifuState=function(){for(var r=[],t=0;t<=this.getMaxTesuu();t++)r.push({comments:this.getComments(t),forks:this.getReadableForkKifu(t-1),kifu:this.getReadableKifu(t),moveFormat:this.getMoveFormat(t)});return r},r.prototype.updateForksAndCurrentStream=function(){for(var r=[],t=[],e=this.kifu.moves,o=0,n=0,i=this.forkPointers;n<i.length;n++){var u=i[n];r.push({te:o,moves:e}),t=t.concat(e.slice(0,u.te-o)),e=e[u.te-o].forks[u.forkIndex],o=u.te}r.push({te:o,moves:e}),this.forks_=r,this.currentStream_=t.concat(e.slice())},r.prototype.getMoveFormat=function(r){return void 0===r&&(r=this.tesuu),this.currentStream[r]},r.prototype.getNextFork=function(r){void 0===r&&(r=this.tesuu);var t=this.getMoveFormat(r+1);return t&&t.forks?t.forks:[]},r.prototype.doMove=function(t){r.doMove(this.shogi,t)},r.prototype.undoMove=function(t){r.undoMove(this.shogi,t)},r.debug=!1,r.logs=[],r}();t.default=u},288:(r,t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.filterMovesByRelatives=t.addRelativeInformation=t.normalizeCSA=t.normalizeKI2=t.normalizeKIF=t.normalizeMinimal=t.canPromote=void 0;var o=e(514);function n(r,t){return t===o.Color.Black?r.y<=3:r.y>=7}function i(r,t,e){for(var u=0;u<t.length;u++){var a=0===u?e:t[u-1];if(f=t[u].move)if(f.color=r.turn,f.from){a&&a.move&&f.to.x===a.move.to.x&&f.to.y===a.move.to.y&&(f.same=!0),s(r,f),f.piece||(f.piece=r.get(f.from.x,f.from.y).kind),f.promote||o.Piece.isPromoted(f.piece)||!o.Piece.canPromote(f.piece)||(n(f.to,r.turn)||n(f.from,r.turn))&&(f.promote=!1),c(r,f);try{r.move(f.from.x,f.from.y,f.to.x,f.to.y,f.promote)}catch(r){throw new Error(u+"手目で失敗しました: "+r)}}else r.getMovesTo(f.to.x,f.to.y,f.piece).length>0&&(f.relative="H"),r.drop(f.to.x,f.to.y,f.piece)}for(m(t,r),u=t.length-1;u>=0;u--){var f;if((f=t[u].move)&&(f.from?r.unmove(f.from.x,f.from.y,f.to.x,f.to.y,f.promote,f.capture):r.undrop(f.to.x,f.to.y)),a=u<=1?e:t[u-1],t[u].forks)for(var l=0,h=t[u].forks;l<h.length;l++)i(r,h[l],a)}}function u(r,t,e){for(var i=0;i<t.length;i++){var a=0===i?e:t[i-1];if(f=t[i].move)if(f.color=r.turn,f.from){f.same&&(f.to=a.move.to),s(r,f),f.promote||o.Piece.isPromoted(f.piece)||!o.Piece.canPromote(f.piece)||(n(f.to,r.turn)||n(f.from,r.turn))&&(f.promote=!1),c(r,f);try{r.move(f.from.x,f.from.y,f.to.x,f.to.y,f.promote)}catch(r){throw new Error(i+"手目で失敗しました: "+r)}}else r.getMovesTo(f.to.x,f.to.y,f.piece).length>0&&(f.relative="H"),r.drop(f.to.x,f.to.y,f.piece)}for(m(t,r),i=t.length-1;i>=0;i--){var f;if((f=t[i].move)&&(f.from?r.unmove(f.from.x,f.from.y,f.to.x,f.to.y,f.promote,f.capture):r.undrop(f.to.x,f.to.y)),a=0===i?e:t[i-1],t[i].forks)for(var l=0,h=t[i].forks;l<h.length;l++)u(r,h[l],a)}}function a(r,t,e){for(var o=0;o<t.length;o++){var n=0===o?e:t[o-1];if(c=t[o].move){c.color=r.turn,c.same&&(c.to=n.move.to);var i=r.getMovesTo(c.to.x,c.to.y,c.piece);if("H"===c.relative||0===i.length);else if(1===i.length)c.from=i[0].from;else{var u=v(c.relative,r.turn,i);if(1!==u.length)throw new Error("相対情報が不完全で複数の候補があります");c.from=u[0].from}if(c.from){s(r,c);try{r.move(c.from.x,c.from.y,c.to.x,c.to.y,c.promote)}catch(r){throw new Error(o+"手目で失敗しました: "+r)}}else r.drop(c.to.x,c.to.y,c.piece)}}for(m(t,r),o=t.length-1;o>=0;o--){var c;if((c=t[o].move)&&(c.from?r.unmove(c.from.x,c.from.y,c.to.x,c.to.y,c.promote,c.capture):r.undrop(c.to.x,c.to.y),n=o<=1?e:t[o-1],t[o].forks))for(var f=0,l=t[o].forks;f<l.length;f++)a(r,l[f],n)}}function c(r,t){var e=r.getMovesTo(t.to.x,t.to.y,t.piece).map((function(t){return f(r.turn,h(t.to,t.from))}));if(e.length>=2){var o=f(r.turn,h(t.to,t.from));t.relative=1===e.filter((function(r){return r.y===o.y})).length?d(o.y):1===e.filter((function(r){return r.x===o.x})).length?"UM"!==t.piece&&"RY"!==t.piece||0!==o.x?p(o.x):p(0===e.filter((function(r){return r.x<0})).length?-1:1):0===o.x?p(o.x):p(o.x)+d(o.y)}}function s(r,t){var e=r.get(t.to.x,t.to.y);e&&(t.capture=e.kind)}function f(r,t){return r===o.Color.Black?t:{x:-t.x,y:-t.y}}function l(r,t){return r===t?0:r>t?1:-1}function h(r,t){return{x:l(r.x,t.x),y:l(r.y,t.y)}}function d(r){return 0===r?"M":r>0?"D":"U"}function p(r){return 0===r?"C":r>0?"R":"L"}function v(r,t,e){var o=e.map((function(r){return{move:r,vec:f(t,{x:r.to.x-r.from.x,y:r.to.y-r.from.y})}})).filter((function(t){var e=t.vec;return r.split("").every((function(r){return function(r,t,e){switch(r){case"U":return e.y<0;case"M":return 0===e.y;case"D":return e.y>0;case"C":return 0===e.x;case"L":case"R":return!0}}(r,0,e)}))}));if(r.indexOf("C")>=0&&(o=o.filter((function(r){return r.vec.y<0}))),r.indexOf("L")>=0){var n=1/0;return o.forEach((function(r){var t=r.vec;return n=Math.min(n,t.x)})),o.filter((function(r){return r.vec.x===n})).map((function(r){return r.move}))}if(r.indexOf("R")>=0){var i=-1/0;return o.forEach((function(r){var t=r.vec;return i=Math.max(i,t.x)})),o.filter((function(r){return r.vec.x===i})).map((function(r){return r.move}))}return o.map((function(r){return r.move}))}function m(r,t){r.length>=1&&"ILLEGAL_ACTION"===r[r.length-1].special&&(r[r.length-1].special=(t.turn?"+":"-")+"ILLEGAL_ACTION")}t.canPromote=n,t.normalizeMinimal=function(r){return i(new o.Shogi(r.initial),r.moves),r},t.normalizeKIF=function(r){return r.initial&&"HIRATE"===r.initial.preset&&r.initial.data&&(r.initial.preset="OTHER"),u(new o.Shogi(r.initial||void 0),r.moves),r},t.normalizeKI2=function(r){return a(new o.Shogi(r.initial||void 0),r.moves),r},t.normalizeCSA=function(r){!function(r){if(r.initial&&"OTHER"===r.initial.preset){for(var t=["FU","KY","KE","GI","KI","KA","HI"],e=0;e<2;e++)for(var n=0,i=t;n<i.length;n++){var u=i[n];if(0!==r.initial.data.hands[e][u])return}var a,c,s=[[{color:o.Color.White,kind:"KY"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"KY"}],[{color:o.Color.White,kind:"KE"},{color:o.Color.White,kind:"KA"},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{color:o.Color.Black,kind:"HI"},{color:o.Color.Black,kind:"KE"}],[{color:o.Color.White,kind:"GI"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"GI"}],[{color:o.Color.White,kind:"KI"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"KI"}],[{color:o.Color.White,kind:"OU"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"OU"}],[{color:o.Color.White,kind:"KI"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"KI"}],[{color:o.Color.White,kind:"GI"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"GI"}],[{color:o.Color.White,kind:"KE"},{color:o.Color.White,kind:"HI"},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{color:o.Color.Black,kind:"KA"},{color:o.Color.Black,kind:"KE"}],[{color:o.Color.White,kind:"KY"},{},{color:o.Color.White,kind:"FU"},{},{},{},{color:o.Color.Black,kind:"FU"},{},{color:o.Color.Black,kind:"KY"}]],f=[];for(e=0;e<9;e++)for(var l=0;l<9;l++)a=r.initial.data.board[e][l],c=s[e][l],void 0===a.color&&void 0===c.color||void 0!==a.color&&void 0!==c.color&&a.color===c.color&&a.kind===c.kind||f.push(""+(e+1)+(l+1));var h={"":"HIRATE"};h[11]="KY",h[91]="KY_R",h[22]="KA",h[82]="HI",h[1182]="HIKY",h[2282]="2",h[228291]="3",h[11228291]="4",h[1122818291]="5",h[1121228291]="5_L",h[112122818291]="6",h[0xa328d183c33]="7_L",h[0xa328f7a9633]="7_R",h[0x3fbbf1cdec333]="8",h["11212231416171818291"]="10";var d=h[f.sort().join("")];"HIRATE"===d?r.initial.data.color===o.Color.Black&&(r.initial.preset="HIRATE",delete r.initial.data):d&&r.initial.data.color===o.Color.White&&(r.initial.preset=d,delete r.initial.data)}}(r);for(var t=new o.Shogi(r.initial||void 0),e=0;e<r.moves.length;e++){a=r.moves[e].time,void 0===(f=e>=2?r.moves[e-2].time:void 0)&&(f={now:{m:0,s:0},total:{h:0,m:0,s:0}}),a&&(a.total={h:(a.now.h||0)+f.total.h,m:a.now.m+f.total.m,s:a.now.s+f.total.s},a.total.m+=Math.floor(a.total.s/60),a.total.s=a.total.s%60,a.total.h+=Math.floor(a.total.m/60),a.total.m=a.total.m%60);var i=r.moves[e].move;if(i)if(i.color=t.turn,i.from){if(e>0&&r.moves[e-1].move&&r.moves[e-1].move.to.x===i.to.x&&r.moves[e-1].move.to.y===i.to.y&&(i.same=!0),s(t,i),o.Piece.isPromoted(i.piece)){var u=t.get(i.from.x,i.from.y);u.kind!==i.piece&&(i.piece=u.kind,i.promote=!0)}else o.Piece.canPromote(i.piece)&&(n(i.to,t.turn)||n(i.from,t.turn))&&(i.promote=!1);c(t,i);try{t.move(i.from.x,i.from.y,i.to.x,i.to.y,i.promote)}catch(r){throw new Error(e+"手目で失敗しました: "+r)}}else t.getMovesTo(i.to.x,i.to.y,i.piece).length>0&&(i.relative="H"),t.drop(i.to.x,i.to.y,i.piece)}var a,f;return r},t.addRelativeInformation=c,t.filterMovesByRelatives=v},544:(r,t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseKI2=t.parseKIF=t.parseCSA=void 0;var o=e(285),n=e(486),i=e(354),u=e(288);function a(r){return"\n"===r.slice(-1)?r:r+"\n"}t.parseCSA=function(r){r=a(r);var t=o.parse(r);return(0,u.normalizeCSA)(t)},t.parseKIF=function(r){r=a(r);var t=i.parse(r);return(0,u.normalizeKIF)(t)},t.parseKI2=function(r){r=a(r);var t=n.parse(r);return(0,u.normalizeKI2)(t)}},761:(r,t)=>{var e;t.__esModule=!0,t.colorToString=void 0,function(r){r[r.Black=0]="Black",r[r.White=1]="White"}(e||(e={})),t.default=e,t.colorToString=function(r){switch(r){case e.Black:return"先手";case e.White:return"後手"}}},870:(r,t)=>{var e;t.__esModule=!0,t.isRawKind=t.kindToString=t.values=void 0,function(r){r[r.FU=0]="FU",r[r.KY=1]="KY",r[r.KE=2]="KE",r[r.GI=3]="GI",r[r.KI=4]="KI",r[r.KA=5]="KA",r[r.HI=6]="HI",r[r.OU=7]="OU",r[r.TO=8]="TO",r[r.NY=9]="NY",r[r.NK=10]="NK",r[r.NG=11]="NG",r[r.UM=12]="UM",r[r.RY=13]="RY"}(e||(e={}));var o=["FU","KY","KE","GI","KI","KA","HI"];t.values=Object.keys(e).filter((function(r){return Number.isNaN(parseInt(r))})),t.kindToString=function(r,t){return void 0===t&&(t=!1),{FU:"歩",KY:"香",KE:"桂",GI:"銀",KI:"金",KA:"角",HI:"飛",OU:"玉",TO:"と",NY:t?"杏":"成香",NK:t?"圭":"成桂",NG:t?"全":"成銀",UM:"馬",RY:"龍"}[r]},t.isRawKind=function(r){return o.indexOf(r)>=0}},476:(r,t,e)=>{t.__esModule=!0;var o=e(761),n=function(){function r(r){this.color="+"===r.slice(0,1)?o.default.Black:o.default.White,this.kind=r.slice(1)}return r.promote=function(r){return{FU:"TO",KY:"NY",KE:"NK",GI:"NG",KA:"UM",HI:"RY"}[r]||r},r.unpromote=function(r){return{TO:"FU",NY:"KY",NK:"KE",NG:"GI",KI:"KI",UM:"KA",RY:"HI",OU:"OU"}[r]||r},r.canPromote=function(t){return r.promote(t)!==t},r.isPromoted=function(r){return["TO","NY","NK","NG","UM","RY"].indexOf(r)>=0},r.oppositeColor=function(r){return r===o.default.Black?o.default.White:o.default.Black},r.fromSFENString=function(t){var e="+"===t[0];e&&(t=t.slice(1));var o=new r((t.match(/[A-Z]/)?"+":"-")+{P:"FU",L:"KY",N:"KE",S:"GI",G:"KI",B:"KA",R:"HI",K:"OU"}[t.toUpperCase()]);return e&&o.promote(),o},r.prototype.promote=function(){this.kind=r.promote(this.kind)},r.prototype.unpromote=function(){this.kind=r.unpromote(this.kind)},r.prototype.inverse=function(){this.color=this.color===o.default.Black?o.default.White:o.default.Black},r.prototype.toCSAString=function(){return(this.color===o.default.Black?"+":"-")+this.kind},r.prototype.toSFENString=function(){var t={FU:"P",KY:"L",KE:"N",GI:"S",KI:"G",KA:"B",HI:"R",OU:"K"}[r.unpromote(this.kind)];return(r.isPromoted(this.kind)?"+":"")+(this.color===o.default.Black?t:t.toLowerCase())},r}();t.default=n},133:(r,t,e)=>{t.__esModule=!0,t.toSfen=t.fromSfen=t.toCSA=t.fromPreset=void 0;var o=e(761),n=e(130),i=e(476);t.fromPreset=function(r,t){var e,u=[],a=[[],[]];if("OTHER"!==t.preset){for(var c=(0,n.getInitialFromPreset)(t.preset),s=0;s<9;s++){u[s]=[];for(var f=0;f<9;f++){var l=c.board[f].slice(24-3*s,24-3*s+3);u[s][f]=" * "===l?null:new i.default(l)}}e=c.turn}else{for(s=0;s<9;s++)for(u[s]=[],f=0;f<9;f++){var h=t.data.board[s][f];u[s][f]=h.kind?new i.default((h.color===o.default.Black?"+":"-")+h.kind):null}e=t.data.color;for(var d=0;d<2;d++)for(var p in t.data.hands[d])if(t.data.hands[d].hasOwnProperty(p))for(l=(0===d?"+":"-")+p,s=0;s<t.data.hands[d][p];s++)a[d].push(new i.default(l))}r.board=u,r.turn=e,r.hands=a},t.toCSA=function(r){for(var t=[],e=0;e<9;e++){for(var n="P"+(e+1),i=8;i>=0;i--){var u=r.board[i][e];n+=null==u?" * ":u.toCSAString()}t.push(n)}for(var a=0;a<2;a++){n="P"+"+-"[a];for(var c=0,s=r.hands[a];c<s.length;c++)n+="00"+s[c].kind;t.push(n)}return t.push(r.turn===o.default.Black?"+":"-"),t.join("\n")},t.fromSfen=function(r,t){for(var e=[],n=0;n<9;n++){e[n]=[];for(var u=0;u<9;u++)e[n][u]=null}var a=t.split(" ");if("w"!==a[1]&&"b"!==a[1])throw new Error("Invalid SFEN");var c=a[0],s=8,f=0;for(n=0;n<c.length;n++){var l=c[n];"+"===l&&(l+=c[++n]),l.match(/^[1-9]$/)?s-=Number(l):"/"===l?(f++,s=8):(e[s][f]=i.default.fromSFENString(l),s--)}r.board=e,r.turn="b"===a[1]?o.default.Black:o.default.White;var h=[[],[]],d=a[2];if("-"!==d)for(;d.length>0;){var p=1,v=d.match(/^[0-9]+/);for(v&&(p=Number(v[0]),d=d.slice(v[0].length)),n=0;n<p;n++){var m=i.default.fromSFENString(d[0]);h[m.color].push(m)}d=d.slice(1)}r.hands=h},t.toSfen=function(r,t){for(var e=[],n=[],i=0;i<9;i++){for(var u="",a=0,c=8;c>=0;c--){var s=r.board[c][i];null==s?a++:(a>0&&(u+=""+a,a=0),u+=s.toSFENString())}a>0&&(u+=""+a),n.push(u)}if(e.push(n.join("/")),e.push(r.turn===o.default.Black?"b":"w"),0===r.hands[0].length&&0===r.hands[1].length)e.push("-");else{for(var f="",l={},h=0;h<2;h++)for(var d=0,p=r.hands[h];d<p.length;d++){var v=p[d].toSFENString();l[v]=(l[v]||0)+1}for(var m=0,g=["R","B","G","S","N","L","P","r","b","g","s","n","l","p"];m<g.length;m++){var A=g[m];l[A]>0&&(f+=(l[A]>1?l[A]:"")+A)}e.push(f)}return e.push(""+t),e.join(" ")}},803:(r,t)=>{t.__esModule=!0,t.getMoveDefinitions=void 0;var e=[0,-1],o=[0,1],n=[1,0],i=[-1,0],u=[-1,-1],a=[1,-1],c=[-1,1],s=[1,1],f={just:[u,e,a,i,n,o]},l={FU:{just:[e]},KY:{fly:[e]},KE:{just:[[-1,-2],[1,-2]]},GI:{just:[u,e,a,c,s]},KI:f,TO:f,NY:f,NK:f,NG:f,KA:{fly:[u,a,c,s]},HI:{fly:[e,i,n,o]},OU:{just:[u,e,a,i,n,c,o,s]},UM:{fly:[u,a,c,s],just:[e,i,n,o]},RY:{fly:[e,i,n,o],just:[u,a,c,s]}};t.getMoveDefinitions=function(r){return l[r]}},218:(r,t)=>{t.__esModule=!0,Array.prototype.some||(Array.prototype.some=function(r){if(null==this)throw new TypeError;var t=Object(this),e=t.length>>>0;if("function"!=typeof r)throw new TypeError;for(var o=arguments[1],n=0;n<e;n++)if(n in t&&r.call(o,t[n],n,t))return!0;return!1})},130:(r,t,e)=>{t.__esModule=!0,t.pieceHistogram=t.getInitialFromPreset=void 0;var o=e(761),n=" *  *  *  *  *  *  *  *  * ",i=["-FU-FU-FU-FU-FU-FU-FU-FU-FU",n,n,n,"+FU+FU+FU+FU+FU+FU+FU+FU+FU"," * +KA *  *  *  *  * +HI * ","+KY+KE+GI+KI+OU+KI+GI+KE+KY"],u=[n].concat(i),a={HIRATE:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * -HI *  *  *  *  * -KA * "].concat(i),turn:o.default.Black},KY:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "," * -HI *  *  *  *  * -KA * "].concat(i),turn:o.default.White},KY_R:{board:[" * -KE-GI-KI-OU-KI-GI-KE-KY"," * -HI *  *  *  *  * -KA * "].concat(i),turn:o.default.White},KA:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," * -HI *  *  *  *  *  *  * "].concat(i),turn:o.default.White},HI:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"," *  *  *  *  *  *  * -KA * "].concat(i),turn:o.default.White},HIKY:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "," *  *  *  *  *  *  * -KA * "].concat(i),turn:o.default.White},2:{board:["-KY-KE-GI-KI-OU-KI-GI-KE-KY"].concat(u),turn:o.default.White},3:{board:["-KY-KE-GI-KI-OU-KI-GI-KE * "].concat(u),turn:o.default.White},4:{board:[" * -KE-GI-KI-OU-KI-GI-KE * "].concat(u),turn:o.default.White},5:{board:[" *  * -GI-KI-OU-KI-GI-KE * "].concat(u),turn:o.default.White},"5_L":{board:[" * -KE-GI-KI-OU-KI-GI *  * "].concat(u),turn:o.default.White},6:{board:[" *  * -GI-KI-OU-KI-GI *  * "].concat(u),turn:o.default.White},"7_R":{board:[" *  *  * -KI-OU-KI-GI *  * "].concat(u),turn:o.default.White},"7_L":{board:[" *  * -GI-KI-OU-KI *  *  * "].concat(u),turn:o.default.White},8:{board:[" *  *  * -KI-OU-KI *  *  * "].concat(u),turn:o.default.White},10:{board:[" *  *  *  * -OU *  *  *  * "].concat(u),turn:o.default.White}};t.getInitialFromPreset=function(r){var t=a[r];if(!t)throw new Error("Unknown preset: ".concat(r));return t};var c=Object.keys(a);t.default=c,t.pieceHistogram={FU:18,KY:4,KE:4,GI:4,KI:4,KA:2,HI:2,OU:2}},514:(r,t,e)=>{t.__esModule=!0,t.colorToString=t.kindToString=t.Piece=t.Color=t.Shogi=void 0;var o=e(761);t.Color=o.default,t.colorToString=o.colorToString;var n=e(870);t.kindToString=n.kindToString;var i=e(803),u=e(476);t.Piece=u.default,e(218);var a=e(133),c=function(){function r(r){this.initialize(r)}return r.getIllegalUnpromotedRow=function(r){switch(r){case"FU":case"KY":return 1;case"KE":return 2;default:return 0}},r.getRowToOppositeEnd=function(r,t){return t===o.default.Black?r:10-r},r.prototype.initialize=function(r){void 0===r&&(r={preset:"HIRATE"}),(0,a.fromPreset)(this,r),this.flagEditMode=!1},r.prototype.initializeFromSFENString=function(r){(0,a.fromSfen)(this,r)},r.prototype.toCSAString=function(){return(0,a.toCSA)(this)},r.prototype.toSFENString=function(r){return void 0===r&&(r=1),(0,a.toSfen)(this,r)},r.prototype.editMode=function(r){this.flagEditMode=r},r.prototype.move=function(t,e,o,n,i){void 0===i&&(i=!1);var u=this.get(t,e);if(null==u)throw new Error("no piece found at "+t+", "+e);if(this.checkTurn(u.color),!this.flagEditMode&&!this.getMovesFrom(t,e).some((function(r){return r.to.x===o&&r.to.y===n})))throw new Error("cannot move from "+t+", "+e+" to "+o+", "+n);null!=this.get(o,n)&&this.capture(o,n);var a=r.getIllegalUnpromotedRow(u.kind)>=r.getRowToOppositeEnd(n,u.color);(i||a)&&u.promote(),this.set(o,n,u),this.set(t,e,null),this.nextTurn()},r.prototype.unmove=function(r,t,e,o,n,i){void 0===n&&(n=!1);var a,c=this.get(e,o);if(null==c)throw new Error("no piece found at "+e+", "+o);this.checkTurn(u.default.oppositeColor(c.color)),i&&(a=this.popFromHand(u.default.unpromote(i),c.color)).inverse();var s=this.flagEditMode;this.editMode(!0),this.move(e,o,r,t),n&&c.unpromote(),i&&(u.default.isPromoted(i)&&a.promote(),this.set(e,o,a)),this.editMode(s),this.prevTurn()},r.prototype.drop=function(r,t,e,o){if(void 0===o&&(o=this.turn),this.checkTurn(o),null!=this.get(r,t))throw new Error("there is a piece at "+r+", "+t);if(!this.getDropsBy(o).some((function(o){return o.to.x===r&&o.to.y===t&&o.kind===e})))throw new Error("Cannot move");var n=this.popFromHand(e,o);this.set(r,t,n),this.nextTurn()},r.prototype.undrop=function(r,t){var e=this.get(r,t);if(null==e)throw new Error("there is no piece at "+r+", "+t);this.checkTurn(u.default.oppositeColor(e.color)),this.pushToHand(e),this.set(r,t,null),this.prevTurn()},r.prototype.getMovesFrom=function(r,t){var e=function(r,t,e){if(r<1||9<r||t<1||9<t)return!1;var o=this.get(r,t);return null==o||o.color!==e}.bind(this),n=function(r,t,e){var o=this.get(r,t);return null!=o&&o.color!==e}.bind(this),u=this.get(r,t);if(null==u)return[];var a=(0,i.getMoveDefinitions)(u.kind),c=[],s={x:r,y:t},f=u.color===o.default.Black?1:-1;if(a.just)for(var l=0,h=a.just;l<h.length;l++){var d=h[l];e((m={x:s.x+d[0]*f,y:s.y+d[1]*f}).x,m.y,u.color)&&c.push({from:s,to:m})}if(a.fly)for(var p=0,v=a.fly;p<v.length;p++){d=v[p];for(var m={x:s.x+d[0]*f,y:s.y+d[1]*f};e(m.x,m.y,u.color)&&(c.push({from:s,to:{x:m.x,y:m.y}}),!n(m.x,m.y,u.color));)m.x+=d[0]*f,m.y+=d[1]*f}return c},r.prototype.getDropsBy=function(t){for(var e=[],o=[],n=[],i=1;i<=9;i++){for(var u=!1,a=1;a<=9;a++){var c=this.get(i,a);null==c?o.push({x:i,y:a}):c.color===t&&"FU"===c.kind&&(u=!0)}n.push(u)}for(var s={},f=0,l=this.hands[t];f<l.length;f++){var h=l[f].kind;if(!s[h]){s[h]=!0;for(var d=r.getIllegalUnpromotedRow(h),p=0,v=o;p<v.length;p++){var m=v[p];"FU"===h&&n[m.x-1]||d>=r.getRowToOppositeEnd(m.y,t)||e.push({to:m,color:t,kind:h})}}}return e},r.prototype.getMovesTo=function(r,t,e,o){void 0===o&&(o=this.turn);for(var n={x:r,y:t},i=[],u=1;u<=9;u++)for(var a=1;a<=9;a++){var c=this.get(u,a);c&&c.kind===e&&c.color===o&&this.getMovesFrom(u,a).some((function(e){return e.to.x===r&&e.to.y===t}))&&i.push({from:{x:u,y:a},to:n})}return i},r.prototype.get=function(r,t){return this.board[r-1][t-1]},r.prototype.getHandsSummary=function(r){for(var t={FU:0,KY:0,KE:0,GI:0,KI:0,KA:0,HI:0},e=0,o=this.hands[r];e<o.length;e++)t[o[e].kind]++;return t},r.prototype.isCheck=function(r){for(var t=null,e=null,o=1;o<=9;o++)for(var n=1;n<=9;n++)(i=this.get(o,n))&&i.color===r&&"OU"===i.kind&&(t=o,e=n);if(null===t||null===e)return!1;for(o=1;o<=9;o++)for(n=1;n<=9;n++){var i;if((i=this.get(o,n))&&i.color!==r&&this.getMovesFrom(o,n).some((function(r){return r.to.x===t&&r.to.y===e})))return!0}return!1},r.prototype.captureByColor=function(r,t,e){if(!this.flagEditMode)throw new Error("cannot edit board without editMode");var o=this.get(r,t);this.set(r,t,null),o.unpromote(),o.color!==e&&o.inverse(),this.pushToHand(o)},r.prototype.flip=function(r,t){if(!this.flagEditMode)throw new Error("cannot edit board without editMode");var e=this.get(r,t);return!!e&&(u.default.isPromoted(e.kind)?(e.unpromote(),e.inverse()):u.default.canPromote(e.kind)?e.promote():e.inverse(),!0)},r.prototype.setTurn=function(r){if(!this.flagEditMode)throw new Error("cannot set turn without editMode");this.turn=r},r.prototype.set=function(r,t,e){this.board[r-1][t-1]=e},r.prototype.capture=function(r,t){var e=this.get(r,t);this.set(r,t,null),e.unpromote(),e.inverse(),this.pushToHand(e)},r.prototype.pushToHand=function(r){this.hands[r.color].push(r)},r.prototype.popFromHand=function(r,t){for(var e=this.hands[t],o=0;o<e.length;o++)if(e[o].kind===r){var n=e[o];return e.splice(o,1),n}throw new Error(t+" has no "+r)},r.prototype.nextTurn=function(){this.flagEditMode||(this.turn=this.turn===o.default.Black?o.default.White:o.default.Black)},r.prototype.prevTurn=function(){this.flagEditMode||this.nextTurn()},r.prototype.checkTurn=function(r){if(!this.flagEditMode&&r!==this.turn)throw new Error("cannot move opposite piece")},r}();t.Shogi=c}},t={};function e(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return r[o](i,i.exports,e),i.exports}var o={};(()=>{var r=o;Object.defineProperty(r,"__esModule",{value:!0}),r.Shogi=r.Formats=r.Parsers=r.JKFPlayer=r.Normalizer=void 0;var t=e(514);r.Shogi=t;var n=e(903);r.Formats=n;var i=e(945);r.JKFPlayer=i.default;var u=e(288);r.Normalizer=u;var a=e(544);r.Parsers=a})(),module.exports=o})();