Mercurial > hg > Papers > 2021 > mk-thesis
comparison slide/slide.html @ 62:fd661c9cc842
add pdf2svg
author | Ken Miyahira <e175733@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 15 Feb 2021 23:29:47 +0900 |
parents | f0af437fca35 |
children |
comparison
equal
deleted
inserted
replaced
61:f0af437fca35 | 62:fd661c9cc842 |
---|---|
70 } | 70 } |
71 " class="slide" data-marpit-pagination="2" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 71 " class="slide" data-marpit-pagination="2" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
72 ;"> | 72 ;"> |
73 <h1>学生が自由に利用できる教育情報システムの構築</h1> | 73 <h1>学生が自由に利用できる教育情報システムの構築</h1> |
74 <ul> | 74 <ul> |
75 <li>情報通信技術の普及に伴い学ぶことが増えている</li> | 75 <li>情報通信技術の普及に伴い様々な学習環境が学生にとって必要となる</li> |
76 <li>その学習環境として、Virtual MachineやContainerがある | 76 <li>その学習環境として、Virtual MachineやContainerがある |
77 <ul> | 77 <ul> |
78 <li>実行には高性能なPCが必要な場合がある</li> | 78 <li>実行には高性能なPCが必要な場合がある</li> |
79 <li>クラウドサービスもあるが、無料だと制限がある</li> | 79 <li>クラウドサービスもあるが、無料だと制限がある</li> |
80 </ul> | 80 </ul> |
109 position: absolute; | 109 position: absolute; |
110 left: 50px; top: 35px; | 110 left: 50px; top: 35px; |
111 } | 111 } |
112 " class="slide" data-marpit-pagination="3" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 112 " class="slide" data-marpit-pagination="3" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
113 ;"> | 113 ;"> |
114 <h1>これまでの学習環境の問題点</h1> | 114 <h1>これまでの教育情報システムの問題点</h1> |
115 <ul> | 115 <ul> |
116 <li>VM貸出サービスの申請方法がわからない</li> | 116 <li>VM貸出サービスの申請方法がわからない</li> |
117 <li>貸出サービスが存在することが周知されていなかった</li> | 117 <li>貸出サービスが存在することが周知されていなかった</li> |
118 <li>GPUが搭載されていなく研究室ごとの機器、クラウドサービスが利用された</li> | 118 <li>旧システムにはGPUが搭載されていなく、研究室ごとの機器、クラウドサービスが利用された</li> |
119 <li>VMイメージの保存場所として使用されたGSF2はロックマネージャーの影響が大きかった</li> | 119 <li>VMイメージの保存場所として使用されたGFS2はロックマネージャーの影響が大きかった</li> |
120 </ul> | 120 </ul> |
121 </section> | 121 </section> |
122 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-paginate="true" data-class="title" data-theme="default" data-style="section { | 122 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-paginate="true" data-class="title" data-theme="default" data-style="section { |
123 background-color: #FFFFFF; | 123 background-color: #FFFFFF; |
124 font-size: 28px; | 124 font-size: 28px; |
216 <ul> | 216 <ul> |
217 <li>1つのVMに1台のGPUが必要になる</li> | 217 <li>1つのVMに1台のGPUが必要になる</li> |
218 <li>希望する学生全員に割り当てきれない</li> | 218 <li>希望する学生全員に割り当てきれない</li> |
219 </ul> | 219 </ul> |
220 </li> | 220 </li> |
221 </ul> | |
222 <br /> | |
223 <ul> | |
224 <li>サーバのリソースを効率よく利用できるコンテナへ移行する</li> | 221 <li>サーバのリソースを効率よく利用できるコンテナへ移行する</li> |
225 <li>VM貸出サービスは継続する</li> | 222 <li>VM貸出サービスは継続する</li> |
226 </ul> | 223 </ul> |
227 </section> | 224 </section> |
228 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-paginate="true" data-class="slide" data-theme="default" data-style="section { | 225 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-paginate="true" data-class="slide" data-theme="default" data-style="section { |
268 <li>コンテナにユーザ権限が引き継がれる</li> | 265 <li>コンテナにユーザ権限が引き継がれる</li> |
269 <li>コンテナから容易にGPUを利用できる</li> | 266 <li>コンテナから容易にGPUを利用できる</li> |
270 </ul> | 267 </ul> |
271 </li> | 268 </li> |
272 <li> | 269 <li> |
273 <p>コンテナベースの学習環境を提供できるようになる</p> | 270 <p>コンテナによる環境で課題や演習を可能になる</p> |
274 </li> | 271 </li> |
275 </ul> | 272 </ul> |
276 </section> | 273 </section> |
277 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="8" data-paginate="true" data-class="slide" data-theme="default" data-style="section { | 274 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="8" data-paginate="true" data-class="slide" data-theme="default" data-style="section { |
278 background-color: #FFFFFF; | 275 background-color: #FFFFFF; |
298 } | 295 } |
299 " class="slide" data-marpit-pagination="8" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 296 " class="slide" data-marpit-pagination="8" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
300 ;"> | 297 ;"> |
301 <h1>コンテナエンジンの動作改善</h1> | 298 <h1>コンテナエンジンの動作改善</h1> |
302 <ul> | 299 <ul> |
303 <li> | 300 <li>Podman |
304 <p>Podman</p> | |
305 <ul> | 301 <ul> |
306 <li>rootlessではイメージの作成やコンテナの作成が遅い</li> | 302 <li>rootlessではイメージの作成やコンテナの作成が遅い</li> |
307 <li>rootlessでは実行できない機能がある | 303 <li>rootlessでは実行できない機能がある |
308 <ul> | 304 <ul> |
309 <li>IPアドレスの割り当て</li> | 305 <li>IPアドレスの割り当て</li> |
310 </ul> | 306 </ul> |
311 </li> | 307 </li> |
312 </ul> | 308 </ul> |
313 </li> | 309 </li> |
314 <li> | 310 <li>Singularity |
315 <p>Singularity</p> | |
316 <ul> | 311 <ul> |
317 <li>イメージの作成に時間がかかる | 312 <li>イメージの作成に時間がかかる |
318 <ul> | 313 <ul> |
319 <li>ビルド中にエラーが発生すると、一から再開する必要がある</li> | 314 <li>ビルド中にエラーが発生すると、一から再開する必要がある</li> |
320 </ul> | 315 </ul> |
321 </li> | 316 </li> |
322 </ul> | 317 </ul> |
323 </li> | |
324 <li> | |
325 <p>そこでPodmanをwrappしたie-podmanを作成した</p> | |
326 </li> | 318 </li> |
327 </ul> | 319 </ul> |
328 </section> | 320 </section> |
329 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-paginate="true" data-class="slide" data-theme="default" data-style="section { | 321 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-paginate="true" data-class="slide" data-theme="default" data-style="section { |
330 background-color: #FFFFFF; | 322 background-color: #FFFFFF; |
394 " class="slide" data-marpit-pagination="10" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 386 " class="slide" data-marpit-pagination="10" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
395 ;"> | 387 ;"> |
396 <h1>Build速度の比較</h1> | 388 <h1>Build速度の比較</h1> |
397 <ul> | 389 <ul> |
398 <li>Timeの値が小さい方がBuild速度が早い<br /> | 390 <li>Timeの値が小さい方がBuild速度が早い<br /> |
399 <img src="images/container3.png" alt="height:480 center" style="height:480px;" /></li> | 391 <img src="images/container2.svg" alt="" /></li> |
400 </ul> | 392 </ul> |
401 </section> | 393 </section> |
402 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-paginate="true" data-class="slide" data-theme="default" data-style="section { | 394 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-paginate="true" data-class="slide" data-theme="default" data-style="section { |
403 background-color: #FFFFFF; | 395 background-color: #FFFFFF; |
404 font-size: 28px; | 396 font-size: 28px; |
423 } | 415 } |
424 " class="slide" data-marpit-pagination="11" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 416 " class="slide" data-marpit-pagination="11" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
425 ;"> | 417 ;"> |
426 <h1>ie-podmanの機能 1/2</h1> | 418 <h1>ie-podmanの機能 1/2</h1> |
427 <ul> | 419 <ul> |
428 <li>Podmanのすべての機能をwrappするのではなく、一部機能のみを提供する</li> | 420 <li>Podmanのすべての機能を提供するのではなく、一部機能のみを提供する</li> |
429 </ul> | 421 </ul> |
430 <table> | 422 <table> |
431 <thead> | 423 <thead> |
432 <tr> | 424 <tr> |
433 <th>コマンド</th> | 425 <th>コマンド</th> |
490 } | 482 } |
491 " class="slide" data-marpit-pagination="12" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 483 " class="slide" data-marpit-pagination="12" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
492 ;"> | 484 ;"> |
493 <h1>ie-podmanの機能 2/2</h1> | 485 <h1>ie-podmanの機能 2/2</h1> |
494 <ul> | 486 <ul> |
495 <li>registryやsifなど独自機能を提供する</li> | 487 <li>独自機能を追加 |
488 <ul> | |
489 <li>registryやsifなどサブコマンド</li> | |
490 <li>コンテナ作成時に指定できる<code>--ip</code>オプション</li> | |
491 </ul> | |
492 </li> | |
496 </ul> | 493 </ul> |
497 <table> | 494 <table> |
498 <thead> | 495 <thead> |
499 <tr> | 496 <tr> |
500 <th>コマンド</th> | 497 <th>コマンド</th> |
578 </li> | 575 </li> |
579 </ul> | 576 </ul> |
580 </li> | 577 </li> |
581 </ul> | 578 </ul> |
582 </section> | 579 </section> |
583 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-class="slide" data-theme="default" data-style="section { | 580 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-paginate="true" data-class="slide" data-theme="default" data-style="section { |
584 background-color: #FFFFFF; | 581 background-color: #FFFFFF; |
585 font-size: 28px; | 582 font-size: 28px; |
586 color: #4b4b4b; | 583 color: #4b4b4b; |
587 font-family: "Arial", "Hiragino Maru Gothic ProN"; | 584 font-family: "Arial", "Hiragino Maru Gothic ProN"; |
588 } | 585 } |
601 section.slide h1 { | 598 section.slide h1 { |
602 position: absolute; | 599 position: absolute; |
603 left: 50px; top: 35px; | 600 left: 50px; top: 35px; |
604 } | 601 } |
605 " class="slide" data-marpit-pagination="14" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 602 " class="slide" data-marpit-pagination="14" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
606 ;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url("images/system-bb.png");background-size:80%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="14" data-paginate="true" data-class="slide" data-theme="default" data-style="section { | 603 ;"> |
607 background-color: #FFFFFF; | 604 <p><img src="images/system.svg" alt="height:700 center" style="height:700px;" /></p> |
608 font-size: 28px; | 605 </section> |
609 color: #4b4b4b; | 606 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-paginate="true" data-class="slide" data-theme="default" data-style="section { |
610 font-family: "Arial", "Hiragino Maru Gothic ProN"; | |
611 } | |
612 | |
613 section.title { | |
614 font-size: 40px; | |
615 padding: 40px; | |
616 } | |
617 section.title h1 { | |
618 text-align: center; | |
619 } | |
620 section.title h3 { | |
621 text-align: center; | |
622 } | |
623 | |
624 section.slide h1 { | |
625 position: absolute; | |
626 left: 50px; top: 35px; | |
627 } | |
628 " class="slide" data-marpit-pagination="14" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | |
629 ;" data-marpit-advanced-background="content"></section> | |
630 </foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section class="slide" style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="14" data-marpit-pagination-total="18"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-paginate="true" data-class="slide" data-theme="default" data-style="section { | |
631 background-color: #FFFFFF; | 607 background-color: #FFFFFF; |
632 font-size: 28px; | 608 font-size: 28px; |
633 color: #4b4b4b; | 609 color: #4b4b4b; |
634 font-family: "Arial", "Hiragino Maru Gothic ProN"; | 610 font-family: "Arial", "Hiragino Maru Gothic ProN"; |
635 } | 611 } |
711 " class="slide" data-marpit-pagination="16" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; | 687 " class="slide" data-marpit-pagination="16" data-marpit-pagination-total="18" style="--paginate:true;--class:slide;--theme:default; |
712 ;"> | 688 ;"> |
713 <h1>ファイルシステムの比較 2/2</h1> | 689 <h1>ファイルシステムの比較 2/2</h1> |
714 <ul> | 690 <ul> |
715 <li>MB/sの値が大きい方が性能が良い<br /> | 691 <li>MB/sの値が大きい方が性能が良い<br /> |
716 <img src="images/fswrite2.png" alt="height:480 center" style="height:480px;" /></li> | 692 <img src="images/fswrite.svg" alt="height:480 center" style="height:480px;" /></li> |
717 </ul> | 693 </ul> |
718 </section> | 694 </section> |
719 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-paginate="true" data-class="title" data-theme="default" data-style="section { | 695 </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-paginate="true" data-class="title" data-theme="default" data-style="section { |
720 background-color: #FFFFFF; | 696 background-color: #FFFFFF; |
721 font-size: 28px; | 697 font-size: 28px; |
822 | 798 |
823 - 旧システムにはGPUが搭載されていないため、貸出サービスではなく研究室ごとの機器、クラウドサービスが多く利用された | 799 - 旧システムにはGPUが搭載されていないため、貸出サービスではなく研究室ごとの機器、クラウドサービスが多く利用された |
824 | 800 |
825 </br> | 801 </br> |
826 | 802 |
827 - VMイメージの保存場所に使用していたGFS2はロックマネージャの影響が大きく、サーバ1台でもクラスタに参加できないとGFS2上にアクセスできなくなった</p></div><script>!function(){"use strict";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),s=[].filter.call("string"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return"SCRIPT"!==e.nodeName})),a={},i=function(e,t){return(t=t||{}).index=s.indexOf(e),t.slide=e,t},o=function(e,t){a[e]=(a[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(a[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){s[e]&&(n&&l("deactivate",i(n,t)),n=s[e],l("activate",i(n,t)))},d=function(e,t){var r=s.indexOf(n)+e;l(e>0?"next":"prev",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(a[e]||(a[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return s.indexOf(n);l("slide",i(s[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:s,destroy:function(e){l("destroy",i(n,e)),a={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add("bespoke-marp-parent"),e.slides.forEach((e=>e.classList.add("bespoke-marp-slide"))),e.on("activate",(t=>{const n=t.slide,r=!n.classList.contains("bespoke-marp-active");e.slides.forEach((e=>{e.classList.remove("bespoke-marp-active"),e.setAttribute("aria-hidden","true")})),n.classList.add("bespoke-marp-active"),n.removeAttribute("aria-hidden"),r&&(n.classList.add("bespoke-marp-active-ready"),document.body.clientHeight,n.classList.remove("bespoke-marp-active-ready"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,"fragments",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll("[data-marpit-fragment]")]))});const r=r=>void 0!==e.fragments[t][n+r],s=(r,s)=>{t=r,n=s,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const a=t<r||t===r&&n<=s;e.setAttribute("data-bespoke-marp-fragment",a?"active":"inactive"),t===r&&n===s?e.setAttribute("data-bespoke-marp-current-fragment","current"):e.removeAttribute("data-bespoke-marp-current-fragment")}))})),e.fragmentIndex=s;const a={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:s};e.fire("fragment",a)};e.on("next",(({fragment:a=!0})=>{if(a){if(r(1))return s(t,n+1),!1;const a=t+1;e.fragments[a]&&s(a,0)}else{const r=e.fragments[t].length;if(n+1<r)return s(t,r-1),!1;const a=e.fragments[t+1];a&&s(t+1,a.length-1)}})),e.on("prev",(({fragment:a=!0})=>{if(r(-1)&&a)return s(t,n-1),!1;const i=t-1;e.fragments[i]&&s(i,e.fragments[i].length-1)})),e.on("slide",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const s=e.fragments[t];if(s){const{length:e}=s;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}s(t,r)})),s(0,0)} | 803 - VMイメージの保存場所に使用していたGFS2はロックマネージャの影響が大きく、サーバ1台でもクラスタに参加できないとGFS2上にアクセスできなくなった</p></div><div class="bespoke-marp-note" data-index="7" tabindex="0"><p>- そこでPodmanをwrapperであるie-podmanを作成した</p></div><script>!function(){"use strict";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),s=[].filter.call("string"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return"SCRIPT"!==e.nodeName})),a={},i=function(e,t){return(t=t||{}).index=s.indexOf(e),t.slide=e,t},o=function(e,t){a[e]=(a[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(a[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){s[e]&&(n&&l("deactivate",i(n,t)),n=s[e],l("activate",i(n,t)))},d=function(e,t){var r=s.indexOf(n)+e;l(e>0?"next":"prev",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(a[e]||(a[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return s.indexOf(n);l("slide",i(s[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:s,destroy:function(e){l("destroy",i(n,e)),a={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add("bespoke-marp-parent"),e.slides.forEach((e=>e.classList.add("bespoke-marp-slide"))),e.on("activate",(t=>{const n=t.slide,r=!n.classList.contains("bespoke-marp-active");e.slides.forEach((e=>{e.classList.remove("bespoke-marp-active"),e.setAttribute("aria-hidden","true")})),n.classList.add("bespoke-marp-active"),n.removeAttribute("aria-hidden"),r&&(n.classList.add("bespoke-marp-active-ready"),document.body.clientHeight,n.classList.remove("bespoke-marp-active-ready"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,"fragments",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll("[data-marpit-fragment]")]))});const r=r=>void 0!==e.fragments[t][n+r],s=(r,s)=>{t=r,n=s,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const a=t<r||t===r&&n<=s;e.setAttribute("data-bespoke-marp-fragment",a?"active":"inactive"),t===r&&n===s?e.setAttribute("data-bespoke-marp-current-fragment","current"):e.removeAttribute("data-bespoke-marp-current-fragment")}))})),e.fragmentIndex=s;const a={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:s};e.fire("fragment",a)};e.on("next",(({fragment:a=!0})=>{if(a){if(r(1))return s(t,n+1),!1;const a=t+1;e.fragments[a]&&s(a,0)}else{const r=e.fragments[t].length;if(n+1<r)return s(t,r-1),!1;const a=e.fragments[t+1];a&&s(t+1,a.length-1)}})),e.on("prev",(({fragment:a=!0})=>{if(r(-1)&&a)return s(t,n-1),!1;const i=t-1;e.fragments[i]&&s(i,e.fragments[i].length-1)})),e.on("slide",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const s=e.fragments[t];if(s){const{length:e}=s;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}s(t,r)})),s(0,0)} |
828 /*! | 804 /*! |
829 * screenfull | 805 * screenfull |
830 * v5.1.0 - 2020-12-24 | 806 * v5.1.0 - 2020-12-24 |
831 * (c) Sindre Sorhus; MIT License | 807 * (c) Sindre Sorhus; MIT License |
832 */ | 808 */ |