ema-lightning / assets /playhead.svg
suryatmodulus's picture
Duplicate from canberkkkkkk/ema-lightning
49f93cc
|
Raw History Blame Contribute Delete
30.4 kB
<svg xmlns="http://www.w3.org/2000/svg" width="2000" height="820" viewBox="0 0 2000 820" xmlns:c2pa="http://c2pa.org/manifest"><metadata><c2pa:manifest>AAAWgmp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAABZcanVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo2YjA3N2Y1Yi0zOTM2LTRlYjktOGUyMi1iOWM0NmQ4NDBkZmQAAAADl2p1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAALxqdW1iAAAARGp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuaW5ncmVkaWVudC52MwAAAAAYYzJzaPwxCFp1woFC8NQnygQ4K1kAAABwY2JvcqNpZGM6Zm9ybWF0bWltYWdlL3N2Zyt4bWxqaW5zdGFuY2VJRHgseG1wOmlpZDplNTY4MDJhMi1kYzc3LTRjOGYtYWU1My02Y2IyMGYzZGVkMGRscmVsYXRpb25zaGlwaHBhcmVudE9mAAAB4mp1bWIAAABBanVtZGNib3IAEQAQgAAAqgA4m3ETYzJwYS5hY3Rpb25zLnYyAAAAABhjMnNoWAd9EbKJdIAFVK204GdveQAAAZljYm9yomdhY3Rpb25zgqJmYWN0aW9ua2MycGEub3BlbmVkanBhcmFtZXRlcnOha2luZ3JlZGllbnRzgaJjdXJseC1zZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmluZ3JlZGllbnQudjNkaGFzaFggPu3gR72wVlHNU/p5+3I56BcEXqQ49NhnuN6vGiFSPAKkZmFjdGlvbngdY29tLmFudGhyb3BpYy5jbGF1ZGUucHJvdmlkZWRqcGFyYW1ldGVyc6F4H2NvbS5hbnRocm9waWMub3JpZ2luLWNvbmZpZGVuY2VndW5rbm93bmtkZXNjcmlwdGlvbnhmQ2xhdWRlIHByb3ZpZGVkIHRoaXMgZmlsZSBhdCB0aGUgcmVxdWVzdCBvZiBhIHVzZXIgYW5kIG1heSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgdGhlIGZpbGUgY29udGVudHMubXNvZnR3YXJlQWdlbnShZG5hbWVmQ2xhdWRlcmFsbEFjdGlvbnNJbmNsdWRlZPUAAADIanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaNYFBFojqPYB9IwrG0YjDzEAAACAY2JvcqVjYWxnZnNoYTI1NmNwYWRNAAAAAAAAAAAAAAAAAGRoYXNoWCB36aPPSQuJhlrfGJZarEo0tC4u6FPxwtOuI2oxAwv232RuYW1lbmp1bWJmIG1hbmlmZXN0amV4Y2x1c2lvbnOBomVzdGFydBiYZmxlbmd0aBkeBAAAAj5qdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAACD2Nib3KlY2FsZ2ZzaGEyNTZpc2lnbmF0dXJleE1zZWxmI2p1bWJmPS9jMnBhL3VybjpjMnBhOjZiMDc3ZjViLTM5MzYtNGViOS04ZTIyLWI5YzQ2ZDg0MGRmZC9jMnBhLnNpZ25hdHVyZWppbnN0YW5jZUlEeCx4bXA6aWlkOjY0NDBlYWNmLWFjZmYtNGYyOS1iYmFhLTEzM2I3ODE1OTg2MHJjcmVhdGVkX2Fzc2VydGlvbnODomN1cmx4LXNlbGYjanVtYmY9YzJwYS5hc3NlcnRpb25zL2MycGEuaW5ncmVkaWVudC52M2RoYXNoWCA+7eBHvbBWUc1T+nn7cjnoFwRepDj02Ge43q8aIVI8AqJjdXJseCpzZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmFjdGlvbnMudjJkaGFzaFggUL4aWQCnR5KcJBgHIw5m52Igo952xXQ7Wt79A3diA16iY3VybHgpc2VsZiNqdW1iZj1jMnBhLmFzc2VydGlvbnMvYzJwYS5oYXNoLmRhdGFkaGFzaFgggxlOv+Hkb8mVZfDdmBI3Gt++h9ozRM+rCiXL9QnLgOl0Y2xhaW1fZ2VuZXJhdG9yX2luZm+jZG5hbWVvQW50aHJvcGljIEZpbGVzZ3ZlcnNpb25lMS4wLjBrc3BlY1ZlcnNpb25lMi40LjAAABA4anVtYgAAAChqdW1kYzJjcwARABCAAACqADibcQNjMnBhLnNpZ25hdHVyZQAAABAIY2JvctKEWQISogEmGCFZAgowggIGMIIBjaADAgECAhRA5aAK7sI50L64g/oGQgU9Z1UTADAKBggqhkjOPQQDAzBJMRcwFQYDVQQKEw5BbnRocm9waWMsIFBCQzEuMCwGA1UEAxMlQW50aHJvcGljIENvbnRlbnQgQ3JlZGVudGlhbHMgUm9vdCBDQTAeFw0yNjA4MDcxODQzNTZaFw0yODA4MDYxOTQzNTZaMEQxFzAVBgNVBAoTDkFudGhyb3BpYywgUEJDMSkwJwYDVQQDEyBBbnRocm9waWMgQ2xhdWRlIENvbnRlbnQgU2lnbmluZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJh6CmvLUBgFFNU0vUKlOVtE6djd17L5SuwX0LemFisBM3dkd/3cyjxFA3Qo5S46fX0/ihY0VZ7mfb9KF703t5OjWDBWMA4GA1UdDwEB/wQEAwIHgDAVBgNVHSUEDjAMBgorBgEEAYPoXgIBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUzlHiBIFOZFsj+OPEz5o+nMHXXMIwCgYIKoZIzj0EAwMDZwAwZAIwMXMdFJ4BetLLVY7ORuE9noqbbAZOZn/aArXyTwFAZfKrPzxF2vPoJNf1+UCdg1XGAjBwX1zd9WGqYkqmL5SFqw1QySjr1zJfpJM9+1rdDwSPLMOPOjKuiXjoU/pUUeG9RwmhY3BhZFkNngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZYQBMbgR0PZBUivBbQq3FCpeEr/Foefyn8zH5t6Hx2+481FxupuEJUEGt3yoxBvq2b8OQLarhCA+2nR0WMyEK3gx8=</c2pa:manifest></metadata>
<defs><marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#333"/></marker></defs>
<rect x="0" y="0" width="2000" height="820" fill="#ffffff"/>
<g transform="translate(0,-90)">
<rect x="60" y="150" width="270" height="160" rx="6" fill="#ffffff" stroke="#4f7a43" stroke-width="2"/>
<text x="80" y="182" font-family="DejaVu Serif, Times New Roman, serif" font-size="21" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="start">Caller A</text>
<text x="80" y="208" font-family="DejaVu Sans Mono, Menlo, monospace" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">stream(text)</text>
<text x="80" y="230" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="italic" text-anchor="start">chunks as they arrive</text>
<rect x="76" y="250" width="66" height="42" rx="3" fill="#ffffff" stroke="#888" stroke-width="1.4"/>
<text x="109" y="276" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">outbox</text>
<rect x="166" y="254" width="34" height="34" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="183.0" y="275.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A1</text>
<rect x="208" y="254" width="34" height="34" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="225.0" y="275.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A2</text>
<rect x="250" y="254" width="34" height="34" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="267.0" y="275.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A3</text>
<path d="M330,190 H350 V225 H370" fill="none" stroke="#4f7a43" stroke-width="1.8" marker-end="url(#arrow)"/>
<rect x="60" y="360" width="270" height="160" rx="6" fill="#ffffff" stroke="#ad5e38" stroke-width="2"/>
<text x="80" y="392" font-family="DejaVu Serif, Times New Roman, serif" font-size="21" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="start">Caller B</text>
<text x="80" y="418" font-family="DejaVu Sans Mono, Menlo, monospace" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">say([...])</text>
<text x="80" y="440" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="italic" text-anchor="start">all of it at the end</text>
<rect x="76" y="460" width="66" height="42" rx="3" fill="#ffffff" stroke="#888" stroke-width="1.4"/>
<text x="109" y="486" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">outbox</text>
<rect x="166" y="464" width="34" height="34" rx="4" fill="#f5e2d6" stroke="#ad5e38" stroke-width="1.6"/>
<text x="183.0" y="485.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="middle">B1</text>
<rect x="208" y="464" width="34" height="34" rx="4" fill="#f5e2d6" stroke="#ad5e38" stroke-width="1.6"/>
<text x="225.0" y="485.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="middle">B2</text>
<path d="M330,400 H350 V225 H370" fill="none" stroke="#ad5e38" stroke-width="1.8" marker-end="url(#arrow)"/>
<rect x="60" y="570" width="270" height="160" rx="6" fill="#ffffff" stroke="#3d6a8a" stroke-width="2"/>
<text x="80" y="602" font-family="DejaVu Serif, Times New Roman, serif" font-size="21" fill="#3d6a8a" font-weight="bold" font-style="normal" text-anchor="start">Caller C</text>
<text x="80" y="628" font-family="DejaVu Sans Mono, Menlo, monospace" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">stream(text)</text>
<text x="80" y="650" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="italic" text-anchor="start">chunks as they arrive</text>
<rect x="76" y="670" width="66" height="42" rx="3" fill="#ffffff" stroke="#888" stroke-width="1.4"/>
<text x="109" y="696" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">outbox</text>
<rect x="166" y="674" width="34" height="34" rx="4" fill="#dce6ee" stroke="#3d6a8a" stroke-width="1.6"/>
<text x="183.0" y="695.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#3d6a8a" font-weight="bold" font-style="normal" text-anchor="middle">C1</text>
<path d="M330,610 H350 V225 H370" fill="none" stroke="#3d6a8a" stroke-width="1.8" marker-end="url(#arrow)"/>
<rect x="370" y="190" width="130" height="70" rx="6" fill="#f4f4f4" stroke="#333" stroke-width="1.6"/>
<text x="435" y="220" font-family="DejaVu Serif, Times New Roman, serif" font-size="18" fill="#1a1a1a" font-weight="bold" font-style="normal" text-anchor="middle">inbox</text>
<text x="435" y="244" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">planned together</text>
<path d="M500,225 H538" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<text x="540" y="176" font-family="DejaVu Serif, Times New Roman, serif" font-size="20" fill="#1a1a1a" font-weight="bold" font-style="normal" text-anchor="start">Queue 1: sentences waiting for the model</text>
<rect x="540" y="196" width="470" height="58" rx="4" fill="#fafafa" stroke="#333" stroke-width="1.4"/>
<rect x="552" y="204" width="44" height="42" rx="4" fill="#ffffff" stroke="#cfcfcf" stroke-width="1.2" stroke-dasharray="4 3"/>
<rect x="604" y="204" width="44" height="42" rx="4" fill="#ffffff" stroke="#cfcfcf" stroke-width="1.2" stroke-dasharray="4 3"/>
<rect x="656" y="204" width="44" height="42" rx="4" fill="#ffffff" stroke="#cfcfcf" stroke-width="1.2" stroke-dasharray="4 3"/>
<rect x="708" y="204" width="44" height="42" rx="4" fill="#dce6ee" stroke="#3d6a8a" stroke-width="1.6"/>
<text x="730.0" y="229.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#3d6a8a" font-weight="bold" font-style="normal" text-anchor="middle">C1</text>
<rect x="760" y="204" width="44" height="42" rx="4" fill="#f5e2d6" stroke="#ad5e38" stroke-width="1.6"/>
<text x="782.0" y="229.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="middle">B2</text>
<rect x="812" y="204" width="44" height="42" rx="4" fill="#f5e2d6" stroke="#ad5e38" stroke-width="1.6"/>
<text x="834.0" y="229.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="middle">B1</text>
<rect x="864" y="204" width="44" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="886.0" y="229.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A3</text>
<rect x="916" y="204" width="44" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="938.0" y="229.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A2</text>
<rect x="968" y="204" width="44" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="990.0" y="229.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A1</text>
<text x="548" y="274" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#888" font-weight="normal" font-style="normal" text-anchor="start">back</text>
<text x="1008" y="190" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">front</text>
<path d="M760,262 V270 H1002 V262" fill="none" stroke="#1a1a1a" stroke-width="1.6"/>
<text x="881" y="292" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="middle">one batch: up to B from the front</text>
<path d="M1010,225 H1068" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<rect x="1050" y="160" width="262" height="402" rx="10" fill="none" stroke="#888" stroke-width="1.4" stroke-dasharray="7 5"/>
<text x="1181" y="150" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">GPU, used only by the Playhead loop</text>
<rect x="1070" y="185" width="222" height="84" rx="6" fill="#ffffff" stroke="#333" stroke-width="2"/>
<text x="1181" y="216" font-family="DejaVu Serif, Times New Roman, serif" font-size="22" fill="#1a1a1a" font-weight="bold" font-style="normal" text-anchor="middle">Think</text>
<text x="1181" y="240" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">aligner and four steps</text>
<text x="1181" y="259" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">one pass for the batch</text>
<rect x="1070" y="452" width="222" height="84" rx="6" fill="#ffffff" stroke="#333" stroke-width="2"/>
<text x="1181" y="483" font-family="DejaVu Serif, Times New Roman, serif" font-size="22" fill="#1a1a1a" font-weight="bold" font-style="normal" text-anchor="middle">Decode</text>
<text x="1181" y="507" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">windows to 48 kHz audio</text>
<text x="1181" y="526" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">one pass for the batch</text>
<path d="M1181,269 V372 H520 V494 H538" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<text x="800" y="362" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="middle">each sentence it thinks adds its windows at the back</text>
<text x="540" y="446" font-family="DejaVu Serif, Times New Roman, serif" font-size="20" fill="#1a1a1a" font-weight="bold" font-style="normal" text-anchor="start">Queue 2: windows waiting for the decoder</text>
<rect x="540" y="466" width="470" height="58" rx="4" fill="#fafafa" stroke="#333" stroke-width="1.4"/>
<rect x="976" y="474" width="26" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="989.0" y="499.32" font-family="DejaVu Sans, Arial, sans-serif" font-size="12" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A1</text>
<rect x="912" y="474" width="58" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="941.0" y="499.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A1</text>
<rect x="848" y="474" width="58" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="877.0" y="499.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A1</text>
<rect x="784" y="474" width="58" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="813.0" y="499.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A2</text>
<rect x="752" y="474" width="26" height="42" rx="4" fill="#e3ecdf" stroke="#4f7a43" stroke-width="1.6"/>
<text x="765.0" y="499.32" font-family="DejaVu Sans, Arial, sans-serif" font-size="12" fill="#4f7a43" font-weight="bold" font-style="normal" text-anchor="middle">A2</text>
<rect x="688" y="474" width="58" height="42" rx="4" fill="#f5e2d6" stroke="#ad5e38" stroke-width="1.6"/>
<text x="717.0" y="499.68" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="middle">B1</text>
<rect x="656" y="474" width="26" height="42" rx="4" fill="#f5e2d6" stroke="#ad5e38" stroke-width="1.6"/>
<text x="669.0" y="499.32" font-family="DejaVu Sans, Arial, sans-serif" font-size="12" fill="#ad5e38" font-weight="bold" font-style="normal" text-anchor="middle">B1</text>
<rect x="624" y="474" width="26" height="42" rx="4" fill="#dce6ee" stroke="#3d6a8a" stroke-width="1.6"/>
<text x="637.0" y="499.32" font-family="DejaVu Sans, Arial, sans-serif" font-size="12" fill="#3d6a8a" font-weight="bold" font-style="normal" text-anchor="middle">C1</text>
<text x="548" y="544" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#888" font-weight="normal" font-style="normal" text-anchor="start">back</text>
<text x="1008" y="460" font-family="DejaVu Sans, Arial, sans-serif" font-size="13" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">front</text>
<path d="M712,532 V540 H1002 V532" fill="none" stroke="#1a1a1a" stroke-width="1.6"/>
<text x="857" y="562" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="middle">one batch: up to B from the front</text>
<text x="857" y="581" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#555" font-weight="normal" font-style="normal" text-anchor="middle">on a GPU, one window size per batch</text>
<path d="M1010,495 H1068" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<text x="540" y="640" font-family="DejaVu Sans, Arial, sans-serif" font-size="15" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">First come, first served: nothing overtakes,</text>
<text x="540" y="664" font-family="DejaVu Sans, Arial, sans-serif" font-size="15" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">and whatever does not fit waits at the front.</text>
<text x="540" y="688" font-family="DejaVu Sans, Arial, sans-serif" font-size="15" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">A caller who hangs up leaves both queues.</text>
<text x="540" y="712" font-family="DejaVu Sans, Arial, sans-serif" font-size="15" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">A batch that fails, fails only its own callers.</text>
<text x="540" y="736" font-family="DejaVu Sans, Arial, sans-serif" font-size="15" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">Narrow windows: a stream's first second, or a tail.</text>
<path d="M1181,536 V800 H40 V265 H74" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<path d="M40,475 H74" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<path d="M40,685 H74" fill="none" stroke="#333" stroke-width="1.8" marker-end="url(#arrow)"/>
<text x="640" y="790" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="middle">each window goes to its own caller's outbox, in order, with the sentence's pause after its last window</text>
<text x="690" y="880" font-family="DejaVu Serif, Times New Roman, serif" font-size="20" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="middle">(a) Callers, the two queues and the GPU</text>
<line x1="1380" y1="150" x2="1960" y2="150" stroke="#1a1a1a" stroke-width="2"/>
<text x="1380" y="180" font-family="DejaVu Serif, Times New Roman, serif" font-size="19" fill="#1a1a1a"><tspan font-weight="bold">Algorithm 1</tspan><tspan dx="14">One Playhead turn</tspan></text>
<line x1="1380" y1="194" x2="1960" y2="194" stroke="#1a1a1a" stroke-width="1.2"/>
<text x="1418" y="228" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="italic" text-anchor="start">B = best_batch_size(); Q1, Q2: first come, first served</text>
<text x="1406" y="258" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">1:</text>
<text x="1418" y="258" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">new ← every call waiting in the inbox</text>
<text x="1406" y="288" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">2:</text>
<text x="1418" y="288" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">plan new in one batch, so each sentence's</text>
<text x="1418" y="318" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">length and windows are known</text>
<text x="1406" y="348" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">3:</text>
<text x="1418" y="348" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">add each new call's sentences to the back of Q1</text>
<text x="1406" y="378" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">4:</text>
<text x="1418" y="378" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">remove entries of callers that hung up or failed</text>
<text x="1406" y="408" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">5:</text>
<text x="1418" y="408" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">S ← up to B sentences from the front of Q1</text>
<text x="1406" y="438" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">6:</text>
<text x="1418" y="438" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">think(S); add each sentence's windows to the</text>
<text x="1418" y="468" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">back of Q2</text>
<text x="1406" y="498" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">7:</text>
<text x="1418" y="498" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">W ← up to B windows from the front of Q2;</text>
<text x="1418" y="528" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">on a GPU, stop at a window of another size</text>
<text x="1406" y="558" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">8:</text>
<text x="1418" y="558" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">decode(W); send each window to its caller's outbox</text>
<text x="1406" y="588" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">9:</text>
<text x="1418" y="588" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">after a sentence's last window, send its pause</text>
<text x="1406" y="618" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">10:</text>
<text x="1418" y="618" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">when a caller has nothing left, send DONE</text>
<text x="1406" y="648" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#888" font-weight="normal" font-style="normal" text-anchor="end">11:</text>
<text x="1418" y="648" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">if the inbox, Q1 and Q2 are empty, sleep until</text>
<text x="1418" y="678" font-family="DejaVu Sans, Arial, sans-serif" font-size="16" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="start">a call arrives; otherwise start the next turn</text>
<line x1="1380" y1="696" x2="1960" y2="696" stroke="#1a1a1a" stroke-width="2"/>
<text x="1380" y="730" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">A failing step sends its error to the callers in its</text>
<text x="1380" y="754" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">batch only. Callers read their own outbox: stream()</text>
<text x="1380" y="778" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">yields each window as it arrives; say() returns after</text>
<text x="1380" y="802" font-family="DejaVu Sans, Arial, sans-serif" font-size="14" fill="#444" font-weight="normal" font-style="normal" text-anchor="start">DONE. Only the Playhead thread runs the model.</text>
<text x="1670.0" y="880" font-family="DejaVu Serif, Times New Roman, serif" font-size="20" fill="#1a1a1a" font-weight="normal" font-style="normal" text-anchor="middle">(b) One turn of the loop</text>
</g>
</svg>