1import{d as re,a as i,c as v,b as s,t as d,_ as ne,ac as ve,l as f,r as b,W as je,o as Oe,U as fe,B as Ie,s as e,n as oe,q as x,C as u,j as y,e as W,N as ze,F as K,a1 as U,ae as Be,w as V,z as de}from"./critical-vue-CZQjYwKS.js";import{d as Ne}from"./ic20_close_cur_color-COY_7KEK.js";import{B as ke,_ as _e,c as Te}from"./ui-base-BuG8bzRC.js";import{M as ie,P as Le,j as Ue,k as ue}from"./ui-controls-T-__jfQM.js";import{n as We,A as Pe,aa as He,t as Se}from"./core-lib-DCmmAtCR.js";import{aF as Ge,k as qe,P as Ze}from"./entry-KuY_qWS0.js";import"./vendor-crypto-DC0MXYmy.js";import{A as pe}from"./prompt-empty-C8n1BCnp.js";import{z as Je,c as Xe,f as Ye,g as Ke,E as Qe,S as et,L as tt}from"./ui-image-DzSxbhVo.js";import{u as st}from"./useSaveProject-Bok8JcXF.js";import{b as Ce,u as at,E as j}from"./adjust-CXZLGFYV.js";import{_ as ot,F as Me,f as it,i as rt,u as nt}from"./FilmoraDownloadPopup-BTLemL36.js";import{u as lt}from"./useWorkFlowApi-DXODcGNC.js";import{F as Q,u as ct}from"./ic20_crop_reset-e55NEz84.js";import{u as dt}from"./useTaskOperate-DAXVddYF.js";import{u as ut,a as pt,T as Ee}from"./useEpisodeExportList-Cvourr4M.js";import{_ as mt}from"./useCreditFlow-C-vbIR4u.js";import{I as ft}from"./imageApi-CA1PWc_8.js";import"./vendor-vueuse-BBEKLlfY.js";import"./vendor-lodash-wskFctIC.js";import"./vendor-date-query-BQWrQNSf.js";import"./ic16_confirm-C8ZDGyeR.js";import"./vendor-web-vitals-D8cA-W4R.js";import"./ic16_more_images-CJra_KiY.js";import"./ic20_order-Dk_jjPr2.js";import"./FolderIconAnimated.vue-CwMxdKsQ.js";import"./vendor-gsap-Bc0iluX2.js";import"./icon20_upload_doc-Cjw-4zU7.js";import"./projectInfoCache-BFG3b00f.js";import"./user-settings-Dnb9TJPb.js";import"./exclamation-circle-filled-DCt3J3V6.js";import"./index-f0X-GavW.js";import"./scene-BoOGwM50.js";import"./agentOfflineCopy-EZ9UlUdl.js";import"./image40_default_image-4-kkGN9L.js";import"./icon16_props-D2K7vwAF.js";import"./agent-redirect-BEW7TIQI.js";import"./icon20_cloudsync-Da3pfhE9.js";import"./vendor-jszip-bjYjvgly.js";import"./SmartMedia.vue-ClZVq8zB.js";import"./index-BawBRWkm.js";import"./zIndex-Br8WNv4e.js";import"./icon20_skill-CzfsHLpg.js";import"./cn-only-oyAb0Toe.js";import"./useSourceScripts-BYiXL5bH.js";import"./useEffectiveTaskFailType-ReVoZIwD.js";import"./ic20_share-Co7N8Ljv.js";import"./canvas-at37b5fb.js";import"./task-J0ppVtSU.js";const _t={class:"size-full flex-center flex-col gap-2"},vt={class:"empty-text text-sm text-center"},gt=re({__name:"Empty",props:{currentTab:{default:"materials"}},setup(n){return(w,r)=>(i(),v("div",_t,[r[0]||(r[0]=s("img",{src:Ge,alt:"",class:"w-40 h-30"},null,-1)),s("div",vt,d(n.currentTab==="materials"?w.$t("editor.export_empty_material"):n.currentTab==="timeline"?w.$t("editor.export_empty_timeline"):w.$t("episode.export.empty_filmora")),1)]))}}),me=Object.assign(ne(gt,[["__scopeId","data-v-2b4eb582"]]),{__name:"SeriesManageExportListEmpty"});function xt(n){return n?n.split(",").map(w=>w.trim()).filter(Boolean):[]}const yt={class:"export-video-item"},ht={class:"export-video-item-thumb"},bt=["src"],wt=["src"],kt={class:"export-video-info"},Tt={class:"export-status-info"},St=re({__name:"ExportVideoItem",props:{item:{},currentTab:{default:"materials"}},emits:["regenerate"],setup(n,{emit:w}){const r=n,A=w,m=We(),C=Ce(),{t:T}=ve(),{downloadHandle:O}=dt(),{isGenerated:l,isFailed:a,displayDate:S,exportedText:E,getExportDetails:$,disabledRetry:H,errorText:z}=ut(ze(r,"item")),{retryExport:G,retrying:M}=pt(),ee=b(1/0),_=f(()=>{const P=$(r.item.export_scope),X=xt(r.item.desc).join(Pe.isCN?"ã":", ");return[P,X].filter(Boolean).join(" · ")}),k=f(()=>r.currentTab==="materials"),I=f(()=>R.value?"animate-spin":""),te=f(()=>k.value?!a.value:l.value&&r.item.thumb),se=f(()=>k.value?Je:r.item.thumb),g=f(()=>k.value?Xe:a.value?Ye:Ke),L=f(()=>H.value||M.value),ae=f(()=>k.value?(r.item.countdown??0)<0:!1),R=b(!1),B=b(null),q=b(!1),p=b(null),le=b(!1),F=()=>{B.value&&(q.value=B.value.scrollWidth>B.value.clientWidth)},h=()=>{p.value&&(le.value=p.value.scrollWidth>p.value.clientWidth)},Z=async()=>{if(L.value)return;await G(r.item)&&A("regenerate",r.item.task_id,r.item.export_id)},D=async()=>
1{if(k.value&&Date.now()>ee.value){r.item.countdown=-100,ke(T("episode.export.file_expired"),"error");return}if(R.value)return;R.value=!0;const P=ke(T("sky_media.downloading"),"loading",-1);try{He(C.markExportItemDownloaded(r.item.export_id)),await O({taskInfoId:r.item.task_id,taskId:r.item.task_id,noWatermark:m.isWatermarkCfgSetNo,assetName:r.item.name,taskType:"",downloadPosition:"reelflow_export_materials",fileId:r.item.file_id,needVipOnWatermark:!1})}finally{P.close(),R.value=!1}};je(()=>{ee.value=r.item.countdown*1e3+Date.now()});const J=()=>{F(),h()};return Oe(()=>{fe(()=>{F(),h()}),window.addEventListener("resize",J)}),Ie(()=>{window.removeEventListener("resize",J)}),(P,X)=>(i(),v("div",yt,[s("div",ht,[e(te)?(i(),v("img",{key:0,class:oe(e(k)?"zip-icon":"thumbnail"),src:e(se),alt:""},null,10,bt)):(i(),v("img",{key:1,class:oe(["placeholder-icon",{"zip-icon":e(k)}]),src:e(g),alt:""},null,10,wt))]),s("div",kt,[x(e(ie),{content:n.item.name,placement:"top",disabled:!e(q)},{default:u(()=>[s("div",{ref_key:"titleRef",ref:B,class:"title-wrap"},d(n.item.name),513)]),_:1},8,["content","disabled"]),x(e(ie),{content:e(_),placement:"top",disabled:!e(le)},{default:u(()=>[s("div",{ref_key:"detailsRef",ref:p,class:"text-xs text-(--texticon-general-quinary) truncate"},d(e(_)),513)]),_:1},8,["content","disabled"]),s("div",Tt,[s("div",{class:oe(["result-label",{"text-(--texticon-alert-error-normal)":e(a)}])},d(e(E)),3),s("div",null,d(e(a)?e(z):e(S)),1)])]),e(l)?(i(),y(Ee,{key:0,"use-icon-tips":"","is-disabled":e(ae)||e(R),icon:e(R)?"sky-media/btn-loading":"sky-media/ic20_download","icon-class":e(I),text:e(ae)?e(T)("episode.export.file_expired"):P.$t("project.download"),onClick:D},null,8,["is-disabled","icon","icon-class","text"])):e(a)?(i(),y(Ee,{key:1,useIconTips:"","is-disabled":e(L),text:P.$t("episode.export.retry"),icon:"sky-media/ic20_re_export",onClick:Z},null,8,["is-disabled","text"])):W("",!0)]))}}),$e=Object.assign(ne(St,[["__scopeId","data-v-88d8b9ec"]]),{__name:"SeriesManageExportListExportVideoItem"}),Et=`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2<path d="M16.4697 9.46973C16.6842 9.25525 17.0069 9.1906 17.2871 9.30664C17.5674 9.42273 17.75 9.69665 17.75 10C17.75 14.2802 14.2802 17.75 10 17.75C7.36575 17.75 5.03885 16.4347 3.63965 14.4287C3.4029 14.0891 3.48573 13.6217 3.8252 13.3848C4.16493 13.1478 4.63315 13.2316 4.87012 13.5713C6.00084 15.1921 7.87692 16.25 10 16.25C12.1486 16.25 14.044 15.1658 15.1689 13.514
26L14.2627 13.2119C14.0161 13.1297 13.8302 12.9249 13.7705 12.6719C13.7109 12.419 13.786 12.1535 13.9697 11.9697L16.4697 9.46973ZM10 2.25C12.6342 2.25 14.9612 3.56534 16.3604 5.57129C16.5971 5.91093 16.5143 6.37826 16.1748 6.61523C15.8351 6.85221 15.3669 6.76844 15.1299 6.42871C13.9992 4.80791 12.1231 3.75 10 3.75C7.85138 3.75 5.95595 4.83418 4.83105 6.48535L5.7373 6.78809C5.9839 6.87028 6.16977 7.07515 6.22949 7.32812C6.28907 7.58101 6.214 7.84655 6.03027 8.03027L3.53027 10.5303C3.31579 10.7448 2.99313 10.8094 2.71289 10.6934C2.43263 10.5773 2.25 10.3033 2.25 10C2.25 5.71979 5.71979 2.25 10 2.25Z" fill="white" fill-opacity="0.8"/> 3</svg> 4`,$t={class:"sync-video-item"},It={class:"sync-video-item__info"},Lt={class:"title"},Pt={class:"desc"},Ct={class:"status-row"},Mt={key:0,class:"status syncing"},Rt={class:"status success result-label"},Ft={class:"time"},At={class:"status failed result-label"},Dt={class:"failed-msg"},Vt={class:"sync-video-item__action"},jt={class:"action-icon-btn",type:"button"},Ot={class:"tip-wrap"},zt={class:"tip-title"},Bt={class:"tip-steps"},Nt={class:"tip-step"},Ut={class:"down-filmora"},Wt={class:"tip-step"},Ht=["src"],Gt={class:"retry-action-left-item icon-only"},qt=re({__name:"SyncVideoItem",props:{item:{}},emits:["retry"],setup(n,{emit:w}){const r=w,A=b(!1),{t:m}=ve(),C=l=>rt(l.status,l.failCode),T=l=>{const a=Number(l.failCode||0);return a===1||a===747126||a===747127?m("episode.export.filmora_fail_reason_retry"):a===2?m("episode.export.filmora_fail_reason_cloud_full"):a===747123?m("episode.export.filmora_fail_reason_contact_support"):l.failMsg||m("episode.export.status_unknown_error")},O=l=>{if(!l)return"--";const a=new Date(l),S=a.getFullYear(),E=String(a.getMonth()+1).padStart(2,"0"),$=String(a.getDate()).padStart(2,"0"),H=String(a.getHours()).padStart(2,"0"),z=String(a.getMinutes()).padStart(2,"0"),G=String(a.getSeconds()).padStart(2,"0");return`${S}-${E}-${$} ${H}:${z}:${G}`};return(l,a)=>(i(),v("div",$t,[a[3]||(a[3]=s("div",{class:"sync-video-item__thumb"},[s("img",{src:ot,class:"logo-placeholder",alt:""})],-1)),s("div",It,[s("div",Lt,d(n.item.episodeName),1),s("div",Pt,d(l.$t("episode.export.related_account"))+d(n.item.accountName),1),s("div",Ct,[n.item.status===e(Q).Syncing?(i(),v("span",Mt,d(l.$t("episode.export.filmora_syncing")),1)):n.item.status===e(Q).Success?(i(),v(K,{key:1},[s("span",Rt,d(l.$t("episode.export.filmora_synced")),1),s("span",Ft,d(O(n.item.createdAt)),1)],64)):(i(),v(K,{key:2},[s("span",At,d(l.$t("episode.export.filmora_sync_failed")),1),s("span",Dt,d(T(n.item)),1)],64))])]),s("div",Vt,[n.item.status===e(Q).Success?(i(),y(e(Le),{key:0,modelValue:e(A),"onUpdate:modelValue":a[0]||(a[0]=S=>U(A)?A.value=S:null),trigger:"hover",placement:"left","show-arrow":!1,"popup-class":"filmora-success-tip ignore-popup"},{trigger:u(()=>[s("button",jt,[x(e(_e),{name:"reelmate/ic20_info",size:"20",source:e(mt)},null,8,["source"])])]),"popup-content":u(()=>[s("div",Ot,[s("div",zt,d(l.$t("episode.export.filmora_view_result_guide_title")),1),s("div",Bt,[s("div",Nt,[s("span",null,d(l.$t("episode.export.filmora_view_result_step1_prefix")),1),x(Me,{placement:"bottom","teleport-disabled":!0},{default:u(()=>[s("span",Ut,d(l.$t("episode.export.filmora_download")),1)]),_:1})]),a[2]||(a[2]=s("div",{class:"tip-step-divider"},null,-1)),s("div",Wt,d(l.$t("episode.export.filmora_view_result_step2")),1)]),s("img",{class:"tip-image",src:e(it),alt:""},null,8,Ht)])]),_:1},8,["modelValue"])):C(n.item)?(i(),y(ft,{key:1,placement:"top",tips:l.$t("episode.export.retry"),onClick:a[1]||(a[1]=S=>r("retry",n.item.taskId))},{default:u(()=>[s("div",Gt,[x(e(_e),{name:"sky-media/ic20_re_export",class:"text-(--texticon-02hover)",size:"20",source:e(Et)},null,8,["source"])])]),_:1},8,["tips"])):W("",!0)])]))}}),Zt=Object.assign(ne(qt,[["__scopeId","data-v-cfd19b8f"]]),{__name:"SeriesManageExportListSyncVideoItem"}),Jt={class:"relative export-icon-container"},Xt=["src"],Yt={class:"video-list-container"},Kt={class:"title px-5"},Qt={class:"al-tab__content w-full h-full flex-center text-sm tab-content-disabled"},es={key:1,class:"al-tab__content w-full h-full flex-center text-sm"},ts={key:0,class:"mt-5 px-5 text-xs text-(--texticon-05assistant)"},ss={key:1,class:"flex items-center gap-2 mt-5 px-5 text-xs text-(--texticon-05assistant)"},as={class:"text-xs underline text-(--texticon-brand-pressed) curs
4or-pointer"},os=re({__name:"index",props:{scene:{default:"materials"},anchorEl:{default:null}},setup(n,{expose:w}){const{t:r}=ve(),{can:A}=qe(),m=Ce(),{materialsList:C,timelineList:T,materialsHasMore:O,timelineHasMore:l,materialsHasError:a,timelineHasError:S,materialsLoading:E,timelineLoading:$}=Be(m),{startPolling:H,stopPolling:z,addTask:G}=at({onSuccess:R,onError:B}),{spId:M,episodeDetail:ee}=lt(),_=st(),k=ct(),I=b(null),te=f(()=>I.value==="success"?2:I.value==="error"?3:m.inProgressMaterialTasks.length>0||m.inProgressTimelineTasks.length>0||ae.value?1:0),se=f(()=>({0:"",1:tt,2:et,3:Qe})[te.value]),g=f(()=>ee.value?.id),L=f(()=>{const t=g.value;return t?k.getEpisodeTasks(t):[]}),ae=f(()=>L.value.some(t=>t.status===Q.Syncing));function R(){I.value="success",Te({msg:r("editor.export_ready"),type:"success"})}function B(){I.value="error",Te({msg:r("episode.export.export_failed"),type:"error"})}const q=n,p=b(!1);w({open:()=>{p.value=!0}});const F=f(()=>!Pe.isCN),h=b(F.value?"materials":"filmora"),Z=b(!1),D=b(!1),J=f(()=>A(Ze.PROJECT_EXPORT)),{syncPollingTasks:P,clearPolling:X}=nt({onRefetch:async()=>{await he()}}),Re=f(()=>_.isPopExportListAndTimeline?"timeline":_.isPopExportListAndMaterials?"materials":!F.value&&_.isPopExportListAndFilmora?"filmora":q.scene),ge=()=>a.value?!1:O.value&&!E.value,xe=()=>S.value?!1:l.value&&!$.value,Fe=async()=>{if(!ge())return;const t=M.value;t&&(a.value?await m.retryLoad(t,j.StoryboardMaterial,g.value):await m.loadMore(t,j.StoryboardMaterial,g.value))},Ae=async()=>{if(await fe(),!xe())return;const t=M.value;t&&(S.value?await m.retryLoad(t,j.Timeline,g.value):await m.loadMore(t,j.Timeline,g.value))},ye=(t,c)=>{const o=[...C.value,...T.value].find(we=>we.task_id===t||we.export_id===c),ce=o?.scene_type===j.Timeline?"timeline_export":"material_export";Se.trackClick("episode_to_filmora_click_retry",{export_type:ce,episode_id:g.value||"",project_id:M.value,export_status:"fail",export_fail_reason:o?.fail_msg||""}),t&&c&&G(t,c)},De=t=>{const c=M.value;if(!c)return;const o=L.value.find(ce=>ce.taskId===t);Se.trackClick("episode_to_filmora_click_retry",{export_type:"sync_to_filmora",episode_id:g.value||"",project_id:c,export_status:o?.status===Q.PartialSuccess?"partial_success":"fail",export_fail_reason:o?.failMsg||""}),k.retryTask({taskId:t,spId:c,episodeId:g.value})},he=async()=>{const t=M.value;if(!(!t||!g.value)){D.value=!0;try{await k.fetchSyncRecords({spId:t,episodeId:g.value}),P(L.value)}finally{D.value=!1}}},N=async()=>{const t=M.value;if(!t)return;if(h.value==="filmora"){await he();return}const c=h.value==="materials"?j.StoryboardMaterial:j.Timeline;await H(t,c,g.value)},Y=async t=>{h.value!==t&&(Z.value=!0,h.value=t,await fe(),Z.value=!1)},be=t=>!J.value&&(t==="materials"||t==="timeline"),Ve=async t=>!be(t);return V(p,async t=>{if(I.value!==null&&(I.value=null),t){const c=J.value?Re.value:F.value?"materials":"filmora";await Y(c),await N()}else _.isPopExportListAndTimeline=!1,_.isPopExportListAndMaterials=!1,_.isPopExportListAndFilmora=!1}),V(h,async()=>{p.value&&(Z.value||await N())}),V(()=>q.scene,async t=>{_.isPopExportListAndTimeline||_.isPopExportListAndMaterials||_.isPopExportListAndFilmora||(await Y(t),p.value&&await N())}),V(()=>_.isPopExportListAndTimeline,async t=>{if(t){if(p.value){await Y("timeline"),await N();return}p.value=!0}},{immediate:!0}),V(()=>_.isPopExportListAndMaterials,async t=>{if(t){if(p.value){await Y("materials"),await N();return}p.value=!0}}),V(()=>_.isPopExportListAndFilmora,async t=>{if(!(!t||F.value)){if(p.value){await Y("filmora"),await N();return}p.value=!0}}),V(g,(t,c)=>{!t||t===c||(z(),X(),m.clearLists(),I.value=null)}),Ie(()=>{X(),z(),m.clearLists()}),(t,c)=>(i(),y(e(Le),{modelValue:e(p),"onUpdate:modelValue":c[4]||(c[4]=o=>U(p)?p.value=o:null),placement:"bottom-right",trigger:n.anchorEl?"manual":"click","popup-class":"py-5! px-0! w-[560px]! h-[524px]! bg-(--background-13bgsolid)! border border-(--divider-8)","show-arrow":!1,"virtual-triggering":!!n.anchorEl,"virtual-ref":n.anchorEl},{trigger:u(()=>[x(e(ie),{content:t.$t("editor.export_task_history"),placement:"top"},{default:u(()=>[s("div",Jt,[e(se)?(i(),v("img",{key:0,class:oe(["absolute top-0 right-0",{"animate-spin":e(te)===1}]),src:e(se),width:"12",height:"12",alt:"status icon"},null,10,Xt)):W("",!0),x(e(_e),{class:"cursor-pointer",name:"sky-media/ic24_task_bar",width:"24",height:"24",source:e(Ne)},null,8,["source"])])]),_:1},8,["content"])]),"popup-content":u(()=>[s("div",Yt,[s("div",Kt,d(t.$t("editor.export_task_history")),1),x(e(Ue),{modelValue:e(h),"onUpdate:modelValue":c[3]||(c[3]=o=>
4U(h)?h.value=o:null),"before-change":Ve,block:"",class:"flex-1 gap-5 overflow-hidden"},{tab:u(({tab:o})=>[be(o.name)?(i(),y(e(ie),{key:0,content:t.$t("permission.noPermission"),placement:"top"},{default:u(()=>[s("div",Qt,d(o.label),1)]),_:2},1032,["content"])):(i(),v("div",es,d(o.label),1))]),default:u(()=>[x(e(ue),{label:t.$t("episode.export.materials"),name:"materials",class:"pl-5 pr-1"},{default:u(()=>[x(e(pe),{loading:e(E),"onUpdate:loading":c[0]||(c[0]=o=>U(E)?E.value=o:null),"on-load-more":Fe,"can-load-more":ge,"show-finish-text":!1,"show-bottom":e(O),class:"item-wrap scrollbar-thin-6"},{default:u(()=>[e(C)&&e(C).length>0?(i(!0),v(K,{key:0},de(e(C),o=>(i(),y($e,{key:o.task_id,item:o,"current-tab":"materials",onRegenerate:ye},null,8,["item"]))),128)):e(E)?W("",!0):(i(),y(me,{key:1,currentTab:"materials"}))]),_:1},8,["loading","show-bottom"])]),_:1},8,["label"]),e(F)?W("",!0):(i(),y(e(ue),{key:0,label:t.$t("episode.export.filmora_sync_tab"),name:"filmora",class:"pl-5 pr-1"},{default:u(()=>[x(e(pe),{loading:e(D),"onUpdate:loading":c[1]||(c[1]=o=>U(D)?D.value=o:null),"show-finish-text":!1,"show-bottom":!1,class:"item-wrap scrollbar-thin-6"},{default:u(()=>[e(L)&&e(L).length>0?(i(!0),v(K,{key:0},de(e(L),o=>(i(),y(Zt,{key:o.taskId,item:o,onRetry:De},null,8,["item"]))),128)):(i(),y(me,{key:1,currentTab:"filmora"}))]),_:1},8,["loading"])]),_:1},8,["label"])),x(e(ue),{label:t.$t("episode.export.timeline"),name:"timeline",class:"pl-5 pr-1"},{default:u(()=>[x(e(pe),{loading:e($),"onUpdate:loading":c[2]||(c[2]=o=>U($)?$.value=o:null),"on-load-more":Ae,"can-load-more":xe,"show-finish-text":!1,"show-bottom":e(l),class:"item-wrap scrollbar-thin-6"},{default:u(()=>[e(T)&&e(T).length>0?(i(!0),v(K,{key:0},de(e(T),o=>(i(),y($e,{key:o.task_id,item:o,"current-tab":"timeline",onRegenerate:ye},null,8,["item"]))),128)):e($)?W("",!0):(i(),y(me,{key:1,currentTab:"timeline"}))]),_:1},8,["loading","show-bottom"])]),_:1},8,["label"])]),_:1},8,["modelValue"]),e(h)!=="filmora"?(i(),v("div",ts,d(t.$t("episode.export.task_tips")),1)):(i(),v("div",ss,[s("span",null,d(t.$t("episode.export.filmora_download_tip")),1),x(Me,{placement:"bottom"},{default:u(()=>[s("span",as,d(t.$t("episode.export.filmora_download")),1)]),_:1})]))])]),_:1},8,["modelValue","trigger","virtual-triggering","virtual-ref"]))}}),ea=Object.assign(ne(os,[["__scopeId","data-v-6d745b61"]]),{__name:"SeriesManageExportList"});export{ea as default};
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.