1"use strict";(self.webpackChunkmicroblog=self.webpackChunkmicroblog||[]).push([[3229],{6231(e,t,a){a.d(t,{k:()=>h}),a(23792),a(3362),a(62953);var r=a(6699),i=a(84943),s=a(31557),n=a(44829),d=a(91421),o=a(90266);let l=i("music-metadata:parser:ID3");class h 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)l("End-of-stream");else throw e}}finalize(){}async parseID3v2(){if(await this.tryReadId3v2Headers(),l("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 d.Bn(this.metadata,this.tokenizer,this.options);await e.parse(),this.finalize()}}async tryReadId3v2Headers(){if("ID3"===(await this.tokenizer.peekToken(s.yW)).fileIdentifier)return l("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:()=>l});var r=a(6279),i=a(12939),s=a(31557),n=a(95745),d=a(54506);function o(e){switch(e){case 2:return 6;case 3:case 4:return 10;default:throw h(e)}}function l(e,t,a){var d,o,l,c,u,m,g;switch(t){case 2:let p;return d=e,o=t,l=a,(p={id:(0,n.c)(d.subarray(0,3),"ascii"),length:r.Tb.get(d,3)}).id.match(/^[A-Z0-9]{3}$/)||l.addWarning(`Invalid ID3v2.${o} frame-header-ID: ${p.id}`),p;case 3:case 4:let f;return c=e,u=t,m=a,(f={id:(0,n.c)(c.subarray(0,4),"ascii"),length:(4===u?s.St:r.a2).get(c,4),flags:(g=c.subarray(8,10),3===u?{status:{tag_alter_preservation:i.mh(g,0,7),file_alter_preservation:i.mh(g,0,6),read_only:i.mh(g,0,5)},format:{compression:i.mh(g,1,7),encryption:i.mh(g,1,6),grouping_identity:i.mh(g,1,5),unsynchronisation:!1,data_length_indicator:!1}}:{status:{tag_alter_preservation:i.mh(g,0,6),file_alter_preservation:i.mh(g,0,5),read_only:i.mh(g,0,4)},format:{grouping_identity:i.mh(g,1,6),compression:i.mh(g,1,3),encryption:i.mh(g,1,2),unsynchronisation:i.mh(g,1,1),data_length_indicator:i.mh(g,1,0)}})}).id.match(/^[A-Z0-9]{4}$/)||m.addWarning(`Invalid ID3v2.${u} frame-header-ID: ${f.id}`),f;default:throw h(t)}}function h(e){throw new d.I7(`Unexpected majorVer: ${e}`)}},54506(e,t,a){a.d(t,{DH:()=>p,I7:()=>f}),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),d=a(91421),o=a(12230),l=a(89596),h=a(46292);let c=r("music-metadata:id3v2:frame-parser"),u="latin1",m={encoding:u,bom:!1};function g(e){return"RX"===e?"Remix":"CR"===e?"Cover":e.match(/^\d*$/)?d.jR[Number.parseInt(e,10)]:void 0}class p{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:d,bom:o}=n.YF.get(e,0),y=e.length,k=0,b=[],w=p.getNullTerminatorLength(d);switch(c(`Parsing tag type=${t}, encoding=${d}, 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=p.trimNullPadding(s.sc(e.subarray(1),d))}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":b=p.functionList(this.splitValue(t,a));break;case"TRK":case"TRCK":case"TPOS":case"TIT1":case"TIT2":case"TIT3":b=a;break;case"TCOM":case"TEXT":case"TOLY":case"TOPE":case"TPE1":case"TSRC":b=this.splitValue(t,a);break;case"TCO":case"TCON":b=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=g(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=g(r)),r&&a.push(r)),a})(e)).reduce((e,t)=>e.concat(t),[]);break;case"PCS":case"PCST":b=Array.isArray(b=this.major>=4?this.splitValue(t,a):[a])&&""===b[0]?1:0;break;default:b=this.major>=4?this.splitValue(t,a):[a]}break}
1case"TXXX":{let a=p.readIdentifierAndData(e.subarray(1),d);b={description:a.id,text:this.splitValue(t,s.sc(a.data,d).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,u),t.format=s.sc(e.subarray(0,r),u),e=e.subarray(r+1);break;default:throw function(e){throw new f(`Unexpected majorVer: ${e}`)}(this.major)}t.format=p.fixPictureMimeType(t.format),t.type=n.n5[e[0]],e=e.subarray(1),r=s.sX(e,d),t.description=s.sc(e.subarray(0,r),d),t.data=e=e.subarray(r+w),b=t}break;case"CNT":case"PCNT":b=(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=p.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}b=a;break}case"ULT":case"USLT":case"COM":case"COMM":{let t=n.Jp.get(e,k);k+=n.Jp.len;let a=p.readNullTerminatedString(e.subarray(k),t.encoding);k+=a.len;let r=p.readNullTerminatedString(e.subarray(k),t.encoding);b={language:t.language,descriptor:a.text,text:r.text};break}case"UFID":{let t=p.readIdentifierAndData(e,u);b={owner_identifier:t.id,identifier:t.data};break}case"PRIV":{let t=p.readIdentifierAndData(e,u);b={owner_identifier:t.id,data:t.data};break}case"POPM":{e=e.subarray(k);let a=p.readNullTerminatedString(e,m),r=a.text;if(0===(e=e.subarray(a.len)).length){this.warningCollector.addWarning(`id3v2.${this.major} type=${t} POPM frame missing rating byte`),b={email:r,rating:0,counter:void 0};break}let n=i.hp.get(e,0),d=e.subarray(i.hp.len);b={email:r,rating:n,counter:d.length>0?(0,s.ku)(d):void 0};break}case"GEOB":{let t=n.YF.get(e,0);e=e.subarray(1);let a=p.readNullTerminatedString(e,m),r=a.text;e=e.subarray(a.len);let i=p.readNullTerminatedString(e,t),s=i.text;e=e.subarray(i.len);let d=p.readNullTerminatedString(e,t);b={type:r,filename:s,description:d.text,data:e=e.subarray(d.len)};break}case"WCOM":case"WCOP":case"WOAF":case"WOAR":case"WOAS":case"WORS":case"WPAY":case"WPUB":b=p.readNullTerminatedString(e,m).text;break;case"WXXX":{let t=n.YF.get(e,0);e=e.subarray(1);let a=p.readNullTerminatedString(e,t),r=a.text;e=e.subarray(a.len),b={description:r,url:p.trimNullPadding(s.sc(e,u))};break}case"WFD":case"WFED":{let t=n.YF.get(e,0);e=e.subarray(1),b=p.readNullTerminatedString(e,t).text;break}case"MCDI":b=e.subarray(0,y);break;case"CHAP":{c("Reading CHAP"),r=s.sX(e,u);let t={label:s.sc(e.subarray(0,r),u),info:l.E.get(e,r+1),frames:new Map};for(k+=r+1+l.E.len;k<y;){let r=(0,h.X)(e.subarray(k),this.major,this.warningCollector);k+=(0,h.B)(this.major);let i=this.readData(e.subarray(k,k+r.length),r.id,a);k+=r.length,t.frames.set(r.id,i)}b=t;break}case"CTOC":{c("Reading CTOC");let t=s.sX(e,u),r=s.sc(e.subarray(0,t),u);k=t+1;let i=e[k++],n=e[k++],d=[];for(let t=0;t<n&&k<y;t++){let t=s.sX(e.subarray(k),u),a=s.sc(e.subarray(k,k+t),u);d.push(a),k+=t+1}let o={label:r,flags:{topLevel:(2&i)!=0,ordered:(1&i)!=0},childElementIds:d,frames:new Map};for(;k<y;){let t=(0,h.X)(e.subarray(k),this.major,this.warningCollector);k+=(0,h.B)(this.major);let r=this.readData(e.subarray(k,k+t.length),t.id,a);k+=t.length,o.frames.set(t.id,r)}b=o;break}default:c(`Warning: unsupported id3v2-tag-type: ${t}`)}return b}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 d=e.subarray(0,a+n);return{text:s.sc(d,t.encoding),len:a+n+p.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),p.trimArray(a)}static trimArray(e){return e.map(e=>p.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=p.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 f 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:()=>d}),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 d{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 l=new i.DH(a,s);switch(a){case 2:return l.readData(e,t.id,r);case 3:case 4:return null!=(n=t.flags)&&n.format.unsynchronisation&&(e=d.removeUnsyncBytes(e)),null!=(o=t.flags)&&o.format.data_length_indicator&&(e=e.subarray(4,e.length)),l.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=d.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(d.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 l=d.readFrameData(o,s,this.id3Header.version.major,!this.options.skipCovers,this.metadata);l&&a.push({id:s.id,value:l})}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}}},57233(e,t,a){a.d(t,{h:()=>i});var r=a(12230);class i extends(0,r.fO)("Musepack"){}},53229(e,t,a){a.r(t),a.d(t,{MusepackParser:()=>h}),a(3362);var r=a(84943),i=a(6279),s=a(6231),n=a(18967),d=a(87917),o=a(57233);let l=r("music-metadata:parser:musepack");class h extends s.k{async postId3v2Parse(){let e;switch(await this.tokenizer.peekToken(new i.cT(3,"latin1"))){case"MP+":l("Stream-version 7"),e=new d.A(this.metadata,this.tokenizer,this.options);break;case"MPC":l("Stream-version 8"),e=new n.$(this.metadata,this.tokenizer,this.options);break;default:throw new o.h("Invalid signature prefix")}return this.metadata.setAudioOnly(),e.parse()}}},89888(e,t,a){a.d(t,{V:()=>i}),a(3362);var r=a(6279);class i{constructor(e){this.pos=0,this.dword=null,this.tokenizer=e}async read(e){for(;null===this.dword;)this.dword=await this.tokenizer.readToken(r.M_);let t=this.dword;return(this.pos+=e,this.pos<32)?(t>>>=32-this.pos)&(1<<e)-1:((this.pos-=32,0===this.pos)?this.dword=null:(this.dword=await this.tokenizer.readToken(r.M_),this.pos&&(t<<=this.pos,t|=this.dword>>>32-this.pos)),t&(1<<e)-1)}async ignore(e){if(this.pos>0){let t=32-this.pos;this.dword=null,e-=t,this.pos=0}let t=e%32,a=(e-t)/32;return await this.tokenizer.ignore(4*a),this.read(t)}}},87917(e,t,a){a.d(t,{A:()=>h}),a(23792),a(3362),a(62953);var r=a(84943),i=a(90266),s=a(45169),n=a(89888),d=a(36687),o=a(57233);let l=r("music-metadata:parser:musepack");class h extends i.s{constructor(){super(...arguments),this.bitreader=null,this.audioLength=0,this.duration=null}async parse(){let e=await this.tokenizer.readToken(d.Y);if("MP+"!==e.signature)throw new o.h("Unexpected magic number");l(`stream-version=${e.streamMajorVersion}.${e.streamMinorVersion}`),this.metadata.setFormat("container","Musepack, SV7"),this.metadata.setFormat("sampleRate",e.sampleFrequency);let t=1152*(e.frameCount-1)+e.lastFrameLength;this.metadata.setFormat("numberOfSamples",t),this.duration=t/e.sampleFrequency,this.metadata.setFormat("duration",this.duration),this.bitreader=new n.V(this.tokenizer),this.metadata.setFormat("numberOfChannels",e.midSideStereo||e.intensityStereo?2:1);let a=await this.bitreader.read(8);return this.metadata.setFormat("codec",(a/100).toFixed(2)),await this.skipAudioData(e.frameCount),l(`End of audio stream, switching to APEv2, offset=${this.tokenizer.position}`),(0,s.tryParseApeHeader)(this.metadata,this.tokenizer,this.options)}async skipAudioData(e){for(;e-- >0;){let e=await this.bitreader.read(20);this.audioLength+=20+e,await this.bitreader.ignore(e)}let t=await this.bitreader.read(11);this.audioLength+=t,null!==this.duration&&this.metadata.setFormat("bitrate",this.audioLength/this.duration)}}},36687(e,t,a){var r=a(6279),i=a(12939),s=a(95745);a.d(t,["Y",0,{len:24,get:(e,t)=>{let a={signature:(0,s.c)(e.subarray(t,t+3),"latin1"),streamMinorVersion:i.f5(e,t+3,0,4),streamMajorVersion:i.f5(e,t+3,4,4),frameCount:r.M_.get(e,t+4),maxLevel:r.aU.get(e,t+8),sampleFrequency:[44100,48e3,37800,32e3][i.f5(e,t+10,0,2)],link:i.f5(e,t+10,2,2),profile:i.f5(e,t+10,4,4),maxBand:i.f5(e,t+11,0,6),intensityStereo:i.cD(e,t+11,6),midSide
1Stereo:i.cD(e,t+11,7),titlePeak:r.aU.get(e,t+12),titleGain:r.aU.get(e,t+14),albumPeak:r.aU.get(e,t+16),albumGain:r.aU.get(e,t+18),lastFrameLength:r.M_.get(e,t+20)>>>20&2047,trueGapless:i.cD(e,t+23,0)};return a.lastFrameLength=a.trueGapless?r.M_.get(e,20)>>>20&2047:0,a}}])},18967(e,t,a){a.d(t,{$:()=>h}),a(23792),a(3362),a(62953);var r=a(84943),i=a(90266),s=a(45169),n=a(81909),d=a(8729),o=a(57233);let l=r("music-metadata:parser:musepack");class h extends i.s{constructor(){super(...arguments),this.audioLength=0}async parse(){if("MPCK"!==await this.tokenizer.readToken(n.e))throw new o.h("Invalid Magic number");return this.metadata.setFormat("container","Musepack, SV8"),this.parsePacket()}async parsePacket(){let e=new d.C(this.tokenizer);for(;;){let t=await e.readPacketHeader();switch(l(`packet-header key=${t.key}, payloadLength=${t.payloadLength}`),t.key){case"SH":{let a=await e.readStreamHeader(t.payloadLength);this.metadata.setFormat("numberOfSamples",a.sampleCount),this.metadata.setFormat("sampleRate",a.sampleFrequency),this.metadata.setFormat("duration",a.sampleCount/a.sampleFrequency),this.metadata.setFormat("numberOfChannels",a.channelCount);break}case"AP":this.audioLength+=t.payloadLength,await this.tokenizer.ignore(t.payloadLength);break;case"RG":case"EI":case"SO":case"ST":case"CT":await this.tokenizer.ignore(t.payloadLength);break;case"SE":return this.metadata.format.duration&&this.metadata.setFormat("bitrate",8*this.audioLength/this.metadata.format.duration),(0,s.tryParseApeHeader)(this.metadata,this.tokenizer,this.options);default:throw new o.h(`Unexpected header: ${t.key}`)}}}}},8729(e,t,a){a.d(t,{C:()=>h}),a(3362);var r=a(6279),i=a(84943),s=a(12939);let n=i("music-metadata:parser:musepack:sv8"),d=new r.cT(2,"latin1"),o={len:5,get:(e,t)=>({crc:r.M_.get(e,t),streamVersion:r.hp.get(e,t+4)})},l={len:2,get:(e,t)=>({sampleFrequency:[44100,48e3,37800,32e3][s.f5(e,t,0,3)],maxUsedBands:s.f5(e,t,3,5),channelCount:s.f5(e,t+1,0,4)+1,msUsed:s.cD(e,t+1,4),audioBlockFrames:s.f5(e,t+1,5,3)})};class h{get tokenizer(){return this._tokenizer}set tokenizer(e){this._tokenizer=e}constructor(e){this._tokenizer=e}async readPacketHeader(){let e=await this.tokenizer.readToken(d),t=await this.readVariableSizeField();return{key:e,payloadLength:t.value-2-t.len}}async readStreamHeader(e){let t={};n(`Reading SH at offset=${this.tokenizer.position}`);let a=await this.tokenizer.readToken(o);e-=o.len,Object.assign(t,a),n(`SH.streamVersion = ${a.streamVersion}`);let r=await this.readVariableSizeField();e-=r.len,t.sampleCount=r.value;let i=await this.readVariableSizeField();e-=i.len,t.beginningOfSilence=i.value;let s=await this.tokenizer.readToken(l);return e-=l.len,Object.assign(t,s),await this.tokenizer.ignore(e),t}async readVariableSizeField(e=1,t=0){let a=await this.tokenizer.readNumber(r.hp);return(128&a)==0?{len:e,value:t+a}:(a&=127,a+=t,this.readVariableSizeField(e+1,a<<7))}}}}]);
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.