[{"data":1,"prerenderedAt":290},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:grip":8,"i-lucide:chevron-right":10,"i-lucide:moon":12,"i-lucide:sun":14,"i-material-symbols:language":16,"i-lucide:chevron-down":18,"i-lucide:shield-check":20,"i-lucide:mail":22,"i-tabler:markdown":24,"i-lucide:code-xml":26,"i-lucide:film":28,"i-lucide:file-text":30,"i-lucide:box":32,"i-lucide:code-2":34,"i-lucide:image":35,"i-lucide:square-sigma":37,"i-lucide:gamepad-2":39,"i-lucide:sparkles":41,"i-lucide:graduation-cap":43,"tool-content-videos-subtitleSync":45,"i-lucide:play-circle":252,"i-lucide:arrow-right":254,"i-lucide:download":256,"i-lucide:archive":258,"i-lucide:info":260,"i-lucide:clock":262,"i-lucide:languages":264,"i-lucide:timer-reset":266,"i-lucide:gauge":268,"i-lucide:shield":270,"i-lucide:upload":272,"i-lucide:sliders-horizontal":274,"i-tabler:transform":276,"i-lucide:audio-waveform":278,"i-lucide:video":280,"i-lucide:diff":282,"i-lucide:captions":284,"i-lucide:arrow-up-right":286,"i-lucide:move-horizontal":288},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12.013 2t3.875.788t3.175 2.15t2.15 3.175t.787 3.875t-.787 3.887t-2.15 3.188t-3.175 2.15t-3.875.787t-3.888-.787M12 19.95q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M7 15V9l2 2l2-2v6m3-2l2 2l2-2m-2 2V9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18m0-13.5h4m-4 9h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"\u002F>\u003Cpath d=\"m3.3 7l8.7 5l8.7-5M12 22V12\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":38},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8.9V7H8l4 5l-4 5h8v-1.9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":40},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 11h4M8 9v4m7-1h.01M18 10h.01m-.69-5H6.68a4 4 0 0 0-3.978 3.59l-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258q-.01-.075-.017-.151A4 4 0 0 0 17.32 5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":42},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":44},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>",{"strings":46,"features":155,"steps":183,"useCases":207,"articleHtml":249},{"zh":47,"en":101},{"description":48,"uploadAccept":49,"uploadSubtitle":50,"uploadVideo":51,"uploadVideoOptional":52,"uploadVideoHint":53,"removeVideo":54,"tipPlaybackPreview":55,"errorVideoLoad":56,"demoTitle":57,"demoIntro":58,"demoButton":59,"changeFile":60,"demoGenerating":61,"demoFailed":62,"exportTitle":63,"downloadZipButton":64,"zipNoVideoTip":65,"errorAnchorParse":66,"tabOffset":67,"tabAnchors":68,"tabFrameRate":69,"offsetLabel":70,"offsetUnit":71,"offsetHint":72,"anchorFirstSrc":73,"anchorFirstDst":74,"anchorLastSrc":75,"anchorLastDst":74,"anchorHint":76,"frameRateSrc":77,"frameRateDst":78,"frameRateHint":79,"previewTitle":80,"previewPlaceholderHint":81,"placeholderTag":82,"tabsPlaceholderHint":83,"downloadButton":84,"noCuesYet":85,"errorParseFailed":86,"errorEmpty":87,"errorAnchorOrder":88,"errorFrameRateInvalid":89,"tipNegativeShift":90,"faq1q":91,"faq1a":92,"faq2q":93,"faq2a":94,"faq3q":95,"faq3a":96,"faq4q":97,"faq4a":98,"faq5q":99,"faq5a":100},"几秒钟修好不同步的字幕。整体偏移 ±N 毫秒、首尾两条对齐到目标时间做线性拉伸、按帧率换算。SRT、VTT、ASS、SBV、LRC 全格式支持。","SRT、VTT、ASS、SSA、SBV、LRC","字幕文件","可选：本地预览视频","可选","拖入 MP4 \u002F WebM \u002F MOV — 仅供本地预览，不会上传","移除视频","播放器底部叠加显示「调整后」字幕，改偏移即可即时看到对齐效果。","无法加载视频，浏览器可能不支持该编码。","一键试用 demo","自动生成 5 秒演示视频，并加载一份故意提前 1 秒的字幕，让你立刻体验「错位 → 校正」的过程。","用 demo 体验","更换文件","正在生成 demo…","demo 生成失败，请直接上传字幕和视频试用。","导出","打包视频 + 字幕（.zip）","上传或加载 demo 视频后才能打包导出。","锚点时间格式无法解析，请使用 HH:MM:SS,mmm。","整体偏移","首尾对齐","帧率换算","偏移量","毫秒（负数表示提前）","常用预设：","第一条字幕当前在","应当出现在","最后一条字幕当前在","首尾不同步偏差不一致时（OCR 字幕、错帧率字幕的常见场景）用这个模式做线性拉伸。","源帧率","目标帧率","视频被换帧率重新封装时使用（例如 25 fps PAL → 23.976 fps NTSC）。","调整前 → 调整后","上传字幕或试用 demo 后，这里会显示每条字幕的真实「调整前 → 调整后」时间对比。","示例","上传字幕或试用 demo 后，可以在左侧调整数值，右侧即时预览修正效果。","下载修正后的字幕","拖入字幕文件即可看到字幕条目","解析失败，可能不是 UTF-8 编码或语法错乱。","未解析出任何字幕条目，请检查文件。","首条字幕的目标时间必须早于末条字幕的目标时间。","帧率必须是正数。","提示：字幕比说话快？输入负数偏移把它往后推。","什么时候用「整体偏移」、什么时候用「首尾对齐」？","字幕从头到尾都晚 N 秒（或都早 N 秒）— 用整体偏移；开头还行、越往后越偏 — 用首尾对齐做线性拉伸。「首尾对齐」对「错帧率字幕」效果尤其好。","支持哪些帧率？","预设涵盖 23.976、24、25、29.97、30、50、60 fps，也可以输入任意正数。中文区最常见的「错帧率」问题是 PAL 25 fps 字幕配 NTSC 23.976 fps 影片 — 用首尾对齐或 25→23.976 帧率换算都能修。","毫秒级偏移会损失字幕精度吗？","不会。SRT 和 VTT 都存毫秒（3 位小数），±1 ms 精确。ASS 和 LRC 存厘秒（2 位小数），导出时会四舍五入到最近的 10 ms — 但这远低于人类约 50 ms 的感知阈值。","调错了能撤销吗？","可以。「调整前」面板始终保留原始字幕。任何调整都可以反复重新应用，结果都从原始字幕重算，不需要重新上传。","ASS 自定义样式会被破坏吗？","不会。只调整每条 Dialogue 的时间，样式定义、字体、颜色、定位、动画、卡拉 OK 标签全部原样透传。",{"description":102,"uploadAccept":103,"uploadSubtitle":104,"uploadVideo":105,"uploadVideoOptional":106,"uploadVideoHint":107,"removeVideo":108,"tipPlaybackPreview":109,"errorVideoLoad":110,"demoTitle":111,"demoIntro":112,"demoButton":113,"changeFile":114,"demoGenerating":115,"demoFailed":116,"exportTitle":117,"downloadZipButton":118,"zipNoVideoTip":119,"errorAnchorParse":120,"tabOffset":121,"tabAnchors":122,"tabFrameRate":123,"offsetLabel":124,"offsetUnit":125,"offsetHint":126,"anchorFirstSrc":127,"anchorFirstDst":128,"anchorLastSrc":129,"anchorLastDst":128,"anchorHint":130,"frameRateSrc":131,"frameRateDst":132,"frameRateHint":133,"previewTitle":134,"previewPlaceholderHint":135,"placeholderTag":136,"tabsPlaceholderHint":137,"downloadButton":138,"noCuesYet":139,"errorParseFailed":140,"errorEmpty":141,"errorAnchorOrder":142,"errorFrameRateInvalid":143,"tipNegativeShift":144,"faq1q":145,"faq1a":146,"faq2q":147,"faq2a":148,"faq3q":149,"faq3a":150,"faq4q":151,"faq4a":152,"faq5q":153,"faq5a":154},"Fix out-of-sync subtitles in seconds. Shift the entire file by ±N milliseconds, anchor the first and last cue to known timestamps for linear stretch, or rescale by frame rate. SRT, VTT, ASS, SBV, LRC.","SRT, VTT, ASS, SSA, SBV, LRC","Subtitle file","Optional: video for live preview","optional","Drop MP4 \u002F WebM \u002F MOV — used for local preview only, never uploaded","Remove video","The player overlay shows the adjusted cues — change the offset and watch them snap into place instantly.","Could not load this video. The browser may not support its codec.","Try the one-click demo","We synthesise a 5-second preview video and pair it with a subtitle that's deliberately 1 second early — so you can experience the off-by-one and the fix in one click.","Run the demo","Change file","Generating demo…","Demo generation failed. Please upload your own subtitle and video to try the tool.","Export","Download video + subtitle (.zip)","Upload or load the demo video first to enable ZIP export.","Anchor timestamps could not be parsed. Use HH:MM:SS,mmm.","Whole-file offset","Anchor first & last cue","Frame-rate convert","Shift by","ms (use negative to advance)","Quick presets:","First cue currently at","should appear at","Last cue currently at","Linear stretch is great when the head and tail drift by different amounts (typical OCR or wrong-frame-rate scenarios).","Source frame rate","Target frame rate","Use this when the video was conformed from one frame rate to another (e.g. 25 fps PAL → 23.976 fps NTSC).","Before → After","Upload a subtitle (or try the demo) to see the actual before-and-after timing diff for each cue here.","preview","Upload a subtitle (or try the demo) to enable these controls — adjustments preview live in the panel on the right.","Download fixed subtitle","Drop a subtitle file to see the cue list","Failed to parse this subtitle file. The encoding may not be UTF-8 or the syntax is malformed.","No subtitle cues were extracted. Please check the file.","The first cue's target time must be earlier than the last cue's target time.","Frame rates must be positive numbers.","Tip: subtitles ahead of the speech? Use a negative offset to push them back.","When do I use 'whole-file offset' vs 'anchor first & last'?","If subtitles are uniformly N seconds early or late everywhere — use whole-file offset. If they start fine but drift further off as the movie goes on — use anchor first & last (linear stretch). The anchor mode handles 'wrong frame rate' subtitles perfectly.","What frame rates are supported?","Presets cover 23.976, 24, 25, 29.97, 30, 50 and 60 fps. You can also enter any custom positive number. The most common 'wrong frame rate' issue is PAL 25 fps subtitles played on NTSC 23.976 fps video — anchor mode or 25→23.976 frame-rate convert both fix it.","Will offsetting in milliseconds break my subtitle precision?","No. SRT and VTT store milliseconds (3 decimal digits), so ±1 ms granularity is exact. ASS and LRC store hundredths of a second (centiseconds, 2 digits), so they round to the nearest 10 ms when exported — that's still well below the human perception threshold of ~50 ms.","Can I undo a wrong adjustment?","Yes. The 'Before' panel keeps your original cues throughout the session. You can re-apply any adjustment as many times as you want without re-uploading; the result always recomputes from the original.","Does this work for ASS subtitles with custom styles?","Yes — only the timing of each Dialogue line is touched. Style definitions, fonts, colors, positioning, animation tags and karaoke effects all pass through unchanged.",{"zh":156,"en":170},[157,160,163,166],{"icon":158,"title":67,"desc":159},"lucide:timer-reset","一键 ±N 毫秒平移，含常用预设和负数提前",{"icon":161,"title":68,"desc":162},"lucide:move-horizontal","校准首尾两条时间，中间字幕按线性插值，修「渐进漂移」最快",{"icon":164,"title":69,"desc":165},"lucide:gauge","23.976\u002F24\u002F25\u002F29.97\u002F30\u002F50\u002F60 互换，修「错版字幕」",{"icon":167,"title":168,"desc":169},"lucide:shield","保留 ASS 样式","只动 Dialogue 时间字段，字体\u002F颜色\u002F动画\u002F卡拉 OK 全保留",[171,174,177,180],{"icon":158,"title":172,"desc":173},"Whole-File Offset","One-click ±N ms shift with handy presets, negative for advance",{"icon":161,"title":175,"desc":176},"Anchor First & Last","Pin head & tail; everything between scales linearly — fastest fix for drift",{"icon":164,"title":178,"desc":179},"Frame-Rate Convert","23.976\u002F24\u002F25\u002F29.97\u002F30\u002F50\u002F60 conversion — fixes \"wrong-cut\" subtitles",{"icon":167,"title":181,"desc":182},"ASS Styling Preserved","Only Dialogue timing changes — fonts, colors, animations, karaoke all kept",{"zh":184,"en":197},[185,189,193],{"icon":186,"title":187,"desc":188},"lucide:upload","上传字幕文件","上传需要调整同步的字幕文件",{"icon":190,"title":191,"desc":192},"lucide:sliders-horizontal","调整时间偏移","输入全局时间偏移量，或对特定段落分别调整",{"icon":194,"title":195,"desc":196},"lucide:download","导出同步字幕","下载时间轴调整后的字幕文件",[198,201,204],{"icon":186,"title":199,"desc":200},"Upload Subtitle File","Upload the subtitle file that needs timing adjustment",{"icon":190,"title":202,"desc":203},"Adjust Time Offset","Enter a global time shift or adjust specific segments individually",{"icon":194,"title":205,"desc":206},"Export Synced Subtitles","Download the subtitle file with corrected timestamps",{"zh":208,"en":230},[209,213,216,220,224,227],{"icon":210,"title":211,"desc":212},"lucide:clock","修复整体字幕偏移","字幕整体提前或延迟时，一键全局偏移校正同步",{"icon":194,"title":214,"desc":215},"对齐下载的字幕","将网上找到的字幕文件与本地视频重新同步对齐",{"icon":217,"title":218,"desc":219},"lucide:languages","同步翻译字幕时间轴","将翻译完成的字幕的时间轴与原版字幕对齐",{"icon":221,"title":222,"desc":223},"lucide:film","修正剪辑后时间轴","视频剪辑导致字幕错位后，重新同步字幕时间轴",{"icon":190,"title":225,"desc":226},"分段精细调整","对字幕中的特定段落单独调整，精确修正局部偏移",{"icon":217,"title":228,"desc":229},"校准多语言字幕轨道","对多种语言的字幕文件统一校准时间轴，确保多语版本同步一致",[231,234,237,240,243,246],{"icon":210,"title":232,"desc":233},"Fix Global Subtitle Offset","When subtitles are consistently early or late, apply a global time shift in one click",{"icon":194,"title":235,"desc":236},"Sync Downloaded Subtitles","Re-align subtitle files found online to match your local video timing",{"icon":217,"title":238,"desc":239},"Align Translated Subtitles","Sync translated subtitle timestamps to match the original subtitle track",{"icon":221,"title":241,"desc":242},"Fix Post-Edit Timing","Re-sync subtitle timelines that shifted after video editing or trimming",{"icon":190,"title":244,"desc":245},"Fine-Tune Specific Segments","Adjust individual subtitle segments separately to fix localized timing drift",{"icon":217,"title":247,"desc":248},"Calibrate Multilingual Tracks","Align subtitle timelines across multiple language files so all versions stay in sync",{"zh":250,"en":251},"\u003Ch2>字幕音画不同步：2026 年最常见的 4 种成因\u003C\u002Fh2>\n\u003Cp>下载的字幕跟视频对不上是再常见不过的痛点。MeTool 字幕同步工具针对其中\u003Cstrong>纯时间偏移类\u003C\u002Fstrong>的不同步做修正（占实际场景 80%+），不需要重新听写、不需要 AI 重新对齐，几秒钟修好。\u003C\u002Fp>\n\u003Cp>四种常见成因 + 对应的修复策略：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>整体延迟 \u002F 提前一致量\u003C\u002Fstrong>（最常见，约 60% 场景）— 字幕从头到尾都晚 2.3 秒。\u003Cstrong>用「整体偏移」\u003C\u002Fstrong>，输入 -2300 ms 即可。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>视频前面有片头被剪掉了\u003C\u002Fstrong> — 字幕开头早，越往后越同步。\u003Cstrong>用「整体偏移」\u003C\u002Fstrong>负值。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>下载的字幕基于 25 fps PAL 版，本地是 23.976 fps NTSC 版\u003C\u002Fstrong>（约 25% 场景）— 开头还行，越往后越偏。\u003Cstrong>用「帧率换算」\u003C\u002Fstrong> 25 → 23.976。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OCR 字幕偏差不规则\u003C\u002Fstrong>（约 10% 场景）— 来自硬字幕 OCR，前后两点漂移量不同。\u003Cstrong>用「首尾对齐」\u003C\u002Fstrong>，分别校准第一条和最后一条字幕到正确时间，中间的 cue 自动按线性插值。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>剩下的复杂场景（说话节奏与字幕完全不匹配）需要专业字幕编辑器逐句重对齐，不在本工具范围。\u003C\u002Fp>\n\u003Ch2>为什么「首尾对齐」是最被低估的功能\u003C\u002Fh2>\n\u003Cp>大多数字幕同步工具只提供「整体偏移」（shift），但有一类不同步问题\u003Cstrong>整体偏移修不了\u003C\u002Fstrong>：开头几句对齐了，到了 30 分钟时却差 5 秒，到 60 分钟差了 10 秒。\u003C\u002Fp>\n\u003Cp>这种「\u003Cstrong>渐进式漂移\u003C\u002Fstrong>」通常源于：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>字幕基于 PAL 25 fps 版本，视频是 NTSC 23.976 fps（速度差约 4.3%）\u003C\u002Fli>\n\u003Cli>视频经过加速\u002F减速处理（剪辑软件改速没同步改字幕）\u003C\u002Fli>\n\u003Cli>OCR 提取的字幕，首尾误差累积\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>这类情况下需要的是\u003Cstrong>线性拉伸\u003C\u002Fstrong>而非平移：把第一条 cue 拉到目标位置 A、最后一条 cue 拉到目标位置 B，中间所有 cue 按比例插值。MeTool 的「首尾对齐」就是干这个的。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>实操建议\u003C\u002Fstrong>：先播放视频找到第一句台词的真实出现时间（例如 00:00:08,500），再找到最后一句的时间（例如 01:32:15,200），分别填入「应当出现在」字段。整个文件即可一次性校准到位，比逐句调精确得多也快得多。\u003C\u002Fp>\n\u003Ch2>帧率换算：被忽视的「错版字幕」修复方案\u003C\u002Fh2>\n\u003Cp>同一部影片在不同地区有不同帧率版本：欧洲 PAL 25 fps、北美 NTSC 23.976 fps、电影院数字版 24 fps。如果\u003Cstrong>字幕和视频帧率不匹配\u003C\u002Fstrong>，就会出现匀速漂移 — 总时长越长，末尾偏差越大。\u003C\u002Fp>\n\u003Cp>典型例子：从字幕站下载的字幕标的是「BluRay 24 fps」，但你的视频是「WEB-DL 23.976 fps」。这两者每帧差 0.024\u002F24 ≈ 0.1%，听起来可以忽略，但对一部 2 小时电影意味着累计 8 秒偏差 — 字幕末尾比说话快 8 秒。\u003C\u002Fp>\n\u003Cp>MeTool 提供 7 个常用帧率预设：23.976、24、25、29.97、30、50、60。识别字幕和视频的帧率：\u003C\u002Fp>\n\u003Col>\n\u003Cli>字幕来源：从字幕文件名（如 \u003Ccode>The.Movie.2024.1080p.BluRay.x264-RARBG.srt\u003C\u002Fcode> 暗示 BluRay 通常是 23.976 或 24）或字幕站说明判断\u003C\u002Fli>\n\u003Cli>视频实际帧率：用任意视频信息工具查，如 macOS 的「显示简介」、MediaInfo、VLC 的「编码细节」\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>例如「字幕 25 fps、视频 23.976 fps」就把源帧率填 25、目标帧率填 23.976，所有 cue 时间会乘以 25\u002F23.976 ≈ 1.0427，整体被「拉长」补偿快了的字幕。\u003C\u002Fp>\n\u003Ch2>保留 ASS 复杂样式：调时间不毁特效\u003C\u002Fh2>\n\u003Cp>ASS 字幕之所以受动漫字幕组喜爱，是因为它支持完整的样式定义：自定义字体、彩色描边、动画、卡拉 OK 高亮、定位标签 \u003Ccode>\\\\pos\u003C\u002Fcode>、淡入淡出 \u003Ccode>\\\\fad\u003C\u002Fcode>。如果一个工具在「修时间」时把这些样式也擦掉了，等于\u003Cstrong>把字幕组几小时的工作毁掉\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>MeTool 字幕同步工具对 ASS 的处理是\u003Cstrong>外科手术式\u003C\u002Fstrong>的：只重新计算每条 Dialogue 行的 Start 和 End 字段，\u003Ccode>[Script Info]\u003C\u002Fcode>、\u003Ccode>[V4+ Styles]\u003C\u002Fcode>、\u003Ccode>[Fonts]\u003C\u002Fcode>、\u003Ccode>[Graphics]\u003C\u002Fcode> 全部原样透传。Style 定义、字体表、PrimaryColour、Outline 颜色、KaraokeTimer、特效标签 — 一字不动。\u003C\u002Fp>\n\u003Cp>这意味着你可以放心地：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>对动漫字幕组的成品 ASS 做整体偏移修同步\u003C\u002Fli>\n\u003Cli>对包含 OP\u002FED 卡拉 OK 特效的 ASS 做帧率换算（比如把 BD 版字幕用到 WEB 版上）\u003C\u002Fli>\n\u003Cli>对硬字幕 OCR 出来又手工加了样式的 ASS 做首尾对齐\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>所有原样式 100% 保留，只有时间被改。SRT\u002FVTT\u002FSBV\u002FLRC 不存样式，所以这一节专门针对 ASS。\u003C\u002Fp>\n","\u003Ch2>Out-of-Sync Subtitles: The 4 Most Common Causes in 2026\u003C\u002Fh2>\n\u003Cp>Downloaded subtitles that don't match the video are an eternal pain. MeTool's subtitle sync tool targets the \u003Cstrong>pure-timing-mismatch\u003C\u002Fstrong> family of problems (which is 80%+ of real-world cases) — no re-transcription, no AI re-alignment needed, fixed in seconds.\u003C\u002Fp>\n\u003Cp>The four common causes and their fixes:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Uniform delay or advance\u003C\u002Fstrong> (most common, ~60% of cases) — every cue is 2.3 seconds late. \u003Cstrong>Use &quot;whole-file offset&quot;\u003C\u002Fstrong> with -2300 ms.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Video has its intro removed\u003C\u002Fstrong> — subs are early at the start, eventually drift in sync. \u003Cstrong>Use whole-file offset\u003C\u002Fstrong> with a negative value.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Subtitles based on PAL 25 fps but your video is NTSC 23.976 fps\u003C\u002Fstrong> (~25% of cases) — fine at the beginning, drifts further off as the movie goes on. \u003Cstrong>Use &quot;frame-rate convert&quot;\u003C\u002Fstrong> 25 → 23.976.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OCR subtitles with irregular drift\u003C\u002Fstrong> (~10% of cases) — extracted from hardsubs, head and tail drift by different amounts. \u003Cstrong>Use &quot;anchor first &amp; last&quot;\u003C\u002Fstrong> — calibrate the first and last cue to their correct times; everything between is interpolated linearly.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Anything more complex (speech rhythm completely mismatched with the subtitles) needs a proper subtitle editor for line-by-line re-alignment, which is outside this tool's scope.\u003C\u002Fp>\n\u003Ch2>Why &quot;Anchor First &amp; Last&quot; Is the Most Underrated Mode\u003C\u002Fh2>\n\u003Cp>Most subtitle sync tools only offer &quot;whole-file shift,&quot; but a class of mismatch problems \u003Cstrong>shift can't fix\u003C\u002Fstrong>: opening lines are aligned, by 30 minutes the gap is 5 seconds, by 60 minutes it's 10 seconds.\u003C\u002Fp>\n\u003Cp>This \u003Cstrong>progressive drift\u003C\u002Fstrong> usually comes from:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Subs based on the PAL 25 fps version, video is NTSC 23.976 fps (~4.3% speed difference)\u003C\u002Fli>\n\u003Cli>Video has been speed-adjusted in an editor without re-syncing the subs\u003C\u002Fli>\n\u003Cli>OCR'd subs where head-to-tail error accumulates\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>What's needed here is \u003Cstrong>linear stretching\u003C\u002Fstrong>, not a shift: pull the first cue to position A, pull the last cue to position B, and let everything between scale proportionally. That's exactly what MeTool's &quot;anchor first &amp; last&quot; does.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Practical tip:\u003C\u002Fstrong> play the video, find the real timestamp of the first spoken line (e.g. 00:00:08,500) and the last (e.g. 01:32:15,200), and put those in the &quot;should appear at&quot; fields. The whole file calibrates in one pass — far more accurate and far faster than tweaking line by line.\u003C\u002Fp>\n\u003Ch2>Frame-Rate Conversion: The Underused Fix for &quot;Wrong-Cut&quot; Subtitles\u003C\u002Fh2>\n\u003Cp>The same film exists in different frame rates by region: PAL 25 fps in Europe, NTSC 23.976 fps in North America, theatrical DCP at 24 fps. When \u003Cstrong>subtitle frame rate doesn't match video frame rate\u003C\u002Fstrong>, you get linear drift — the longer the runtime, the worse the end-of-movie offset.\u003C\u002Fp>\n\u003Cp>Classic example: subs from a fansub site labeled &quot;BluRay 24 fps&quot; played against your &quot;WEB-DL 23.976 fps&quot; rip. The 0.024\u002F24 ≈ 0.1% per-frame difference sounds negligible, but for a 2-hour movie that's an 8-second cumulative error — subs end up 8 seconds ahead of the speech.\u003C\u002Fp>\n\u003Cp>MeTool offers seven common frame-rate presets: 23.976, 24, 25, 29.97, 30, 50, 60. Identify your subs and your video's frame rates:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Subtitle frame rate: from the file name (e.g. \u003Ccode>The.Movie.2024.1080p.BluRay.x264-RARBG.srt\u003C\u002Fcode> implies 23.976 or 24) or the source site's notes\u003C\u002Fli>\n\u003Cli>Video frame rate: any media inspector — macOS Get Info, MediaInfo, VLC's &quot;Codec Information&quot;\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>For &quot;subs 25 fps, video 23.976 fps&quot;, set source = 25 and target = 23.976. Every cue's time gets multiplied by 25\u002F23.976 ≈ 1.0427, stretching the file to compensate for the too-fast subs.\u003C\u002Fp>\n\u003Ch2>Preserving Complex ASS Styling While Fixing Timing\u003C\u002Fh2>\n\u003Cp>ASS is beloved by fansub groups because it carries full styling: custom fonts, colored outlines, animations, karaoke highlights, positioning tags like \u003Ccode>\\\\pos\u003C\u002Fcode>, fade tags like \u003Ccode>\\\\fad\u003C\u002Fcode>. A tool that wipes that styling while &quot;fixing the timing&quot; effectively \u003Cstrong>throws away hours of fansub work\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>MeTool's subtitle sync handles ASS \u003Cstrong>surgically\u003C\u002Fstrong>: only the Start and End fields of each Dialogue line are recomputed; \u003Ccode>[Script Info]\u003C\u002Fcode>, \u003Ccode>[V4+ Styles]\u003C\u002Fcode>, \u003Ccode>[Fonts]\u003C\u002Fcode>, \u003Ccode>[Graphics]\u003C\u002Fcode> all pass through verbatim. Style definitions, font tables, PrimaryColour, Outline color, KaraokeTimer, override tags — every byte is preserved.\u003C\u002Fp>\n\u003Cp>Which means you can confidently:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Apply a whole-file offset to a finished fansub ASS\u003C\u002Fli>\n\u003Cli>Frame-rate convert an ASS that contains OP\u002FED karaoke effects (e.g. BluRay subs onto a WEB rip)\u003C\u002Fli>\n\u003Cli>Anchor-align hardsub-OCR'd ASS that you've manually styled\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Original styling stays 100% intact — only the timing changes. SRT\u002FVTT\u002FSBV\u002FLRC don't carry styling, so this section is specific to ASS.\u003C\u002Fp>\n",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":253},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":255},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":257},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>\u003Cpath d=\"m7 10l5 5l5-5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":259},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"5\" x=\"2\" y=\"3\" rx=\"1\"\u002F>\u003Cpath d=\"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8m-10 4h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":261},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":263},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 6v6l4 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":265},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m5 8l6 6m-7 0l6-6l2-3M2 5h12M7 2h1m14 20l-5-10l-5 10m2-4h6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":267},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 2h4m-2 12v-4m-8 3a8 8 0 0 1 8-7a8 8 0 1 1-5.3 14L4 17.6\"\u002F>\u003Cpath d=\"M9 17H4v5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":269},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 14l4-4M3.34 19a10 10 0 1 1 17.32 0\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":271},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":273},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3v12m5-7l-5-5l-5 5m14 7v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":275},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":277},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 6a3 3 0 1 0 6 0a3 3 0 0 0-6 0m18 5V8a2 2 0 0 0-2-2h-6l3 3m0-6l-3 3M3 13v3a2 2 0 0 0 2 2h6l-3-3m0 6l3-3m4 0a3 3 0 1 0 6 0a3 3 0 0 0-6 0\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":279},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":281},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m16 13l5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\"\u002F>\u003Crect width=\"14\" height=\"12\" x=\"2\" y=\"6\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":283},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3v14m-7-7h14M5 21h14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":285},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"14\" x=\"3\" y=\"5\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M7 15h4m4 0h2M7 11h2m4 0h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":287},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":289},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 8l4 4l-4 4M2 12h20M6 8l-4 4l4 4\"\u002F>",1782799335789]