UNPKG

35.1 kBJavaScriptView Raw
1/* Sutton SignWriting Core Module v1.6.0 (https://github.com/sutton-signwriting/core), author: Steve Slevinski (https://SteveSlevinski.me), license: MIT */
2let e={symbol:"S[123][0-9a-f]{2}[0-5][0-9a-f]",coord:"[0-9]{3}x[0-9]{3}",sort:"A",box:"[BLMR]"};e.prefix=`(?:${e.sort}(?:${e.symbol})+)`,e.spatial=`${e.symbol}${e.coord}`,e.signbox=`${e.box}${e.coord}(?:${e.spatial})*`,e.sign=`${e.prefix}?${e.signbox}`,e.sortable=`${e.prefix}${e.signbox}`;let t={colorize:"C",colorhex:"(?:[0-9a-fA-F]{3}){1,2}",colorname:"[a-zA-Z]+",padding:"P[0-9]{2}",zoom:"Z(?:[0-9]+(?:\\.[0-9]+)?|x)",classbase:"-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}",id:"[a-zA-Z][_a-zA-Z0-9-]{0,100}"};t.colorbase=`(?:${t.colorhex}|${t.colorname})`,t.color=`_${t.colorbase}_`,t.colors=`_${t.colorbase}(?:,${t.colorbase})?_`,t.background=`G${t.color}`,t.detail=`D${t.colors}`,t.detailsym=`D[0-9]{2}${t.colors}`,t.classes=`${t.classbase}(?: ${t.classbase})*`,t.full=`-(${t.colorize})?(${t.padding})?(${t.background})?(${t.detail})?(${t.zoom})?(?:-((?:${t.detailsym})*))?(?:-(${t.classes})?!(?:(${t.id})!)?)?`;const r=e=>(new RegExp(`^${t.colorhex}$`).test(e)?"#":"")+e,s=e=>{const s=`^${t.full}`,o=("string"==typeof e?e.match(new RegExp(s)):[])||[];return n={colorize:o[1]?!!o[1]:void 0,padding:o[2]?parseInt(o[2].slice(1)):void 0,background:o[3]?r(o[3].slice(2,-1)):void 0,detail:o[4]?o[4].slice(2,-1).split(",").map(r):void 0,zoom:o[5]?"Zx"===o[5]?"x":parseFloat(o[5].slice(1)):void 0,detailsym:o[6]?o[6].match(new RegExp(t.detailsym,"g")).map((e=>{const t=e.split("_"),s=t[1].split(",").map(r);return{index:parseInt(t[0].slice(1)),detail:s}})):void 0,classes:o[7]?o[7]:void 0,id:o[8]?o[8]:void 0},Object.fromEntries(Object.entries(n).filter((([e,t])=>void 0!==t)));var n},o=e=>"string"!=typeof e?[0,0,0]:e.replace(/rgba?\((.+?)\)/gi,((e,t)=>t)).split(",").map(Number),n=e=>e.slice(0,3).map((e=>e.toString(16).padStart(2,"0"))).join("");var a=Object.freeze({__proto__:null,re:t,parse:s,compose:e=>{if("object"!=typeof e||null===e)return;let r="-";r+=e.colorize?"C":"";const s=parseInt(e.padding);r+=!s||s<=0||s>99?"":"P"+(s>9?s:"0"+s);const o=e.background&&"string"==typeof e.background?e.background.match(t.colorbase)[0]:void 0;r+=o?"G_"+o+"_":"";const n=e.detail&&e.detail[0]&&"string"==typeof e.detail[0]?e.detail[0].match(t.colorbase)[0]:void 0,a=e.detail&&e.detail[1]&&"string"==typeof e.detail[1]?e.detail[1].match(t.colorbase)[0]:void 0;n&&(r+="D_"+n,a&&(r+=","+a),r+="_");const i="x"===e.zoom?"x":parseFloat(e.zoom);r+=!i||i<=0?"":"Z"+i;let l="";const c=e.detailsym&&Array.isArray(e.detailsym)?e.detailsym.map((e=>{const r=parseInt(e.index);if(!r||r<=0||r>99)return"";let s="D"+(r>9?r:"0"+r);const o=e.detail&&e.detail[0]?e.detail[0].match(t.colorbase)[0]:void 0,n=e.detail&&e.detail[1]?e.detail[1].match(t.colorbase)[0]:void 0;return o&&(s+="_"+o,n&&(s+=","+n),s+="_"),s})):[];l+=c.join("");let p="";const u=e.classes&&"string"==typeof e.classes?e.classes.match(t.classes)[0]:void 0;p+=u||"";const d=e.id&&"string"==typeof e.id?e.id.match(t.id)[0]:void 0;return p+=u||d?"!":"",p+=d?d+"!":"",r+(l||p?"-"+l:"")+(p?"-"+p:"")},merge:(e,t)=>{"object"!=typeof e&&(e={}),"object"!=typeof t&&(t={});const r="zoom"in e?e.zoom:1,s="zoom"in t?t.zoom:1;return{...e,...t,zoom:r*s}},rgb2hex:(e,t=0)=>{const r=o(e);return 4==r.length&&r[3]<=t?"transparent":n(r)},rgba2hex:(e,t)=>{const r=o(t),s=o(e),a=4==s.length?s[3]:1;return 0==a?"transparent":n(s.map(((e,t)=>parseInt((1-a)*r[t]+a*e))))}});let i={symbol:"(?:(?:\ud8c0[\udc01-\udfff])|(?:[\ud8c1-\ud8fc][\udc00-\udfff])|(?:\ud8fd[\udc00-\udc80]))",coord:"(?:\ud836[\udc0c-\uddff]){2}",sort:"𝠀",box:"\ud836[\udc01-\udc04]"};i.prefix=`(?:${i.sort}(?:${i.symbol})+)`,i.spatial=`${i.symbol}${i.coord}`,i.signbox=`${i.box}${i.coord}(?:${i.spatial})*`,i.sign=`${i.prefix}?${i.signbox}`,i.sortable=`${i.prefix}${i.signbox}`;const l=["101011","101021","101031","101041","101051","101061","101071","101081","101091","101101","101111","101121","101131","101141","102011","102021","102031","102041","102051","102061","102071","102081","102091","102101","102111","102121","102131","102141","102151","102161","103011","103021","103031","103041","103051","103061","103071","103081","103091","103101","103111","103121","103131","103141","103151","103161","103171","103181","103191","103201","103211","103221","103231","103241","103251","103261","103271","103281","103291","103301","103311","103321","103331","103341","103351","103361","103371","103381","104011","104021","104031","104041","104051","104061","104071","104081","105011","105021","105031","105041","105051","105061","105071","105081","105091","105101","105111","105121","105131","105141","105151","105161","105171","105181","105191","105201","105211","105221","105231","105241","105251","105261","105271","105281","105291","105301","105311","105321","105331","105341","105351","105361","105371","105381","105391","105401","105411","105421","105431","105441","105451","105461","105471","105481","105491","105501","105511","105521","105531","105541","105551","105561","105571","105581","106011","106021","106031","106041","106051","106061","106071","106081","106091","106101","106111","106121","106131","106141","106151","106161","106171","106181","106191","106201","106211","106221","106231","106241","106251","106261","106271","106281","106291","106301","107011","107021","107031","107041","107051","107061","107071","107081","107091","107101","107111","107121","107131","107141","107151","107161","107171","107181","107191","107201","107211","107221","108011","108021","108031","108041","108051","108061","108071","108081","108091","108101","108111","108121","108131","108141","108151","108161","108171","108181","108191","109011","109021","109031","109041","109051","109061","109071","109081","109091","109101","109111","109121","109131","109141","109151","109161","109171","109181","109191","109201","109211","109221","109231","109241","109251","109261","109271","109281","109291","109301","109311","109321","109331","109341","109351","109361","109371","109381","109391","109401","110011","110021","110031","110041","110051","110061","110071","110081","110091","110101","110111","110121","110131","110141","110151","110161","201011","201021","201031","201041","201051","201061","201071","201081","201091","201101","201111","201121","201131","201141","201151","201161","201171","202011","202012","202021","202022","202031","202041","202042","202051","202052","202061","202071","202081","202082","202091","202092","202101","202102","202111","202121","202131","203011","203012","203013","203014","203015","203021","203022","203031","203032","203041","203051","203052","203061","203062","203071","203072","203073","203081","203082","203083","203084","203091","203092","203093","203101","203102","203103","203111","203112","203113","203121","203122","203123","203131","203141","203151","203161","203171","203181","203191","203201","203202","203203","204011","204012","204013","204014","204021","204022","204023","204024","204031","204032","204033","204034","204041","204042","204043","204044","205011","205012","205013","205014","205015","205021","205022","205031","205032","205041","205051","205052","205061","205062","205071","205081","205082","205083","205091","205101","205102","205103","205111","205112","205113","205121","205122","205123","205131","205141","205151","205161","205171","205181","205191","206011","206012","206013","206014","206021","206022","206023","206024","206031","206032","206041","206042","206043","206051","206052","206053","206054","206061","206062","206063","206064","206065","206066","206071","206072","206073","206081","206091","206101","206111","207011","207021","207031","207041","207051","207061","207071","207091","207101","207111","207121","207131","207141","207151","207161","207162","207163","208011","208012","208021","208022","208023","208024","208031","208032","208033","208034","208041","208042","208051","208061","208071","208081","208082","208091","208092","208093","208094","208101","208102","208103","208104","208111","208112","208121","208131","208141","209011","209012","209013","209014","209015","209021","209031","209041","209042","209043","209051","209061","209071","209081","210011","210012","210021","210022","210031","210032","210033","210041","210042","210043","210051","210052","210061","210062","210071","210072","210073","210074","210081","210082","301011","301021","301031","301032","301041","301042","301043","301044","401011","401021","401031","401041","401051","401061","401071","401081","401091","401101","401102","402011","402012","402013","402021","402022","402023","402024","402031","402032","402033","402041","402042","402043","402044","402045","402051","402052","402053","402054","402055","402061","402062","402063","402071","402072","402073","402081","402082","402083","402091","402101","402111","403011","403012","403013","403021","403022","403023","403031","403041","403042","403043","403044","403051","403052","403061","403062","403071","403072","404011","404012","404013","404021","404022","404023","404031","404032","404033","404041","404042","404043","404051","404052","404053","404061","404062","404063","404071","404072","404073","404081","404082","404083","404091","404092","404093","404101","404111","404112","405011","405012","405013","405014","405015","405021","405031","405041","405051","405052","405061","405062","405071","405072","405081","405091","405101","405111","405121","405131","501011","501021","501031","501041","501051","501061","501071","501081","501091","502011","502021","502022","502023","502024","502031","502032","502033","502041","601011","601012","601021","601031","601041","601051","601061","601071","701011","701012","701021","701022","701031"],c=e=>({A:"𝠀",B:"𝠁",L:"𝠂",M:"𝠃",R:"𝠄"}[e]),p=e=>parseInt(e.codePointAt(0))-120844+250,u=e=>String.fromCodePoint(120844+parseInt(e)-250),d=e=>[p(e.slice(0,2)),p(e.slice(2,4))],f=e=>e.map((e=>u(e))).join(""),g=e=>e.split("x").map((e=>parseInt(e))),m=e=>parseInt(e.codePointAt(0)),h=e=>String.fromCodePoint(e),y=e=>{const t=m(e)-262145,r=parseInt(t/96),s=parseInt((t-96*r)/16),o=parseInt(t-96*r-16*s);return"S"+(r+256).toString(16)+s.toString(16)+o.toString(16)},b=e=>h(262145+96*(parseInt(e.slice(1,4),16)-256)+16*parseInt(e.slice(4,5),16)+parseInt(e.slice(5,6),16)),x=e=>{if(!/^\d{6}(?:\d{3})?$/.test(e))return"";let t=`0${e.charAt(0)}-${e.charAt(1)}${e.charAt(2)}-0${e.charAt(3)}${e.charAt(4)}-0${e.charAt(5)}`;return e.length>6&&(t+=`-0${e.charAt(6)}-${e.charAt(7)}${e.charAt(8)}`),t};var $=Object.freeze({__proto__:null,swu2mark:e=>({"𝠀":"A","𝠁":"B","𝠂":"L","𝠃":"M","𝠄":"R"}[e]),mark2swu:c,swu2num:p,num2swu:u,swu2coord:d,coord2swu:f,fsw2coord:g,coord2fsw:e=>e.join("x"),swu2code:m,code2swu:h,swu2id:e=>m(e)-262144,id2swu:e=>h(e+262144),key2id:e=>1+96*(parseInt(e.slice(1,4),16)-256)+16*parseInt(e.slice(4,5),16)+parseInt(e.slice(5,6),16),id2key:e=>{const t=e-1,r=parseInt(t/96),s=parseInt((t-96*r)/16),o=parseInt(t-96*r-16*s);return"S"+(r+256).toString(16)+s.toString(16)+o.toString(16)},swu2key:y,key2swu:b,swu2fsw:e=>{if(!e)return"";let t=e.replace(/𝠀/g,"A").replace(/𝠁/g,"B").replace(/𝠂/g,"L").replace(/𝠃/g,"M").replace(/𝠄/g,"R");const r=t.match(new RegExp(i.symbol,"g"));r&&r.forEach((function(e){t=t.replace(e,y(e))}));const s=t.match(new RegExp(i.coord,"g"));return s&&s.forEach((function(e){t=t.replace(e,d(e).join("x"))})),t},fsw2swu:t=>{if(!t)return"";const r=t.match(new RegExp(e.prefix,"g"));r&&r.forEach((function(e){t=t.replace(e,"𝠀"+e.slice(1).match(/.{6}/g).map((e=>b(e))).join(""))}));const s=t.match(new RegExp(e.box+e.coord,"g"));s&&s.forEach((function(e){t=t.replace(e,c(e.slice(0,1))+f(g(e.slice(1,8))))}));const o=t.match(new RegExp(e.spatial,"g"));return o&&o.forEach((function(e){t=t.replace(e,b(e.slice(0,6))+f(g(e.slice(6,13))))})),t},symidArr:l,symidMax:x,symidMin:e=>{const t=e.match(/^0(\d)-(\d{2})-0(\d{2})-0(\d)(?:-0(\d)-(\d{2}))?$/);return t?t[5]?t[1]+t[2]+t[3]+t[4]+t[5]+t[6]:t[1]+t[2]+t[3]+t[4]:""},symid2key:e=>{const t=e.match(/^0(\d)-(\d{2})-0(\d{2})-0(\d)(?:-0(\d)-(\d{2}))?$/);if(!t)return"";const r=t[1]+t[2]+t[3]+t[4],s=l.indexOf(r);return-1===s?"":t[5]?"S"+(256+s).toString(16)+(parseInt(t[5],10)-1)+(parseInt(t[6],10)-1).toString(16):"S"+(256+s).toString(16)},key2symid:e=>{const t=e.match(/^S([1-3][0-9a-f]{2})(?:([0-5])([0-9a-f]))?$/);if(!t)return"";const r=parseInt(t[1],16)-256;return r>=l.length?"":t[3]?x(l[r])+"-0"+(1+parseInt(t[2]))+"-"+(parseInt(t[3],16)+1).toString().padStart(2,"0"):x(l[r])}});const w={symbol:r=>{const s=`^(${e.symbol})(${e.coord})?(${t.full})?`,o="string"==typeof r?r.match(new RegExp(s)):void 0;return{symbol:o?o[1]:void 0,coord:o&&o[2]?g(o[2]):void 0,style:o?o[3]:void 0}},sign:r=>{const s=`^(${e.prefix})?(${e.signbox})(${t.full})?`,o="string"==typeof r?r.match(new RegExp(s)):void 0;return o?{sequence:o[1]?o[1].slice(1).match(/.{6}/g):void 0,box:o[2][0],max:g(o[2].slice(1,8)),spatials:o[2].length<9?void 0:o[2].slice(8).match(/(.{13})/g).map((e=>({symbol:e.slice(0,6),coord:[parseInt(e.slice(6,9)),parseInt(e.slice(10,13))]}))),style:o[3]}:{}},text:r=>{if("string"!=typeof r)return[];const s=`(${e.sign}(${t.full})?|${e.spatial}(${t.full})?)`,o=r.match(new RegExp(s,"g"));return o?[...o]:[]}},v={symbol:r=>{if("string"==typeof r.symbol){const s=(r.symbol.match(e.symbol)||[""])[0];if(s){return s+((((r.coord&&r.coord[0]||"").toString()+"x"+(r.coord&&r.coord[1]||"").toString()).match(e.coord)||[""])[0]||"")+("string"==typeof r.style&&(r.style.match(t.full)||[""])[0]||"")}}},sign:r=>{let s="string"!=typeof r.box?"M":(r.box+"M").match(e.box);const o=(((r.max&&r.max[0]||"").toString()+"x"+(r.max&&r.max[1]||"").toString()).match(e.coord)||[""])[0]||"";if(!o)return;let n="";r.sequence&&Array.isArray(r.sequence)&&(n=r.sequence.map((t=>(t.match(e.symbol)||[""])[0])).join(""),n=n?"A"+n:"");let a="";r.spatials&&Array.isArray(r.spatials)&&(a=r.spatials.map((t=>{if("string"==typeof t.symbol){const r=(t.symbol.match(e.symbol)||[""])[0];if(r){const s=(((t.coord&&t.coord[0]||"").toString()+"x"+(t.coord&&t.coord[1]||"").toString()).match(e.coord)||[""])[0]||"";if(s)return r+s}}return""})).join(""));return n+s+o+a+("string"==typeof r.style&&(r.style.match(t.full)||[""])[0]||"")}},A=e=>{let t,r,o,n,a,i,l,c,p=w.sign(e);p.spatials?(n=Math.min(...p.spatials.map((e=>e.coord[0]))),a=p.max[0],t=a-n,i=Math.min(...p.spatials.map((e=>e.coord[1]))),l=p.max[1],r=l-i,o="sign",c=p.box):(p=w.symbol(e),c="M",p.coord?(n=p.coord[0],t=2*(500-n),i=p.coord[1],r=2*(500-i),o="symbol"):(n=490,t=20,i=490,r=20,o="none"));let u=s(p.style),d=u.zoom||1,f=u.padding||0;return{minX:n,minY:i,width:t,height:r,segment:o,lane:{B:0,L:-1,M:0,R:1}[c],padding:f,zoom:d}},I={height:500,width:150,offset:50,pad:20,margin:5,dynamic:!1,background:void 0,punctuation:{spacing:!0,pad:30,pull:!0},style:{detail:["black","white"],zoom:1}},R=e=>("object"!=typeof e&&(e={}),{...I,...e,punctuation:{...I.punctuation,...e.punctuation},style:{...I.style,...e.style}}),k=[256,517,759,767,877,895,903],E={all:[256,907],writing:[256,894],hand:[256,516],movement:[517,758],dynamic:[759,766],head:[767,876],hcenter:[767,876],vcenter:[767,885],trunk:[877,885],limb:[886,894],location:[895,902],punctuation:[903,907]},S=["#0000CC","#CC0000","#FF0099","#006600","#000000","#884411","#FF9900"];var j=Object.freeze({__proto__:null,re:e,parse:w,compose:v,info:A,columnDefaults:I,columnDefaultsMerge:R,columns:(e,t)=>{if("string"!=typeof e)return{};const r=R(t);let s=w.text(e),o=0,n=[],a=[],i=0,l=parseInt(r.width/2),c=r.height-r.margin,p=!0,u=!1;for(let e of s){let t=A(e);o+=i,r.punctuation.spacing?o+="sign"==t.segment?r.pad:0:o+=r.pad,u=o+t.height>c,u&&"symbol"==t.segment&&r.punctuation.pull&&p&&(u=!1,p=!1),0==a.length&&(u=!1),u&&(o=r.pad,n.push(a),a=[],p=!0),a.push(Object.assign(t,{x:l+r.offset*t.lane-(500-t.minX)*t.zoom*r.style.zoom,y:o,text:e})),o+=t.height*t.zoom*r.style.zoom,i=r.punctuation.spacing?"sign"==t.segment?r.pad:r.punctuation.pad:r.pad}if(a.length&&n.push(a),r.punctuation.pull)for(let e of n){let t=e[e.length-1],s=t.y+t.height-(r.height-r.margin);if(s>0){let t=parseInt(s/e.length)+1;for(let r in e)e[r].y-=t*r+t}}let d=[];for(let e of n){let t=[l-r.offset-r.pad],s=[l+r.offset+r.pad];for(let o of e)t.push(o.x-r.pad),s.push(o.x+o.width+r.pad);t=Math.min(...t),s=Math.max(...s);let o=r.width,n=0;r.dynamic?(o=s-t,n=-t):n=l-parseInt((t+s)/2);for(let t of e)t.x+=n;d.push(o)}return{options:r,widths:d,columns:n}},kind:[256,895,903],category:k,group:[256,270,286,324,332,390,420,442,461,501,517,534,554,597,613,648,678,695,725,739,759,767,778,810,827,857,877,886,895,903],ranges:E,isType:(e,t)=>{const r=w.symbol(e);if(r.symbol){const e=parseInt(r.symbol.slice(1,4),16),s=E[t];if(s)return s[0]<=e&&s[1]>=e}return!1},colors:S,colorize:e=>{const t=w.symbol(e);let r="#000000";if(t.symbol){const e=parseInt(t.symbol.slice(1,4),16),s=k.findIndex((t=>t>e));r=S[s<0?6:s-1]}return r}});let z={base:"[123][0-9a-f]{2}",coord:"(?:[0-9]{3}x[0-9]{3})?",var:"V[0-9]+"};z.symbol=`S${z.base}[0-5u][0-9a-fu]`,z.range=`R${z.base}t${z.base}`,z.item=`(?:${z.symbol}|${z.range})`,z.list=`${z.item}(?:o${z.item})*`,z.prefix=`(?:A(?:${z.list})+)?T`,z.signbox=`(?:${z.list}${z.coord})*`,z.full=`Q(${z.prefix})?(${z.signbox})?(${z.var})?(-?)`;const _=e=>e.match(new RegExp(`(${z.list}${z.coord})`,"g")).map((e=>{let t,r;return e.includes("x")?(t=g(e.slice(-7)),r=e.slice(0,-7)):r=e,r.includes("o")?{or:r.split("o").map((e=>e.includes("S")?e:e.slice(1).split("t"))),coord:t,coord:t}:r.includes("S")?{symbol:r,coord:t}:{range:r.slice(1).split("t"),coord:t}})),F=(e,t,r)=>{let s,o,n,a,i,l,c;if(r||(r=""),s="",(e=("000"+e).slice(-3))===(t=""+t))return e;if(o=[],(e[0]!=t[0]||e[1]!=t[1])&&"0"!=e[2])if(s=e[0]+e[1],r){switch(e[2]){case"f":s+="f";break;case"e":s+="[ef]";break;case"d":case"c":case"b":case"a":s+="["+e[2]+"-f]";break;default:switch(e[2]){case"9":s+="[9a-f]";break;case"8":s+="[89a-f]";break;default:s+="["+e[2]+"-9a-f]"}}n=15-parseInt(e[2],16)+1,e=""+(parseInt(e,16)+n).toString(16),o.push(s)}else{switch(e[2]){case"9":s+="9";break;case"8":s+="[89]";break;default:s+="["+e[2]+"-9]"}n=9-e[2]+1,e=""+(1*e+n),o.push(s)}if(s="",e[0]!=t[0]&&"0"!=e[1])if(r){switch(s=e[0],e[1]){case"f":s+="f";break;case"e":s+="[ef]";break;case"d":case"c":case"b":case"a":s+="["+e[1]+"-f]";break;case"9":s+="[9a-f]";break;case"8":s+="[89a-f]";break;default:s+="["+e[1]+"-9a-f]"}s+="[0-9a-f]",n=15-parseInt(e[1],16)+1,e=""+(parseInt(e,16)+16*n).toString(16),o.push(s)}else{switch(s=e[0],n=9-e[1]+1,e[1]){case"9":s+="9";break;case"8":s+="[89]";break;default:s+="["+e[1]+"-9]"}s+="[0-9]",n=9-e[1]+1,e=""+(1*e+10*n),o.push(s)}if(s="",e[0]!=t[0])if(r){switch(n=parseInt(t[0],16)-parseInt(e[0],16),a=(parseInt(e[0],16)+n-1).toString(16),n){case 1:s=e[0];break;case 2:s="["+e[0]+a+"]";break;default:switch(l=parseInt(e[0],16)>9?"h":"d",c=parseInt(a,16)>9?"h":"d",l+c){case"dd":case"hh":s+="["+e[0]+"-"+a+"]";break;case"dh":switch(n=9-e[0],n){case 0:s+="[9";break;case 1:s+="[89";break;default:s+="["+e[0]+"-9"}switch(a[0]){case"a":s+="a]";break;case"b":s+="ab]";break;default:s+="a-"+a+"]"}}}s+="[0-9a-f][0-9a-f]",n=parseInt(t[0],16)-parseInt(e[0],16),e=""+(parseInt(e,16)+256*n).toString(16),o.push(s)}else{switch(n=t[0]-e[0],a=1*e[0]+n-1,n){case 1:s=e[0];break;case 2:s="["+e[0]+a+"]";break;default:s="["+e[0]+"-"+a+"]"}s+="[0-9][0-9]",e=""+(1*e+100*n),o.push(s)}if(s="",e[1]!=t[1])if(r){switch(n=parseInt(t[1],16)-parseInt(e[1],16),a=(parseInt(e[1],16)+n-1).toString(16),s=e[0],n){case 1:s+=e[1];break;case 2:s+="["+e[1]+a+"]";break;default:switch(l=parseInt(e[1],16)>9?"h":"d",c=parseInt(a,16)>9?"h":"d",l+c){case"dd":s+="["+e[1],n>1&&(s+="-"),s+=a+"]";break;case"dh":switch(n=9-e[1],n){case 0:s+="[9";break;case 1:s+="[89";break;default:s+="["+e[1]+"-9"}switch(t[1]){case"a":s+="]";break;case"b":s+="a]";break;default:s+="a-"+(parseInt(t[1],16)-1).toString(16)+"]"}break;case"hh":s+="["+e[1],n>1&&(s+="-"),s+=(parseInt(t[1],16)-1).toString(16)+"]"}}s+="[0-9a-f]",n=parseInt(t[1],16)-parseInt(e[1],16),e=""+(parseInt(e,16)+16*n).toString(16),o.push(s)}else{switch(n=t[1]-e[1],a=1*e[1]+n-1,s=e[0],n){case 1:s+=e[1];break;case 2:s+="["+e[1]+a+"]";break;default:s+="["+e[1]+"-"+a+"]"}s+="[0-9]",e=""+(1*e+10*n),o.push(s)}if(s="",e[2]!=t[2])if(r){switch(s=e[0]+e[1],n=parseInt(t[2],16)-parseInt(e[2],16),l=parseInt(e[2],16)>9?"h":"d",c=parseInt(t[2],16)>9?"h":"d",l+c){case"dd":case"hh":s+="["+e[2],n>1&&(s+="-"),s+=t[2]+"]";break;case"dh":switch(n=9-e[2],n){case 0:s+="[9";break;case 1:s+="[89";break;default:s+="["+e[2]+"-9"}switch(t[2]){case"a":s+="a]";break;case"b":s+="ab]";break;default:s+="a-"+t[2]+"]"}}n=parseInt(t[2],16)-parseInt(e[2],16),e=""+(parseInt(e,16)+n).toString(16),o.push(s)}else{switch(n=t[2]-e[2],s=e[0]+e[1],n){case 0:s+=e[2];break;case 1:s+="["+e[2]+t[2]+"]";break;default:s+="["+e[2]+"-"+t[2]+"]"}e=""+(1*e+n),o.push(s)}return s="","0"==e[2]&&"0"==t[2]&&(s=t,o.push(s)),s="",i=o.length,1==i?s=o[0]:(s=o.join(")|("),s="(("+s+"))"),s},C=e=>{let t=e.slice(0,4),r=e.slice(4,5);t+="u"==r?"[0-5]":r;let s=e.slice(5,6);return t+="u"==s?"[0-9a-f]":s,t},O=e=>{let t=e.slice(1,4),r=e.slice(5,8);return"S"+F(t,r,"hex")+"[0-5][0-9a-f]"},q=r=>{if(!(r=r.match(new RegExp(`^${z.full}`))[0]))return"";var s,o,n,a,i,l,c,p,u,d,f,m=20,h="("+t.full+")?";if("Q"==r)return[e.prefix+"?"+e.signbox];if("Q-"==r)return[e.prefix+"?"+e.signbox+h];if("QT"==r)return[e.prefix+e.signbox];if("QT-"==r)return[e.prefix+e.signbox+h];var y=[],b=r.indexOf("T")+1;if(b){f="(A";var x=r.slice(0,b);if(r=r.replace(x,""),"QT"==x)f+="("+e.symbol+")+)";else if(s=x.match(new RegExp("("+z.list+")","g"))){for(i=0;i<s.length;i+=1)if(a=[],o=s[i].match(new RegExp("("+z.symbol+"|"+z.range+")","g"))){for(l=0;l<o.length;l+=1)(n=o[l].match(new RegExp(z.symbol)))?a.push(C(n[0])):a.push(O(o[l]));1==a.length?f+=a[0]:f+="("+a.join("|")+")"}f+="("+e.symbol+")*)"}}if((s=r.match(new RegExp(z.var,"g")))&&(m=1*s.toString().slice(1)),s=r.match(new RegExp(z.list+z.coord,"g")))for(i=0;i<s.length;i+=1){if(a=[],o=s[i].match(new RegExp("("+z.symbol+"|"+z.range+")","g"))){for(l=0;l<o.length;l+=1)(n=o[l].match(new RegExp(z.symbol)))?a.push(C(n[0])):a.push(O(o[l]));c=1==a.length?a[0]:"("+a.join("|")+")"}s[i].includes("x")?(u=(p=g(s[i].slice(-7)))[0],d=p[1],c+=F(u-m,u+m),c+="x",c+=F(d-m,d+m)):c+=e.coord,c=e.signbox+c+"("+e.symbol+e.coord+")*",c=b?f+c:e.prefix+"?"+c,r.indexOf("-")>0&&(c+=h),y.push(c)}return y.length||(r.indexOf("-")>0&&(c+=h),y.push(f+e.signbox)),y};var M=Object.freeze({__proto__:null,re:z,parse:e=>{const t="string"==typeof e?e.match(new RegExp(`^${z.full}`)):void 0;return{query:!!t||void 0,prefix:t&&t[1]?(r=t[1],{required:!0,parts:"T"==r?void 0:r.match(new RegExp(`${z.list}`,"g")).map((e=>e.includes("o")?["or"].concat(e.match(new RegExp(`(${z.item})`,"g")).map((e=>"S"==e[0]?e:e.slice(1).split("t")))):"S"==e[0]?e:e.slice(1).split("t")))}):void 0,signbox:t&&t[2]?_(t[2]):void 0,variance:t&&t[3]?parseInt(t[3].slice(1)):void 0,style:!(!t||!t[4])||void 0};var r},compose:e=>{if(!e||!e.query)return;let t="Q";return e.prefix&&e.prefix.required&&(Array.isArray(e.prefix.parts)&&(t+="A",t+=e.prefix.parts.map((e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}t${e[1]}`:Array.isArray(e)&&e.length>2&&"or"==e[0]?(e.shift(),e.map((e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}t${e[1]}`:void 0)).join("o")):void 0)).join("")),t+="T"),Array.isArray(e.signbox)&&(t+=e.signbox.map((e=>{let t;return e.or?t=e.or.map((e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}t${e[1]}`:void 0)).join("o"):e.symbol?t=e.symbol:e.range&&Array.isArray(e.range)&&2==e.range.length&&(t=`R${e.range[0]}t${e.range[1]}`),t+(Array.isArray(e.coord)&&2==e.coord.length?e.coord.join("x"):"")})).join("")),t+=e.style?"-":"",t=t.match(new RegExp(`^${z.full}`))[0],t},fsw2query:(e,t)=>{let r="";const s=w.sign(e);if(s.box){const e=t.indexOf("A")>-1,o=t.indexOf("a")>-1,n=t.indexOf("S")>-1,a=t.indexOf("s")>-1,i=t.indexOf("L")>-1;return(e||o||n||a)&&((e||o)&&s.sequence&&(r+="A",r+=s.sequence.map((e=>e.slice(0,4)+(o?"uu":e.slice(4,6)))).join(""),r+="T"),(n||a)&&s.spatials&&(r+=s.spatials.map((e=>e.symbol.slice(0,4)+(a?"uu":e.symbol.slice(4,6))+(i?e.coord.join("x"):""))).join(""))),r?"Q"+r:void 0}},range:F,regex:q,results:(e,t)=>{if(!t)return[];let r,s,o,n,a,i=q(e);if(!i)return[];for(a=0;a<i.length;a+=1)r=i[a],s=t.match(new RegExp(r,"g")),t=s?s.join(" "):"";return t?(o=t.split(" "),n=o.filter((function(e){return!(e in o)&&(o[e]=!0)}),{})):n=[],n},lines:(e,t)=>{if(!t)return[];let r,s,o,n,a,i=q(e);if(!i)return[];for(a=0;a<i.length;a+=1)r=i[a],r="^"+r+".*",s=t.match(new RegExp(r,"mg")),t=s?s.join("\n"):"";return t?(o=t.split("\n"),n=o.filter((function(e){return!(e in o)&&(o[e]=!0)}),{})):n=[],n}});const D={symbol:e=>{const r=`^(${i.symbol})(${i.coord})?(${t.full})?`,s="string"==typeof e?e.match(new RegExp(r)):void 0;return{symbol:s?s[1]:void 0,coord:s&&s[2]?d(s[2]):void 0,style:s?s[3]:void 0}},sign:e=>{const r=`^(${i.prefix})?(${i.signbox})(${t.full})?`,s="string"==typeof e?e.match(new RegExp(r)):void 0;return s?{sequence:s[1]?s[1].slice(2).match(/.{2}/g):void 0,box:s[2].slice(0,2),max:d(s[2].slice(2,6)),spatials:s[2].length<7?void 0:s[2].slice(6).match(/(.{6})/g).map((e=>({symbol:e.slice(0,2),coord:d(e.slice(2))}))),style:s[3]}:{}},text:e=>{if("string"!=typeof e)return[];const r=`(${i.sign}(${t.full})?|${i.spatial}(${t.full})?)`,s=e.match(new RegExp(r,"g"));return s?[...s]:[]}},T=e=>e.replace(/\\u([0-9A-F]{4})/g,(function(e,t){return String.fromCharCode(parseInt(t,16))})),Q=e=>[e.charCodeAt(0).toString(16).toUpperCase(),e.charCodeAt(1).toString(16).toUpperCase()],Z={symbol:e=>{if("object"==typeof e&&null!==e&&"string"==typeof e.symbol){const r=(e.symbol.match(i.symbol)||[""])[0];if(r){const s=e.coord&&e.coord[0]||"",o=e.coord&&e.coord[1]||"";return r+(s&&o?f([s,o]):"")+("string"==typeof e.style&&(e.style.match(t.full)||[""])[0]||"")}}},sign:e=>{if("object"!=typeof e||null===e)return;let r="string"!=typeof e.box?"𝠃":(e.box+"𝠃").match(i.box);const s=e.max&&e.max[0]||"",o=e.max&&e.max[1]||"",n=s&&o?f([s,o]):void 0;if(!n)return;let a="";e.sequence&&Array.isArray(e.sequence)&&(a=e.sequence.map((e=>(e.match(i.symbol)||[""])[0])).join(""),a=a?"𝠀"+a:"");let l="";e.spatials&&Array.isArray(e.spatials)&&(l=e.spatials.map((e=>{if("string"==typeof e.symbol){const t=(e.symbol.match(i.symbol)||[""])[0];if(t){const r=e.coord&&e.coord[0]||"",s=e.coord&&e.coord[1]||"",o=r&&s?f([r,s]):"";if(o)return t+o}}return""})).join(""));return a+r+n+l+("string"==typeof e.style&&(e.style.match(t.full)||[""])[0]||"")}},L=e=>{let t,r,o,n,a,i,l,c,p=D.sign(e);p.spatials?(n=Math.min(...p.spatials.map((e=>e.coord[0]))),a=p.max[0],t=a-n,i=Math.min(...p.spatials.map((e=>e.coord[1]))),l=p.max[1],r=l-i,o="sign",c=p.box):(p=D.symbol(e),c="𝠃",p.coord?(n=p.coord[0],t=2*(500-n),i=p.coord[1],r=2*(500-i),o="symbol"):(n=490,t=20,i=490,r=20,o="none"));let u=s(p.style),d=u.zoom||1,f=u.padding||0;return{minX:n,minY:i,width:t,height:r,segment:o,lane:{"𝠁":0,"𝠂":-1,"𝠃":0,"𝠄":1}[c],padding:f,zoom:d}},P={height:500,width:150,offset:50,pad:20,margin:5,dynamic:!1,background:void 0,punctuation:{spacing:!0,pad:30,pull:!0},style:{detail:["black","white"],zoom:1}},U=e=>("object"!=typeof e&&(e={}),{...P,...e,punctuation:{...P.punctuation,...e.punctuation},style:{...P.style,...e.style}}),B=[262145,287201,310433,311201,321761,323489,324257],X={all:[262145,324736],writing:[262145,323488],hand:[262145,287200],movement:[287201,310432],dynamic:[310433,311200],head:[311201,321760],hcenter:[311201,321760],vcenter:[311201,322624],trunk:[321761,322624],limb:[322625,323488],location:[323489,324256],punctuation:[324257,324736]},V=["#0000CC","#CC0000","#FF0099","#006600","#000000","#884411","#FF9900"];var G=Object.freeze({__proto__:null,re:i,parse:D,encode:e=>e.replace(/[\u007F-\uFFFF]/g,(function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4).toUpperCase()})),decode:T,pair:Q,compose:Z,info:L,columnDefaults:P,columnDefaultsMerge:U,columns:(e,t)=>{if("string"!=typeof e)return{};const r=U(t);let s=D.text(e),o=0,n=[],a=[],i=0,l=parseInt(r.width/2),c=r.height-r.margin,p=!0,u=!1;for(let e of s){let t=L(e);o+=i,r.punctuation.spacing?o+="sign"==t.segment?r.pad:0:o+=r.pad,u=o+t.height>c,u&&"symbol"==t.segment&&r.punctuation.pull&&p&&(u=!1,p=!1),0==a.length&&(u=!1),u&&(o=r.pad,n.push(a),a=[],p=!0),a.push(Object.assign(t,{x:l+r.offset*t.lane-(500-t.minX)*t.zoom*r.style.zoom,y:o,text:e})),o+=t.height*t.zoom*r.style.zoom,i=r.punctuation.spacing?"sign"==t.segment?r.pad:r.punctuation.pad:r.pad}if(a.length&&n.push(a),r.punctuation.pull)for(let e of n){let t=e[e.length-1],s=t.y+t.height-(r.height-r.margin);if(s>0){let t=parseInt(s/e.length)+1;for(let r in e)e[r].y-=t*r+t}}let d=[];for(let e of n){let t=[l-r.offset-r.pad],s=[l+r.offset+r.pad];for(let o of e)t.push(o.x-r.pad),s.push(o.x+o.width+r.pad);t=Math.min(...t),s=Math.max(...s);let o=r.width,n=0;r.dynamic?(o=s-t,n=-t):n=l-parseInt((t+s)/2);for(let t of e)t.x+=n;d.push(o)}return{options:r,widths:d,columns:n}},kind:[262145,323489,324257],category:B,group:[262145,263489,265025,268673,269441,275009,277889,280001,281825,285665,287201,288833,290753,294881,296417,299777,302657,304289,307169,308513,310433,311201,312257,315329,316961,319841,321761,322625,323489,324257],ranges:X,isType:(e,t)=>{const r=D.symbol(e);if(r.symbol){const e=m(r.symbol),s=X[t];if(s)return s[0]<=e&&s[1]>=e}return!1},colors:V,colorize:e=>{const t=D.symbol(e);let r="#000000";if(t.symbol){const e=m(t.symbol),s=B.findIndex((t=>t>e));r=V[s<0?6:s-1]}return r}});let Y={base:"(?:(?:\ud8c0[\udc01-\udfff])|(?:[\ud8c1-\ud8fc][\udc00-\udfff])|(?:\ud8fd[\udc00-\udc80]))",coord:"(?:(?:\ud836[\udc0c-\uddff]){2})?",var:"V[0-9]+"};Y.symbol=`${Y.base}f?r?`,Y.range=`R${Y.base}${Y.base}`,Y.item=`(?:${Y.symbol}|${Y.range})`,Y.list=`${Y.item}(?:o${Y.item})*`,Y.prefix=`(?:A(?:${Y.list})+)?T`,Y.signbox=`(?:${Y.list}${Y.coord})*`,Y.full=`Q(${Y.prefix})?(${Y.signbox})?(${Y.var})?(-?)`;const N=e=>e.match(new RegExp(`(${Y.list}${Y.coord})`,"g")).map((e=>{let t,r;return t=e.match(new RegExp(`${i.coord}`)),t?(t=d(t[0]),r=e.slice(0,-4)):(t=void 0,r=e),r.includes("o")?{or:r.split("o").map((e=>e.includes("R")?[e.slice(1,3),e.slice(3,5)]:e)),coord:t,coord:t}:r.includes("R")?{range:[r.slice(1,3),r.slice(3,5)],coord:t}:{symbol:r,coord:t}})),H=(e,t)=>{if(e>t)return"";let r,s="",o=[];if(e=Q(e),t=Q(t),2!=e.length&&2!=t.length)return"";if(e[0]==t[0])e[1]==t[1]?(s="\\u"+e[0]+"\\u"+e[1],o.push(s)):(s="\\u"+e[0]+"[\\u"+e[1]+"-\\u"+t[1]+"]",o.push(s));else{s="DFFF"==e[1]?"\\u"+e[0]+"\\uDFFF":"\\u"+e[0]+"[\\u"+e[1]+"-\\uDFFF]",o.push(s);let r=parseInt(t[0],16)-parseInt(e[0],16);2==r&&(s="\\u"+(parseInt(e[0],16)+1).toString(16).toUpperCase(),s+="[\\uDC00-\\uDFFF]",o.push(s)),r>2&&(s="[",s+="\\u"+(parseInt(e[0],16)+1).toString(16).toUpperCase(),s+="-\\u"+(parseInt(t[0],16)-1).toString(16).toUpperCase(),s+="][\\uDC00-\\uDFFF]",o.push(s)),s="DC00"==t[1]?"\\u"+t[0]+"\\uDC00":"\\u"+t[0]+"[\\uDC00-\\u"+t[1]+"]",o.push(s)}return r=o.length,1==r?s=o[0]:(s=o.join(")|("),s="(("+s+"))"),T(s)},J=e=>{let t=e.match(new RegExp(Y.symbol));if(t){let e,r,s=t[0].slice(0,2),o=y(s),n=o.slice(0,4);if("fr"==t[0].slice(-2))return e=b(n+"00"),r=b(n+"5f"),H(e,r);if("r"==t[0].slice(-1))return e=b(o.slice(0,5)+"0"),r=b(o.slice(0,5)+"f"),H(e,r);if("f"==t[0].slice(-1)){return"("+[0,1,2,3,4,5].map((function(e){return b(n+e+o.slice(-1))})).join("|")+")"}return s}return""},K=e=>{let t=y(e.slice(1,3)),r=y(e.slice(-2));return t=b(t.slice(0,4)+"00"),r=b(r.slice(0,4)+"5f"),H(t,r)},W=e=>{if(!(e=e.match(new RegExp(`^${Y.full}`))[0]))return"";let r,s,o,n,a,l,c,p,f,g,m,h=20,y=i.symbol,b=i.coord,x=i.box+b+"("+y+b+")*",$="("+i.sort+"("+y+")+)",w="("+t.full+")?";if("Q"==e)return[i.sign];if("Q-"==e)return[i.sign+"("+t.full+")?"];if("QT"==e)return[i.sortable];if("QT-"==e)return[i.sortable+"("+t.full+")?"];let v=[],A=e.indexOf("T")+1;if(A){m="("+i.sort;let t=e.slice(0,A);if(e=e.replace(t,""),"QT"==t)m+="("+y+")+)";else if(r=t.match(new RegExp("("+Y.list+")","g")),r){for(a=0;a<r.length;a+=1)if(n=[],s=r[a].match(new RegExp("("+Y.range+"|"+Y.symbol+")","g")),s){for(l=0;l<s.length;l+=1)o=s[l].match(new RegExp(Y.range)),o?n.push(K(s[l])):n.push(J(s[l]));1==n.length?m+=n[0]:m+="("+n.join("|")+")"}m+="("+i.symbol+")*)"}}if(r=e.match(new RegExp("(V[0-9]+)","g")),r&&(h=1*r.toString().slice(1)),r=e.match(new RegExp(Y.list+Y.coord,"g")),r)for(a=0;a<r.length;a+=1){if(n=[],s=r[a].match(new RegExp("("+Y.range+"|"+Y.symbol+")","g")),s){for(l=0;l<s.length;l+=1)o=s[l].match(new RegExp(Y.range)),o?n.push(K(s[l])):n.push(J(s[l]));p=1==n.length?n[0]:"("+n.join("|")+")"}c=r[a].match(new RegExp(`${i.coord}`)),c?(c=d(c[0]),f=c[0],g=c[1],p+=H(u(f-h),u(f+h)),p+=H(u(g-h),u(g+h))):p+=i.coord,p=x+p+"("+y+b+")*",p=A?m+p:$+"?"+p,e.indexOf("-")>0&&(p+=w),v.push(p)}return v.length||(e.indexOf("-")>0&&(p+=w),v.push(m+x)),v};var ee=Object.freeze({__proto__:null,re:Y,parse:e=>{const t="string"==typeof e?e.match(new RegExp(`^${Y.full}`)):void 0;return{query:!!t||void 0,prefix:t&&t[1]?(r=t[1],{required:!0,parts:"T"==r?void 0:r.match(new RegExp(`(${Y.list})`,"g")).map((e=>e.includes("o")?["or"].concat(e.match(new RegExp(`(${Y.item})`,"g")).map((e=>"R"!=e[0]?e:[e.slice(1,3),e.slice(3,5)]))):"R"!=e[0]?e:[e.slice(1,3),e.slice(3,5)]))}):void 0,signbox:t&&t[2]?N(t[2]):void 0,variance:t&&t[3]?parseInt(t[3].slice(1)):void 0,style:!(!t||!t[4])||void 0};var r},compose:e=>{if(!e||!e.query)return;let t="Q";return e.prefix&&e.prefix.required&&(Array.isArray(e.prefix.parts)&&(t+="A",t+=e.prefix.parts.map((e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}${e[1]}`:Array.isArray(e)&&e.length>2&&"or"==e[0]?(e.shift(),e.map((e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}${e[1]}`:void 0)).join("o")):void 0)).join("")),t+="T"),Array.isArray(e.signbox)&&(t+=e.signbox.map((e=>{let t;return e.or?t=e.or.map((e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}${e[1]}`:void 0)).join("o"):e.symbol?t=e.symbol:e.range&&Array.isArray(e.range)&&2==e.range.length&&(t=`R${e.range[0]}${e.range[1]}`),t+(Array.isArray(e.coord)&&2==e.coord.length?f(e.coord):"")})).join("")),t+=e.style?"-":"",t=t.match(new RegExp(`^${Y.full}`))[0],t},swu2query:(e,t)=>{let r="";const s=D.sign(e);if(s.box){const e=t.indexOf("A")>-1,o=t.indexOf("a")>-1,n=t.indexOf("S")>-1,a=t.indexOf("s")>-1,i=t.indexOf("L")>-1;return(e||o||n||a)&&((e||o)&&s.sequence&&(r+="A",r+=s.sequence.map((e=>e+(o?"fr":""))).join(""),r+="T"),(n||a)&&s.spatials&&(r+=s.spatials.map((e=>e.symbol+(a?"fr":"")+(i?f(e.coord):""))).join(""))),r?"Q"+r:void 0}},range:H,symbolRanges:J,regex:W,results:(e,t)=>{if(!t)return[];let r,s,o,n,a,i=W(e);if(!i)return[];for(a=0;a<i.length;a+=1)r=i[a],s=t.match(new RegExp(r,"g")),t=s?s.join(" "):"";return t?(o=t.split(" "),n=o.filter((function(e){return!(e in o)&&(o[e]=!0)}),{})):n=[],n},lines:(e,t)=>{if(!t)return[];let r,s,o,n,a,i=W(e);if(!i)return[];for(a=0;a<i.length;a+=1)r=i[a],r="^"+r+".*",s=t.match(new RegExp(r,"mg")),t=s?s.join("\n"):"";return t?(o=t.split("\n"),n=o.filter((function(e){return!(e in o)&&(o[e]=!0)}),{})):n=[],n}});export{$ as convert,j as fsw,M as fswquery,a as style,G as swu,ee as swuquery};