/*! ATOOnline 2023-10-31, Copyright (c) 2023 Australian Taxation Office */ "use strict";function q(t){throw t}var t=void 0,u=!1,sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(t){this.toString=function(){return"CORRUPT: "+this.message},this.message=t},invalid:function(t){this.toString=function(){return"INVALID: "+this.message},this.message=t},bug:function(t){this.toString=function(){return"BUG: "+this.message},this.message=t},notReady:function(t){this.toString=function(){return"NOT READY: "+this.message},this.message=t}}};function y(t,e,i){4!==e.length&&q(new sjcl.exception.invalid("invalid aes block size"));var s=t.b[i],n=e[0]^s[0],c=e[i?3:1]^s[1],r=e[2]^s[2];e=e[i?1:3]^s[3];var o,a,l,h,u=s.length/4-2,d=4,p=[0,0,0,0];t=(o=t.k[i])[0];var f=o[1],m=o[2],g=o[3],j=o[4];for(h=0;h>>24]^f[c>>16&255]^m[r>>8&255]^g[255&e]^s[d],a=t[c>>>24]^f[r>>16&255]^m[e>>8&255]^g[255&n]^s[d+1],l=t[r>>>24]^f[e>>16&255]^m[n>>8&255]^g[255&c]^s[d+2],e=t[e>>>24]^f[n>>16&255]^m[c>>8&255]^g[255&r]^s[d+3],d+=4,n=o,c=a,r=l;for(h=0;h<4;h++)p[i?3&-h:h]=j[n>>>24]<<24^j[c>>16&255]<<16^j[r>>8&255]<<8^j[255&e]^s[d++],o=n,n=c,c=r,r=e,e=o;return p}function z(t,e){var i,s,n,c=e.slice(0),r=t.r,o=t.b,a=r[0],l=r[1],h=r[2],u=r[3],d=r[4],p=r[5],f=r[6],m=r[7];for(i=0;i<64;i++)s=(s=i<16?c[i]:(s=c[i+1&15],n=c[i+14&15],c[15&i]=(s>>>7^s>>>18^s>>>3^s<<25^s<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+c[15&i]+c[i+9&15]|0))+m+(d>>>6^d>>>11^d>>>25^d<<26^d<<21^d<<7)+(f^d&(p^f))+o[i],m=f,f=p,p=d,d=u+s|0,u=h,h=l,a=s+((l=a)&h^u&(l^h))+(l>>>2^l>>>13^l>>>22^l<<30^l<<19^l<<10)|0;r[0]=r[0]+a|0,r[1]=r[1]+l|0,r[2]=r[2]+h|0,r[3]=r[3]+u|0,r[4]=r[4]+d|0,r[5]=r[5]+p|0,r[6]=r[6]+f|0,r[7]=r[7]+m|0}function C(t,e){var i,s=sjcl.random.w[t],n=[];for(i in s)s.hasOwnProperty(i)&&n.push(s[i]);for(i=0;i>>24]<<24^c[i>>16&255]<<16^c[i>>8&255]<<8^c[255&i],0==t%e&&(i=i<<8^i>>>24^o<<24,o=o<<1^283*(o>>7))),s[t]=s[t-e]^i;for(e=0;t;e++,t--)i=s[3&e?t:t-4],n[e]=t<=4||e<4?i:r[0][c[i>>>24]]^r[1][c[i>>16&255]]^r[2][c[i>>8&255]]^r[3][c[255&i]]},sjcl.cipher.aes.prototype={encrypt:function(t){return y(this,t,0)},decrypt:function(t){return y(this,t,1)},k:[[[],[],[],[],[]],[[],[],[],[],[]]],D:function(){var t,e,i,s,n,c,r,o=this.k[0],a=this.k[1],l=o[4],h=a[4],u=[],d=[];for(t=0;t<256;t++)d[(u[t]=t<<1^283*(t>>7))^t]=t;for(e=i=0;!l[e];e^=s||1,i=d[i]||1)for(c=(c=i^i<<1^i<<2^i<<3^i<<4)>>8^255&c^99,r=16843009*(n=u[t=u[s=u[h[l[e]=c]=e]]])^65537*t^257*s^16843008*e,n=257*u[c]^16843008*c,t=0;t<4;t++)o[t][e]=n=n<<24^n>>>8,a[t][c]=r=r<<24^r>>>8;for(t=0;t<5;t++)o[t]=o[t].slice(0),a[t]=a[t].slice(0)}},sjcl.bitArray={bitSlice:function(e,i,s){return e=sjcl.bitArray.P(e.slice(i/32),32-(31&i)).slice(1),s===t?e:sjcl.bitArray.clamp(e,s-i)},extract:function(t,e,i){var s=Math.floor(-e-i&31);return(-32&(e+i-1^e)?t[e/32|0]<<32-s^t[e/32+1|0]>>>s:t[e/32|0]>>>s)&(1<>e-1,1)),t},partial:function(t,e,i){return 32===t?e:(i?0|e:e<<32-t)+1099511627776*t},getPartial:function(t){return Math.round(t/1099511627776)||32},equal:function(t,e){if(sjcl.bitArray.bitLength(t)!==sjcl.bitArray.bitLength(e))return u;var i,s=0;for(i=0;i>>i),s=e[c]<<32-i;return c=e.length?e[e.length-1]:0,e=sjcl.bitArray.getPartial(c),n.push(sjcl.bitArray.partial(i+e&31,32>>24),i<<=8;return decodeURIComponent(escape(s))},toBits:function(t){t=unescape(encodeURIComponent(t));var e,i=[],s=0;for(e=0;e>>n)>>>26),n<6?(r=t[i]<<6-n,n+=26,i++):(r<<=6,n-=6);for(;3&s.length&&!e;)s+="=";return s},toBits:function(t,e){t=t.replace(/\s|=/g,"");var i,s,n=[],c=0,r=sjcl.codec.base64.J,o=0;for(e&&(r=r.substr(0,62)+"-_"),i=0;i>>c),o=s<<32-c):o^=s<<32-(c+=6);return 56&c&&n.push(sjcl.bitArray.partial(56&c,o,1)),n}},sjcl.codec.base64url={fromBits:function(t){return sjcl.codec.base64.fromBits(t,1,1)},toBits:function(t){return sjcl.codec.base64.toBits(t,1)}},sjcl.hash.sha256=function(t){this.b[0]||this.D(),t?(this.r=t.r.slice(0),this.o=t.o.slice(0),this.h=t.h):this.reset()},sjcl.hash.sha256.hash=function(t){return(new sjcl.hash.sha256).update(t).finalize()},sjcl.hash.sha256.prototype={blockSize:512,reset:function(){return this.r=this.N.slice(0),this.o=[],this.h=0,this},update:function(t){"string"==typeof t&&(t=sjcl.codec.utf8String.toBits(t));var e,i=this.o=sjcl.bitArray.concat(this.o,t);for(e=this.h,t=this.h=e+sjcl.bitArray.bitLength(t),e=512+e&-512;e<=t;e+=512)z(this,i.splice(0,16));return this},finalize:function(){var t,e=this.o,i=this.r;for(t=(e=sjcl.bitArray.concat(e,[sjcl.bitArray.partial(1,1)])).length+2;15&t;t++)e.push(0);for(e.push(Math.floor(this.h/4294967296)),e.push(0|this.h);e.length;)z(this,e.splice(0,16));return this.reset(),i},N:[],b:[],D:function(){function t(t){return 4294967296*(t-Math.floor(t))|0}var e,i=0,s=2;t:for(;i<64;s++){for(e=2;e*e<=s;e++)if(0==s%e)continue t;i<8&&(this.N[i]=t(Math.pow(s,.5))),this.b[i]=t(Math.pow(s,1/3)),i++}}},sjcl.mode.ccm={name:"ccm",encrypt:function(t,e,i,s,n){var c,r=e.slice(0),o=sjcl.bitArray,a=o.bitLength(i)/8,l=o.bitLength(r)/8;for(n=n||64,s=s||[],a<7&&q(new sjcl.exception.invalid("ccm: iv must be at least 7 bytes")),c=2;c<4&&l>>>8*c;c++);return c<15-a&&(c=15-a),i=o.clamp(i,8*(15-c)),e=sjcl.mode.ccm.L(t,e,i,s,n,c),r=sjcl.mode.ccm.p(t,r,i,e,n,c),o.concat(r.data,r.tag)},decrypt:function(t,e,i,s,n){n=n||64,s=s||[];var c=sjcl.bitArray,r=c.bitLength(i)/8,o=c.bitLength(e),a=c.clamp(e,o-n),l=c.bitSlice(e,o-n);o=(o-n)/8;for(r<7&&q(new sjcl.exception.invalid("ccm: iv must be at least 7 bytes")),e=2;e<4&&o>>>8*e;e++);return e<15-r&&(e=15-r),i=c.clamp(i,8*(15-e)),a=sjcl.mode.ccm.p(t,a,i,l,n,e),t=sjcl.mode.ccm.L(t,a.data,i,s,n,e),c.equal(a.tag,t)||q(new sjcl.exception.corrupt("ccm: tag doesn't match")),a.data},L:function(t,e,i,s,n,c){var r=[],o=sjcl.bitArray,a=o.l;if(((n/=8)%2||n<4||16>>31,t[1]<<1^t[2]>>>31,t[2]<<1^t[3]>>>31,t[3]<<1^135*(t[0]>>>31)]}},sjcl.mode.gcm={name:"gcm",encrypt:function(t,e,i,s,n){var c=e.slice(0);return e=sjcl.bitArray,s=s||[],t=sjcl.mode.gcm.p(!0,t,c,s,i,n||128),e.concat(t.data,t.tag)},decrypt:function(t,e,i,s,n){var c=e.slice(0),r=sjcl.bitArray,o=r.bitLength(c);return s=s||[],c=(n=n||128)<=o?(e=r.bitSlice(c,o-n),r.bitSlice(c,0,o-n)):(e=c,[]),t=sjcl.mode.gcm.p(u,t,c,s,i,n),r.equal(t.tag,e)||q(new sjcl.exception.corrupt("gcm: tag doesn't match")),t.data},Z:function(t,e){var i,s,n,c,r,o=sjcl.bitArray.l;for(n=[0,0,0,0],c=e.slice(0),i=0;i<128;i++){for((s=0!=(t[Math.floor(i/32)]&1<<31-i%32))&&(n=o(n,c)),r=0!=(1&c[3]),s=3;0>>1|(1&c[s-1])<<31;c[0]>>>=1,r&&(c[0]^=-520093696)}return n},g:function(t,e,i){var s,n=i.length;for(e=e.slice(0),s=0;sn&&(t=e.hash(t)),i=0;i=1<this.j&&(this.j=r),this.F++,this.b=sjcl.hash.sha256.hash(this.b.concat(s)),this.A=new sjcl.cipher.aes(this.b),i=0;i<4&&(this.f[i]=this.f[i]+1|0,!this.f[i]);i++);}for(i=0;i>>=1;this.c[o].update([n,this.C++,2,i,r,e.length].concat(e))}break;case"string":i===t&&(i=e.length),this.c[o].update([n,this.C++,3,i,r,e.length]),this.c[o].update(e);break;default:l=1}l&&q(new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string")),this.i[o]+=i,this.d+=i,a===this.m&&(this.isReady()!==this.m&&C("seeded",Math.max(this.j,this.d)),C("progress",this.getProgress()))},isReady:function(e){return e=this.I[e!==t?e:this.B],this.j&&this.j>=e?this.i[0]>this.R&&(new Date).valueOf()>this.O?this.u|this.t:this.t:this.d>=e?this.u|this.m:this.m},getProgress:function(t){return t=this.I[t||this.B],this.j>=t?1:this.d>t?1:this.d/t},startCollectors:function(){this.q||(this.a={loadTimeCollector:D(this,this.aa),mouseCollector:D(this,this.ba),keyboardCollector:D(this,this.$),accelerometerCollector:D(this,this.U)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,u),window.addEventListener("mousemove",this.a.mouseCollector,u),window.addEventListener("keypress",this.a.keyboardCollector,u),window.addEventListener("devicemotion",this.a.accelerometerCollector,u)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):q(new sjcl.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,u),window.removeEventListener("mousemove",this.a.mouseCollector,u),window.removeEventListener("keypress",this.a.keyboardCollector,u),window.removeEventListener("devicemotion",this.a.accelerometerCollector,u)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.q=u)},addEventListener:function(t,e){this.w[t][this.V++]=e},removeEventListener:function(t,e){var i,s,n=this.w[t],c=[];for(s in n)n.hasOwnProperty(s)&&n[s]===e&&c.push(s);for(i=0;i