1"use strict";(self.webpackChunkmicroblog=self.webpackChunkmicroblog||[]).push([[7413],{6231(e,t,a){a.d(t,{k:()=>d}),a(23792),a(3362),a(62953);var r=a(6699),i=a(84943),s=a(31557),n=a(44829),l=a(91421),o=a(90266);let h=i("music-metadata:parser:ID3");class d extends o.s{constructor(){super(...arguments),this.id3parser=new n.S}static async startsWithID3v2Header(e){return"ID3"===(await e.peekToken(s.yW)).fileIdentifier}async parse(){try{await this.parseID3v2()}catch(e){if(e instanceof r.d1)h("End-of-stream");else throw e}}finalize(){}async parseID3v2(){if(await this.tryReadId3v2Headers(),h("End of ID3v2 header, go to MPEG-parser: pos=%s",this.tokenizer.position),await this.postId3v2Parse(),this.options.skipPostHeaders&&this.metadata.hasAny())this.finalize();else{let e=new l.Bn(this.metadata,this.tokenizer,this.options);await e.parse(),this.finalize()}}async tryReadId3v2Headers(){if("ID3"===(await this.tokenizer.peekToken(s.yW)).fileIdentifier)return h("Found ID3v2 header, pos=%s",this.tokenizer.position),await this.id3parser.parse(this.metadata,this.tokenizer,this.options),this.tryReadId3v2Headers()}}},46292(e,t,a){a.d(t,{B:()=>o,X:()=>h});var r=a(6279),i=a(12939),s=a(31557),n=a(18126),l=a(54506);function o(e){switch(e){case 2:return 6;case 3:case 4:return 10;default:throw d(e)}}function h(e,t,a){var l,o,h,c,m,f,u;switch(t){case 2:let g;return l=e,o=t,h=a,(g={id:(0,n.c)(l.subarray(0,3),"ascii"),length:r.Tb.get(l,3)}).id.match(/^[A-Z0-9]{3}$/)||h.addWarning(`Invalid ID3v2.${o} frame-header-ID: ${g.id}`),g;case 3:case 4:let p;return c=e,m=t,f=a,(p={id:(0,n.c)(c.subarray(0,4),"ascii"),length:(4===m?s.St:r.a2).get(c,4),flags:(u=c.subarray(8,10),3===m?{status:{tag_alter_preservation:i.mh(u,0,7),file_alter_preservation:i.mh(u,0,6),read_only:i.mh(u,0,5)},format:{compression:i.mh(u,1,7),encryption:i.mh(u,1,6),grouping_identity:i.mh(u,1,5),unsynchronisation:!1,data_length_indicator:!1}}:{status:{tag_alter_preservation:i.mh(u,0,6),file_alter_preservation:i.mh(u,0,5),read_only:i.mh(u,0,4)},format:{grouping_identity:i.mh(u,1,6),compression:i.mh(u,1,3),encryption:i.mh(u,1,2),unsynchronisation:i.mh(u,1,1),data_length_indicator:i.mh(u,1,0)}})}).id.match(/^[A-Z0-9]{4}$/)||f.addWarning(`Invalid ID3v2.${m} frame-header-ID: ${p.id}`),p;default:throw d(t)}}function d(e){throw new l.I7(`Unexpected majorVer: ${e}`)}},54506(e,t,a){a.d(t,{DH:()=>g,I7:()=>p}),a(89463),a(16280),a(23792),a(44114),a(72712),a(18111),a(61701),a(18237),a(45367),a(92731),a(62953);var r=a(84943),i=a(6279),s=a(12939),n=a(31557),l=a(91421),o=a(12230),h=a(89596),d=a(46292);let c=r("music-metadata:id3v2:frame-parser"),m="latin1",f={encoding:m,bom:!1};function u(e){return"RX"===e?"Remix":"CR"===e?"Cover":e.match(/^\d*$/)?l.jR[Number.parseInt(e,10)]:void 0}class g{constructor(e,t){this.major=e,this.warningCollector=t}readData(e,t,a){let r;if(0===e.length)return void this.warningCollector.addWarning(`id3v2.${this.major} header has empty tag type=${t}`);let{encoding:l,bom:o}=n.YF.get(e,0),y=e.length,b=0,k=[],v=g.getNullTerminatorLength(l);switch(c(`Parsing tag type=${t}, encoding=${l}, bom=${o}`),"TXXX"!==t&&"T"===t[0]?"T*":t){case"T*":case"GRP1":case"GP1":case"IPLS":case"MVIN":case"MVNM":case"PCS":case"PCST":{let a;try{a=g.trimNullPadding(s.sc(e.subarray(1),l))}catch(e){if(e instanceof Error){this.warningCollector.addWarning(`id3v2.${this.major} type=${t} header has invalid string value: ${e.message}`);break}throw e}switch(t){case"TMCL":case"TIPL":case"IPLS":k=g.functionList(this.splitValue(t,a));break;case"TRK":case"TRCK":case"TPOS":case"TIT1":case"TIT2":case"TIT3":k=a;break;case"TCOM":case"TEXT":case"TOLY":case"TOPE":case"TPE1":case"TSRC":k=this.splitValue(t,a);break;case"TCO":case"TCON":k=this.splitValue(t,a).map(e=>(function(e){let t,a=[],r="";for(let i of e)if("string"==typeof t)if("("===i&&""===t)r+="(",t=void 0;else if(")"===i){""!==r&&(a.push(r),r="");let e=u(t);e&&a.push(e),t=void 0}else t+=i;else"("===i?t="":r+=i;return r&&(0===a.length&&r.match(/^\d*$/)&&(r=u(r)),r&&a.push(r)),a})(e)).reduce((e,t)=>e.concat(t),[]);break;case"PCS":case"PCST":k=Array.isArray(k=this.major>=4?this.splitValue(t,a):[a])&&""===k[0]?1:0;break;default:k=this.major>=4?this.splitValue(t,a):[a]}break}
1case"TXXX":{let a=g.readIdentifierAndData(e.subarray(1),l);k={description:a.id,text:this.splitValue(t,s.sc(a.data,l).replace(/\x00+$/,""))};break}case"PIC":case"APIC":if(a){let t={};switch(e=e.subarray(1),this.major){case 2:t.format=s.sc(e.subarray(0,3),"latin1"),e=e.subarray(3);break;case 3:case 4:r=s.sX(e,m),t.format=s.sc(e.subarray(0,r),m),e=e.subarray(r+1);break;default:throw function(e){throw new p(`Unexpected majorVer: ${e}`)}(this.major)}t.format=g.fixPictureMimeType(t.format),t.type=n.n5[e[0]],e=e.subarray(1),r=s.sX(e,l),t.description=s.sc(e.subarray(0,r),l),t.data=e=e.subarray(r+v),k=t}break;case"CNT":case"PCNT":k=(0,s.ku)(e);break;case"SYLT":{let t=n.aY.get(e,0);e=e.subarray(n.aY.len);let a={descriptor:"",language:t.language,contentType:t.contentType,timeStampFormat:t.timeStampFormat,syncText:[]},r=!1;for(;e.length>0;){let s=g.readNullTerminatedString(e,t.encoding);if(e=e.subarray(s.len),r){let t=i.a2.get(e,0);e=e.subarray(i.a2.len),a.syncText.push({text:s.text,timestamp:t})}else a.descriptor=s.text,r=!0}k=a;break}case"ULT":case"USLT":case"COM":case"COMM":{let t=n.Jp.get(e,b);b+=n.Jp.len;let a=g.readNullTerminatedString(e.subarray(b),t.encoding);b+=a.len;let r=g.readNullTerminatedString(e.subarray(b),t.encoding);k={language:t.language,descriptor:a.text,text:r.text};break}case"UFID":{let t=g.readIdentifierAndData(e,m);k={owner_identifier:t.id,identifier:t.data};break}case"PRIV":{let t=g.readIdentifierAndData(e,m);k={owner_identifier:t.id,data:t.data};break}case"POPM":{e=e.subarray(b);let a=g.readNullTerminatedString(e,f),r=a.text;if(0===(e=e.subarray(a.len)).length){this.warningCollector.addWarning(`id3v2.${this.major} type=${t} POPM frame missing rating byte`),k={email:r,rating:0,counter:void 0};break}let n=i.hp.get(e,0),l=e.subarray(i.hp.len);k={email:r,rating:n,counter:l.length>0?(0,s.ku)(l):void 0};break}case"GEOB":{let t=n.YF.get(e,0);e=e.subarray(1);let a=g.readNullTerminatedString(e,f),r=a.text;e=e.subarray(a.len);let i=g.readNullTerminatedString(e,t),s=i.text;e=e.subarray(i.len);let l=g.readNullTerminatedString(e,t);k={type:r,filename:s,description:l.text,data:e=e.subarray(l.len)};break}case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":k=g.readNullTerminatedString(e,f).text;break;case"WXXX":{let t=n.YF.get(e,0);e=e.subarray(1);let a=g.readNullTerminatedString(e,t),r=a.text;e=e.subarray(a.len),k={description:r,url:g.trimNullPadding(s.sc(e,m))};break}case"WFD":case"WFED":{let t=n.YF.get(e,0);e=e.subarray(1),k=g.readNullTerminatedString(e,t).text;break}case"MCDI":k=e.subarray(0,y);break;case"CHAP":{c("Reading CHAP"),r=s.sX(e,m);let t={label:s.sc(e.subarray(0,r),m),info:h.E.get(e,r+1),frames:new Map};for(b+=r+1+h.E.len;b<y;){let r=(0,d.X)(e.subarray(b),this.major,this.warningCollector);b+=(0,d.B)(this.major);let i=this.readData(e.subarray(b,b+r.length),r.id,a);b+=r.length,t.frames.set(r.id,i)}k=t;break}case"CTOC":{c("Reading CTOC");let t=s.sX(e,m),r=s.sc(e.subarray(0,t),m);b=t+1;let i=e[b++],n=e[b++],l=[];for(let t=0;t<n&&b<y;t++){let t=s.sX(e.subarray(b),m),a=s.sc(e.subarray(b,b+t),m);l.push(a),b+=t+1}let o={label:r,flags:{topLevel:(2&i)!=0,ordered:(1&i)!=0},childElementIds:l,frames:new Map};for(;b<y;){let t=(0,d.X)(e.subarray(b),this.major,this.warningCollector);b+=(0,d.B)(this.major);let r=this.readData(e.subarray(b,b+t.length),t.id,a);b+=t.length,o.frames.set(t.id,r)}k=o;break}default:c(`Warning: unsupported id3v2-tag-type: ${t}`)}return k}static readNullTerminatedString(e,t){let a=2*!!t.bom,r=e.length,i=e.subarray(a),n=s.sX(i,t.encoding);if(n>=i.length)return{text:s.sc(e,t.encoding),len:r};let l=e.subarray(0,a+n);return{text:s.sc(l,t.encoding),len:a+n+g.getNullTerminatorLength(t.encoding)}}static fixPictureMimeType(e){switch(e=e.toLocaleLowerCase()){case"jpg":return"image/jpeg";case"png":return"image/png"}return e}static functionList(e){let t={};for(let a=0;a+1<e.length;a+=2){let r=e[a+1].split(",");t[e[a]]=t[e[a]]?t[e[a]].concat(r):r}return t}splitValue(e,t){let a;return this.major<4?(a=t.split(/\x00/g)).length>1?this.warningCollector.addWarning(`ID3v2.${this.major} ${e} uses non standard null-separator.`):a=t.split(/\//g):a=t.split(/\x00/g),g.trimArray(a)}static trimArray(e){return e.map(e=>g.trimNullPadding(e).trim())}static trimNullPadding(e){let t=e.length;for(;t>0&&0===e.charCodeAt(t-1);)t--;return t===e.length?e:e.slice(0,t)}
1static readIdentifierAndData(e,t){let a=g.readNullTerminatedString(e,{encoding:t,bom:!1});return{id:a.text,data:e.subarray(a.len)}}static getNullTerminatorLength(e){return e.startsWith("utf-16")?2:1}}class p extends(0,o.fO)("id3v2"){}},89596(e,t,a){var r=a(6279);a.d(t,["E",0,{len:16,get:(e,t)=>{let a=r.a2.get(e,t+8),i=r.a2.get(e,t+12);return{startTime:r.a2.get(e,t),endTime:r.a2.get(e,t+4),startOffset:0xffffffff===a?void 0:a,endOffset:0xffffffff===i?void 0:i}}}])},44829(e,t,a){a.d(t,{S:()=>l}),a(89463),a(23792),a(44114),a(26910),a(18111),a(22489),a(20116),a(61701),a(45367),a(92731),a(3362),a(69479),a(62953);var r=a(6279),i=a(54506),s=a(31557),n=a(46292);class l{constructor(){this.tokenizer=void 0,this.id3Header=void 0,this.metadata=void 0,this.headerType=void 0,this.options=void 0}static removeUnsyncBytes(e){let t=0,a=0;for(;t<e.length-1;)t!==a&&(e[a]=e[t]),t+=255===e[t]&&0===e[t+1]?2:1,a++;return t<e.length&&(e[a++]=e[t]),e.subarray(0,a)}static readFrameData(e,t,a,r,s){var n,o;let h=new i.DH(a,s);switch(a){case 2:return h.readData(e,t.id,r);case 3:case 4:return null!=(n=t.flags)&&n.format.unsynchronisation&&(e=l.removeUnsyncBytes(e)),null!=(o=t.flags)&&o.format.data_length_indicator&&(e=e.subarray(4,e.length)),h.readData(e,t.id,r);default:throw function(e){throw new i.I7(`Unexpected majorVer: ${e}`)}(a)}}static makeDescriptionTagName(e,t){return e+(t?`:${t}`:"")}async parse(e,t,a){this.tokenizer=t,this.metadata=e,this.options=a;let r=await this.tokenizer.readToken(s.yW);if("ID3"!==r.fileIdentifier)throw new i.I7("expected ID3-header file-identifier 'ID3' was not found");this.id3Header=r,this.headerType=`ID3v2.${r.version.major}`,await (r.flags.isExtendedHeader?this.parseExtendedHeader():this.parseId3Data(r.size));let n=l.mapId3v2Chapters(this.metadata.native[this.headerType]);this.metadata.setFormat("chapters",n)}async parseExtendedHeader(){let e=await this.tokenizer.readToken(s.nl),t=e.size-s.nl.len;return t>0?this.parseExtendedHeaderData(t,e.size):this.parseId3Data(this.id3Header.size-e.size)}async parseExtendedHeaderData(e,t){return await this.tokenizer.ignore(e),this.parseId3Data(this.id3Header.size-t)}async parseId3Data(e){let t=await this.tokenizer.readToken(new r.A9(e));for(let e of this.parseMetadata(t))"TXXX"===e.id?e.value&&await this.handleTag(e,e.value.text,()=>e.value.description):await (Array.isArray(e.value)?Promise.all(e.value.map(t=>this.addTag(e.id,t))):this.addTag(e.id,e.value))}async handleTag(e,t,a,r=e=>e){await Promise.all(t.map(t=>this.addTag(l.makeDescriptionTagName(e.id,a(t)),r(t))))}async addTag(e,t){await this.metadata.addTag(this.headerType,e,t)}parseMetadata(e){let t=0,a=[];for(;t!==e.length;){let r=(0,n.B)(this.id3Header.version.major);if(t+r>e.length){this.metadata.addWarning("Illegal ID3v2 tag length");break}let i=e.subarray(t,t+r);t+=r;let s=(0,n.X)(i,this.id3Header.version.major,this.metadata),o=e.subarray(t,t+s.length);t+=s.length;let h=l.readFrameData(o,s,this.id3Header.version.major,!this.options.skipCovers,this.metadata);h&&a.push({id:s.id,value:h})}return a}static mapId3v2Chapters(e){if(!e)return;let t=e.filter(e=>"CHAP"===e.id);if(!(null!=t&&t.length))return;let a=e.filter(e=>"CTOC"===e.id),r=null==a?void 0:a.find(e=>{var t;return null==(t=e.value.flags)?void 0:t.topLevel}),i=new Map;for(let e of t)i.set(e.value.label,e.value);let s=null==r?void 0:r.value.childElementIds,n=[];for(let e of null!=s?s:[...i.keys()]){let t=i.get(e);if(!t)continue;let a=t.frames,r=a.get("TIT2");r&&n.push({id:e,title:r,url:a.get("WXXX"),start:t.info.startTime/1e3,end:t.info.endTime/1e3,image:a.get("APIC")})}return s||n.sort((e,t)=>e.start-t.start),n.length?n:void 0}}},59102(e,t,a){var r=a(6279),i=a(12939),s=a(55888);a.d(t,["k",0,{len:27,get:(e,t)=>{let a=r.a2.get(e,t+2);return{revision:i.f5(e,t,0,4),vbr_method:i.f5(e,t,4,4),lowpass_filter:100*r.hp.get(e,t+1),track_peak:0===a?null:a/8388608,track_gain:s.x.get(e,6),album_gain:s.x.get(e,8),music_length:r.a2.get(e,t+20),music_crc:r.hp.get(e,t+24),header_crc:r.y7.get(e,t+24)}}}])},19794(e,t,a){a.r(t),a.d(t,{MpegContentError:()=>c,MpegParser:()=>p}),a(16280),a(23792),a(44114),a(16573),a(78100),a(77936),a(18111),a(81148),a(3362),a(48140),a(21903),a(91134),a(28845),a(373),a(374
167),a(44732),a(79577),a(16632),a(34226),a(9486),a(20456),a(62953);var r=a(6279),i=a(6699),s=a(84943),n=a(12939),l=a(6231),o=a(99087),h=a(12230);let d=s("music-metadata:parser:mpeg");class c extends(0,h.fO)("MPEG"){}let m=["AAC Main","AAC LC","AAC SSR","AAC LTP"],f=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350,null,null,null],u=[void 0,["front-center"],["front-left","front-right"],["front-center","front-left","front-right"],["front-center","front-left","front-right","back-center"],["front-center","front-left","front-right","back-left","back-right"],["front-center","front-left","front-right","back-left","back-right","LFE-channel"],["front-center","front-left","front-right","side-left","side-right","back-left","back-right","LFE-channel"]];class g{constructor(e,t){this.bitrateIndex=null,this.sampRateFreqIndex=null,this.padding=null,this.privateBit=null,this.channelModeIndex=null,this.modeExtension=null,this.isOriginalMedia=null,this.version=null,this.bitrate=null,this.samplingRate=null,this.frameLength=0,this.versionIndex=n.f5(e,t+1,3,2),this.layer=g.LayerDescription[n.f5(e,t+1,5,2)],this.versionIndex>1&&0===this.layer?this.parseAdtsHeader(e,t):this.parseMpegHeader(e,t),this.isProtectedByCRC=!n.cD(e,t+1,7)}calcDuration(e){return null==this.samplingRate?null:e*this.calcSamplesPerFrame()/this.samplingRate}calcSamplesPerFrame(){return g.samplesInFrameTable[+(1!==this.version)][this.layer]}calculateSideInfoLength(){if(3!==this.layer)return 2;if(3===this.channelModeIndex){if(1===this.version)return 17;if(2===this.version||2.5===this.version)return 9}else{if(1===this.version)return 32;if(2===this.version||2.5===this.version)return 17}return null}calcSlotSize(){return[null,4,1,1][this.layer]}parseMpegHeader(e,t){this.container="MPEG",this.bitrateIndex=n.f5(e,t+2,0,4),this.sampRateFreqIndex=n.f5(e,t+2,4,2),this.padding=n.cD(e,t+2,6),this.privateBit=n.cD(e,t+2,7),this.channelModeIndex=n.f5(e,t+3,0,2),this.modeExtension=n.f5(e,t+3,2,2),this.isCopyrighted=n.cD(e,t+3,4),this.isOriginalMedia=n.cD(e,t+3,5),this.emphasis=n.f5(e,t+3,7,2),this.version=g.VersionID[this.versionIndex],this.channelMode=g.ChannelMode[this.channelModeIndex],this.codec=`MPEG ${this.version} Layer ${this.layer}`;let a=this.calcBitrate();if(!a)throw new c("Cannot determine bit-rate");if(this.bitrate=1e3*a,this.samplingRate=this.calcSamplingRate(),null==this.samplingRate)throw new c("Cannot determine sampling-rate")}parseAdtsHeader(e,t){d("layer=0 => ADTS"),this.version=2===this.versionIndex?4:2,this.container=`ADTS/MPEG-${this.version}`;let a=n.f5(e,t+2,0,2);this.codec="AAC",this.codecProfile=m[a],d(`MPEG-4 audio-codec=${this.codec}`);let r=n.f5(e,t+2,2,4);this.samplingRate=f[r],d(`sampling-rate=${this.samplingRate}`);let i=n.f5(e,t+2,7,3);this.mp4ChannelConfig=u[i],d(`channel-config=${this.mp4ChannelConfig?this.mp4ChannelConfig.join("+"):"?"}`),this.frameLength=n.f5(e,t+3,6,2)<<11}calcBitrate(){if(0===this.bitrateIndex||15===this.bitrateIndex)return null;if(this.version&&this.bitrateIndex){let e=10*Math.floor(this.version)+this.layer;return g.bitrate_index[this.bitrateIndex][e]}return null}calcSamplingRate(){return 3===this.sampRateFreqIndex||null===this.version||null==this.sampRateFreqIndex?null:g.sampling_rate_freq_index[this.version][this.sampRateFreqIndex]}}g.SyncByte1=255,g.SyncByte2=224,g.VersionID=[2.5,null,2,1],g.LayerDescription=[0,3,2,1],g.ChannelMode=["stereo","joint_stereo","dual_channel","mono"],g.bitrate_index={1:{11:32,12:32,13:32,21:32,22:8,23:8},2:{11:64,12:48,13:40,21:48,22:16,23:16},3:{11:96,12:56,13:48,21:56,22:24,23:24},4:{11:128,12:64,13:56,21:64,22:32,23:32},5:{11:160,12:80,13:64,21:80,22:40,23:40},6:{11:192,12:96,13:80,21:96,22:48,23:48},7:{11:224,12:112,13:96,21:112,22:56,23:56},8:{11:256,12:128,13:112,21:128,22:64,23:64},9:{11:288,12:160,13:128,21:144,22:80,23:80},10:{11:320,12:192,13:160,21:160,22:96,23:96},11:{11:352,12:224,13:192,21:176,22:112,23:112},12:{11:384,12:256,13:224,21:192,22:128,23:128},13:{11:416,12:320,13:256,21:224,22:144,23:144},14:{11:448,12:384,13:320,21:256,22:160,23:160}},g.sampling_rate_freq_index={1:{0:44100,1:48e3,2:32e3},2:{0:22050,1:24e3,2:16e3},2.5:{0:11025,1:12e3,2:8e3}},g.samplesInFrameTable=[[0,384,1152,1152],[0,384,1152,576]];class p extends l.k{constructor(){super(...arguments),this.frameCount=0,this.syncFrameCount=-1,this.totalDataLength=0,this.bitrates=[],this.offset=0,this.frame_size=0,this.calculateEofDuration=!1,this.samplesPerFrame=null,this.buf_frame_header=new Uint8Array(4),this.mpegOffset=null,this.syncPeek={buf:new Uint8Array(1024),len:0}}async postId3v2Parse(){this.metadata.setFormat("lossless",!1),this.metadata.setAudioOnly();try{let e=!1;for(;!e;)await this.sync(),e=await this.parseCommonMpegHeader()}catch(e){if(e instanceof i.d1){if(d("End-of-stream"),this.calculateEofDuration&&null!==this.samplesPerFrame){let e=this.frameCount*this.samplesPerFrame;if(this.metadata.setFormat("numberOfSamples",e),this.metadata.format.sampleRate){let t=e/this.metadata.format.sampleRate;d(`Calculate duration at EOF: ${t} sec.`,t),this.metadata.setFormat("duration",t)}}}else throw e}}finalize(){let e=this.metadata.format,t=!!this.metadata.native.ID3v1;if(null!==this.mpegOffset){if(e.duration&&this.tokenizer.fileInfo.size){let a=this.tokenizer.fileInfo.size-this.mpegOffset-128*!!t;e.codecProfile&&"V"===e.codecProfile[0]&&this.metadata.setFormat("bitrate",8*a/e.duration)}if(this.tokenizer.fileInfo.size&&"CBR"===e.codecProfile){let a=this.tokenizer.fileInfo.size-this.mpegOffset-128*!!t;if(null!==this.frame_size&&null!==this.samplesPerFrame){let t=Math.round(a/this.frame_size)*this.samplesPerFrame;if(this.metadata.setFormat("numberOfSamples",t),e.sampleRate&&!e.duration){let a=t/e.sampleRate;d("Calculate CBR duration based on file size: %s",a),this.metadata.setFormat("duration",a)}}}}}async sync(){let e=!1;for(;;){let t=0;if(this.syncPeek.len=await this.tokenizer.peekBuffer(this.syncPeek.buf,{length:1024,mayBeLess:!0}),this.syncPeek.len<=163)throw new i.d1;for(;;){if(e&&(224&this.syncPeek.buf[t])==224){this.buf_frame_header[0]=g.SyncByte1,this.buf_frame_header[1]=this.syncPeek.buf[t],await this.tokenizer.ignore(t),d(`Sync at offset=${this.tokenizer.position-1}, frameCount=${this.frameCount}`),this.syncFrameCount===this.frameCount&&(d(`Re-synced MPEG stream, frameCount=${this.frameCount}`),this.frameCount=0,this.frame_size=0),this.syncFrameCount=this.frameCount;return}if(e=!1,-1===(t=this.syncPeek.buf.indexOf(g.SyncByte1,t))){if(this.syncPeek.len<this.syncPeek.buf.length)throw new i.d1;await this.tokenizer.ignore(this.syncPeek.len);break}++t,e=!0}}}async parseCommonMpegHeader(){let e;0===this.frameCount&&(this.mpegOffset=this.tokenizer.position-1),await this.tokenizer.peekBuffer(this.buf_frame_header.subarray(1),{length:3});try{let t;t=this.buf_frame_header,e=new g(t,0)}catch(e){if(await this.tokenizer.ignore(1),e instanceof Error)return this.metadata.addWarning(`Parse error: ${e.message}`),!1;throw e}return await this.tokenizer.ignore(3),this.metadata.setFormat("container",e.container),this.metadata.setFormat("codec",e.codec),this.metadata.setFormat("lossless",!1),this.metadata.setFormat("sampleRate",e.samplingRate),this.frameCount++,null!==e.version&&e.version>=2&&0===e.layer?this.parseAdts(e):this.parseAudioFrameHeader(e)}async parseAudioFrameHeader(e){this.metadata.setFormat("numberOfChannels","mono"===e.channelMode?1:2),this.metadata.setFormat("bitrate",e.bitrate),this.frameCount<2e5&&d("offset=%s MP%s bitrate=%s sample-rate=%s",this.tokenizer.position-4,e.layer,e.bitrate,e.samplingRate);let t=e.calcSlotSize();if(null===t)throw new c("invalid slot_size");
1let a=e.calcSamplesPerFrame();if(d(`samples_per_frame=${a}`),null!==e.bitrate&&null!=e.samplingRate){let r=a/8*e.bitrate/e.samplingRate+(e.padding?t:0);this.frame_size=Math.floor(r)}if(this.audioFrameHeader=e,null!==e.bitrate&&this.bitrates.push(e.bitrate),1===this.frameCount)return this.offset=4,await this.skipSideInformation(),!1;if(4===this.frameCount){if(this.areAllSame(this.bitrates)){if(this.samplesPerFrame=a,this.metadata.setFormat("codecProfile","CBR"),this.tokenizer.fileInfo.size)return!0}else if(this.metadata.format.duration)return!0;if(!this.options.duration)return!0}return(this.options.duration&&4===this.frameCount&&(this.samplesPerFrame=a,this.calculateEofDuration=!0),this.offset=4,e.isProtectedByCRC)?await this.parseCrc():await this.skipSideInformation(),!1}async parseAdts(e){let t=new Uint8Array(3);if(await this.tokenizer.readBuffer(t),e.frameLength+=n.f5(t,0,0,11),this.totalDataLength+=e.frameLength,this.samplesPerFrame=1024,null!==e.samplingRate){let t=e.samplingRate/this.samplesPerFrame,a=8*(0===this.frameCount?0:this.totalDataLength/this.frameCount)*t+.5;this.metadata.setFormat("bitrate",a),d(`frame-count=${this.frameCount}, size=${e.frameLength} bytes, bit-rate=${a}`)}if(await this.tokenizer.ignore(e.frameLength>7?e.frameLength-7:1),3===this.frameCount){if(this.metadata.setFormat("codecProfile",e.codecProfile),e.mp4ChannelConfig&&this.metadata.setFormat("numberOfChannels",e.mp4ChannelConfig.length),!this.options.duration)return!0;this.calculateEofDuration=!0}return!1}async parseCrc(){return await this.tokenizer.ignore(r.LO.len),this.offset+=r.LO.len,this.skipSideInformation()}async skipSideInformation(){if(this.audioFrameHeader){let e=this.audioFrameHeader.calculateSideInfoLength();if(null!==e){await this.tokenizer.readToken(new r.A9(e)),this.offset+=e,await this.readXtraInfoHeader();return}}}async readXtraInfoHeader(){let e=await this.tokenizer.readToken(o.I6);switch(this.offset+=o.I6.len,e){case"Info":return this.metadata.setFormat("codecProfile","CBR"),this.readXingInfoHeader();case"Xing":{let e=await this.readXingInfoHeader();if(null!==e.vbrScale){var t;let a=(t=e.vbrScale,`V${Math.floor((100-t)/10)}`);this.metadata.setFormat("codecProfile",a)}return null}case"Xtra":break;case"LAME":{let e=await this.tokenizer.readToken(o.ID);if(null!==this.frame_size&&this.frame_size>=this.offset+o.ID.len)return this.offset+=o.ID.len,this.metadata.setFormat("tool",`LAME ${e}`),await this.skipFrameData(this.frame_size-this.offset),null;this.metadata.addWarning("Corrupt LAME header")}}let a=this.frame_size-this.offset;return a<0?this.metadata.addWarning(`Frame ${this.frameCount}corrupt: negative frameDataLeft`):await this.skipFrameData(a),null}async readXingInfoHeader(){let e=this.tokenizer.position,t=await (0,o.Ev)(this.tokenizer);if(this.offset+=this.tokenizer.position-e,t.lame&&(this.metadata.setFormat("tool",`LAME ${n.F6(t.lame.version)}`),t.lame.extended&&(this.metadata.setFormat("trackPeakLevel",t.lame.extended.track_peak),t.lame.extended.track_gain&&this.metadata.setFormat("trackGain",t.lame.extended.track_gain.adjustment),t.lame.extended.album_gain&&this.metadata.setFormat("albumGain",t.lame.extended.album_gain.adjustment),this.metadata.setFormat("duration",t.lame.extended.music_length/1e3))),t.streamSize&&this.audioFrameHeader&&null!==t.numFrames){let e=this.audioFrameHeader.calcDuration(t.numFrames);return this.metadata.setFormat("duration",e),d("Get duration from Xing header: %s",this.metadata.format.duration),t}let a=this.frame_size-this.offset;return await this.skipFrameData(a),t}async skipFrameData(e){if(e<0)throw new c("frame-data-left cannot be negative");await this.tokenizer.ignore(e)}areAllSame(e){let t=e[0];return e.every(e=>e===t)}}},55888(e,t,a){var r=a(12939);a.d(t,["x",0,{len:2,get:(e,t)=>{let a=r.f5(e,t,0,3),i=r.f5(e,t,6,1),s=r.f5(e,t,7,9)/10;if(a>0)return{type:r.f5(e,t,0,3),origin:r.f5(e,t,3,3),adjustment:i?-s:s}}}])},99087(e,t,a){a.d(t,{Ev:()=>h}),a(23792),a(16573),a(78100),a(77936),a(18111),a(61701),a(3362),a(48140),a(21903),a(91134),a(28845),a(373),a(37467),a(44732),a(79577),a(16632),a(34226),a(9486),a(20456);var r=a(6279),i=a(12939),s=a(59102);let n=new r.cT(4,"ascii"),l=new r.cT(6,"ascii"),o={len:4,get:(e,t)=>({frames:i.cD(e,t,31),bytes:i.cD(e,t,30),toc:i.cD(e,t,29),vbrScale:i.cD(e,t,28)})};async function h(e){let t=await e.readToken(o),a={numFrames:null,streamSize:null,vbrScale:null};if(t.frames&&(a.numFrames=await e.readToken(r.a2)),t.bytes&&(a.streamSize=await e.readToken(r.a2)),t.toc&&(a.toc=new Uint8Array(100),await e.readBuffer(a.toc)),t.vbrScale&&(a.vbrScale=await e.readToken(r.a2)),"LAME"===await e.peekToken(new r.cT(4,"ascii"))){await e.ignore(4),a.lame={version:await e.readToken(new r.cT(5,"ascii"))};let t=a.lame.version.match(/\d+.\d+/g);if(null!==t){let r=t[0].split(".").map(e=>Number.parseInt(e,10));r[0]>=3&&r[1]>=90&&(a.lame.extended=await e.readToken(s.k))}}return a}
1a.d(t,["I6",0,n,"ID",0,l])}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.