<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[동그리 연구소 · Dongri LAB: 💻 Develop]]></title><description><![CDATA[개발 이것저것]]></description><link>https://lab.dongri.me/s/develop</link><image><url>https://substackcdn.com/image/fetch/$s_!O1Tv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png</url><title>동그리 연구소 · Dongri LAB: 💻 Develop</title><link>https://lab.dongri.me/s/develop</link></image><generator>Substack</generator><lastBuildDate>Fri, 14 Aug 2026 17:14:03 GMT</lastBuildDate><atom:link href="https://lab.dongri.me/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[dongri]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[official@dongri.me]]></webMaster><itunes:owner><itunes:email><![CDATA[official@dongri.me]]></itunes:email><itunes:name><![CDATA[Dongri]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dongri]]></itunes:author><googleplay:owner><![CDATA[official@dongri.me]]></googleplay:owner><googleplay:email><![CDATA[official@dongri.me]]></googleplay:email><googleplay:author><![CDATA[Dongri]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[이미지 Pixel Mosaic 애니메이션 — Lazy Loading 플러그인화]]></title><description><![CDATA[2&#45380; &#51204; &#54532;&#47196;&#53664;&#53440;&#51077;&#51012; &#50937; &#51217;&#44540;&#49457;&#183;&#49457;&#45733; &#52572;&#51201;&#54868;&#183;&#50880;&#51649;&#51060;&#45716; &#51060;&#48120;&#51648;&#44620;&#51648; &#44256;&#47140;&#54620; JavaScript &#47784;&#46280;&#47196; &#54869;&#51109;&#54616;&#44592;]]></description><link>https://lab.dongri.me/p/pixel-mosaic-lazy-loader</link><guid isPermaLink="false">https://lab.dongri.me/p/pixel-mosaic-lazy-loader</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_2HY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_2HY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_2HY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_2HY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_2HY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_2HY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_2HY!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1022469,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207512060?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_2HY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_2HY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_2HY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_2HY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>2024&#45380; 4&#50900;, &#51060;&#48120;&#51648;&#44032; &#53360; &#54589;&#49472;&#50640;&#49436; &#49884;&#51089;&#54644; &#51216;&#52264; &#49440;&#47749;&#54644;&#51648;&#45716; <a href="https://lab.dongri.me/p/pixel-mosaic">Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496; &#54532;&#47196;&#53664;&#53440;&#51077;</a>&#51012; &#47564;&#46308;&#50632;&#49845;&#45768;&#45796;.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;003b62d9-5dc5-4d3d-8e2f-fee46d5b85cf&quot;,&quot;caption&quot;:&quot;&#50696;&#51204;&#50640; Muzli&#50640; &#49548;&#44060;&#46108; &#49324;&#51060;&#53944;&#50640;&#49436; &#51060;&#48120;&#51648;&#50640; CSS image-rendering &#49549;&#49457;&#51012; &#49324;&#50857;&#54644; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#51201;&#50857;&#54620; &#44163;&#51012; &#48372;&#47728;, &#51060;&#48120;&#51648;&#47484; &#51648;&#50672; &#47196;&#46377;(lazy loading)&#54624; &#46412;&#50640; &#54952;&#44284;&#51201;&#51004;&#47196; &#51201;&#50857;&#54624; &#49688; &#51080;&#44192;&#45796; &#49910;&#50612; &#46384;&#46972; &#54644;&#48420;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#51060;&#48120;&#51648; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496; &#8212; &#54532;&#47196;&#53664;&#53440;&#51077;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86892b82-f178-4ee2-950d-a13166e17b18_1094x1094.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-04-28T13:06:59.436Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!FufO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/pixel-mosaic&quot;,&quot;section_name&quot;:&quot;&#128187; Develop&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:144095339,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2339184,&quot;publication_name&quot;:&quot;&#46041;&#44536;&#47532; &#50672;&#44396;&#49548; &#183; Dongri LAB&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!O1Tv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>&#45817;&#49884;&#50640;&#45716; CSS&#51032; <code>image-rendering: pixelated</code> &#49549;&#49457;&#51012; &#51060;&#50857;&#54644; &#53356;&#44592;&#44032; &#45796;&#47480; &#51060;&#48120;&#51648; &#49464; &#51109;&#51012; &#49692;&#49436;&#45824;&#47196; &#44368;&#52404;&#54616;&#45716; &#51221;&#46020;&#47196; &#44396;&#54788;&#54664;&#49845;&#45768;&#45796;. 50&#215;28, 100&#215;56, 640&#215;360 &#53356;&#44592;&#51032; &#51060;&#48120;&#51648;&#47484; &#48120;&#47532; &#51456;&#48708;&#54620; &#46244;, &#44033; &#51060;&#48120;&#51648;&#47484; &#50896;&#48376; &#53356;&#44592;&#47196; &#54869;&#45824;&#54644; &#53360; &#54589;&#49472;&#50640;&#49436; &#51089;&#51008; &#54589;&#49472;&#47196; &#48320;&#54616;&#45716; &#44163;&#52376;&#47100; &#48372;&#50668;&#51452;&#45716; &#48169;&#49885;&#51060;&#50632;&#49845;&#45768;&#45796;.</p><p>&#48372;&#51060;&#45716; &#44208;&#44284;&#45716; &#45208;&#49240;&#51648; &#50506;&#50520;&#51648;&#47564; &#49892;&#51228; &#50937;&#49324;&#51060;&#53944;&#50640; &#51201;&#50857;&#54616;&#44592;&#50640;&#45716; &#54620;&#44228;&#44032; &#47749;&#54869;&#54664;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FufO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FufO!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 424w, https://substackcdn.com/image/fetch/$s_!FufO!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 848w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1272w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FufO!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif" width="840" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FufO!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 424w, https://substackcdn.com/image/fetch/$s_!FufO!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 848w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1272w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://git.dongri.me/example/pixelated/">&#45817;&#49884; &#51228;&#51089;&#54664;&#45912; &#54532;&#47196;&#53664;&#53440;&#51077;</a></figcaption></figure></div><p><strong>&#51060;&#48120;&#51648;&#47560;&#45796; &#50668;&#47084; &#53356;&#44592;&#51032; &#54028;&#51068;&#51012; &#48120;&#47532; &#47564;&#46308;&#50612;&#50556; &#54664;&#44256;,</strong> &#51060;&#48120;&#51648; &#53356;&#44592;&#50752; &#48708;&#50984;&#51060; &#45804;&#46972;&#51648;&#47732; &#45796;&#49884; &#51089;&#50629;&#54644;&#50556; &#54664;&#49845;&#45768;&#45796;. &#48520;&#47084;&#50752;&#50556; &#54616;&#45716; &#54028;&#51068; &#49688;&#46020; &#45720;&#50612;&#45208;&#44592; &#46412;&#47928;&#50640; &#51648;&#50672; &#47196;&#46377;&#51012; &#50948;&#54620; &#44592;&#45733;&#51060;&#46972;&#44592;&#48372;&#45796; <strong>&#45800;&#49692;&#54620; &#51204;&#54872; &#54952;&#44284;&#50640;</strong> &#44032;&#44620;&#50912;&#49845;&#45768;&#45796;.</p><p>&#45817;&#49884; &#44544;&#51032; &#47560;&#51648;&#47561;&#50640;&#45716; &#51060;&#47088; &#44032;&#49444;&#51012; &#45224;&#44220;&#49845;&#45768;&#45796;.</p><blockquote><p>&#54616;&#45208;&#51032; &#50896;&#48376; &#51060;&#48120;&#51648;&#47484; Canvas&#50640;&#49436; &#51089;&#44172; &#52629;&#49548;&#54620; &#46244; &#45796;&#49884; &#54869;&#45824;&#54616;&#47732;, <br>&#48324;&#46020;&#51032; &#51200;&#54644;&#49345;&#46020; &#51060;&#48120;&#51648;&#47484; &#47564;&#46308;&#51648; &#50506;&#44256;&#46020; Pixel Mosaic &#54952;&#44284;&#47484; &#51201;&#50857;&#54624; &#49688; &#51080;&#51648; &#50506;&#51012;&#44620;?</p></blockquote><p>JavaScript&#50752; Canvas&#50640; &#51061;&#49689;&#54616;&#51648; &#50506;&#50520;&#45912; &#51200;&#45716; AI&#51032; &#46020;&#50880;&#51012; &#48155;&#50500; &#44396;&#54788;&#51012; &#49884;&#46020;&#54664;&#49845;&#45768;&#45796;. &#54616;&#51648;&#47564; &#45817;&#49884;&#50640;&#45716; &#51228;&#44032; &#50896;&#54616;&#45716; &#44396;&#51312;&#47484; &#51221;&#54869;&#55176; &#49444;&#47749;&#54644;&#46020; &#44032;&#50864;&#49884;&#50504; &#48660;&#47084;&#47484; &#49324;&#50857;&#54616;&#44144;&#45208;, &#54589;&#49472;&#51012; &#48520;&#54596;&#50836;&#54616;&#44172; &#48373;&#51105;&#54620; &#48169;&#49885;&#51004;&#47196; &#45796;&#49884; &#44228;&#49328;&#54616;&#45716; &#53076;&#46300;&#44032; &#47564;&#46308;&#50612;&#51276;&#49845;&#45768;&#45796;.</p><p><code>imageSmoothingEnabled = false</code>&#47484; &#49324;&#50857;&#54616;&#47732; &#48708;&#44368;&#51201; &#45800;&#49692;&#54616;&#44172; &#44396;&#54788;&#54624; &#49688; &#51080;&#45796;&#45716; &#48169;&#54693;&#44620;&#51648;&#45716; &#52286;&#50520;&#51648;&#47564;, &#50668;&#47084; &#51060;&#48120;&#51648;&#50640; &#50504;&#51221;&#51201;&#51004;&#47196; &#51201;&#50857;&#54624; &#49688; &#51080;&#45716; &#53076;&#46300;&#47196; &#50756;&#49457;&#54616;&#51648; &#47803;&#54616;&#44256; &#54532;&#47196;&#53664;&#53440;&#51077;&#50640;&#49436; &#47688;&#52676;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>2&#45380; &#46244;, &#45796;&#49884; &#44732;&#45240; &#54532;&#47196;&#53664;&#53440;&#51077;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dqGX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dqGX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 424w, https://substackcdn.com/image/fetch/$s_!dqGX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 848w, https://substackcdn.com/image/fetch/$s_!dqGX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 1272w, https://substackcdn.com/image/fetch/$s_!dqGX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dqGX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif" width="724" height="466.075" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:640,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:4345899,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207512060?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dqGX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 424w, https://substackcdn.com/image/fetch/$s_!dqGX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 848w, https://substackcdn.com/image/fetch/$s_!dqGX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 1272w, https://substackcdn.com/image/fetch/$s_!dqGX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a2402b-514c-419e-97b2-1b45bd9f78a1_640x412.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://git.dongri.me/example/pixel-mosaic-live/">Pixel Mosaic Lazy Loader &#45936;&#47784;</a></figcaption></figure></div><p>&#44536;&#46041;&#50504; AI&#47484; &#54876;&#50857;&#54620; &#44060;&#48156; &#54872;&#44221;&#51008; &#47566;&#51060; &#45804;&#46972;&#51276;&#49845;&#45768;&#45796;.</p><p>&#45800;&#49692;&#55176; &#54620; &#48264;&#51032; &#54532;&#47212;&#54532;&#53944;&#47196; &#53076;&#46300;&#47484; &#49373;&#49457;&#54616;&#45716; &#49688;&#51456;&#51012; &#45336;&#50612;, &#50836;&#44396;&#49324;&#54637;&#51012; &#44592;&#45733; &#45800;&#50948;&#47196; &#45208;&#45572;&#44256; &#49892;&#51228; &#46041;&#51089;&#51012; &#54869;&#51064;&#54616;&#47732;&#49436; &#50724;&#47448;&#47484; &#49688;&#51221;&#54616;&#44144;&#45208; &#44396;&#51312;&#47484; &#45796;&#49884; &#49444;&#44228;&#54616;&#45716; &#51089;&#50629;&#44620;&#51648; &#54632;&#44760; &#51652;&#54665;&#54624; &#49688; &#51080;&#44172; &#46096;&#49845;&#45768;&#45796;.</p><p>&#51060;&#48264;&#50640;&#45716; &#45800;&#49692;&#55176; &#54868;&#47732;&#50640;&#49436; &#48708;&#49847;&#54616;&#44172; &#50880;&#51649;&#51060;&#45716; &#44208;&#44284;&#47484; &#47564;&#46300;&#45716; &#44163;&#51060; &#50500;&#45768;&#46972;,<br>&#49892;&#51228; &#50937;&#54168;&#51060;&#51648;&#50640; &#51201;&#50857;&#54624; &#49688; &#51080;&#45716; &#54540;&#47084;&#44536;&#51064;&#51012; &#47785;&#54364;&#47196; &#54664;&#49845;&#45768;&#45796;.</p><p>&#44208;&#44284;&#47932;&#51008; <strong>Pixel Mosaic Lazy Loader</strong>&#46972;&#45716; &#51032;&#51316;&#49457; &#50630;&#45716; JavaScript &#47784;&#46280;&#47196; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;.</p><ul><li><p><a href="https://git.dongri.me/example/pixel-mosaic-live/">Pixel Mosaic Lazy Loader &#45936;&#47784; &#54869;&#51064;&#54616;&#44592;</a></p></li><li><p><a href="https://github.com/catgarret/Pixel-Mosaic-Lazy-Loader">GitHub &#51200;&#51109;&#49548; &#54869;&#51064;&#54616;&#44592;</a></p></li></ul><p>&#51060; &#44544;&#51012; &#51089;&#49457;&#54616;&#45716; &#49884;&#51216;&#51032; &#48260;&#51204;&#51008; v1.2.6&#51077;&#45768;&#45796;. &#50668;&#47084; <code>&lt;img&gt;</code> &#50836;&#49548;&#47484; &#44048;&#51648;&#54644; &#53360; &#54589;&#49472;&#50640;&#49436; &#51089;&#51008; &#54589;&#49472;&#51012; &#44144;&#52432; &#50896;&#48376; &#51060;&#48120;&#51648;&#47196; &#51204;&#54872;&#54616;&#47728;, &#48324;&#46020;&#51032; &#51200;&#54644;&#49345;&#46020; &#51060;&#48120;&#51648;&#47484; &#51456;&#48708;&#54616;&#51648; &#50506;&#44256; &#44592;&#51316; &#50896;&#48376; &#51060;&#48120;&#51648;&#47484; Canvas&#50640;&#49436; &#52629;&#49548;&#54620; &#46244; &#54869;&#45824;&#54616;&#45716; &#48169;&#49885;&#51004;&#47196; &#46041;&#51089;&#54633;&#45768;&#45796;.</p><h3>&#48324;&#46020;&#51032; &#51200;&#54644;&#49345;&#46020; &#51060;&#48120;&#51648;&#47484; &#47564;&#46308;&#51648; &#50506;&#49845;&#45768;&#45796;</h3><p>&#44592;&#51316; &#54532;&#47196;&#53664;&#53440;&#51077;&#50640;&#49436;&#45716; &#45800;&#44228;&#47560;&#45796; &#48324;&#46020;&#51032; &#51060;&#48120;&#51648; &#54028;&#51068;&#51060; &#54596;&#50836;&#54664;&#49845;&#45768;&#45796;.</p><p>&#49352;&#47196;&#50868; &#54540;&#47084;&#44536;&#51064;&#51008; &#54788;&#51116; &#54168;&#51060;&#51648;&#50640; &#51080;&#45716; &#50896;&#48376; <code>&lt;img&gt;</code>&#47484; Canvas&#51032; &#51060;&#48120;&#51648; &#49548;&#49828;&#47196; &#49324;&#50857;&#54633;&#45768;&#45796;. &#51060;&#48120;&#51648;&#47484; &#51089;&#51008; &#53356;&#44592;&#47196; &#52629;&#49548;&#54620; &#46244; <code>imageSmoothingEnabled = false</code> &#49345;&#53468;&#47196; &#45796;&#49884; &#54869;&#45824;&#54644; &#54589;&#49472; &#47784;&#51088;&#51060;&#53356;&#47484; &#47564;&#46317;&#45768;&#45796;.</p><p>&#46384;&#46972;&#49436; &#51060;&#48120;&#51648; &#54620; &#51109;&#51012; &#50948;&#54644; &#50668;&#47084; &#54644;&#49345;&#46020;&#51032; &#54028;&#51068;&#51012; &#46384;&#47196; &#51228;&#51089;&#54616;&#44144;&#45208; &#49436;&#48260;&#50640;&#49436; &#48120;&#47532; &#49373;&#49457;&#54624; &#54596;&#50836;&#44032; &#50630;&#49845;&#45768;&#45796;.</p><p>&#51060;&#48120;&#51648; &#53356;&#44592;&#50640; &#46384;&#46972; &#54589;&#49472; &#45800;&#44228;&#47484; &#51088;&#46041;&#51004;&#47196; &#44228;&#49328;&#54624; &#49688;&#46020; &#51080;&#44256;, &#54596;&#50836;&#54620; &#44221;&#50864; &#50500;&#47000;&#52376;&#47100; &#54589;&#49472; &#53356;&#44592;&#47484; &#51649;&#51217; &#51648;&#51221;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.</p><pre><code><code>PixelMosaic.init({
  duration: 1600,
  steps: [64, 40, 24, 14, 8, 4, 2]
});</code></code></pre><p>&#51204;&#54872; &#49884;&#44036;, &#49884;&#51089; &#51648;&#50672;, &#45800;&#44228; &#49688;, &#54589;&#49472; &#53356;&#44592;&#50752; &#45432;&#51060;&#51592; &#44053;&#46020;&#45716; &#51204;&#52404; &#49444;&#51221; &#46608;&#45716; &#51060;&#48120;&#51648;&#48324; &#49549;&#49457;&#51004;&#47196; &#51312;&#51208;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><h3>&#54868;&#47732;&#50640; &#46308;&#50612;&#50724;&#45716; &#51060;&#48120;&#51648;&#48512;&#53552; &#49892;&#54665;&#54633;&#45768;&#45796;</h3><p>&#44592;&#48376; &#49444;&#51221;&#50640;&#49436;&#45716; &#51060;&#48120;&#51648;&#44032; &#54868;&#47732; &#44540;&#52376;&#50640; &#46308;&#50612;&#50772;&#51012; &#46412; &#54952;&#44284;&#47484; &#49884;&#51089;&#54633;&#45768;&#45796;.</p><p>&#52488;&#44592; &#47928;&#49436;&#50640; &#54252;&#54632;&#46108; &#51060;&#48120;&#51648;&#49104; &#50500;&#45768;&#46972; &#51060;&#54980; DOM&#50640; &#52628;&#44032;&#46108; &#51060;&#48120;&#51648;&#46020; &#44048;&#51648;&#54624; &#49688; &#51080;&#51004;&#47728;, &#50668;&#47084; &#51060;&#48120;&#51648;&#44032; &#46041;&#49884;&#50640; &#54868;&#47732;&#50640; &#45208;&#53440;&#45208;&#45908;&#46972;&#46020; &#54620; &#48264;&#50640; &#52376;&#47532;&#54616;&#45716; &#49688;&#47484; &#51228;&#54620;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#50628;&#48128;&#55176; &#47568;&#54616;&#47732; &#51060; &#54540;&#47084;&#44536;&#51064;&#51008; &#51060;&#48120;&#51648;&#51032; &#45348;&#53944;&#50892;&#53356; &#50836;&#52397; &#48169;&#49885;&#51012; &#49352;&#47213;&#44172; &#45824;&#52404;&#54616;&#45716; &#46972;&#51060;&#48652;&#47084;&#47532;&#46972;&#44592;&#48372;&#45796;, &#48652;&#46972;&#50864;&#51200;&#51032; &#45348;&#51060;&#54000;&#48652; &#51648;&#50672; &#47196;&#46377;&#44284; &#54632;&#44760; &#49324;&#50857;&#54624; &#49688; &#51080;&#45716; <strong>&#49884;&#44033;&#51201; &#51060;&#48120;&#51648; &#47196;&#45908;</strong>&#50640; &#44032;&#44637;&#49845;&#45768;&#45796;.</p><pre><code><code>&lt;img
  data-pixel-mosaic
  loading="lazy"
  src="/images/cover.jpg"
  width="1200"
  height="800"
  alt="&#49436;&#48708;&#49828; &#49548;&#44060; &#54868;&#47732;"
/&gt;</code></code></pre><p><code>loading="lazy"</code>&#44032; &#51060;&#48120;&#51648; &#50836;&#52397; &#49884;&#51216;&#51012; &#44288;&#47532;&#54616;&#44256;, Pixel Mosaic Lazy Loader&#45716; &#51060;&#48120;&#51648;&#44032; &#51456;&#48708;&#46076; &#54868;&#47732;&#50640; &#45208;&#53440;&#45208;&#45716; &#44284;&#51221;&#51012; &#54589;&#49472; &#51204;&#54872;&#51004;&#47196; &#54364;&#54788;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6VWC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6VWC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 424w, https://substackcdn.com/image/fetch/$s_!6VWC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 848w, https://substackcdn.com/image/fetch/$s_!6VWC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 1272w, https://substackcdn.com/image/fetch/$s_!6VWC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6VWC!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png" width="1200" height="1290.6593406593406" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1566,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1825702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207512060?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6VWC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 424w, https://substackcdn.com/image/fetch/$s_!6VWC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 848w, https://substackcdn.com/image/fetch/$s_!6VWC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 1272w, https://substackcdn.com/image/fetch/$s_!6VWC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69ccb620-0f43-4e48-a557-281421f9624a_2362x2540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>&#50880;&#51649;&#51060;&#45716; &#51060;&#48120;&#51648;&#46020; &#47688;&#52628;&#51648; &#50506;&#46020;&#47197;</h3><p>&#52376;&#51020; &#54532;&#47196;&#53664;&#53440;&#51077;&#51012; &#47564;&#46308;&#50632;&#51012; &#46412; &#51032;&#50808;&#47196; &#51221;&#51201;&#51064; &#51060;&#48120;&#51648;&#48372;&#45796; GIF&#50640; &#51201;&#50857;&#54620; &#44208;&#44284;&#44032; &#45908; &#51116;&#48120;&#51080;&#50632;&#49845;&#45768;&#45796;.</p><p>&#44536;&#47000;&#49436; &#51060;&#48264; &#54540;&#47084;&#44536;&#51064;&#50640;&#49436;&#45716; GIF&#49104; &#50500;&#45768;&#46972; Animated WebP&#50752; APNG&#46020; &#44256;&#47140;&#54664;&#49845;&#45768;&#45796;.</p><p>&#51648;&#50896;&#46104;&#45716; &#54872;&#44221;&#50640;&#49436;&#45716; WebCodecs&#51032; <code>ImageDecoder</code>&#47484; &#51060;&#50857;&#54644; &#50528;&#45768;&#47700;&#51060;&#49496;&#51032; &#54532;&#47112;&#51076;&#44284; &#51116;&#49373; &#49884;&#44036;&#51012; &#51069;&#44256;, &#44033; &#54532;&#47112;&#51076;&#50640; &#54589;&#49472; &#47784;&#51088;&#51060;&#53356;&#47484; &#51201;&#50857;&#54633;&#45768;&#45796;.</p><p>&#48652;&#46972;&#50864;&#51200;&#44032; <code>ImageDecoder</code>&#47484; &#51648;&#50896;&#54616;&#51648; &#50506;&#44144;&#45208; CORS &#47928;&#51228;&#47196; &#51060;&#48120;&#51648; &#45936;&#51060;&#53552;&#47484; &#51069;&#51012; &#49688; &#50630;&#45716; &#44221;&#50864;&#50640;&#46020; &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#51221;&#51648;&#46108; &#51060;&#48120;&#51648;&#47196; &#48148;&#44984;&#51648; &#50506;&#49845;&#45768;&#45796;. &#50896;&#48376; &#50528;&#45768;&#47700;&#51060;&#49496;&#51032; &#51116;&#49373;&#51012; &#50976;&#51648;&#54620; &#52292; &#54589;&#49472; Canvas&#47484; &#44217;&#52824;&#45716; &#48169;&#49885;&#51004;&#47196; &#44592;&#45733;&#51012; &#52629;&#49548;&#54633;&#45768;&#45796;.</p><p>&#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#50756;&#48317;&#54616;&#44172; &#52376;&#47532;&#54616;&#51648; &#47803;&#54616;&#45716; &#54872;&#44221;&#50640;&#49436;&#46020; &#52572;&#49548;&#54620; &#50896;&#48376; &#51060;&#48120;&#51648;&#51032; &#50880;&#51649;&#51076;&#51008; &#48372;&#51316;&#54616;&#45716; &#48169;&#54693;&#51012; &#49440;&#53469;&#54664;&#49845;&#45768;&#45796;.</p><h3>&#50937; &#51217;&#44540;&#49457;&#51012; &#54644;&#52824;&#51648; &#50506;&#45716; &#44396;&#51312;</h3><p>&#49884;&#44033;&#51201;&#51064; &#54952;&#44284;&#47484; &#52628;&#44032;&#54616;&#45908;&#46972;&#46020; &#44592;&#51316; &#51060;&#48120;&#51648;&#51032; &#51032;&#48120;&#50752; &#51312;&#51089;&#51012; &#48169;&#54644;&#54644;&#49436;&#45716; &#50504; &#46108;&#45796;&#44256; &#49373;&#44033;&#54664;&#49845;&#45768;&#45796;.</p><p>&#54540;&#47084;&#44536;&#51064;&#51008; &#50896;&#48376; <code>&lt;img&gt;</code> &#50836;&#49548;&#47484; &#45796;&#47480; &#50836;&#49548;&#47196; &#44368;&#52404;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;. &#51060;&#48120;&#51648;&#51032; <code>alt</code> &#49549;&#49457;&#44284; &#47928;&#49436; &#44396;&#51312;&#47484; &#44536;&#45824;&#47196; &#50976;&#51648;&#54616;&#44256;, &#54952;&#44284;&#47484; &#50948;&#54644; &#49373;&#49457;&#46104;&#45716; Canvas&#47564; &#48372;&#51312; &#50724;&#48260;&#47112;&#51060;&#47196; &#49324;&#50857;&#54633;&#45768;&#45796;.</p><p>Canvas&#50640;&#45716; &#45796;&#51020;&#44284; &#44057;&#51008; &#49549;&#49457;&#51060; &#51201;&#50857;&#46121;&#45768;&#45796;.</p><ul><li><p><code>aria-hidden="true"</code></p></li><li><p><code>role="presentation"</code></p></li><li><p><code>pointer-events: none</code></p></li></ul><p>&#46384;&#46972;&#49436; &#49828;&#53356;&#47536; &#47532;&#45908;&#50640; &#48520;&#54596;&#50836;&#54620; &#50836;&#49548;&#47196; &#45432;&#52636;&#46104;&#51648; &#50506;&#51004;&#47728;, &#51060;&#48120;&#51648;&#44032; &#47553;&#53356; &#50504;&#50640; &#51080;&#45908;&#46972;&#46020; &#53364;&#47533;&#51060;&#45208; &#53412;&#48372;&#46300; &#54252;&#52964;&#49828;&#47484; &#44032;&#47196;&#52292;&#51648; &#50506;&#49845;&#45768;&#45796;.</p><p>&#50868;&#50689;&#52404;&#51228;&#45208; &#48652;&#46972;&#50864;&#51200;&#50640;&#49436; &#46041;&#51089; &#51460;&#51060;&#44592;&#47484; &#49444;&#51221;&#54620; &#49324;&#50857;&#51088;&#47484; &#50948;&#54644; <code>prefers-reduced-motion: reduce</code>&#46020; &#48152;&#50689;&#54633;&#45768;&#45796;. &#46041;&#51089; &#51460;&#51060;&#44592;&#44032; &#54876;&#49457;&#54868;&#46076; &#51080;&#51004;&#47732; &#47784;&#51088;&#51060;&#53356;&#50752; &#45432;&#51060;&#51592; &#54952;&#44284;&#47484; &#49373;&#47029;&#54616;&#44256; &#50896;&#48376; &#51060;&#48120;&#51648;&#47484; &#48148;&#47196; &#54364;&#49884;&#54633;&#45768;&#45796;.</p><h3>&#47784;&#46304; &#54872;&#44221;&#50640;&#49436; &#46609;&#44057;&#51060; &#46041;&#51089;&#54624; &#54596;&#50836;&#45716; &#50630;&#49845;&#45768;&#45796;</h3><p>&#52376;&#51020;&#50640;&#45716; &#47784;&#46304; &#48652;&#46972;&#50864;&#51200;&#50752; &#44592;&#44592;&#50640;&#49436; &#46041;&#51068;&#54620; &#54952;&#44284;&#47484; &#48372;&#50668;&#51452;&#45716; &#44163;&#51012; &#47785;&#54364;&#47196; &#49373;&#44033;&#54664;&#49845;&#45768;&#45796;.</p><p>&#54616;&#51648;&#47564; &#44592;&#45733;&#51012; &#52628;&#44032;&#54624;&#49688;&#47197; &#47784;&#46304; &#54872;&#44221;&#50640; &#44057;&#51008; &#52376;&#47532;&#47484; &#44053;&#51228;&#54616;&#45716; &#44163;&#48372;&#45796;, &#49324;&#50857;&#54624; &#49688; &#51080;&#45716; &#44592;&#49696;&#44284; &#44592;&#44592; &#49457;&#45733;&#50640; &#46384;&#46972; &#51201;&#51208;&#54616;&#44172; &#44592;&#45733;&#51012; &#51312;&#51208;&#54616;&#45716; &#54200;&#51060; &#45908; &#54788;&#49892;&#51201;&#51060;&#50632;&#49845;&#45768;&#45796;.</p><p>&#54788;&#51116; &#54540;&#47084;&#44536;&#51064;&#51008; &#54872;&#44221;&#50640; &#46384;&#46972; &#45796;&#51020;&#44284; &#44057;&#51060; &#46041;&#51089;&#54633;&#45768;&#45796;.</p><ol><li><p><strong>Canvas 2D&#50752; ImageDecoder&#47484; &#51648;&#50896;&#54616;&#45716; &#54872;&#44221;</strong><br>&#51221;&#51201; &#51060;&#48120;&#51648;&#50752; &#50880;&#51649;&#51060;&#45716; &#51060;&#48120;&#51648;&#50640; &#54589;&#49472; &#47784;&#51088;&#51060;&#53356;&#50752; &#49892;&#49884;&#44036; &#45432;&#51060;&#51592;&#47484; &#51201;&#50857;&#54633;&#45768;&#45796;.</p></li><li><p><strong>Canvas 2D&#47484; &#51648;&#50896;&#54616;&#45716; &#54872;&#44221;</strong><br>&#51221;&#51201; &#51060;&#48120;&#51648;&#50640;&#45716; &#54589;&#49472; &#47784;&#51088;&#51060;&#53356;&#47484; &#51201;&#50857;&#54616;&#44256;, &#50880;&#51649;&#51060;&#45716; &#51060;&#48120;&#51648;&#45716; &#50896;&#48376; &#51116;&#49373;&#51012; &#50976;&#51648;&#54633;&#45768;&#45796;.</p></li><li><p><strong>Canvas&#47484; &#49324;&#50857;&#54624; &#49688; &#50630;&#45716; &#54872;&#44221;</strong><br>CSS &#46608;&#45716; Web Animations API&#47484; &#51060;&#50857;&#54620; &#45800;&#44228;&#54805; &#48660;&#47084;&#50752; &#53804;&#47749;&#46020; &#51204;&#54872;&#51004;&#47196; &#45824;&#52404;&#54633;&#45768;&#45796;.</p></li><li><p><strong>JavaScript&#44032; &#49892;&#54665;&#46104;&#51648; &#50506;&#44144;&#45208; &#46041;&#51089; &#51460;&#51060;&#44592;&#44032; &#49444;&#51221;&#46108; &#54872;&#44221;</strong><br>&#50896;&#48376; <code>&lt;img&gt;</code>&#47484; &#44536;&#45824;&#47196; &#54364;&#49884;&#54633;&#45768;&#45796;.</p></li></ol><p>&#52572;&#49888; &#44592;&#45733;&#51012; &#51648;&#50896;&#54616;&#45716; &#54872;&#44221;&#50640;&#49436;&#45716; &#54952;&#44284;&#47484; &#54869;&#51109;&#54616;&#44256;, &#44536;&#47111;&#51648; &#50506;&#51008; &#54872;&#44221;&#50640;&#49436;&#45716; &#53080;&#53584;&#52768;&#47484; &#55036;&#49552;&#54616;&#51648; &#50506;&#45716; &#48276;&#50948;&#50640;&#49436; &#51088;&#50672;&#49828;&#47101;&#44172; &#44592;&#45733;&#51012; &#51460;&#51077;&#45768;&#45796;.</p><p>&#50937;&#50640;&#49436; &#47568;&#54616;&#45716; <strong>&#51216;&#51652;&#51201; &#54693;&#49345;(Progressive Enhancement)&#8203;</strong>&#44284; <strong>&#50864;&#50500;&#54620; &#44592;&#45733; &#51200;&#54616;(Graceful Degradation)&#8203;</strong>&#47484; &#51060;&#48264; &#51089;&#50629;&#51012; &#53685;&#54644; &#51312;&#44552; &#45908; &#44396;&#52404;&#51201;&#51004;&#47196; &#51060;&#54644;&#54616;&#44172; &#46096;&#49845;&#45768;&#45796;.</p><h3>&#47784;&#48148;&#51068;&#44284; &#51200;&#49324;&#50577; &#44592;&#44592;&#47484; &#50948;&#54620; &#49457;&#45733; &#51312;&#51208;</h3><p>Canvas&#50752; &#49892;&#49884;&#44036; &#45432;&#51060;&#51592;&#45716; &#50668;&#47084; &#51060;&#48120;&#51648;&#50640;&#49436; &#46041;&#49884;&#50640; &#49892;&#54665;&#54616;&#47732; &#49373;&#44033;&#48372;&#45796; &#47566;&#51008; &#51088;&#50896;&#51012; &#49324;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#46384;&#46972;&#49436; &#54540;&#47084;&#44536;&#51064;&#51008; <code>Save-Data</code>, <code>deviceMemory</code>, <code>hardwareConcurrency</code>&#50752; &#54252;&#51064;&#53552; &#50976;&#54805; &#46321;&#51012; &#52280;&#44256;&#54644; &#47116;&#45908;&#47553; &#44053;&#46020;&#47484; &#51088;&#46041;&#51004;&#47196; &#51312;&#51208;&#54624; &#49688; &#51080;&#46020;&#47197; &#44396;&#49457;&#54664;&#49845;&#45768;&#45796;.</p><p>&#44592;&#44592; &#54872;&#44221;&#50640; &#46384;&#46972; &#46041;&#49884;&#50640; &#52376;&#47532;&#54624; &#51060;&#48120;&#51648; &#49688;, Canvas&#51032; DPR, &#47116;&#45908;&#47553; FPS&#50752; &#45432;&#51060;&#51592; &#54532;&#47112;&#51076;&#51012; &#51228;&#54620;&#54633;&#45768;&#45796;.</p><pre><code><code>PixelMosaic.init({
  quality: "auto",
  maxConcurrent: 2,
  maxDpr: 2,
  renderFps: "auto"
});</code></code></pre><p>&#49457;&#45733;&#51060; &#45230;&#51008; &#44592;&#44592;&#50640;&#49436;&#45716; &#47784;&#46304; &#54952;&#44284;&#47484; &#50613;&#51648;&#47196; &#50976;&#51648;&#54616;&#44592;&#48372;&#45796; &#46041;&#49884; &#52376;&#47532;&#47049;&#44284; &#54644;&#49345;&#46020;&#47484; &#45230;&#52628;&#44256;, &#54596;&#50836;&#54620; &#44221;&#50864; &#50528;&#45768;&#47700;&#51060;&#49496; &#54532;&#47112;&#51076; &#46356;&#53076;&#46377;&#51012; &#49373;&#47029;&#54633;&#45768;&#45796;.</p><p>&#45796;&#47564; &#49457;&#45733;&#51012; &#44256;&#47140;&#54620; &#51228;&#50612; &#51109;&#52824;&#47484; &#54252;&#54632;&#54664;&#45796;&#45716; &#44163;&#51060; &#47784;&#46304; &#54168;&#51060;&#51648;&#50640;&#49436; &#49457;&#45733; &#54693;&#49345;&#51012; &#48372;&#51109;&#54620;&#45796;&#45716; &#51032;&#48120;&#45716; &#50500;&#45785;&#45768;&#45796;. &#49892;&#51228; &#51201;&#50857; &#49884;&#50640;&#45716; &#51060;&#48120;&#51648; &#49688;&#50752; &#53356;&#44592;, &#54168;&#51060;&#51648; &#44396;&#51312;&#50752; &#45824;&#49345; &#44592;&#44592;&#47484; &#44592;&#51456;&#51004;&#47196; &#51649;&#51217; &#54869;&#51064;&#54616;&#45716; &#44284;&#51221;&#51060; &#54596;&#50836;&#54633;&#45768;&#45796;.</p><h3>&#44036;&#45800;&#54616;&#44172; &#51201;&#50857;&#54616;&#44592;</h3><p>CSS&#50752; JavaScript &#54028;&#51068;&#51012; &#48520;&#47084;&#50728; &#46244;, &#54952;&#44284;&#47484; &#51201;&#50857;&#54624; &#51060;&#48120;&#51648;&#50640; <code>data-pixel-mosaic</code> &#49549;&#49457;&#51012; &#52628;&#44032;&#54633;&#45768;&#45796;.</p><pre><code><code>&lt;link rel="stylesheet" href="/assets/pixel-mosaic.css" /&gt;

&lt;img
  data-pixel-mosaic
  loading="lazy"
  src="/images/hero.jpg"
  width="1280"
  height="720"
  alt="&#51228;&#54408; &#45824;&#49884;&#48372;&#46300; &#54868;&#47732;"
/&gt;

&lt;script src="/assets/pixel-mosaic.js"&gt;&lt;/script&gt;
&lt;script&gt;
  PixelMosaic.init({
    duration: 1400,
    steps: "auto",
    stepCount: 8,
    noise: {
      enabled: true,
      opacity: 0.14
    }
  });
&lt;/script&gt;</code></code></pre><p>&#54540;&#47084;&#44536;&#51064;&#51012; &#51088;&#46041; &#44048;&#51648; &#48169;&#49885;&#51004;&#47196; &#49444;&#51221;&#54616;&#47732; &#53945;&#51221; &#50689;&#50669;&#51032; &#51060;&#48120;&#51648;&#50640; &#49549;&#49457;&#51012; &#54616;&#45208;&#50473; &#52628;&#44032;&#54616;&#51648; &#50506;&#44256;&#46020; &#51201;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;. &#48152;&#45824;&#47196; &#47196;&#44256;&#45208; &#50500;&#51060;&#53080;&#52376;&#47100; &#54952;&#44284;&#44032; &#54596;&#50836;&#54616;&#51648; &#50506;&#51008; &#51060;&#48120;&#51648;&#50640;&#45716; <code>data-no-pixel-mosaic</code> &#49549;&#49457;&#51012; &#51648;&#51221;&#54644; &#51228;&#50808;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#51088;&#49464;&#54620; &#50741;&#49496;&#44284; &#49324;&#50857; &#48169;&#48277;&#51008; <a href="https://github.com/catgarret/Pixel-Mosaic-Lazy-Loader">GitHub &#51200;&#51109;&#49548;&#51032; README</a>&#50640;&#49436; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>AI&#44032; &#54532;&#47196;&#53664;&#53440;&#51077;&#44284; &#44208;&#44284;&#47932; &#49324;&#51060;&#47484; &#51329;&#54784;&#51456; &#44284;&#51221;</h3><p>2024&#45380;&#51032; AI&#45716; &#51228;&#44032; &#50896;&#54616;&#45716; &#54952;&#44284;&#50752; &#44396;&#54788; &#50896;&#47532;&#47484; &#49444;&#47749;&#54644;&#46020; &#49892;&#51228;&#47196; &#49324;&#50857;&#54624; &#49688; &#51080;&#45716; &#44396;&#51312;&#44620;&#51648; &#47564;&#46308;&#50612;&#51452;&#51648;&#45716; &#47803;&#54664;&#49845;&#45768;&#45796;.</p><p>2&#45380; &#46244;&#50640;&#45716; &#44057;&#51008; &#50500;&#51060;&#46356;&#50612;&#47484; &#48148;&#53461;&#51004;&#47196; &#51221;&#51201; &#51060;&#48120;&#51648;&#50752; &#50880;&#51649;&#51060;&#45716; &#51060;&#48120;&#51648;&#51032; &#52376;&#47532; &#48169;&#49885;&#51012; &#45208;&#45572;&#44256;, &#48652;&#46972;&#50864;&#51200; &#51648;&#50896; &#48276;&#50948;&#50752; CORS &#47928;&#51228;&#47484; &#54869;&#51064;&#54616;&#44256;, &#51217;&#44540;&#49457;&#44284; &#49457;&#45733; &#51312;&#44148;&#50640; &#46384;&#46972; &#44592;&#45733;&#51060; &#52629;&#49548;&#46104;&#45716; &#44396;&#51312;&#44620;&#51648; &#54632;&#44760; &#44160;&#53664;&#54624; &#49688; &#51080;&#50632;&#49845;&#45768;&#45796;.</p><p>&#47932;&#47200; AI&#44032; &#52376;&#51020;&#48512;&#53552; &#50756;&#49457;&#46108; &#45813;&#51012; &#45236;&#45459;&#51008; &#44163;&#51008; &#50500;&#45785;&#45768;&#45796;.</p><p>&#47784;&#51088;&#51060;&#53356;&#44032; &#45149;&#45212; &#46244; &#45432;&#51060;&#51592;&#44032; &#45224;&#45716; &#47928;&#51228;, &#50880;&#51649;&#51060;&#45716; &#51060;&#48120;&#51648;&#44032; &#51221;&#51648;&#46104;&#45716; &#47928;&#51228;, Canvas&#44032; &#51060;&#48120;&#51648;&#51032; &#46181;&#44540; &#47784;&#49436;&#47532;&#47484; &#48279;&#50612;&#45208;&#45716; &#47928;&#51228;&#52376;&#47100; &#49892;&#51228;&#47196; &#49892;&#54665;&#54644; &#48400;&#50556; &#48156;&#44204;&#54624; &#49688; &#51080;&#45716; &#50724;&#47448;&#44032; &#44228;&#49549; &#48156;&#49373;&#54664;&#49845;&#45768;&#45796;.</p><p>&#44033; &#47928;&#51228;&#47484; &#51649;&#51217; &#54869;&#51064;&#54616;&#44256; &#50836;&#44396;&#49324;&#54637;&#51012; &#45796;&#49884; &#51221;&#51032;&#54620; &#46244;, &#53076;&#46300;&#47484; &#49688;&#51221;&#54616;&#44256; &#50668;&#47084; &#51060;&#48120;&#51648; &#54252;&#47607;&#50640;&#49436; &#48152;&#48373;&#54644;&#49436; &#53580;&#49828;&#53944;&#54616;&#45716; &#44284;&#51221;&#51060; &#54596;&#50836;&#54664;&#49845;&#45768;&#45796;.</p><p>AI&#44032; &#45824;&#49888; &#50756;&#49457;&#54644; &#51456; &#44208;&#44284;&#46972;&#44592;&#48372;&#45796;, &#50696;&#51204;&#50640;&#45716; &#44396;&#54788; &#45733;&#47141;&#51032; &#54620;&#44228;&#47196; &#54252;&#44592;&#54664;&#45912; &#50500;&#51060;&#46356;&#50612;&#47484; &#45796;&#49884; &#44732;&#45236; &#49892;&#51228; &#44208;&#44284;&#47932;&#44620;&#51648; &#48156;&#51204;&#49884;&#53420; &#49688; &#51080;&#45716; &#46020;&#44396;&#44032; &#49373;&#44220;&#45796;&#45716; &#51901;&#50640; &#44032;&#44637;&#49845;&#45768;&#45796;.</p><h2>&#47560;&#47924;&#47532;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Qlh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Qlh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 424w, https://substackcdn.com/image/fetch/$s_!5Qlh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 848w, https://substackcdn.com/image/fetch/$s_!5Qlh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 1272w, https://substackcdn.com/image/fetch/$s_!5Qlh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Qlh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png" width="1456" height="1756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1756,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:709860,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207512060?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5Qlh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 424w, https://substackcdn.com/image/fetch/$s_!5Qlh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 848w, https://substackcdn.com/image/fetch/$s_!5Qlh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 1272w, https://substackcdn.com/image/fetch/$s_!5Qlh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bf82c2-1c81-43f9-a2a4-cd420be0e42b_1862x2246.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://github.com/catgarret/Pixel-Mosaic-Lazy-Loader">Pixel Mosaic Lazy Loader Github</a></figcaption></figure></div><p></p><p>2&#45380; &#51204;&#50640; &#47564;&#46308;&#50632;&#45912; Pixel Mosaic&#45716; &#51221;&#54644;&#51652; &#51060;&#48120;&#51648; &#49464; &#51109;&#51012; &#49692;&#49436;&#45824;&#47196; &#44368;&#52404;&#54616;&#45716; &#51089;&#51008; &#54532;&#47196;&#53664;&#53440;&#51077;&#51060;&#50632;&#49845;&#45768;&#45796;.</p><p>&#45817;&#49884; &#44544;&#50640;&#45716; &#50616;&#51232;&#44032; &#54616;&#45208;&#51032; &#50896;&#48376; &#51060;&#48120;&#51648;&#50752; Canvas&#47564;&#51004;&#47196; &#50668;&#47084; &#51060;&#48120;&#51648;&#50640; &#51201;&#50857;&#54644; &#48372;&#44256; &#49910;&#45796;&#45716; &#45236;&#50857;&#51012; &#51201;&#50632;&#49845;&#45768;&#45796;. &#44536;&#46412;&#45716; &#44396;&#54788;&#54616;&#51648; &#47803;&#54664;&#51648;&#47564;, &#51060;&#48264;&#50640;&#45716; &#49892;&#51228; &#50937;&#54168;&#51060;&#51648;&#50640;&#49436; &#49324;&#50857;&#54624; &#49688; &#51080;&#45716; JavaScript &#47784;&#46280;&#47196; &#45796;&#49884; &#47564;&#46308;&#50632;&#49845;&#45768;&#45796;.</p><p>&#50500;&#51649; &#48373;&#51105;&#54620; <code>transform</code>, &#45796;&#51473; <code>clip-path</code>, &#44368;&#52264; &#52636;&#52376; &#50528;&#45768;&#47700;&#51060;&#49496;&#51032; &#54532;&#47112;&#51076; &#46356;&#53076;&#46377;&#52376;&#47100; &#54872;&#44221;&#50640; &#46384;&#46972; &#51228;&#54620;&#46104;&#45716; &#48512;&#48516;&#51008; &#45224;&#50500; &#51080;&#49845;&#45768;&#45796;. &#48652;&#46972;&#50864;&#51200;&#50752; &#49324;&#51060;&#53944; &#44396;&#51312;&#44032; &#45804;&#46972;&#51648;&#47732; &#50696;&#49345;&#54616;&#51648; &#47803;&#54620; &#47928;&#51228;&#44032; &#48156;&#49373;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.</p><p>&#44536;&#47000;&#46020; &#45800;&#49692;&#55176; &#48708;&#49847;&#54616;&#44172; &#48372;&#51060;&#45716; &#45936;&#47784;&#50640;&#49436; &#45149;&#45236;&#51648; &#50506;&#44256;, &#50937; &#54364;&#51456;&#44284; &#51217;&#44540;&#49457;&#51012; &#50976;&#51648;&#54616;&#47732;&#49436; &#45796;&#50577;&#54620; &#54872;&#44221;&#50640;&#49436; &#44032;&#45733;&#54620; &#47564;&#53372; &#46041;&#51089;&#54616;&#45716; &#46020;&#44396;&#47196; &#48156;&#51204;&#49884;&#53040;&#45796;&#45716; &#51216;&#50640; &#51032;&#48120;&#47484; &#46160;&#44256; &#49910;&#49845;&#45768;&#45796;.</p><ul><li><p><a href="https://git.dongri.me/example/pixel-mosaic-live/">Pixel Mosaic Lazy Loader &#45936;&#47784; &#54869;&#51064;&#54616;&#44592;</a></p></li><li><p><a href="https://github.com/catgarret/Pixel-Mosaic-Lazy-Loader">GitHub &#51200;&#51109;&#49548; &#48143; &#49548;&#49828; &#53076;&#46300; &#54869;&#51064;&#54616;&#44592;</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[OneDrive를 대체하려다 FilenMount를 만든 후기]]></title><description><![CDATA[rclone&#51004;&#47196; &#50668;&#47084; Filen &#44228;&#51221;&#51012; &#54616;&#45208;&#51032; &#45348;&#53944;&#50892;&#53356; &#46300;&#46972;&#51060;&#48652;&#47196; &#47926;&#51008; &#48148;&#51060;&#48652; &#53076;&#46377; &#54532;&#47196;&#51229;&#53944;]]></description><link>https://lab.dongri.me/p/filenmount-rclone-network-drive</link><guid isPermaLink="false">https://lab.dongri.me/p/filenmount-rclone-network-drive</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Fri, 17 Jul 2026 17:46:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z58M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z58M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z58M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Z58M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Z58M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Z58M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z58M!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:550909,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207454475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z58M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Z58M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Z58M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Z58M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcad2a248-33aa-4323-8c58-dba1d1bbb763_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><blockquote><p><strong>&#8220;&#50612;? &#45236; &#54028;&#51068; &#50612;&#46356; &#44052;&#51648;?&#8221;</strong></p></blockquote><p>&#54200;&#47532;&#54616;&#44172;&#47564; &#50416;&#45912; OneDrive &#46041;&#44592;&#54868; &#50724;&#47448;&#47196; &#51089;&#50629;&#51473;&#51064; &#54252;&#53944;&#54260;&#47532;&#50724; &#54028;&#51068;&#46308;&#51060; &#44277;&#51473;&#48516;&#54644; &#46112; &#48852;&#54620; &#45216;, &#44208;&#49900;&#54664;&#49845;&#45768;&#45796;. &#8220;&#47196;&#52972; &#46041;&#44592;&#54868; &#48169;&#49885;&#51008; &#51060;&#51228; &#47803; &#48127;&#44192;&#45796;. &#47924;&#51312;&#44148; &#54596;&#50836;&#54620; &#54028;&#51068;&#47564; &#49892;&#49884;&#44036;&#51004;&#47196; &#48520;&#47084;&#50724;&#45716; <strong>&#45348;&#53944;&#50892;&#53356; &#46300;&#46972;&#51060;&#48652;</strong>&#47196; &#44040;&#50500;&#53444;&#45796;!&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dbKA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dbKA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 424w, https://substackcdn.com/image/fetch/$s_!dbKA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 848w, https://substackcdn.com/image/fetch/$s_!dbKA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 1272w, https://substackcdn.com/image/fetch/$s_!dbKA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dbKA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp" width="1456" height="892" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:892,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31234,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207454475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dbKA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 424w, https://substackcdn.com/image/fetch/$s_!dbKA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 848w, https://substackcdn.com/image/fetch/$s_!dbKA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 1272w, https://substackcdn.com/image/fetch/$s_!dbKA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ecac39-6e64-4897-9a0d-d7046e61bd63_1456x892.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h3>&#44053;&#47141;&#54620; rclone, &#54616;&#51648;&#47564; &#47924;&#49884;&#47924;&#49884;&#54620; CLI&#51032; &#48317;</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aj9U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aj9U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 424w, https://substackcdn.com/image/fetch/$s_!aj9U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 848w, https://substackcdn.com/image/fetch/$s_!aj9U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 1272w, https://substackcdn.com/image/fetch/$s_!aj9U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aj9U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png" width="481" height="144.90376569037656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:216,&quot;width&quot;:717,&quot;resizeWidth&quot;:481,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aj9U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 424w, https://substackcdn.com/image/fetch/$s_!aj9U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 848w, https://substackcdn.com/image/fetch/$s_!aj9U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 1272w, https://substackcdn.com/image/fetch/$s_!aj9U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff07a624a-e125-44ed-a945-ea2bbc7f54d5_717x216.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#44032;&#51109; &#47676;&#51200; &#46496;&#50732;&#47536; &#45824;&#50504;&#51008; &#50724;&#54536;&#49548;&#49828;&#51032; &#52629;&#48373;&#51060;&#46972; &#48520;&#47532;&#45716; <strong>rclone</strong>&#51060;&#50632;&#49845;&#45768;&#45796;. <br>&#44396;&#44544; &#46300;&#46972;&#51060;&#48652;, &#50896;&#46300;&#46972;&#51060;&#48652; &#46321; &#50728;&#44054; &#53364;&#46972;&#50864;&#46300;&#47484; &#45348;&#53944;&#50892;&#53356; &#46300;&#46972;&#51060;&#48652;&#47196; &#47560;&#50868;&#53944;&#54644; &#51452;&#45716; &#44053;&#47141;&#54620; &#46020;&#44396;&#51077;&#45768;&#45796;. &#44592;&#45733;&#51008; &#44053;&#47141;&#54616;&#51648;&#47564; CLI &#51473;&#49900;&#51060;&#46972;, &#50696;&#51204;&#48512;&#53552; &#50508;&#44256;&#46020; &#51228;&#45824;&#47196; &#49324;&#50857;&#54616;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.</p><p>&#48148;&#51060;&#48652; &#53076;&#46377;&#51012; &#54876;&#50857;&#54616;&#47732; rclone&#51032; &#48373;&#51105;&#54620; &#49444;&#51221;&#44284; &#47749;&#47161;&#50612;&#47484; GUI &#50504;&#50640; &#49704;&#44600; &#49688; &#51080;&#44192;&#45796;&#44256; &#49373;&#44033;&#54664;&#49845;&#45768;&#45796;.</p><p>&#52376;&#51020; &#47785;&#54364;&#45716; Google Drive, OneDrive, Dropbox &#46321; rclone&#51060; &#51648;&#50896;&#54616;&#45716; &#53364;&#46972;&#50864;&#46300;&#47484; &#54868;&#47732;&#50640;&#49436; &#44036;&#45800;&#55176; &#50672;&#44208;&#54616;&#45716; &#48276;&#50857; <strong>Cloud Mounter</strong>&#50688;&#49845;&#45768;&#45796;.</p><p>&#54616;&#51648;&#47564; &#51221;&#51089; &#44032;&#51109; &#47676;&#51200; &#49324;&#50857;&#54616;&#47140;&#45912; OneDrive&#50640;&#49436; &#47561;&#54804;&#49845;&#45768;&#45796;.</p><p></p><h4>2026&#45380; 7&#50900; &#54788;&#51116;&#51652;&#54665;&#54805;, OneDrive&#51032; &#52824;&#47749;&#51201; &#48260;&#44536;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6A9n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6A9n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 424w, https://substackcdn.com/image/fetch/$s_!6A9n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 848w, https://substackcdn.com/image/fetch/$s_!6A9n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 1272w, https://substackcdn.com/image/fetch/$s_!6A9n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6A9n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png" width="1456" height="695" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:695,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:197596,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207454475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6A9n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 424w, https://substackcdn.com/image/fetch/$s_!6A9n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 848w, https://substackcdn.com/image/fetch/$s_!6A9n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 1272w, https://substackcdn.com/image/fetch/$s_!6A9n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b55c3e-49a9-4b35-a55f-f8bbca9521c9_1894x904.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#44032;&#51109; &#47676;&#51200; &#50672;&#44208;&#54616;&#47140;&#45912; OneDrive&#50640;&#49436; <code>ObjectHandle is Invalid</code> &#50724;&#47448;&#44032; &#48156;&#49373;&#54664;&#49845;&#45768;&#45796;. <br>&#50508;&#44256; &#48372;&#45768; rclone &#44277;&#49885; &#44611;&#54728;&#48652;&#50640;&#46020; &#48260;&#44536;&#47196; &#46321;&#47197;&#46104;&#50612; <strong><a href="https://github.com/rclone/rclone/issues/8736">2026&#45380; 7&#50900; &#54788;&#51116;&#44620;&#51648;&#46020; &#54644;&#44208;&#46104;&#51648; &#50506;&#51008; &#50976;&#49436; &#44618;&#51008; &#48260;&#44536;</a></strong>&#50688;&#49845;&#45768;&#45796;. &#44208;&#44397; &#44284;&#44048;&#54616;&#44172; &#48169;&#54693;&#51012; &#53952;&#50632;&#49845;&#45768;&#45796;.</p><p></p><h4>&#47560;&#52840; Filen&#51060; rclone&#51012; &#51648;&#50896;&#54616;&#44592; &#49884;&#51089;&#54664;&#45796;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2NWn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2NWn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 424w, https://substackcdn.com/image/fetch/$s_!2NWn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 848w, https://substackcdn.com/image/fetch/$s_!2NWn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 1272w, https://substackcdn.com/image/fetch/$s_!2NWn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2NWn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp" width="724" height="407.85333333333335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:600,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Filen is Now Part of Official Rclone&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Filen is Now Part of Official Rclone" title="Filen is Now Part of Official Rclone" srcset="https://substackcdn.com/image/fetch/$s_!2NWn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 424w, https://substackcdn.com/image/fetch/$s_!2NWn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 848w, https://substackcdn.com/image/fetch/$s_!2NWn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 1272w, https://substackcdn.com/image/fetch/$s_!2NWn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea25fd6e-603c-46eb-9020-38f4e704b8a7_600x338.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://filen.io/hub/filen-is-now-part-of-official-rclone">Filen is Now Part of Official Rclone</a></strong></figcaption></figure></div><p>&#48708;&#49847;&#54620; &#49884;&#44592;&#50640; &#51200;&#45716; <strong>Filen</strong>&#51012; &#45796;&#47480; &#50857;&#46020;&#47196; &#49324;&#50857;&#54616;&#47140;&#44256; &#54664;&#49845;&#45768;&#45796;.</p><p>&#46356;&#51088;&#51064; &#47112;&#54140;&#47088;&#49828;&#47484; &#44288;&#47532;&#54616;&#45716; Eagle&#50640; &#45347;&#51012; &#48292;&#52824;&#47560;&#53356; &#51088;&#47308;&#47484; &#48324;&#46020; &#53364;&#46972;&#50864;&#46300;&#50640; &#47784;&#50500;&#46160;&#44256; &#49910;&#50632;&#49845;&#45768;&#45796;. Filen &#44228;&#51221;&#46020; &#50668;&#47084; &#44060; &#44032;&#51648;&#44256; &#51080;&#50632;&#44592; &#46412;&#47928;&#50640;, &#51088;&#47308; &#48372;&#44288;&#50857;&#51004;&#47196; &#54876;&#50857;&#54616;&#44592;&#50640; &#51201;&#45817;&#54616;&#45796;&#44256; &#49373;&#44033;&#54664;&#49845;&#45768;&#45796;.</p><p>Filen &#44277;&#49885; &#53364;&#46972;&#51060;&#50616;&#53944;&#50640;&#45716; WebDAV&#50752; Network Drive &#44592;&#45733;&#51060; &#51080;&#50632;&#51648;&#47564;, <br><strong>&#51228; &#54872;&#44221;&#50640;&#49436;&#45716; &#51221;&#49345;&#51201;&#51004;&#47196; &#50672;&#44208;&#46104;&#51648; &#50506;&#44144;&#45208; &#49324;&#50857; &#51473; &#47928;&#51228;&#44032; &#48156;&#49373;&#54664;&#49845;&#45768;&#45796;.</strong> </p><p>&#44536;&#47088;&#45936; &#47560;&#52840; <a href="https://filen.io/hub/filen-is-now-part-of-official-rclone">Filen&#51060; rclone&#51032; &#44277;&#49885; &#48177;&#50644;&#46300;&#50640; &#54252;&#54632;</a>&#46096;&#49845;&#45768;&#45796;.<br>rclone 1.73&#48512;&#53552; &#48324;&#46020; &#52964;&#49828;&#53568; &#48716;&#46300; &#50630;&#51060; Filen&#51012; &#51649;&#51217; &#50672;&#44208;&#54616;&#44256; &#45348;&#53944;&#50892;&#53356; &#46300;&#46972;&#51060;&#48652;&#47196; &#47560;&#50868;&#53944;&#54624; &#49688; &#51080;&#44172; &#46096;&#49845;&#45768;&#45796;.</p><p>&#48276;&#50857; Cloud Mounter&#47484; &#44228;&#49549; &#45331;&#44172; &#47564;&#46300;&#45716; &#45824;&#49888;, <br>&#45817;&#51109; &#51228;&#44032; &#54596;&#50836;&#54664;&#45912; Filen &#49324;&#50857; &#44221;&#54744;&#48512;&#53552; &#51228;&#45824;&#47196; &#47564;&#46300;&#45716; &#54200;&#51060; &#45227;&#45796;&#44256; &#54032;&#45800;&#54664;&#49845;&#45768;&#45796;.</p><p>&#44536;&#47111;&#44172; &#50545;&#51032; &#48169;&#54693;&#51012; &#48148;&#45032;&#49845;&#45768;&#45796;.</p><p><strong>Cloud Mounter&#45716; FilenMount&#44032; &#46096;&#49845;&#45768;&#45796;.</strong></p><p></p><h3>&#45796;&#51473; &#44228;&#51221;&#51012; &#50976;&#50672;&#54616;&#44172; &#47926;&#50612;&#51452;&#45716; &#8216;&#53685;&#54633; &#46300;&#46972;&#51060;&#48652;&#8217;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zNF-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zNF-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 424w, https://substackcdn.com/image/fetch/$s_!zNF-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 848w, https://substackcdn.com/image/fetch/$s_!zNF-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 1272w, https://substackcdn.com/image/fetch/$s_!zNF-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zNF-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png" width="1456" height="1370" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1370,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239342,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207454475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zNF-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 424w, https://substackcdn.com/image/fetch/$s_!zNF-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 848w, https://substackcdn.com/image/fetch/$s_!zNF-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 1272w, https://substackcdn.com/image/fetch/$s_!zNF-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539e55d7-e25d-458f-87a8-72cf0af99a8c_1664x1566.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>FilenMount&#51032; &#44032;&#51109; &#54200;&#47532;&#54620; &#51216;&#51008; <strong>&#50668;&#47084; &#44060;&#51032; Filen &#44228;&#51221;&#51012; &#54616;&#45208;&#51032; &#46300;&#46972;&#51060;&#48652; &#44221;&#47196;&#47196; &#47926;&#50612;&#49436; &#44288;&#47532;</strong>&#54624; &#49688; &#51080;&#45796;&#45716; &#44163;&#51077;&#45768;&#45796;. &#50857;&#46020;&#50640; &#46384;&#46972; &#44228;&#51221;&#51012; &#48516;&#47532;&#54644; &#49324;&#50857;&#54616;&#45716; &#50976;&#51200;&#46308;&#50640;&#44172; &#50976;&#50857;&#54620; &#44592;&#45733;&#51077;&#45768;&#45796;.</p><p>&#50696;&#47484; &#46308;&#50612; &#50629;&#47924;&#50857; &#44228;&#51221;&#44284; &#44060;&#51064;&#50857; &#48177;&#50629; &#44228;&#51221;&#51012; &#44033;&#44033; &#46384;&#47196; &#47196;&#44536;&#51064;&#54624; &#54596;&#50836; &#50630;&#51060;, &#50545; &#45236;&#50640;&#49436; &#54616;&#45208;&#47196; &#53685;&#54633;&#54616;&#44144;&#45208; &#54596;&#50836;&#50640; &#46384;&#46972; 3&#44060;&#50752; 2&#44060;&#50473; &#49436;&#47196; &#45796;&#47480; &#46300;&#46972;&#51060;&#48652;&#47196; &#51900;&#44060;&#49436; &#44396;&#49457;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><ul><li><p><strong>&#52264;&#44257;&#52264;&#44257; &#51200;&#51109;&#46104;&#45716; &#49692;&#52264; &#48169;&#49885;:</strong> <br>&#45936;&#51060;&#53552;&#47484; &#50668;&#47084; &#44228;&#51221;&#50640; &#51312;&#44033;&#45236;&#49436; &#48516;&#49328; &#51200;&#51109;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;. <br>&#51648;&#51221;&#54620; &#50864;&#49440;&#49692;&#50948;&#50640; &#46384;&#46972; 1&#48264; &#44228;&#51221; &#50857;&#47049;&#51060; &#45796; &#52264;&#47732; &#51088;&#46041;&#51004;&#47196; &#45796;&#51020; &#44228;&#51221;&#51004;&#47196; &#45336;&#50612;&#44032; &#54028;&#51068;&#51012; &#50668;&#47084; &#44228;&#51221;&#50640; &#51312;&#44033;&#45236;&#51648; &#50506;&#44256;, &#54616;&#45208;&#51032; &#54028;&#51068;&#51008; &#54616;&#45208;&#51032; &#44228;&#51221;&#50640; &#53685;&#51704;&#47196; &#51200;&#51109;&#54633;&#45768;&#45796;.</p></li><li><p><strong>&#46021;&#47549;&#51201;&#51064; &#46300;&#46972;&#51060;&#48652; &#44396;&#49457;:</strong> <br>&#53685;&#54633;&#54616;&#51648; &#50506;&#51008; &#44228;&#51221;&#51008; &#50616;&#51228;&#46304;&#51648; &#44060;&#48324; &#45348;&#53944;&#50892;&#53356; &#46300;&#46972;&#51060;&#48652;&#47196; &#46021;&#47549;&#49884;&#53020; &#49324;&#50857;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.</p><p></p></li></ul><h4>&#44536; &#48150;&#50640; &#45796;&#51020; &#44592;&#45733;&#51012; &#45347;&#50632;&#49845;&#45768;&#45796;.</h4><ul><li><p><strong>&#49828;&#53944;&#47532;&#48141; &#48169;&#49885; &#47560;&#50868;&#53944;:</strong> <br>&#51204;&#52404; &#54028;&#51068;&#51012; &#48120;&#47532; &#45236;&#47140;&#48155;&#51648; &#50506;&#44256;, &#54028;&#51068;&#51012; &#50676;&#44144;&#45208; &#51200;&#51109;&#54624; &#46412; &#54596;&#50836;&#54620; &#45936;&#51060;&#53552;&#47564; &#45236;&#47140;&#48155;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#51649;&#44288;&#51201;&#51064; UI &#44288;&#47532;:</strong> <br>&#47560;&#50864;&#49828; &#46300;&#47000;&#44536; &#50532; &#46300;&#47213;&#51004;&#47196; &#50668;&#47084; &#44228;&#51221;&#51032; &#49692;&#49436;&#50752; &#46300;&#46972;&#51060;&#48652; &#44208;&#54633; &#49345;&#53468;&#47484; &#49789;&#44172; &#48148;&#45001;&#45768;&#45796;.</p></li><li><p><strong>&#47196;&#52972; &#52880;&#49884; &#50629;&#47196;&#46300;:</strong> <br>&#54028;&#51068;&#51012; &#48373;&#49324;&#54644; &#45347;&#51004;&#47732; &#52880;&#49884;&#47484; &#51060;&#50857;&#54644; &#48177;&#44536;&#46972;&#50868;&#46300;&#50640;&#49436; &#50508;&#50500;&#49436; &#50629;&#47196;&#46300;&#47484; &#50756;&#47308;&#54633;&#45768;&#45796;.</p></li><li><p><strong>&#49324;&#50857;&#51088; &#54200;&#51032;&#49457;:</strong> <br>&#48512;&#54021; &#49884; &#51088;&#46041; &#49892;&#54665;, &#50672;&#44208; &#48373;&#44396;, &#44228;&#51221; &#49444;&#51221; &#50516;&#54840;&#54868; &#48177;&#50629; &#44592;&#45733;&#51012; &#51648;&#50896;&#54633;&#45768;&#45796;.</p></li><li><p><strong>&#50896;&#53364;&#47533; &#54872;&#44221; &#44396;&#49457;:</strong> <br>&#49324;&#50857;&#51088;&#44032; rclone&#51012; &#48324;&#46020;&#47196; &#49444;&#52824;&#54616;&#44144;&#45208; &#48373;&#51105;&#54620; &#53552;&#48120;&#45328; &#47749;&#47161;&#50612;&#47484; &#51077;&#47141;&#54616;&#51648; &#50506;&#50500;&#46020; &#50545;&#51060; &#50644;&#51652; &#49444;&#52824;&#50752; &#49444;&#51221;&#51012; &#50508;&#50500;&#49436; &#52376;&#47532;&#54633;&#45768;&#45796;.</p><p></p></li></ul><h3>&#48148;&#51060;&#48652; &#53076;&#46377;&#51004;&#47196; &#47564;&#46304; FilenMount</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CIlg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CIlg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 424w, https://substackcdn.com/image/fetch/$s_!CIlg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 848w, https://substackcdn.com/image/fetch/$s_!CIlg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 1272w, https://substackcdn.com/image/fetch/$s_!CIlg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CIlg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png" width="1456" height="1412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1412,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:422552,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207454475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CIlg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 424w, https://substackcdn.com/image/fetch/$s_!CIlg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 848w, https://substackcdn.com/image/fetch/$s_!CIlg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 1272w, https://substackcdn.com/image/fetch/$s_!CIlg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4095654f-bd09-4d8b-aa55-58c0367845ee_1664x1614.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>FilenMount&#45716; &#53364;&#47196;&#46300;&#50752; &#54632;&#44760; &#48148;&#51060;&#48652; &#53076;&#46377;&#51004;&#47196; &#47564;&#46308;&#50632;&#49845;&#45768;&#45796;.<br>&#52376;&#51020;&#50640;&#45716; OneDrive &#46041;&#44592;&#54868; &#45824;&#49888; &#49324;&#50857;&#54624; &#44036;&#45800;&#54620; &#46020;&#44396;&#44032; &#54596;&#50836;&#54664;&#49845;&#45768;&#45796;.</p><p>&#44536;&#47084;&#45796; rclone&#51012; GUI&#47196; &#44048;&#49916; &#48276;&#50857; &#53364;&#46972;&#50864;&#46300; &#47560;&#50868;&#53944; &#50545;&#51012; &#47564;&#46308;&#44592; &#49884;&#51089;&#54664;&#44256;, OneDrive&#51032; Personal Vault &#47928;&#51228;&#47196; &#48169;&#54693;&#51012; &#48148;&#45032;&#49845;&#45768;&#45796;. &#51060;&#54980; &#49892;&#51228;&#47196; &#54596;&#50836;&#54664;&#45912; Filen &#49324;&#50857; &#44221;&#54744;&#50640; &#51665;&#51473;&#54616;&#47732;&#49436; &#50668;&#47084; &#44228;&#51221;&#51012; &#54616;&#45208;&#47196; &#47926;&#50612; &#49324;&#50857;&#54624; &#49688; &#51080;&#45716; FilenMount&#44032; &#46096;&#49845;&#45768;&#45796;.</p><p>&#50896;&#47000; &#54644;&#44208;&#54616;&#47140;&#45912; &#47928;&#51228;&#47484; &#44536;&#45824;&#47196; &#54644;&#44208;&#54616;&#51648;&#45716; &#47803;&#54664;&#49845;&#45768;&#45796;.</p><p>&#45824;&#49888; &#44536; &#44284;&#51221;&#50640;&#49436; &#45796;&#47480; &#47928;&#51228;&#47484; &#48156;&#44204;&#54664;&#44256;, &#51648;&#44552; &#51228;&#44172; &#45908; &#50976;&#50857;&#54620; &#46020;&#44396;&#47484; &#47564;&#46308;&#44172; &#46096;&#49845;&#45768;&#45796;.</p><p>&#46356;&#51088;&#51064;&#47564; &#54616;&#45912; &#49324;&#46988;&#51060; &#44060;&#48156;&#44620;&#51648; &#44592;&#50883;&#44144;&#47532;&#45796; &#48372;&#45768;, &#51060;&#51228;&#45716; &#54596;&#50836;&#54620; &#46020;&#44396;&#44032; &#50630;&#51004;&#47732; &#51649;&#51217; &#47564;&#46308;&#50612;&#48380; &#49688; &#51080;&#44192;&#45796;&#45716; &#49373;&#44033;&#46020; &#51312;&#44552;&#50473; &#46308;&#44592; &#49884;&#51089;&#54664;&#49845;&#45768;&#45796;.</p><p>&#47932;&#47200; &#54532;&#47212;&#54532;&#53944; &#54620; &#48264;&#51004;&#47196; &#50756;&#49457;&#46108; &#44163;&#51008; &#50500;&#45785;&#45768;&#45796;. &#51064;&#51613; &#51060;&#54980; &#46300;&#46972;&#51060;&#48652;&#44032; &#45208;&#53440;&#45208;&#51648; &#50506;&#45716; &#47928;&#51228;&#48512;&#53552; &#50868;&#50689;&#52404;&#51228;&#48324; &#47560;&#50868;&#53944; &#48169;&#49885;, &#45348;&#53944;&#50892;&#53356; &#44221;&#47196;, &#52880;&#49884; &#51221;&#52293;, &#46300;&#47000;&#44536; &#50532; &#46300;&#47213;&#44284; &#53812;&#54017; &#44057;&#51008; UI &#47928;&#51228;&#44620;&#51648; &#49892;&#54665; &#44208;&#44284;&#47484; &#54869;&#51064;&#54616;&#47728; &#54616;&#45208;&#50473; &#49688;&#51221;&#54664;&#49845;&#45768;&#45796;.</p><p>&#51228;&#44032; &#50896;&#54616;&#45716; &#46041;&#51089;&#44284; &#54868;&#47732;&#51012; &#49444;&#47749;&#54616;&#44256;, &#49373;&#49457;&#46108; &#53076;&#46300;&#47484; &#51649;&#51217; &#49892;&#54665;&#54644; &#50724;&#47448;&#50752; &#48520;&#54200;&#54620; &#48512;&#48516;&#51012; &#45796;&#49884; &#51204;&#45804;&#54616;&#45716; &#44284;&#51221;&#51012; &#48152;&#48373;&#54664;&#49845;&#45768;&#45796;.</p><p>&#46356;&#51088;&#51064; &#49884;&#50504;&#51012; &#47564;&#46308;&#44256; &#54588;&#46300;&#48177;&#51012; &#48155;&#50500; &#45796;&#46316;&#45716; &#44284;&#51221;&#51060; &#53076;&#46300;&#50752; &#49892;&#54665; &#44208;&#44284;&#47196; &#48148;&#45072; &#44163;&#50640; &#44032;&#44637;&#49845;&#45768;&#45796;.</p><h2>FilenMount &#45796;&#50868;&#48155;&#44592;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oIqU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oIqU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 424w, https://substackcdn.com/image/fetch/$s_!oIqU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 848w, https://substackcdn.com/image/fetch/$s_!oIqU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 1272w, https://substackcdn.com/image/fetch/$s_!oIqU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oIqU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png" width="1456" height="1460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1460,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:576463,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/207454475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oIqU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 424w, https://substackcdn.com/image/fetch/$s_!oIqU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 848w, https://substackcdn.com/image/fetch/$s_!oIqU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 1272w, https://substackcdn.com/image/fetch/$s_!oIqU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c0bb826-d97e-46ee-b159-aebcd3f964ed_1960x1966.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: center;"><strong>FilenMount&#51032; &#49548;&#49828; &#53076;&#46300;&#50752; macOS&#183;Windows&#50857; &#49892;&#54665; &#54028;&#51068;&#51008; <br>&#50500;&#47000; GitHub &#51200;&#51109;&#49548;&#50640;&#49436; &#48155;&#51012; &#49688; &#51080;&#49845;&#45768;&#45796;.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/catgarret/FilenMount&quot;,&quot;text&quot;:&quot;Github FilenMount &#45796;&#50868;&#48155;&#44592;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/catgarret/FilenMount"><span>Github FilenMount &#45796;&#50868;&#48155;&#44592;</span></a></p><div><hr></div><h3>Filen &#52488;&#45824; &#47553;&#53356;</h3><ul><li><p><a href="https://filen.io/r/0d9c43f8364e9c20a188705c7089d27a">https://filen.io/r/0d9c43f8364e9c20a188705c7089d27a</a></p></li><li><p><a href="https://filen.io/r/bd77cb7938f0a8df65b2fe2f208b9bad">https://filen.io/r/bd77cb7938f0a8df65b2fe2f208b9bad</a></p></li></ul><p>&#50948; &#52488;&#45824; &#47553;&#53356;&#47484; &#53685;&#54644; &#51221;&#49345;&#51201;&#51004;&#47196; &#44032;&#51077;&#54616;&#47732; <br>&#44592;&#48376; 10GB&#50752; &#52488;&#45824; &#48372;&#45320;&#49828; 10GB&#47484; &#54633;&#52432; &#52572;&#45824; 20GB&#47196; &#49884;&#51089;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[Gemini·Copilot·Claude·Meta AI 대화 기록 한 번에 삭제하기]]></title><description><![CDATA[&#48652;&#46972;&#50864;&#51200; &#53080;&#49556;&#50640;&#49436; &#49892;&#54665;&#54616;&#45716; AI &#52292;&#54021; &#51068;&#44292; &#49325;&#51228; &#49828;&#53356;&#47549;&#53944;]]></description><link>https://lab.dongri.me/p/ai-chat-history-delete-script</link><guid isPermaLink="false">https://lab.dongri.me/p/ai-chat-history-delete-script</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sun, 28 Jun 2026 12:19:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pq9T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pq9T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pq9T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Pq9T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Pq9T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Pq9T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pq9T!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1460995,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/203923695?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pq9T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Pq9T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Pq9T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Pq9T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8aca4c-2341-4a6a-9ffb-9a27aeaedf18_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI &#49436;&#48708;&#49828;&#47484; &#51088;&#51452; &#50416;&#45796; &#48372;&#47732; &#45824;&#54868; &#47785;&#47197;&#51060; &#49373;&#44033;&#48372;&#45796; &#48736;&#47476;&#44172; &#49939;&#51077;&#45768;&#45796;.</p><p>&#49884;&#44036;&#51060; &#51648;&#45208;&#47732; &#45824;&#48512;&#48516; &#45796;&#49884; &#50676;&#50612;&#48372;&#51648; &#50506;&#45716; &#53580;&#49828;&#53944; &#45824;&#54868;, &#51076;&#49884; &#54532;&#47212;&#54532;&#53944;, &#51089;&#50629; &#51473;&#44036;&#50640; &#47564;&#46304; &#52488;&#50504;, &#49892;&#54056;&#54620; &#51656;&#47928;&#46308;&#47196; &#45224;&#49845;&#45768;&#45796;. &#53945;&#55176; Gemini&#45208; Copilot&#52376;&#47100; &#50812;&#51901; &#49324;&#51060;&#46300;&#48148;&#50640; &#52572;&#44540; &#45824;&#54868;&#44032; &#44228;&#49549; &#49939;&#51060;&#45716; &#49436;&#48708;&#49828;&#45716; &#54620; &#48264; &#51221;&#47532;&#54616;&#47140;&#44256; &#54616;&#47732; &#49373;&#44033;&#48372;&#45796; &#49552;&#51060; &#47566;&#51060; &#44049;&#45768;&#45796;.</p><p>&#47932;&#47200; &#44033; &#49436;&#48708;&#49828;&#50640;&#49436; &#45824;&#54868;&#47484; &#54616;&#45208;&#50473; &#49325;&#51228;&#54624; &#49688;&#45716; &#51080;&#49845;&#45768;&#45796;. &#47928;&#51228;&#45716; &#8220;&#54616;&#45208;&#50473;&#8221;&#51060;&#46972;&#45716; &#51216;&#51077;&#45768;&#45796;.</p><p>&#45824;&#54868; &#54616;&#45208;&#47484; &#49440;&#53469;&#54616;&#44256;, &#45908;&#48372;&#44592; &#48260;&#53948;&#51012; &#45572;&#47476;&#44256;, &#49325;&#51228;&#47484; &#45572;&#47476;&#44256;, &#54869;&#51064; &#48260;&#53948;&#51012; &#45572;&#47480; &#46244;, &#45796;&#49884; &#45796;&#51020; &#45824;&#54868;&#47196; &#51060;&#46041;&#54616;&#45716; &#44284;&#51221;&#51012; &#48152;&#48373;&#54644;&#50556; &#54633;&#45768;&#45796;. &#47751; &#44060; &#51221;&#46020;&#47732; &#44316;&#52270;&#51648;&#47564;, &#49688;&#49901; &#44060;&#44032; &#45336;&#50612;&#44032;&#47732; &#44480;&#52270;&#51020;&#51060; &#47676;&#51200; &#50741;&#45768;&#45796;.</p><p>ChatGPT&#50752; DeepSeek&#45716; &#49444;&#51221;&#50640;&#49436; &#47784;&#46304; &#52292;&#54021;&#51012; &#51068;&#44292; &#49325;&#51228;&#54624; &#49688; &#51080;&#51648;&#47564;, Gemini&#50752; Copilot&#51008; &#44060;&#51064; &#44228;&#51221;&#44284; Google Workspace &#44228;&#51221; &#47784;&#46160; &#49324;&#50857;&#51088;&#44032; &#45824;&#54868;&#47484; &#51068;&#51068;&#51060; &#49325;&#51228;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><p>&#47592; &#52376;&#51020;&#50640;&#45716; ChatGPT Atlas&#47196; &#54644;&#48380;&#44620; &#54664;&#51648;&#47564;, &#48372;&#50504; &#51221;&#52293; &#46412;&#47928;&#51064;&#51648; &#51228;&#45824;&#47196; &#46041;&#51089;&#54616;&#51648; &#50506;&#50520;&#49845;&#45768;&#45796;. &#44536;&#47000;&#49436; &#48148;&#51060;&#48652; &#53076;&#46377;&#51004;&#47196; Gemini, Copilot, Claude, Meta AI&#51032; &#52572;&#44540; &#45824;&#54868; &#47785;&#47197;&#51012; &#49692;&#52264;&#51201;&#51004;&#47196; &#49325;&#51228;&#54616;&#45716; &#49828;&#53356;&#47549;&#53944;&#47484; &#47564;&#46308;&#50612;&#48372;&#50520;&#49845;&#45768;&#45796;.</p><p>&#44144;&#52285;&#54620; &#54532;&#47196;&#44536;&#47016;&#51008; &#50500;&#45768;&#44256;, &#48652;&#46972;&#50864;&#51200; &#53080;&#49556;&#50640;&#49436; &#49892;&#54665;&#54616;&#45716; JavaScript &#49828;&#53356;&#47549;&#53944;&#51077;&#45768;&#45796;.</p><p></p><h3>&#49324;&#50857; &#48169;&#48277;</h3><p>&#44033; AI &#49436;&#48708;&#49828;&#50640; &#51217;&#49549;&#54620; &#46244;, &#48652;&#46972;&#50864;&#51200; &#44060;&#48156;&#51088; &#46020;&#44396;&#51032; &#53080;&#49556;&#50640; &#49828;&#53356;&#47549;&#53944;&#47484; &#48537;&#50668;&#45347;&#44256; &#49892;&#54665;&#54616;&#47732; &#46121;&#45768;&#45796;. &#49828;&#53356;&#47549;&#53944;&#44032; &#54788;&#51116; &#51217;&#49549;&#54620; &#49436;&#48708;&#49828;&#44032; Gemini, Copilot, Claude, Meta AI &#51473; &#50612;&#46356;&#51064;&#51648; &#44048;&#51648;&#54616;&#44256;, &#49325;&#51228;&#54624; &#52572;&#44540; &#45824;&#54868; &#44060;&#49688;&#47484; &#51077;&#47141;&#48155;&#51008; &#46244; &#49692;&#52264;&#51201;&#51004;&#47196; &#49325;&#51228;&#47484; &#51652;&#54665;&#54633;&#45768;&#45796;.</p><p>&#49325;&#51228; &#51089;&#50629;&#51008; &#46104;&#46028;&#47532;&#44592; &#50612;&#47140;&#50872; &#49688; &#51080;&#44592; &#46412;&#47928;&#50640; &#48148;&#47196; &#49892;&#54665;&#46104;&#51648; &#50506;&#46020;&#47197; &#54664;&#49845;&#45768;&#45796;. &#47676;&#51200; &#49325;&#51228;&#54624; &#44060;&#49688;&#47484; &#51077;&#47141;&#48155;&#44256;, &#45796;&#49884; &#54620; &#48264; &#54869;&#51064;&#52285;&#51012; &#46916;&#50868; &#46244; &#51089;&#50629;&#51012; &#49884;&#51089;&#54633;&#45768;&#45796;. &#49892;&#54665; &#51473; &#47928;&#51228;&#44032; &#49373;&#44592;&#44144;&#45208; &#47688;&#52628;&#44256; &#49910;&#51012; &#46412;&#45716; &#53080;&#49556;&#50640;&#49436; &#51473;&#51648; &#54540;&#47000;&#44536;&#47484; &#51077;&#47141;&#54644; &#51089;&#50629;&#51012; &#51473;&#45800;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.</p><p>&#54645;&#49900;&#51008; &#8220;&#49325;&#51228; &#48260;&#53948;&#51012; &#51649;&#51217; &#52286;&#50500; &#48152;&#48373; &#53364;&#47533;&#54616;&#45716; &#51088;&#46041;&#54868;&#8221;&#51077;&#45768;&#45796;. &#44277;&#49885; API&#47484; &#49324;&#50857;&#54616;&#45716; &#48169;&#49885;&#51008; &#50500;&#45768;&#44256;, &#49324;&#50857;&#51088;&#44032; &#54868;&#47732;&#50640;&#49436; &#51649;&#51217; &#54616;&#45716; &#49325;&#51228; &#44284;&#51221;&#51012; &#49828;&#53356;&#47549;&#53944;&#44032; &#45824;&#49888; &#49688;&#54665;&#54616;&#45716; &#44396;&#51312;&#51077;&#45768;&#45796;.<br></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48da6092-8ddb-488a-8466-1e17c778f1c2_2782x1976.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ee0854a-b030-4fda-ac8e-d5f734f46a49_2782x1976.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5cfd993d-990b-42f6-98ee-749697d5ce99_2782x1976.png&quot;}],&quot;caption&quot;:&quot;google Gemini &#51089;&#46041;&#44284;&#51221;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a096754-5c65-49e3-9e5d-bd0d52b8b3f6_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9a272d8-a9c8-41f7-b799-5f421e860275_2782x1976.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c5b14f3-1b73-400c-9659-7b537721162b_2782x1976.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20f85c46-85b0-4d7e-8b23-a1f9758d3765_2782x1976.png&quot;}],&quot;caption&quot;:&quot;Microsoft Copilot &#51089;&#46041;&#44284;&#51221;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f2aef2f-4c98-4431-a80c-3281ad0c1432_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><h3>&#49892;&#54665; &#53076;&#46300;</h3><div class="github-gist" data-attrs="{&quot;innerHTML&quot;:&quot;<div id=\&quot;gist151508994\&quot; class=\&quot;gist\&quot;>\n    <div class=\&quot;gist-file\&quot; translate=\&quot;no\&quot; data-color-mode=\&quot;light\&quot; data-light-theme=\&quot;light\&quot;>\n      <div class=\&quot;gist-data\&quot;>\n        \n<div class=\&quot;js-gist-file-update-container js-task-list-container\&quot;>\n      <div id=\&quot;file-readme-md\&quot; class=\&quot;file my-2\&quot;>\n      <div id=\&quot;file-readme-md-readme\&quot; class=\&quot;Box-body readme blob tmp-p-5 tmp-p-xl-6 \&quot;\n    style=\&quot;overflow: auto\&quot; tabindex=\&quot;0\&quot; role=\&quot;region\&quot;\n    aria-label=\&quot;README.md content, created by catgarret on 04:58PM today.\&quot;\n  >\n    <article class=\&quot;markdown-body entry-content container-lg\&quot; itemprop=\&quot;text\&quot;><div class=\&quot;markdown-heading\&quot; dir=\&quot;auto\&quot;><h1 class=\&quot;heading-element\&quot; dir=\&quot;auto\&quot;>AI Chat History Delete Script</h1><a id=\&quot;user-content-ai-chat-history-delete-script\&quot; class=\&quot;anchor\&quot; aria-label=\&quot;Permalink: AI Chat History Delete Script\&quot; href=\&quot;#ai-chat-history-delete-script\&quot;><svg data-component=\&quot;Octicon\&quot; class=\&quot;octicon octicon-link\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; aria-hidden=\&quot;true\&quot;><path d=\&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\&quot;></path></svg></a></div>\n<p dir=\&quot;auto\&quot;>Gemini, Copilot, Claude, Meta AI&#51032; &#45824;&#54868; &#44592;&#47197;&#51012; &#48652;&#46972;&#50864;&#51200; &#53080;&#49556;&#50640;&#49436; &#51221;&#47532;&#54616;&#44592; &#50948;&#54620; JavaScript &#49828;&#53356;&#47549;&#53944;&#51077;&#45768;&#45796;.</p>\n<div class=\&quot;markdown-heading\&quot; dir=\&quot;auto\&quot;><h2 class=\&quot;heading-element\&quot; dir=\&quot;auto\&quot;>&#51648;&#50896; &#49436;&#48708;&#49828;</h2><a id=\&quot;user-content-&#51648;&#50896;-&#49436;&#48708;&#49828;\&quot; class=\&quot;anchor\&quot; aria-label=\&quot;Permalink: &#51648;&#50896; &#49436;&#48708;&#49828;\&quot; href=\&quot;#&#51648;&#50896;-&#49436;&#48708;&#49828;\&quot;><svg data-component=\&quot;Octicon\&quot; class=\&quot;octicon octicon-link\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; aria-hidden=\&quot;true\&quot;><path d=\&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\&quot;></path></svg></a></div>\n<ul dir=\&quot;auto\&quot;>\n<li>Gemini</li>\n<li>Copilot</li>\n<li>Claude</li>\n<li>Meta AI</li>\n</ul>\n<div class=\&quot;markdown-heading\&quot; dir=\&quot;auto\&quot;><h2 class=\&quot;heading-element\&quot; dir=\&quot;auto\&quot;>&#49324;&#50857; &#48169;&#48277;</h2><a id=\&quot;user-content-&#49324;&#50857;-&#48169;&#48277;\&quot; class=\&quot;anchor\&quot; aria-label=\&quot;Permalink: &#49324;&#50857; &#48169;&#48277;\&quot; href=\&quot;#&#49324;&#50857;-&#48169;&#48277;\&quot;><svg data-component=\&quot;Octicon\&quot; class=\&quot;octicon octicon-link\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; aria-hidden=\&quot;true\&quot;><path d=\&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\&quot;></path></svg></a></div>\n<ol dir=\&quot;auto\&quot;>\n<li>&#49325;&#51228;&#54616;&#47140;&#45716; AI &#49436;&#48708;&#49828;&#51032; &#45824;&#54868; &#47785;&#47197; &#54168;&#51060;&#51648;&#47484; &#50685;&#45768;&#45796;.</li>\n<li>&#48652;&#46972;&#50864;&#51200; &#44060;&#48156;&#51088; &#46020;&#44396;&#47484; &#50685;&#45768;&#45796;.</li>\n<li>Console &#53485;&#50640; &#49828;&#53356;&#47549;&#53944;&#47484; &#48537;&#50668;&#45347;&#49845;&#45768;&#45796;.</li>\n<li>&#52376;&#51020;&#50640;&#45716; &#51201;&#51008; &#44060;&#49688;&#47196; &#53580;&#49828;&#53944;&#54633;&#45768;&#45796;.</li>\n<li>&#51221;&#49345; &#46041;&#51089;&#51012; &#54869;&#51064;&#54620; &#46244; &#54596;&#50836;&#54620; &#47564;&#53372; &#49892;&#54665;&#54633;&#45768;&#45796;.</li>\n</ol>\n<div class=\&quot;markdown-heading\&quot; dir=\&quot;auto\&quot;><h2 class=\&quot;heading-element\&quot; dir=\&quot;auto\&quot;>&#51452;&#51032;&#49324;&#54637;</h2><a id=\&quot;user-content-&#51452;&#51032;&#49324;&#54637;\&quot; class=\&quot;anchor\&quot; aria-label=\&quot;Permalink: &#51452;&#51032;&#49324;&#54637;\&quot; href=\&quot;#&#51452;&#51032;&#49324;&#54637;\&quot;><svg data-component=\&quot;Octicon\&quot; class=\&quot;octicon octicon-link\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; aria-hidden=\&quot;true\&quot;><path d=\&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\&quot;></path></svg></a></div>\n<ul dir=\&quot;auto\&quot;>\n<li>&#49436;&#48708;&#49828;&#51032; &#54868;&#47732; &#44396;&#51312;&#44032; &#48148;&#45068;&#47732; &#46041;&#51089;&#54616;&#51648; &#50506;&#51012; &#49688; &#51080;&#49845;&#45768;&#45796;.</li>\n<li>&#51473;&#50836;&#54620; &#45824;&#54868;&#44620;&#51648; &#49325;&#51228;&#46112; &#49688; &#51080;&#51004;&#45768; &#48152;&#46300;&#49884; &#54869;&#51064; &#54980; &#49324;&#50857;&#54616;&#49464;&#50836;.</li>\n<li>&#52376;&#51020;&#50640;&#45716; 3~5&#44060; &#51221;&#46020;&#47564; &#53580;&#49828;&#53944;&#54616;&#45716; &#44163;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;.</li>\n<li>&#51060; &#49828;&#53356;&#47549;&#53944;&#45716; &#44033; &#49436;&#48708;&#49828;&#51032; &#44277;&#49885; &#44592;&#45733;&#51060; &#50500;&#45785;&#45768;&#45796;.</li>\n</ul>\n<div class=\&quot;markdown-heading\&quot; dir=\&quot;auto\&quot;><h2 class=\&quot;heading-element\&quot; dir=\&quot;auto\&quot;>&#44288;&#47144; &#44544;</h2><a id=\&quot;user-content-&#44288;&#47144;-&#44544;\&quot; class=\&quot;anchor\&quot; aria-label=\&quot;Permalink: &#44288;&#47144; &#44544;\&quot; href=\&quot;#&#44288;&#47144;-&#44544;\&quot;><svg data-component=\&quot;Octicon\&quot; class=\&quot;octicon octicon-link\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; aria-hidden=\&quot;true\&quot;><path d=\&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\&quot;></path></svg></a></div>\n<p dir=\&quot;auto\&quot;>&#49324;&#50857; &#48169;&#48277;&#44284; &#51452;&#51032;&#49324;&#54637;&#51008; &#50500;&#47000; &#44544;&#50640;&#49436; &#51088;&#49464;&#55176; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p>\n<p dir=\&quot;auto\&quot;><a href=\&quot;https://lab.dongri.me/p/ai-chat-history-delete-script\&quot; rel=\&quot;nofollow\&quot;>Gemini&#183;Copilot&#183;Claude&#183;Meta AI &#45824;&#54868; &#44592;&#47197; &#54620; &#48264;&#50640; &#49325;&#51228;&#54616;&#44592;</a></p>\n</article>\n  </div>\n\n  </div>\n\n</div>\n\n      </div>\n      <div class=\&quot;gist-meta\&quot;>\n        <a href=\&quot;https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238/raw/f6aa117fb2bb14c096e1b1571dfe316a57859f57/README.md\&quot; style=\&quot;float:right\&quot; class=\&quot;Link--inTextBlock\&quot;>view raw</a>\n        <a href=\&quot;https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238#file-readme-md\&quot; class=\&quot;Link--inTextBlock\&quot;>\n          README.md\n        </a>\n        hosted with &amp;#10084; by <a class=\&quot;Link--inTextBlock\&quot; href=\&quot;https://github.com\&quot;>GitHub</a>\n      </div>\n    </div>\n    <div class=\&quot;gist-file\&quot; translate=\&quot;no\&quot; data-color-mode=\&quot;light\&quot; data-light-theme=\&quot;light\&quot;>\n      <div class=\&quot;gist-data\&quot;>\n        \n<div class=\&quot;js-gist-file-update-container js-task-list-container\&quot;>\n      <div id=\&quot;file-ai-chat-history-delete-script-js\&quot; class=\&quot;file my-2\&quot;>\n    \n    <div itemprop=\&quot;text\&quot;\n      class=\&quot;Box-body p-0 blob-wrapper data type-javascript  \&quot;\n      style=\&quot;overflow: auto\&quot; tabindex=\&quot;0\&quot; role=\&quot;region\&quot;\n      aria-label=\&quot;ai-chat-history-delete-script.js content, created by catgarret on 04:58PM today.\&quot;\n    >\n\n        \n<div class=\&quot;js-check-hidden-unicode js-blob-code-container blob-code-content\&quot;>\n\n  <template class=\&quot;js-file-alert-template\&quot;>\n  <div data-view-component=\&quot;true\&quot; class=\&quot;flash flash-warn flash-full d-flex flex-items-center\&quot;>\n  <svg aria-hidden=\&quot;true\&quot; data-component=\&quot;Octicon\&quot; height=\&quot;16\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; data-view-component=\&quot;true\&quot; class=\&quot;octicon octicon-alert\&quot;>\n    <path d=\&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\&quot;></path>\n</svg>\n    <span>\n      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.\n      <a class=\&quot;Link--inTextBlock\&quot; href=\&quot;https://github.co/hiddenchars\&quot; target=\&quot;_blank\&quot;>Learn more about bidirectional Unicode characters</a>\n    </span>\n\n\n  <div data-view-component=\&quot;true\&quot; class=\&quot;flash-action\&quot;>        <a href=\&quot;{{ revealButtonHref }}\&quot; data-view-component=\&quot;true\&quot; class=\&quot;btn-sm btn\&quot;>    Show hidden characters\n</a>\n</div>\n</div></template>\n<template class=\&quot;js-line-alert-template\&quot;>\n  <span aria-label=\&quot;This line has hidden Unicode characters\&quot; data-view-component=\&quot;true\&quot; class=\&quot;line-alert tooltipped tooltipped-e\&quot;>\n    <svg aria-hidden=\&quot;true\&quot; data-component=\&quot;Octicon\&quot; height=\&quot;16\&quot; viewBox=\&quot;0 0 16 16\&quot; version=\&quot;1.1\&quot; width=\&quot;16\&quot; data-view-component=\&quot;true\&quot; class=\&quot;octicon octicon-alert\&quot;>\n    <path d=\&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\&quot;></path>\n</svg>\n</span></template>\n\n  <table data-hpc class=\&quot;highlight tab-size js-file-line-container\&quot; data-tab-size=\&quot;4\&quot; data-paste-markdown-skip data-tagsearch-path=\&quot;ai-chat-history-delete-script.js\&quot;>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-kos>(</span><span class=pl-k>async</span> <span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L2\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;2\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC2\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-c>/**</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L3\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;3\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC3\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * AI Chat History Cleaner - Gemini / Copilot / Claude / Meta AI</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L4\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;4\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC4\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   *</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L5\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;5\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC5\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * Supported:</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L6\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;6\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC6\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * - Google Gemini: gemini.google.com</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L7\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;7\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC7\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * - Microsoft Copilot: copilot.microsoft.com</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L8\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;8\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC8\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * - Claude: claude.ai</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L9\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;9\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC9\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * - Meta AI: meta.ai</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L10\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;10\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC10\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   *</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L11\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;11\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC11\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * Stop:</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L12\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;12\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC12\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   * window.__aiChatHistoryCleanerStop = true;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L13\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;13\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC13\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-c>   */</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L14\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;14\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC14\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L15\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;15\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC15\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-c1>CONFIG</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L16\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;16\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC16\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>defaultLimit</span>: <span class=pl-c1>20</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L17\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;17\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC17\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>maxLimit</span>: <span class=pl-c1>500</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L18\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;18\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC18\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L19\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;19\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC19\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>delayAfterMenuOpen</span>: <span class=pl-c1>850</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L20\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;20\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC20\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>delayAfterDeleteClick</span>: <span class=pl-c1>1000</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L21\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;21\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC21\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>delayAfterConfirmClick</span>: <span class=pl-c1>2600</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L22\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;22\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC22\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>delayAfterNoConfirmDelete</span>: <span class=pl-c1>2200</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L23\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;23\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC23\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L24\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;24\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC24\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>requireFinalConfirmation</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L25\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;25\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC25\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L26\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;26\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC26\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>enableLazyPreload</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L27\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;27\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC27\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>preloadExtraBuffer</span>: <span class=pl-c1>10</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L28\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;28\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC28\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>preloadScrollDelay</span>: <span class=pl-c1>1200</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L29\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;29\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC29\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>preloadMaxRounds</span>: <span class=pl-c1>90</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L30\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;30\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC30\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>preloadStableLimit</span>: <span class=pl-c1>5</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L31\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;31\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC31\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>lowWatermarkRows</span>: <span class=pl-c1>5</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L32\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;32\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC32\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L33\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;33\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC33\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>retryLoadMoreRounds</span>: <span class=pl-c1>12</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L34\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;34\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC34\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L35\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;35\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC35\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L36\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;36\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC36\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>__aiChatHistoryCleanerStop</span> <span class=pl-c1>=</span> <span class=pl-c1>false</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L37\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;37\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC37\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L38\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;38\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC38\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>sleep</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>ms</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-k>new</span> <span class=pl-v>Promise</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>resolve</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-en>setTimeout</span><span class=pl-kos>(</span><span class=pl-s1>resolve</span><span class=pl-kos>,</span> <span class=pl-s1>ms</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L39\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;39\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC39\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L40\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;40\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC40\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>unique</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>array</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L41\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;41\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC41\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>array</span><span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>,</span> <span class=pl-s1>index</span><span class=pl-kos>,</span> <span class=pl-s1>arr</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>item</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-s1>arr</span><span class=pl-kos>.</span><span class=pl-en>indexOf</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>)</span> <span class=pl-c1>===</span> <span class=pl-s1>index</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L42\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;42\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC42\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L43\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;43\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC43\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>getText</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L44\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;44\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC44\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L45\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;45\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC45\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L46\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;46\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC46\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>?.</span><span class=pl-c1>innerText</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L47\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;47\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC47\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>?.</span><span class=pl-c1>textContent</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L48\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;48\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC48\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L49\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;49\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC49\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;title&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L50\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;50\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC50\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L51\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;51\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC51\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span> <span class=pl-c1>+</span> <span class=pl-s>&amp;quot;&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L52\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;52\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC52\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L53\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;53\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC53\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>replace</span><span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>\\s</span><span class=pl-c1>+</span><span class=pl-c1>/</span>g</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot; &amp;quot;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L54\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;54\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC54\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>trim</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L55\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;55\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC55\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L56\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;56\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC56\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L57\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;57\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC57\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>isVisible</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L58\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;58\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC58\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span> <span class=pl-c1>false</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L59\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;59\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC59\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L60\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;60\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC60\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>rect</span> <span class=pl-c1>=</span> <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L61\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;61\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC61\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-en>getComputedStyle</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L62\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;62\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC62\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L63\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;63\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC63\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L64\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;64\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC64\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>width</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>0</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L65\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;65\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC65\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>height</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>0</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L66\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;66\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC66\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>bottom</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>0</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L67\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;67\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC67\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>innerHeight</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L68\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;68\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC68\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>right</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>0</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L69\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;69\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC69\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>left</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>innerWidth</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L70\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;70\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC70\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>display</span> <span class=pl-c1>!==</span> <span class=pl-s>&amp;quot;none&amp;quot;</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L71\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;71\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC71\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>visibility</span> <span class=pl-c1>!==</span> <span class=pl-s>&amp;quot;hidden&amp;quot;</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L72\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;72\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC72\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>opacity</span> <span class=pl-c1>!==</span> <span class=pl-s>&amp;quot;0&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L73\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;73\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC73\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L74\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;74\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC74\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L75\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;75\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC75\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L76\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;76\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC76\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>isUsableElement</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L77\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;77\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC77\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span> <span class=pl-c1>false</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L78\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;78\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC78\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L79\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;79\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC79\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-en>getComputedStyle</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L80\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;80\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC80\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L81\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;81\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC81\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>display</span> <span class=pl-c1>!==</span> <span class=pl-s>&amp;quot;none&amp;quot;</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>visibility</span> <span class=pl-c1>!==</span> <span class=pl-s>&amp;quot;hidden&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L82\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;82\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC82\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L83\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;83\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC83\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L84\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;84\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC84\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>getClickableElement</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L85\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;85\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC85\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span> <span class=pl-c1>null</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L86\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;86\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC86\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L87\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;87\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC87\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L88\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;88\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC88\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>closest</span><span class=pl-kos>?.</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L89\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;89\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC89\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L90\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;90\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC90\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;quot;button&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L91\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;91\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC91\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;[role=&amp;quot;button&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L92\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;92\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC92\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;[role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L93\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;93\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC93\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;[data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L94\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;94\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC94\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;[data-testid=&amp;quot;delete-chat-trigger&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L95\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;95\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC95\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;quot;.mat-mdc-menu-item&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L96\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;96\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC96\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;quot;a&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L97\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;97\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC97\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>join</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;, &amp;quot;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L98\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;98\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC98\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s1>element</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L99\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;99\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC99\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L100\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;100\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC100\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L101\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;101\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC101\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L102\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;102\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC102\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>dispatchHover</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L103\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;103\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC103\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L104\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;104\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC104\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L105\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;105\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC105\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>rect</span> <span class=pl-c1>=</span> <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L106\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;106\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC106\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L107\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;107\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC107\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>options</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L108\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;108\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC108\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>bubbles</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L109\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;109\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC109\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>cancelable</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L110\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;110\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC110\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>composed</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L111\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;111\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC111\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>view</span>: <span class=pl-smi>window</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L112\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;112\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC112\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>clientX</span>: <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>right</span> <span class=pl-c1>-</span> <span class=pl-c1>20</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L113\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;113\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC113\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>clientY</span>: <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>+</span> <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>height</span> <span class=pl-c1>/</span> <span class=pl-c1>2</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L114\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;114\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC114\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L115\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;115\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC115\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L116\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;116\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC116\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L117\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;117\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC117\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointerover&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L118\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;118\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC118\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointerenter&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L119\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;119\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC119\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointermove&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L120\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;120\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC120\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mouseover&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L121\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;121\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC121\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mouseenter&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L122\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;122\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC122\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mousemove&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L123\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;123\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC123\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>forEach</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>eventName</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L124\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;124\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC124\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L125\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;125\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC125\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-v>EventClass</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L126\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;126\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC126\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>eventName</span><span class=pl-kos>.</span><span class=pl-en>startsWith</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>PointerEvent</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L127\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;127\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC127\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            ? <span class=pl-v>PointerEvent</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L128\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;128\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC128\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            : <span class=pl-v>MouseEvent</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L129\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;129\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC129\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L130\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;130\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC130\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span><span class=pl-k>new</span> <span class=pl-v>EventClass</span><span class=pl-kos>(</span><span class=pl-s1>eventName</span><span class=pl-kos>,</span> <span class=pl-s1>options</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L131\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;131\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC131\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L132\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;132\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC132\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L133\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;133\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC133\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span><span class=pl-k>new</span> <span class=pl-v>MouseEvent</span><span class=pl-kos>(</span><span class=pl-s1>eventName</span><span class=pl-kos>,</span> <span class=pl-s1>options</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L134\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;134\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC134\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L135\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;135\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC135\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L136\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;136\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC136\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L137\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;137\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC137\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L138\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;138\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC138\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L139\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;139\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC139\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>clickElement</span> <span class=pl-c1>=</span> <span class=pl-k>async</span> <span class=pl-kos>(</span><span class=pl-s1>rawElement</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L140\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;140\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC140\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>element</span> <span class=pl-c1>=</span> <span class=pl-en>getClickableElement</span><span class=pl-kos>(</span><span class=pl-s1>rawElement</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L141\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;141\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC141\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L142\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;142\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC142\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span> <span class=pl-c1>false</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L143\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;143\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC143\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L144\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;144\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC144\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>scrollIntoView</span><span class=pl-kos>(</span><span class=pl-kos>{</span> <span class=pl-c1>block</span>: <span class=pl-s>&amp;quot;center&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-c1>inline</span>: <span class=pl-s>&amp;quot;center&amp;quot;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L145\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;145\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC145\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>150</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L146\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;146\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC146\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L147\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;147\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC147\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L148\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;148\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC148\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>focus</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-kos>{</span> <span class=pl-c1>preventScroll</span>: <span class=pl-c1>true</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L149\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;149\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC149\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L150\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;150\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC150\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L151\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;151\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC151\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>focus</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L152\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;152\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC152\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L153\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;153\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC153\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L154\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;154\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC154\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L155\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;155\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC155\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>rect</span> <span class=pl-c1>=</span> <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L156\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;156\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC156\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L157\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;157\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC157\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>options</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L158\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;158\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC158\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>bubbles</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L159\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;159\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC159\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>cancelable</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L160\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;160\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC160\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>composed</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L161\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;161\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC161\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>view</span>: <span class=pl-smi>window</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L162\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;162\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC162\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>clientX</span>: <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>left</span> <span class=pl-c1>+</span> <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>width</span> <span class=pl-c1>/</span> <span class=pl-c1>2</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L163\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;163\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC163\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>clientY</span>: <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>+</span> <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>height</span> <span class=pl-c1>/</span> <span class=pl-c1>2</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L164\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;164\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC164\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L165\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;165\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC165\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L166\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;166\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC166\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>events</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L167\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;167\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC167\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointerover&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L168\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;168\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC168\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointerenter&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L169\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;169\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC169\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointermove&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L170\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;170\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC170\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mouseover&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L171\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;171\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC171\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mouseenter&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L172\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;172\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC172\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mousemove&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L173\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;173\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC173\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointerdown&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L174\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;174\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC174\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mousedown&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L175\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;175\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC175\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;pointerup&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L176\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;176\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC176\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;mouseup&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L177\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;177\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC177\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;click&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L178\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;178\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC178\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>]</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L179\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;179\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC179\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L180\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;180\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC180\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>const</span> <span class=pl-s1>eventName</span> <span class=pl-k>of</span> <span class=pl-s1>events</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L181\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;181\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC181\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L182\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;182\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC182\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-v>EventClass</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L183\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;183\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC183\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>eventName</span><span class=pl-kos>.</span><span class=pl-en>startsWith</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>PointerEvent</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L184\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;184\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC184\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            ? <span class=pl-v>PointerEvent</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L185\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;185\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC185\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            : <span class=pl-v>MouseEvent</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L186\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;186\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC186\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L187\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;187\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC187\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span><span class=pl-k>new</span> <span class=pl-v>EventClass</span><span class=pl-kos>(</span><span class=pl-s1>eventName</span><span class=pl-kos>,</span> <span class=pl-s1>options</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L188\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;188\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC188\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L189\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;189\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC189\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L190\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;190\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC190\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span><span class=pl-k>new</span> <span class=pl-v>MouseEvent</span><span class=pl-kos>(</span><span class=pl-s1>eventName</span><span class=pl-kos>,</span> <span class=pl-s1>options</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L191\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;191\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC191\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L192\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;192\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC192\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L193\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;193\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC193\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L194\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;194\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC194\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L195\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;195\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC195\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-c1>true</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L196\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;196\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC196\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L197\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;197\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC197\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L198\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;198\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC198\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>dispatchScroll</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L199\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;199\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC199\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L200\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;200\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC200\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L201\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;201\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC201\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L202\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;202\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC202\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span><span class=pl-k>new</span> <span class=pl-v>Event</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;scroll&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-kos>{</span> <span class=pl-c1>bubbles</span>: <span class=pl-c1>true</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L203\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;203\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC203\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L204\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;204\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC204\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L205\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;205\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC205\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L206\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;206\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC206\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L207\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;207\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC207\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>new</span> <span class=pl-v>WheelEvent</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;wheel&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L208\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;208\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC208\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>bubbles</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L209\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;209\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC209\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>cancelable</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L210\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;210\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC210\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>deltaY</span>: <span class=pl-c1>1200</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L211\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;211\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC211\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L212\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;212\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC212\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L213\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;213\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC213\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L214\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;214\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC214\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L215\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;215\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC215\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>dispatchEvent</span><span class=pl-kos>(</span><span class=pl-k>new</span> <span class=pl-v>Event</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;wheel&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-kos>{</span> <span class=pl-c1>bubbles</span>: <span class=pl-c1>true</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L216\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;216\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC216\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L217\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;217\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC217\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L218\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;218\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC218\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L219\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;219\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC219\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L220\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;220\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC220\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>forceScrollBottom</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L221\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;221\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC221\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L222\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;222\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC222\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L223\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;223\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC223\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L224\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;224\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC224\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-c1>scrollTop</span> <span class=pl-c1>=</span> <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-c1>scrollHeight</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L225\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;225\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC225\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchScroll</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L226\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;226\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC226\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L227\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;227\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC227\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L228\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;228\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC228\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L229\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;229\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC229\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>scrollTo</span><span class=pl-kos>(</span><span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L230\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;230\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC230\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>top</span>: <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-c1>scrollHeight</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L231\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;231\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC231\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>behavior</span>: <span class=pl-s>&amp;quot;instant&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L232\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;232\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC232\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L233\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;233\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC233\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchScroll</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L234\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;234\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC234\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L235\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;235\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC235\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L236\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;236\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC236\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L237\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;237\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC237\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>forceScrollTop</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L238\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;238\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC238\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L239\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;239\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC239\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L240\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;240\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC240\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L241\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;241\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC241\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-c1>scrollTop</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L242\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;242\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC242\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchScroll</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L243\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;243\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC243\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L244\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;244\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC244\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L245\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;245\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC245\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>try</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L246\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;246\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC246\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>scrollTo</span><span class=pl-kos>(</span><span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L247\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;247\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC247\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>top</span>: <span class=pl-c1>0</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L248\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;248\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC248\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>behavior</span>: <span class=pl-s>&amp;quot;instant&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L249\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;249\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC249\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L250\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;250\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC250\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchScroll</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L251\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;251\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC251\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span> <span class=pl-k>catch</span> <span class=pl-kos>(</span><span class=pl-s1>_</span><span class=pl-kos>)</span> <span class=pl-kos>{</span><span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L252\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;252\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC252\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L253\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;253\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC253\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L254\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;254\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC254\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>findBestScrollContainer</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>root</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L255\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;255\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC255\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>candidates</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L256\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;256\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC256\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L257\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;257\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC257\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>let</span> <span class=pl-s1>node</span> <span class=pl-c1>=</span> <span class=pl-s1>root</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L258\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;258\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC258\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>while</span> <span class=pl-kos>(</span><span class=pl-s1>node</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-s1>node</span> <span class=pl-c1>!==</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>documentElement</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L259\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;259\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC259\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>candidates</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span><span class=pl-s1>node</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L260\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;260\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC260\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>node</span> <span class=pl-c1>=</span> <span class=pl-s1>node</span><span class=pl-kos>.</span><span class=pl-c1>parentElement</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L261\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;261\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC261\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L262\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;262\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC262\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L263\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;263\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC263\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>root</span><span class=pl-kos>?.</span><span class=pl-c1>querySelectorAll</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L264\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;264\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC264\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>candidates</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span>...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;*&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L265\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;265\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC265\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L266\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;266\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC266\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L267\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;267\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC267\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>candidates</span><span class=pl-kos>.</span><span class=pl-en>push</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L268\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;268\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC268\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aside&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L269\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;269\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC269\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;nav&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L270\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;270\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC270\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>scrollingElement</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L271\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;271\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC271\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>documentElement</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L272\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;272\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC272\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L273\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;273\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC273\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L274\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;274\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC274\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L275\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;275\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC275\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>scored</span> <span class=pl-c1>=</span> <span class=pl-en>unique</span><span class=pl-kos>(</span><span class=pl-s1>candidates</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L276\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;276\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC276\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-v>Boolean</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L277\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;277\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC277\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>map</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L278\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;278\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC278\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>rect</span> <span class=pl-c1>=</span> <span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L279\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;279\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC279\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>left</span>: <span class=pl-c1>0</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L280\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;280\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC280\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>top</span>: <span class=pl-c1>0</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L281\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;281\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC281\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>width</span>: <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>innerWidth</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L282\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;282\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC282\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>height</span>: <span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>innerHeight</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L283\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;283\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC283\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L284\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;284\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC284\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L285\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;285\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC285\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-en>getComputedStyle</span><span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L286\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;286\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC286\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>scrollableAmount</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-c1>scrollHeight</span> <span class=pl-c1>||</span> <span class=pl-c1>0</span><span class=pl-kos>)</span> <span class=pl-c1>-</span> <span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-c1>clientHeight</span> <span class=pl-c1>||</span> <span class=pl-c1>0</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L287\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;287\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC287\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L288\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;288\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC288\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>let</span> <span class=pl-s1>score</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L289\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;289\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC289\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L290\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;290\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC290\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>scrollableAmount</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>40</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>100</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L291\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;291\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC291\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>a</span><span class=pl-s>u</span><span class=pl-s>t</span><span class=pl-s>o</span><span class=pl-c1>|</span><span class=pl-s>s</span><span class=pl-s>c</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>l</span><span class=pl-s>l</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>overflowY</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>45</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L292\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;292\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC292\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>left</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-c1>700</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>35</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L293\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;293\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC293\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>width</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>160</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>width</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-c1>750</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>35</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L294\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;294\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC294\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>rect</span><span class=pl-kos>.</span><span class=pl-c1>height</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>250</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>20</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L295\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;295\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC295\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>matches</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aside, nav&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>20</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L296\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;296\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC296\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>min</span><span class=pl-kos>(</span><span class=pl-c1>120</span><span class=pl-kos>,</span> <span class=pl-s1>scrollableAmount</span> <span class=pl-c1>/</span> <span class=pl-c1>20</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L297\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;297\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC297\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L298\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;298\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC298\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>return</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L299\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;299\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC299\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          el<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L300\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;300\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC300\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          score<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L301\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;301\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC301\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          scrollableAmount<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L302\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;302\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC302\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          rect<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L303\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;303\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC303\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>overflowY</span>: <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>overflowY</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L304\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;304\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC304\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L305\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;305\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC305\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L306\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;306\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC306\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>scrollableAmount</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>40</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L307\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;307\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC307\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-c1>score</span> <span class=pl-c1>-</span> <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-c1>score</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L308\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;308\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC308\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L309\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;309\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC309\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-s1>scored</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>?.</span><span class=pl-c1>el</span> <span class=pl-c1>||</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>scrollingElement</span> <span class=pl-c1>||</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>documentElement</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L310\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;310\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC310\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L311\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;311\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC311\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L312\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;312\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC312\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>getMenuRoots</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L313\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;313\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC313\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L314\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;314\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC314\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[role=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L315\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;315\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC315\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-cds=&amp;quot;Menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L316\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;316\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC316\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-base-ui-focusable][role=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L317\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;317\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC317\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-floating-ui-focusable][role=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L318\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;318\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC318\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-radix-popper-content-wrapper]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L319\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;319\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC319\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-radix-menu-content]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L320\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;320\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC320\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-slot*=&amp;quot;dropdown&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L321\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;321\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC321\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-sidebar*=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L322\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;322\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC322\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.cdk-overlay-container&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L323\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;323\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC323\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[data-testid*=&amp;#39;menu&amp;#39;]&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L324\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;324\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC324\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[id^=&amp;#39;radix-&amp;#39;]&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L325\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;325\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC325\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[id^=&amp;#39;_r_&amp;#39;]&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L326\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;326\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC326\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L327\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;327\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC327\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-v>Boolean</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L328\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;328\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC328\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L329\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;329\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC329\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L330\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;330\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC330\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>findDeleteMenuItem</span> <span class=pl-c1>=</span> <span class=pl-k>async</span> <span class=pl-kos>(</span><span class=pl-s1>serviceName</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L331\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;331\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC331\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>let</span> <span class=pl-s1>attempt</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>attempt</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-c1>20</span><span class=pl-kos>;</span> <span class=pl-s1>attempt</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L332\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;332\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC332\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>roots</span> <span class=pl-c1>=</span> <span class=pl-en>getMenuRoots</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L333\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;333\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC333\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L334\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;334\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC334\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>const</span> <span class=pl-s1>root</span> <span class=pl-k>of</span> <span class=pl-s1>roots</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L335\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;335\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC335\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>candidates</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L336\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;336\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC336\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          ...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L337\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;337\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC337\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L338\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;338\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC338\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-c>// Claude &#54869;&#51221; &#49472;&#47113;&#53552;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L339\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;339\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC339\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;[data-testid=&amp;quot;delete-chat-trigger&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L340\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;340\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC340\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L341\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;341\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC341\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-c>// Meta &#54869;&#51221; &#44228;&#50676;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L342\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;342\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC342\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;[data-radix-popper-content-wrapper] [role=&amp;quot;menuitem&amp;quot;][data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L343\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;343\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC343\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;[data-radix-menu-content] [role=&amp;quot;menuitem&amp;quot;][data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L344\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;344\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC344\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L345\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;345\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC345\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-c>// &#48276;&#50857; &#47700;&#45684; &#54637;&#47785;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L346\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;346\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC346\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L347\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;347\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC347\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;[role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L348\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;348\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC348\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;[data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L349\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;349\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC349\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;[data-radix-collection-item]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L350\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;350\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC350\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L351\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;351\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC351\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-c>// &#53581;&#49828;&#53944;/&#49549;&#49457; &#44592;&#48152;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L352\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;352\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC352\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[title*=&amp;quot;&#45824;&#54868; &#49325;&#51228;&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L353\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;353\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC353\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#45824;&#54868; &#49325;&#51228;&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L354\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;354\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC354\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[title*=&amp;quot;&#52292;&#54021; &#49325;&#51228;&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L355\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;355\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC355\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#52292;&#54021; &#49325;&#51228;&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L356\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;356\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC356\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[title*=&amp;quot;&#49325;&#51228;&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L357\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;357\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC357\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#49325;&#51228;&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L358\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;358\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC358\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[title*=&amp;quot;Delete&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L359\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;359\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC359\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;Delete&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L360\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;360\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC360\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[title*=&amp;quot;Remove&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L361\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;361\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC361\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;Remove&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L362\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;362\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC362\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L363\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;363\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC363\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;.mat-mdc-menu-item&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L364\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;364\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC364\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;button&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L365\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;365\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC365\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;div&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L366\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;366\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC366\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;span&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L367\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;367\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC367\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>join</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;, &amp;quot;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L368\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;368\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC368\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L369\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;369\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC369\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isVisible</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L370\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;370\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC370\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L371\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;371\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC371\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>scored</span> <span class=pl-c1>=</span> <span class=pl-s1>candidates</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L372\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;372\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC372\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>.</span><span class=pl-en>map</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L373\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;373\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC373\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>clickable</span> <span class=pl-c1>=</span> <span class=pl-en>getClickableElement</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L374\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;374\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC374\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>text</span> <span class=pl-c1>=</span> <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>element</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L375\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;375\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC375\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>clickableText</span> <span class=pl-c1>=</span> <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>clickable</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L376\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;376\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC376\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L377\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;377\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC377\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>title</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L378\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;378\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC378\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;title&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L379\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;379\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC379\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;title&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L380\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;380\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC380\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L381\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;381\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC381\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L382\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;382\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC382\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>aria</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L383\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;383\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC383\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L384\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;384\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC384\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L385\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;385\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC385\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L386\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;386\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC386\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L387\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;387\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC387\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>testId</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L388\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;388\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC388\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;data-testid&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L389\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;389\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC389\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;data-testid&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L390\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;390\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC390\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L391\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;391\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC391\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L392\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;392\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC392\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>slot</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L393\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;393\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC393\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;data-slot&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L394\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;394\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC394\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;data-slot&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L395\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;395\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC395\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L396\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;396\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC396\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L397\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;397\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC397\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>className</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L398\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;398\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC398\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;class&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L399\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;399\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC399\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;class&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L400\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;400\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC400\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L401\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;401\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC401\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L402\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;402\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC402\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>combined</span> <span class=pl-c1>=</span> <span class=pl-s>`<span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>text</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>clickableText</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>title</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>aria</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>testId</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>slot</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>className</span><span class=pl-kos>}</span></span>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L403\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;403\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC403\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>.</span><span class=pl-en>replace</span><span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>\\s</span><span class=pl-c1>+</span><span class=pl-c1>/</span>g</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot; &amp;quot;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L404\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;404\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC404\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>.</span><span class=pl-en>trim</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L405\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;405\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC405\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L406\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;406\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC406\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>let</span> <span class=pl-s1>score</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L407\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;407\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC407\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L408\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;408\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC408\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// Claude &#54869;&#51221;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L409\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;409\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC409\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>-</span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>i</span><span class=pl-s>g</span><span class=pl-s>g</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>testId</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L410\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;410\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC410\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>280</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L411\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;411\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC411\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L412\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;412\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC412\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L413\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;413\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC413\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// Meta &#54869;&#51221;: Radix dropdown menu item + destructive class + &#49325;&#51228;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L414\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;414\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC414\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L415\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;415\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC415\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>serviceName</span> <span class=pl-c1>===</span> <span class=pl-s>&amp;quot;Meta AI&amp;quot;</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L416\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;416\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC416\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>d</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>p</span><span class=pl-s>d</span><span class=pl-s>o</span><span class=pl-s>w</span><span class=pl-s>n</span><span class=pl-s>-</span><span class=pl-s>m</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>u</span><span class=pl-s>-</span><span class=pl-s>i</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>slot</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L417\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;417\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC417\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>s</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>u</span><span class=pl-s>c</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>className</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L418\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;418\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC418\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>/</span></span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>combined</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L419\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;419\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC419\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L420\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;420\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC420\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>300</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L421\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;421\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC421\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L422\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;422\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC422\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L423\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;423\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC423\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L424\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;424\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC424\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>serviceName</span> <span class=pl-c1>===</span> <span class=pl-s>&amp;quot;Meta AI&amp;quot;</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L425\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;425\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC425\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>element</span><span class=pl-kos>.</span><span class=pl-en>closest</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[data-radix-popper-content-wrapper]&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L426\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;426\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC426\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>s</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>u</span><span class=pl-s>c</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>className</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L427\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;427\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC427\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>/</span></span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>combined</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L428\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;428\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC428\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L429\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;429\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC429\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>300</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L430\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;430\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC430\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L431\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;431\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC431\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L432\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;432\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC432\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#54620;&#44397;&#50612; &#49325;&#51228; &#47928;&#44396;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L433\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;433\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC433\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#45824;</span><span class=pl-s>&#54868;</span><span class=pl-s> </span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>|</span><span class=pl-s>&#52292;</span><span class=pl-s>&#54021;</span><span class=pl-s> </span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>|</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span>.<span class=pl-c1>*</span><span class=pl-s>&#45824;</span><span class=pl-s>&#54868;</span><span class=pl-c1>|</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span>.<span class=pl-c1>*</span><span class=pl-s>&#52292;</span><span class=pl-s>&#54021;</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>combined</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L434\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;434\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC434\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>160</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L435\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;435\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC435\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L436\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;436\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC436\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L437\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;437\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC437\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#50689;&#50612; &#49325;&#51228; &#47928;&#44396;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L438\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;438\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC438\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L439\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;439\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC439\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-s>s</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-c1>|</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>p</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>m</span><span class=pl-s>p</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-s>s</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-c1>|</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L440\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;440\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC440\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>                <span class=pl-s1>combined</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L441\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;441\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC441\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L442\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;442\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC442\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L443\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;443\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC443\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>160</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L444\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;444\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC444\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L445\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;445\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC445\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L446\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;446\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC446\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#45800;&#46021; &#49325;&#51228; &#53581;&#49828;&#53944;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L447\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;447\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC447\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-s>&#54616;</span><span class=pl-s>&#44592;</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-cce>$</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>text</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L448\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;448\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC448\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>130</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L449\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;449\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC449\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L450\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;450\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC450\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L451\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;451\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC451\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-s>&#54616;</span><span class=pl-s>&#44592;</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-cce>$</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>clickableText</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L452\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;452\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC452\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>130</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L453\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;453\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC453\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L454\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;454\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC454\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L455\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;455\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC455\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>a</span><span class=pl-s>s</span><span class=pl-s>h</span><span class=pl-c1>|</span><span class=pl-s>r</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>combined</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L456\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;456\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC456\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>70</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L457\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;457\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC457\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L458\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;458\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC458\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L459\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;459\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC459\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#50948;&#54744;/&#54028;&#44340; &#53364;&#47000;&#49828; &#44032;&#49328;&#51216;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L460\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;460\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC460\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>d</span><span class=pl-s>a</span><span class=pl-s>n</span><span class=pl-s>g</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-c1>|</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>s</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>u</span><span class=pl-s>c</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>r</span><span class=pl-s>e</span><span class=pl-s>d</span><span class=pl-c1>|</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>s</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>u</span><span class=pl-s>c</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>d</span><span class=pl-s>a</span><span class=pl-s>n</span><span class=pl-s>g</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-c1>|</span><span class=pl-s>g</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>u</span><span class=pl-s>p</span><span class=pl-s>-</span><span class=pl-s>m</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>u</span><span class=pl-s>-</span><span class=pl-s>d</span><span class=pl-s>a</span><span class=pl-s>n</span><span class=pl-s>g</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>className</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L461\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;461\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC461\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>80</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L462\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;462\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC462\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L463\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;463\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC463\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L464\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;464\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC464\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#50669;&#54624;/&#53468;&#44536; &#44032;&#49328;&#51216;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L465\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;465\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC465\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>matches</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>50</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L466\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;466\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC466\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>matches</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>45</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L467\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;467\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC467\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>matches</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>45</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L468\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;468\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC468\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-en>matches</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.mat-mdc-menu-item&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>35</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L469\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;469\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC469\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>clickable</span><span class=pl-kos>?.</span><span class=pl-c1>tagName</span><span class=pl-kos>?.</span><span class=pl-en>toLowerCase</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>===</span> <span class=pl-s>&amp;quot;button&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>25</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L470\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;470\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC470\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L471\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;471\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC471\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#49325;&#51228;&#44032; &#50500;&#45772; &#54637;&#47785; &#44048;&#51216;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L472\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;472\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC472\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L473\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;473\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC473\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#51600;</span><span class=pl-s>&#44200;</span><span class=pl-s>&#52286;</span><span class=pl-s>&#44592;</span><span class=pl-c1>|</span><span class=pl-s>&#44256;</span><span class=pl-s>&#51221;</span><span class=pl-c1>|</span><span class=pl-s>P</span><span class=pl-s>i</span><span class=pl-s>n</span><span class=pl-c1>|</span><span class=pl-s>S</span><span class=pl-s>t</span><span class=pl-s>a</span><span class=pl-s>r</span><span class=pl-c1>|</span><span class=pl-s>&#51060;</span><span class=pl-s>&#47492;</span><span class=pl-s> </span><span class=pl-s>&#48320;</span><span class=pl-s>&#44221;</span><span class=pl-c1>|</span><span class=pl-s>&#51060;</span><span class=pl-s>&#47492;</span><span class=pl-s> </span><span class=pl-s>&#48148;</span><span class=pl-s>&#44984;</span><span class=pl-s>&#44592;</span><span class=pl-c1>|</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>a</span><span class=pl-s>m</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>&#52488;</span><span class=pl-s>&#45824;</span><span class=pl-c1>|</span><span class=pl-s>I</span><span class=pl-s>n</span><span class=pl-s>v</span><span class=pl-s>i</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>&#44277;</span><span class=pl-s>&#50976;</span><span class=pl-c1>|</span><span class=pl-s>S</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>r</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>&#48373;</span><span class=pl-s>&#49324;</span><span class=pl-c1>|</span><span class=pl-s>C</span><span class=pl-s>o</span><span class=pl-s>p</span><span class=pl-s>y</span><span class=pl-c1>|</span><span class=pl-s>&#50836;</span><span class=pl-s>&#50557;</span><span class=pl-c1>|</span><span class=pl-s>S</span><span class=pl-s>u</span><span class=pl-s>m</span><span class=pl-s>m</span><span class=pl-s>a</span><span class=pl-s>r</span><span class=pl-s>y</span><span class=pl-c1>|</span><span class=pl-s>&#54532;</span><span class=pl-s>&#47196;</span><span class=pl-s>&#51229;</span><span class=pl-s>&#53944;</span><span class=pl-c1>|</span><span class=pl-s>P</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>j</span><span class=pl-s>e</span><span class=pl-s>c</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>&#48372;</span><span class=pl-s>&#44256;</span><span class=pl-c1>|</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>p</span><span class=pl-s>o</span><span class=pl-s>r</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>A</span><span class=pl-s>r</span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>i</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>&#48372;</span><span class=pl-s>&#44288;</span><span class=pl-c1>|</span><span class=pl-s>E</span><span class=pl-s>x</span><span class=pl-s>p</span><span class=pl-s>o</span><span class=pl-s>r</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>&#45236;</span><span class=pl-s>&#48372;</span><span class=pl-s>&#45236;</span><span class=pl-s>&#44592;</span><span class=pl-c1>|</span><span class=pl-s>M</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>&#51060;</span><span class=pl-s>&#46041;</span><span class=pl-c1>|</span><span class=pl-s>&#52628;</span><span class=pl-s>&#44032;</span><span class=pl-c1>|</span><span class=pl-s>A</span><span class=pl-s>d</span><span class=pl-s>d</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L474\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;474\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC474\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>                <span class=pl-s1>combined</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L475\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;475\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC475\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L476\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;476\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC476\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L477\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;477\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC477\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>-=</span> <span class=pl-c1>220</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L478\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;478\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC478\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L479\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;479\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC479\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L480\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;480\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC480\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>return</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L481\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;481\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC481\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-c1>rawElement</span>: <span class=pl-s1>element</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L482\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;482\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC482\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-c1>element</span>: <span class=pl-s1>clickable</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L483\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;483\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC483\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              score<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L484\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;484\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC484\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              text<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L485\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;485\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC485\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              clickableText<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L486\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;486\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC486\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              title<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L487\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;487\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC487\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              aria<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L488\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;488\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC488\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              testId<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L489\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;489\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC489\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              slot<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L490\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;490\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC490\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              className<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L491\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;491\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC491\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              combined<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L492\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;492\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC492\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L493\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;493\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC493\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>}</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L494\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;494\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC494\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>element</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>score</span> <span class=pl-c1>&amp;gt;=</span> <span class=pl-c1>110</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L495\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;495\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC495\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-c1>score</span> <span class=pl-c1>-</span> <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-c1>score</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L496\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;496\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC496\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L497\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;497\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC497\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>scored</span><span class=pl-kos>.</span><span class=pl-c1>length</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>0</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L498\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;498\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC498\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>const</span> <span class=pl-s1>picked</span> <span class=pl-c1>=</span> <span class=pl-s1>scored</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L499\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;499\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC499\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L500\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;500\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC500\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#49325;&#51228; &#47700;&#45684; &#44048;&#51648;:&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L501\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;501\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC501\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>service</span>: <span class=pl-s1>serviceName</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L502\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;502\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC502\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>text</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>text</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L503\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;503\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC503\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>clickableText</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>clickableText</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L504\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;504\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC504\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>title</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>title</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L505\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;505\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC505\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>aria</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>aria</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L506\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;506\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC506\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>testId</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>testId</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L507\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;507\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC507\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>slot</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>slot</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L508\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;508\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC508\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>score</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>score</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L509\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;509\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC509\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L510\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;510\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC510\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L511\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;511\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC511\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>return</span> <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>element</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L512\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;512\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC512\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L513\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;513\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC513\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L514\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;514\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC514\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L515\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;515\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC515\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>200</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L516\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;516\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC516\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L517\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;517\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC517\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L518\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;518\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC518\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-c1>null</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L519\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;519\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC519\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L520\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;520\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC520\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L521\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;521\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC521\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>findConfirmDeleteButton</span> <span class=pl-c1>=</span> <span class=pl-k>async</span> <span class=pl-kos>(</span><span class=pl-s1>serviceName</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L522\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;522\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC522\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>let</span> <span class=pl-s1>attempt</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>attempt</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-c1>24</span><span class=pl-kos>;</span> <span class=pl-s1>attempt</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L523\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;523\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC523\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>roots</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L524\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;524\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC524\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[role=&amp;quot;dialog&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L525\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;525\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC525\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[role=&amp;quot;alertdialog&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L526\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;526\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC526\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;mat-dialog-container&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L527\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;527\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC527\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-testid*=&amp;quot;dialog&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L528\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;528\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC528\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-slot=&amp;quot;dialog-content&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L529\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;529\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC529\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-floating-ui-focusable]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L530\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;530\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC530\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-radix-popper-content-wrapper]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L531\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;531\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC531\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-radix-dialog-content]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L532\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;532\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC532\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.cdk-overlay-container&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L533\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;533\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC533\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L534\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;534\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC534\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-v>Boolean</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L535\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;535\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC535\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L536\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;536\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC536\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>const</span> <span class=pl-s1>root</span> <span class=pl-k>of</span> <span class=pl-s1>roots</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L537\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;537\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC537\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>rootText</span> <span class=pl-c1>=</span> <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>root</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L538\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;538\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC538\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L539\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;539\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC539\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>buttons</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L540\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;540\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC540\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          ...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button, [role=&amp;quot;button&amp;quot;], [data-slot=&amp;quot;button&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L541\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;541\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC541\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isVisible</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L542\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;542\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC542\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L543\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;543\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC543\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>scored</span> <span class=pl-c1>=</span> <span class=pl-s1>buttons</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L544\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;544\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC544\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>.</span><span class=pl-en>map</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>button</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L545\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;545\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC545\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>text</span> <span class=pl-c1>=</span> <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>button</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L546\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;546\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC546\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>title</span> <span class=pl-c1>=</span> <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;title&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L547\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;547\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC547\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>aria</span> <span class=pl-c1>=</span> <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L548\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;548\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC548\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>className</span> <span class=pl-c1>=</span> <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;class&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s>&amp;quot;&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L549\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;549\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC549\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L550\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;550\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC550\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>const</span> <span class=pl-s1>combined</span> <span class=pl-c1>=</span> <span class=pl-s>`<span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>text</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>title</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>aria</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>rootText</span><span class=pl-kos>}</span></span> <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>className</span><span class=pl-kos>}</span></span>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L551\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;551\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC551\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>.</span><span class=pl-en>replace</span><span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>\\s</span><span class=pl-c1>+</span><span class=pl-c1>/</span>g</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot; &amp;quot;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L552\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;552\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC552\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>.</span><span class=pl-en>trim</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L553\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;553\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC553\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L554\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;554\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC554\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>let</span> <span class=pl-s1>score</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L555\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;555\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC555\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L556\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;556\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC556\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// Claude &#54869;&#51064;&#52285;: &amp;quot;&#45824;&#54868; &#49325;&#51228;&amp;quot; + &amp;quot;&#49325;&#51228;&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L557\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;557\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC557\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#45824;</span><span class=pl-s>&#54868;</span><span class=pl-s> </span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>rootText</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-cce>$</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>text</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L558\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;558\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC558\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>280</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L559\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;559\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC559\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L560\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;560\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC560\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L561\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;561\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC561\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// Meta &#54869;&#51064;&#52285;: &amp;quot;&#52292;&#54021;&#51012; &#49325;&#51228;&#54624;&#44620;&#50836;?&amp;quot; + &amp;quot;&#49325;&#51228;&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L562\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;562\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC562\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#52292;</span><span class=pl-s>&#54021;</span><span class=pl-s>&#51012;</span><span class=pl-s> </span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-s>&#54624;</span><span class=pl-s>&#44620;</span><span class=pl-s>&#50836;</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>rootText</span><span class=pl-kos>)</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-cce>$</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>text</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L563\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;563\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC563\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>280</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L564\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;564\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC564\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L565\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;565\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC565\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L566\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;566\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC566\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#48276;&#50857; &#54869;&#51064;&#52285;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L567\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;567\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC567\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-s>&#54616;</span><span class=pl-s>&#44592;</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-cce>$</span><span class=pl-c1>|</span><span class=pl-cce>^</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-cce>$</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>text</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>150</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L568\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;568\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC568\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#45824;</span><span class=pl-s>&#54868;</span><span class=pl-s> </span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>|</span><span class=pl-s>&#52292;</span><span class=pl-s>&#54021;</span><span class=pl-s> </span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span><span class=pl-c1>|</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span>.<span class=pl-c1>*</span><span class=pl-s>&#45824;</span><span class=pl-s>&#54868;</span><span class=pl-c1>|</span><span class=pl-s>&#49325;</span><span class=pl-s>&#51228;</span>.<span class=pl-c1>*</span><span class=pl-s>&#52292;</span><span class=pl-s>&#54021;</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>combined</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>120</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L569\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;569\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC569\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L570\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;570\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC570\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L571\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;571\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC571\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-s>s</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-c1>|</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>D</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-s>e</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>p</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>m</span><span class=pl-s>p</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-s>s</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-c1>|</span><span class=pl-s>R</span><span class=pl-s>e</span><span class=pl-s>m</span><span class=pl-s>o</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L572\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;572\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC572\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>                <span class=pl-s1>combined</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L573\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;573\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC573\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L574\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;574\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC574\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L575\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;575\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC575\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>120</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L576\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;576\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC576\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L577\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;577\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC577\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L578\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;578\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC578\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#54869;</span><span class=pl-s>&#51064;</span><span class=pl-c1>|</span><span class=pl-s>C</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>f</span><span class=pl-s>i</span><span class=pl-s>r</span><span class=pl-s>m</span><span class=pl-c1>|</span><span class=pl-s>O</span><span class=pl-s>K</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>text</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>25</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L579\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;579\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC579\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L580\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;580\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC580\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#50948;&#54744; &#48260;&#53948; &#53364;&#47000;&#49828; &#44032;&#49328;&#51216;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L581\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;581\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC581\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L582\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;582\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC582\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>d</span><span class=pl-s>a</span><span class=pl-s>n</span><span class=pl-s>g</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-c1>|</span><span class=pl-s>r</span><span class=pl-s>e</span><span class=pl-s>d</span><span class=pl-c1>|</span><span class=pl-s>a</span><span class=pl-s>c</span><span class=pl-s>c</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>d</span><span class=pl-s>e</span><span class=pl-s>s</span><span class=pl-s>t</span><span class=pl-s>r</span><span class=pl-s>u</span><span class=pl-s>c</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-c1>|</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>-</span><span class=pl-s>d</span><span class=pl-s>a</span><span class=pl-s>n</span><span class=pl-s>g</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-c1>|</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>t</span><span class=pl-s>e</span><span class=pl-s>x</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>-</span><span class=pl-s>a</span><span class=pl-s>c</span><span class=pl-s>c</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>g</span><span class=pl-s>r</span><span class=pl-s>a</span><span class=pl-s>d</span><span class=pl-s>i</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>r</span><span class=pl-s>e</span><span class=pl-s>d</span><span class=pl-c1>|</span><span class=pl-s>f</span><span class=pl-s>r</span><span class=pl-s>o</span><span class=pl-s>m</span><span class=pl-s>-</span><span class=pl-s>g</span><span class=pl-s>r</span><span class=pl-s>a</span><span class=pl-s>d</span><span class=pl-s>i</span><span class=pl-s>e</span><span class=pl-s>n</span><span class=pl-s>t</span><span class=pl-s>-</span><span class=pl-s>r</span><span class=pl-s>e</span><span class=pl-s>d</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L583\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;583\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC583\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>                <span class=pl-s1>className</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L584\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;584\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC584\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L585\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;585\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC585\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L586\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;586\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC586\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              <span class=pl-s1>score</span> <span class=pl-c1>+=</span> <span class=pl-c1>60</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L587\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;587\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC587\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L588\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;588\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC588\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L589\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;589\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC589\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c>// &#52712;&#49548;/&#45803;&#44592; &#44048;&#51216;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L590\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;590\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC590\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#52712;</span><span class=pl-s>&#49548;</span><span class=pl-c1>|</span><span class=pl-s>C</span><span class=pl-s>a</span><span class=pl-s>n</span><span class=pl-s>c</span><span class=pl-s>e</span><span class=pl-s>l</span><span class=pl-c1>|</span><span class=pl-s>&#45803;</span><span class=pl-s>&#44592;</span><span class=pl-c1>|</span><span class=pl-s>C</span><span class=pl-s>l</span><span class=pl-s>o</span><span class=pl-s>s</span><span class=pl-s>e</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>text</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>-=</span> <span class=pl-c1>450</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L591\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;591\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC591\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#45803;</span><span class=pl-s>&#44592;</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>aria</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-s1>score</span> <span class=pl-c1>-=</span> <span class=pl-c1>450</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L592\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;592\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC592\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L593\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;593\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC593\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-k>return</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L594\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;594\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC594\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              button<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L595\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;595\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC595\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              score<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L596\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;596\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC596\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              text<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L597\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;597\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC597\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              title<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L598\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;598\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC598\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              aria<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L599\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;599\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC599\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>              combined<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L600\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;600\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC600\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L601\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;601\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC601\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>}</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L602\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;602\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC602\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>item</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>item</span><span class=pl-kos>.</span><span class=pl-c1>score</span> <span class=pl-c1>&amp;gt;=</span> <span class=pl-c1>120</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L603\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;603\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC603\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-c1>score</span> <span class=pl-c1>-</span> <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-c1>score</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L604\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;604\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC604\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L605\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;605\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC605\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>scored</span><span class=pl-kos>.</span><span class=pl-c1>length</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>0</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L606\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;606\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC606\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>const</span> <span class=pl-s1>picked</span> <span class=pl-c1>=</span> <span class=pl-s1>scored</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L607\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;607\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC607\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L608\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;608\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC608\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#49325;&#51228; &#54869;&#51064; &#48260;&#53948; &#44048;&#51648;:&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L609\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;609\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC609\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>service</span>: <span class=pl-s1>serviceName</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L610\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;610\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC610\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>text</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>text</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L611\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;611\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC611\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>title</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>title</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L612\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;612\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC612\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>aria</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>aria</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L613\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;613\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC613\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>score</span>: <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>score</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L614\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;614\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC614\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L615\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;615\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC615\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L616\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;616\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC616\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>return</span> <span class=pl-s1>picked</span><span class=pl-kos>.</span><span class=pl-c1>button</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L617\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;617\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC617\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L618\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;618\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC618\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L619\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;619\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC619\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L620\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;620\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC620\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>200</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L621\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;621\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC621\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L622\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;622\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC622\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L623\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;623\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC623\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-c1>null</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L624\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;624\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC624\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L625\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;625\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC625\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L626\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;626\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC626\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>waitForRowCountChange</span> <span class=pl-c1>=</span> <span class=pl-k>async</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L627\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;627\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC627\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>cleaner</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L628\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;628\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC628\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>beforeCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L629\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;629\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC629\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>targetKey</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L630\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;630\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC630\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>timeoutMs</span> <span class=pl-c1>=</span> <span class=pl-c1>5000</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L631\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;631\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC631\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L632\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;632\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC632\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>start</span> <span class=pl-c1>=</span> <span class=pl-v>Date</span><span class=pl-kos>.</span><span class=pl-en>now</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L633\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;633\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC633\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L634\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;634\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC634\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>while</span> <span class=pl-kos>(</span><span class=pl-v>Date</span><span class=pl-kos>.</span><span class=pl-en>now</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>-</span> <span class=pl-s1>start</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-s1>timeoutMs</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L635\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;635\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC635\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>rows</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L636\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;636\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC636\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>currentCount</span> <span class=pl-c1>=</span> <span class=pl-s1>rows</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L637\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;637\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC637\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>stillExists</span> <span class=pl-c1>=</span> <span class=pl-s1>targetKey</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L638\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;638\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC638\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ? <span class=pl-s1>rows</span><span class=pl-kos>.</span><span class=pl-en>some</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>===</span> <span class=pl-s1>targetKey</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L639\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;639\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC639\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        : <span class=pl-c1>false</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L640\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;640\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC640\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L641\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;641\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC641\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>currentCount</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-s1>beforeCount</span> <span class=pl-c1>||</span> <span class=pl-c1>!</span><span class=pl-s1>stillExists</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L642\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;642\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC642\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>return</span> <span class=pl-c1>true</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L643\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;643\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC643\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L644\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;644\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC644\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L645\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;645\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC645\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>250</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L646\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;646\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC646\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L647\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;647\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC647\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L648\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;648\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC648\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-c1>false</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L649\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;649\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC649\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L650\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;650\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC650\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L651\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;651\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC651\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>preloadRowsForCleaner</span> <span class=pl-c1>=</span> <span class=pl-k>async</span> <span class=pl-kos>(</span><span class=pl-s1>cleaner</span><span class=pl-kos>,</span> <span class=pl-s1>targetCount</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L652\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;652\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC652\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>enableLazyPreload</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L653\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;653\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC653\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>supportsLazyLoad</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L654\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;654\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC654\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L655\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;655\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC655\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>desiredCount</span> <span class=pl-c1>=</span> <span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>min</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L656\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;656\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC656\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>targetCount</span> <span class=pl-c1>+</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>preloadExtraBuffer</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L657\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;657\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC657\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>maxLimit</span> <span class=pl-c1>+</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>preloadExtraBuffer</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L658\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;658\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC658\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L659\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;659\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC659\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L660\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;660\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC660\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>scroller</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getScrollContainer</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L661\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;661\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC661\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L662\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;662\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC662\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>scroller</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L663\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;663\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC663\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#49828;&#53356;&#47204; &#52968;&#53580;&#51060;&#45320;&#47484; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.`</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L664\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;664\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC664\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L665\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;665\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC665\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L666\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;666\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC666\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L667\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;667\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC667\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>let</span> <span class=pl-s1>previousCount</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L668\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;668\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC668\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>let</span> <span class=pl-s1>stableRounds</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L669\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;669\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC669\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L670\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;670\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC670\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#45824;&#54868; &#47785;&#47197; &#49324;&#51204; &#47196;&#46377; &#49884;&#51089;:`</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L671\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;671\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC671\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>previousCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L672\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;672\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC672\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>&#47785;&#54364;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>desiredCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L673\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;673\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC673\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>scrollHeight</span>: <span class=pl-s1>scroller</span><span class=pl-kos>.</span><span class=pl-c1>scrollHeight</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L674\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;674\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC674\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>clientHeight</span>: <span class=pl-s1>scroller</span><span class=pl-kos>.</span><span class=pl-c1>clientHeight</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L675\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;675\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC675\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L676\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;676\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC676\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L677\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;677\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC677\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>let</span> <span class=pl-s1>round</span> <span class=pl-c1>=</span> <span class=pl-c1>1</span><span class=pl-kos>;</span> <span class=pl-s1>round</span> <span class=pl-c1>&amp;lt;=</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>preloadMaxRounds</span><span class=pl-kos>;</span> <span class=pl-s1>round</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L678\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;678\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC678\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>__aiChatHistoryCleanerStop</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L679\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;679\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC679\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#51473;&#51648; &#50836;&#52397;&#51004;&#47196; &#49324;&#51204; &#47196;&#46377;&#51012; &#47688;&#52676;&#49845;&#45768;&#45796;.&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L680\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;680\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC680\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L681\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;681\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC681\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L682\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;682\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC682\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L683\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;683\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC683\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>currentCount</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L684\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;684\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC684\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L685\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;685\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC685\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>currentCount</span> <span class=pl-c1>&amp;gt;=</span> <span class=pl-s1>desiredCount</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L686\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;686\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC686\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#49324;&#51204; &#47196;&#46377; &#47785;&#54364; &#46020;&#45804;:`</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L687\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;687\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC687\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>&#47196;&#46300;&#49688;</span>: <span class=pl-s1>currentCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L688\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;688\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC688\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>&#47785;&#54364;</span>: <span class=pl-s1>desiredCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L689\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;689\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC689\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L690\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;690\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC690\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L691\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;691\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC691\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L692\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;692\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC692\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L693\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;693\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC693\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>forceScrollBottom</span><span class=pl-kos>(</span><span class=pl-s1>scroller</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L694\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;694\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC694\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>preloadScrollDelay</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L695\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;695\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC695\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L696\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;696\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC696\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>newCount</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L697\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;697\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC697\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L698\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;698\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC698\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#49324;&#51204; &#47196;&#46377; &#51652;&#54665;:`</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L699\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;699\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC699\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        round<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L700\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;700\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC700\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>&#51060;&#51204;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>currentCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L701\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;701\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC701\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>newCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L702\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;702\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC702\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>&#47785;&#54364;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>desiredCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L703\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;703\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC703\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L704\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;704\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC704\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L705\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;705\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC705\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>newCount</span> <span class=pl-c1>&amp;lt;=</span> <span class=pl-s1>previousCount</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L706\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;706\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC706\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>stableRounds</span> <span class=pl-c1>+=</span> <span class=pl-c1>1</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L707\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;707\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC707\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span> <span class=pl-k>else</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L708\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;708\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC708\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>stableRounds</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L709\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;709\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC709\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>previousCount</span> <span class=pl-c1>=</span> <span class=pl-s1>newCount</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L710\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;710\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC710\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L711\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;711\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC711\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L712\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;712\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC712\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>stableRounds</span> <span class=pl-c1>&amp;gt;=</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>preloadStableLimit</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L713\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;713\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC713\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L714\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;714\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC714\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#52628;&#44032; &#47196;&#46300; &#51613;&#44032;&#44032; &#47688;&#52656; &#49324;&#51204; &#47196;&#46377;&#51012; &#51333;&#47308;&#54633;&#45768;&#45796;.`</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L715\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;715\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC715\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L716\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;716\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC716\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-c1>&#47196;&#46300;&#49688;</span>: <span class=pl-s1>newCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L717\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;717\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC717\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            stableRounds<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L718\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;718\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC718\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L719\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;719\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC719\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L720\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;720\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC720\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L721\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;721\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC721\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L722\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;722\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC722\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L723\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;723\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC723\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L724\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;724\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC724\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>forceScrollTop</span><span class=pl-kos>(</span><span class=pl-s1>scroller</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L725\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;725\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC725\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>700</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L726\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;726\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC726\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L727\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;727\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC727\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#45824;&#54868; &#47785;&#47197; &#49324;&#51204; &#47196;&#46377; &#51333;&#47308;:`</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L728\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;728\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC728\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>&#52572;&#51333;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L729\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;729\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC729\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L730\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;730\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC730\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L731\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;731\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC731\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L732\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;732\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC732\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>loadMoreIfNeeded</span> <span class=pl-c1>=</span> <span class=pl-k>async</span> <span class=pl-kos>(</span><span class=pl-s1>cleaner</span><span class=pl-kos>,</span> <span class=pl-s1>remainingTarget</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L733\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;733\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC733\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>supportsLazyLoad</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L734\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;734\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC734\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L735\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;735\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC735\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>rows</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L736\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;736\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC736\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L737\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;737\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC737\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>rows</span><span class=pl-kos>.</span><span class=pl-c1>length</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>lowWatermarkRows</span><span class=pl-kos>)</span> <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L738\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;738\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC738\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L739\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;739\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC739\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>scroller</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getScrollContainer</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L740\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;740\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC740\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L741\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;741\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC741\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>scroller</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L742\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;742\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC742\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#49828;&#53356;&#47204; &#52968;&#53580;&#51060;&#45320;&#47484; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.`</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L743\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;743\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC743\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L744\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;744\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC744\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L745\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;745\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC745\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L746\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;746\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC746\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>let</span> <span class=pl-s1>previousCount</span> <span class=pl-c1>=</span> <span class=pl-s1>rows</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L747\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;747\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC747\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>let</span> <span class=pl-s1>stableRounds</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L748\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;748\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC748\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L749\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;749\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC749\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#47196;&#46300;&#46108; &#45824;&#54868;&#44032; &#48512;&#51313;&#54644; &#52628;&#44032; &#47196;&#46377;&#51012; &#49884;&#46020;&#54633;&#45768;&#45796;.`</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L750\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;750\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC750\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>previousCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L751\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;751\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC751\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>&#45224;&#51008;&#49325;&#51228;&#47785;&#54364;</span>: <span class=pl-s1>remainingTarget</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L752\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;752\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC752\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L753\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;753\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC753\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L754\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;754\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC754\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>let</span> <span class=pl-s1>round</span> <span class=pl-c1>=</span> <span class=pl-c1>1</span><span class=pl-kos>;</span> <span class=pl-s1>round</span> <span class=pl-c1>&amp;lt;=</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>retryLoadMoreRounds</span><span class=pl-kos>;</span> <span class=pl-s1>round</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L755\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;755\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC755\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>__aiChatHistoryCleanerStop</span><span class=pl-kos>)</span> <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L756\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;756\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC756\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L757\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;757\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC757\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>forceScrollBottom</span><span class=pl-kos>(</span><span class=pl-s1>scroller</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L758\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;758\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC758\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>preloadScrollDelay</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L759\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;759\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC759\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L760\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;760\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC760\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>newCount</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L761\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;761\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC761\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L762\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;762\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC762\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#52628;&#44032; &#47196;&#46377; &#51652;&#54665;:`</span><span class=pl-kos>,</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L763\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;763\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC763\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        round<span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L764\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;764\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC764\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>&#51060;&#51204;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>previousCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L765\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;765\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC765\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class=pl-s1>newCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L766\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;766\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC766\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L767\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;767\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC767\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L768\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;768\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC768\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>newCount</span> <span class=pl-c1>&amp;gt;</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>lowWatermarkRows</span><span class=pl-kos>)</span> <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L769\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;769\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC769\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L770\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;770\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC770\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>newCount</span> <span class=pl-c1>&amp;lt;=</span> <span class=pl-s1>previousCount</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L771\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;771\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC771\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>stableRounds</span> <span class=pl-c1>+=</span> <span class=pl-c1>1</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L772\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;772\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC772\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span> <span class=pl-k>else</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L773\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;773\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC773\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>stableRounds</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L774\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;774\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC774\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>previousCount</span> <span class=pl-c1>=</span> <span class=pl-s1>newCount</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L775\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;775\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC775\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L776\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;776\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC776\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L777\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;777\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC777\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>stableRounds</span> <span class=pl-c1>&amp;gt;=</span> <span class=pl-c1>3</span><span class=pl-kos>)</span> <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L778\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;778\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC778\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L779\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;779\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC779\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L780\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;780\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC780\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>forceScrollTop</span><span class=pl-kos>(</span><span class=pl-s1>scroller</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L781\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;781\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC781\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>500</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L782\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;782\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC782\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L783\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;783\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC783\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L784\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;784\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC784\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-v>GeminiCleaner</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L785\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;785\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC785\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>name</span>: <span class=pl-s>&amp;quot;Google Gemini&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L786\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;786\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC786\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>supportsLazyLoad</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L787\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;787\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC787\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L788\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;788\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC788\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>detect</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L789\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;789\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC789\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L790\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;790\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC790\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>location</span><span class=pl-kos>.</span><span class=pl-c1>hostname</span><span class=pl-kos>.</span><span class=pl-en>includes</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;gemini.google.com&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L791\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;791\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC791\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-test-id=&amp;quot;all-conversations&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L792\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;792\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC792\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L793\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;793\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC793\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;[data-test-id=&amp;quot;conversation&amp;quot;] [data-test-id=&amp;quot;actions-menu-button&amp;quot;]&amp;#39;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L794\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;794\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC794\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L795\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;795\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC795\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L796\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;796\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC796\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L797\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;797\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC797\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L798\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;798\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC798\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L799\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;799\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC799\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L800\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;800\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC800\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-test-id=&amp;quot;all-conversations&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L801\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;801\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC801\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;#sidenav-section-content-chats&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L802\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;802\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC802\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.chat-history-list&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L803\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;803\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC803\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.chat-history&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L804\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;804\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC804\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L805\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;805\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC805\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L806\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;806\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC806\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L807\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;807\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC807\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L808\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;808\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC808\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getScrollContainer</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L809\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;809\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC809\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-en>findBestScrollContainer</span><span class=pl-kos>(</span><span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L810\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;810\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC810\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L811\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;811\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC811\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L812\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;812\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC812\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L813\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;813\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC813\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>getElementById</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;__ai_cleaner_gemini_css&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L814\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;814\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC814\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>createElement</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;style&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L815\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;815\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC815\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>id</span> <span class=pl-c1>=</span> <span class=pl-s>&amp;quot;__ai_cleaner_gemini_css&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L816\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;816\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC816\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>textContent</span> <span class=pl-c1>=</span> <span class=pl-s>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L817\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;817\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC817\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-test-id=&amp;quot;conversation&amp;quot;] .hovered-trailing-content,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L818\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;818\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC818\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-test-id=&amp;quot;conversation&amp;quot;] [data-test-id=&amp;quot;actions-menu-button&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L819\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;819\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC819\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-test-id=&amp;quot;conversation&amp;quot;] [data-test-id=&amp;quot;actions-menu-button&amp;quot;] button {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L820\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;820\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC820\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: flex !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L821\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;821\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC821\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L822\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;822\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC822\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L823\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;823\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC823\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L824\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;824\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC824\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L825\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;825\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC825\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s></span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L826\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;826\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC826\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-test-id=&amp;quot;conversation&amp;quot;] .trailing-content {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L827\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;827\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC827\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 0 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L828\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;828\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC828\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: none !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L829\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;829\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC829\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L830\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;830\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC830\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>        `</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L831\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;831\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC831\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>head</span><span class=pl-kos>.</span><span class=pl-en>appendChild</span><span class=pl-kos>(</span><span class=pl-s1>style</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L832\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;832\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC832\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L833\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;833\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC833\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L834\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;834\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC834\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L835\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;835\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC835\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L836\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;836\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC836\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>root</span> <span class=pl-c1>=</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L837\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;837\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC837\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L838\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;838\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC838\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>[</span>...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-test-id=&amp;quot;conversation&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>]</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L839\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;839\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC839\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isUsableElement</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L840\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;840\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC840\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[href^=&amp;quot;/app/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L841\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;841\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC841\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L842\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;842\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC842\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L843\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;843\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC843\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>-</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L844\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;844\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC844\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L845\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;845\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC845\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L846\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;846\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC846\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L847\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;847\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC847\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L848\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;848\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC848\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>titleElement</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.title-text&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L849\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;849\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC849\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>linkElement</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;a[aria-label]&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L850\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;850\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC850\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L851\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;851\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC851\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L852\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;852\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC852\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>titleElement</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L853\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;853\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC853\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>linkElement</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L854\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;854\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC854\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L855\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;855\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC855\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;(&#51228;&#47785; &#50630;&#51020;)&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L856\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;856\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC856\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L857\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;857\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC857\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L858\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;858\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC858\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L859\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;859\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC859\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L860\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;860\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC860\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>linkElement</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[href^=&amp;quot;/app/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L861\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;861\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC861\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-s1>linkElement</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;href&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L862\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;862\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC862\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L863\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;863\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC863\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L864\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;864\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC864\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>async</span> <span class=pl-en>getMoreButton</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L865\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;865\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC865\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L866\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;866\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC866\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L867\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;867\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC867\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>scrollIntoView</span><span class=pl-kos>(</span><span class=pl-kos>{</span> <span class=pl-c1>block</span>: <span class=pl-s>&amp;quot;center&amp;quot;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L868\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;868\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC868\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchHover</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L869\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;869\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC869\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L870\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;870\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC870\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>300</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L871\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;871\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC871\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L872\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;872\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC872\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L873\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;873\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC873\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-test-id=&amp;quot;actions-menu-button&amp;quot;] button&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L874\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;874\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC874\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-test-id=&amp;quot;actions-menu-button&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L875\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;875\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC875\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#45908;&#48372;&#44592;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L876\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;876\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC876\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L877\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;877\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC877\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;mat-icon[fonticon=&amp;quot;more_vert&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;button&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L878\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;878\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC878\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>null</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L879\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;879\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC879\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L880\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;880\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC880\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L881\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;881\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC881\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L882\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;882\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC882\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L883\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;883\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC883\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-v>CopilotCleaner</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L884\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;884\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC884\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>name</span>: <span class=pl-s>&amp;quot;Microsoft Copilot&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L885\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;885\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC885\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>supportsLazyLoad</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L886\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;886\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC886\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L887\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;887\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC887\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>detect</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L888\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;888\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC888\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L889\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;889\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC889\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>location</span><span class=pl-kos>.</span><span class=pl-c1>hostname</span><span class=pl-kos>.</span><span class=pl-en>includes</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;copilot.microsoft.com&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L890\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;890\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC890\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-testid=&amp;quot;sidebar-expanded-content&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L891\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;891\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC891\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[id^=&amp;quot;conversation-options-&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L892\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;892\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC892\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L893\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;893\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC893\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L894\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;894\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC894\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L895\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;895\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC895\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L896\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;896\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC896\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L897\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;897\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC897\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-testid=&amp;quot;sidebar-expanded-content&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L898\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;898\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC898\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[role=&amp;quot;list&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L899\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;899\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC899\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L900\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;900\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC900\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L901\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;901\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC901\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L902\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;902\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC902\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L903\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;903\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC903\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getScrollContainer</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L904\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;904\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC904\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-en>findBestScrollContainer</span><span class=pl-kos>(</span><span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L905\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;905\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC905\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L906\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;906\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC906\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L907\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;907\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC907\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L908\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;908\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC908\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>getElementById</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;__ai_cleaner_copilot_css&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L909\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;909\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC909\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>createElement</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;style&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L910\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;910\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC910\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>id</span> <span class=pl-c1>=</span> <span class=pl-s>&amp;quot;__ai_cleaner_copilot_css&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L911\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;911\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC911\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>textContent</span> <span class=pl-c1>=</span> <span class=pl-s>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L912\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;912\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC912\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          button[id^=&amp;quot;conversation-options-&amp;quot;] {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L913\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;913\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC913\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: flex !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L914\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;914\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC914\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L915\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;915\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC915\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L916\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;916\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC916\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L917\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;917\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC917\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            position: static !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L918\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;918\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC918\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            width: 24px !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L919\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;919\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC919\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            height: 24px !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L920\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;920\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC920\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            min-width: 24px !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L921\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;921\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC921\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            min-height: 24px !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L922\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;922\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC922\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            clip: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L923\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;923\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC923\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            clip-path: none !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L924\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;924\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC924\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            overflow: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L925\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;925\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC925\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            transform: none !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L926\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;926\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC926\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L927\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;927\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC927\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s></span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L928\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;928\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC928\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          span:has(&amp;gt; button[id^=&amp;quot;conversation-options-&amp;quot;]) {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L929\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;929\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC929\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: inline-flex !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L930\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;930\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC930\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L931\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;931\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC931\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L932\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;932\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC932\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L933\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;933\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC933\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            position: static !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L934\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;934\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC934\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            width: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L935\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;935\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC935\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            height: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L936\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;936\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC936\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            clip: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L937\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;937\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC937\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            clip-path: none !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L938\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;938\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC938\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            overflow: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L939\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;939\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC939\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L940\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;940\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC940\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>        `</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L941\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;941\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC941\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>head</span><span class=pl-kos>.</span><span class=pl-en>appendChild</span><span class=pl-kos>(</span><span class=pl-s1>style</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L942\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;942\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC942\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L943\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;943\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC943\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L944\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;944\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC944\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[id^=&amp;quot;conversation-options-&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-en>forEach</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>button</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L945\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;945\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC945\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>parent</span> <span class=pl-c1>=</span> <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>parentElement</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L946\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;946\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC946\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L947\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;947\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC947\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;display&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;flex&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L948\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;948\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC948\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;visibility&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L949\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;949\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC949\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;opacity&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;1&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L950\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;950\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC950\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer-events&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L951\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;951\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC951\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;position&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;static&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L952\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;952\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC952\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;width&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;24px&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L953\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;953\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC953\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;height&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;24px&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L954\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;954\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC954\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;clip&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L955\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;955\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC955\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;clip-path&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;none&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L956\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;956\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC956\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;overflow&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L957\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;957\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC957\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L958\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;958\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC958\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>parent</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L959\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;959\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC959\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>classList</span><span class=pl-kos>.</span><span class=pl-en>remove</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;sr-only&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L960\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;960\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC960\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;display&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;inline-flex&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L961\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;961\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC961\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;visibility&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L962\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;962\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC962\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;opacity&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;1&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L963\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;963\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC963\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer-events&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L964\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;964\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC964\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;position&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;static&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L965\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;965\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC965\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;width&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L966\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;966\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC966\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;height&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L967\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;967\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC967\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;clip&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L968\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;968\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC968\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;clip-path&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;none&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L969\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;969\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC969\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;overflow&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L970\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;970\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC970\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L971\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;971\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC971\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L972\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;972\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC972\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L973\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;973\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC973\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L974\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;974\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC974\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L975\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;975\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC975\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L976\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;976\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC976\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L977\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;977\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC977\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>root</span> <span class=pl-c1>=</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L978\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;978\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC978\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L979\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;979\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC979\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>[</span>...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[role=&amp;quot;link&amp;quot;][aria-label]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>]</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L980\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;980\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC980\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isUsableElement</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L981\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;981\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC981\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[id^=&amp;quot;conversation-options-&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L982\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;982\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC982\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L983\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;983\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC983\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>const</span> <span class=pl-s1>title</span> <span class=pl-c1>=</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L984\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;984\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC984\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>return</span> <span class=pl-c1>!</span><span class=pl-pds><span class=pl-c1>/</span><span class=pl-s>&#49352;</span><span class=pl-s> </span><span class=pl-s>&#45824;</span><span class=pl-s>&#54868;</span><span class=pl-c1>|</span><span class=pl-s>N</span><span class=pl-s>e</span><span class=pl-s>w</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>h</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-c1>|</span><span class=pl-s>N</span><span class=pl-s>e</span><span class=pl-s>w</span><span class=pl-s> </span><span class=pl-s>c</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-s>v</span><span class=pl-s>e</span><span class=pl-s>r</span><span class=pl-s>s</span><span class=pl-s>a</span><span class=pl-s>t</span><span class=pl-s>i</span><span class=pl-s>o</span><span class=pl-s>n</span><span class=pl-c1>/</span>i</span><span class=pl-kos>.</span><span class=pl-en>test</span><span class=pl-kos>(</span><span class=pl-s1>title</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L985\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;985\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC985\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L986\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;986\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC986\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L987\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;987\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC987\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L988\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;988\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC988\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>-</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L989\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;989\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC989\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L990\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;990\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC990\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L991\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;991\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC991\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L992\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;992\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC992\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L993\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;993\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC993\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>titleElement</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;p[title]&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L994\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;994\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC994\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L995\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;995\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC995\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L996\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;996\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC996\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>titleElement</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;title&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L997\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;997\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC997\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L998\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;998\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC998\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L999\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;999\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC999\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;(&#51228;&#47785; &#50630;&#51020;)&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1000\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1000\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1000\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1001\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1001\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1001\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1002\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1002\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1002\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1003\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1003\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1003\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1004\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1004\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1004\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>button</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[id^=&amp;quot;conversation-options-&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1005\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1005\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1005\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-s1>button</span><span class=pl-kos>?.</span><span class=pl-c1>id</span> <span class=pl-c1>||</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1006\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1006\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1006\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1007\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1007\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1007\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1008\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1008\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1008\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>async</span> <span class=pl-en>getMoreButton</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1009\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1009\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1009\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1010\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1010\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1010\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1011\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1011\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1011\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>scrollIntoView</span><span class=pl-kos>(</span><span class=pl-kos>{</span> <span class=pl-c1>block</span>: <span class=pl-s>&amp;quot;center&amp;quot;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1012\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1012\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1012\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchHover</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1013\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1013\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1013\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1014\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1014\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1014\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>300</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1015\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1015\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1015\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1016\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1016\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1016\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1017\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1017\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1017\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[id^=&amp;quot;conversation-options-&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1018\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1018\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1018\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#48372;&#44592; &#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1019\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1019\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1019\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[title*=&amp;quot;&#48372;&#44592; &#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1020\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1020\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1020\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;options&amp;quot; i]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1021\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1021\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1021\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[title*=&amp;quot;options&amp;quot; i]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1022\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1022\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1022\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>null</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1023\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1023\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1023\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1024\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1024\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1024\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1025\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1025\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1025\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1026\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1026\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1026\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1027\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1027\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1027\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-v>ClaudeCleaner</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1028\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1028\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1028\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>name</span>: <span class=pl-s>&amp;quot;Claude&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1029\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1029\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1029\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>supportsLazyLoad</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1030\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1030\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1030\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1031\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1031\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1031\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>detect</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1032\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1032\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1032\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1033\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1033\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1033\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>location</span><span class=pl-kos>.</span><span class=pl-c1>hostname</span><span class=pl-kos>.</span><span class=pl-en>includes</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;claude.ai&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1034\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1034\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1034\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1035\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1035\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1035\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#45908; &#47566;&#51008; &#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1036\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1036\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1036\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1037\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1037\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1037\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1038\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1038\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1038\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1039\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1039\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1039\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1040\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1040\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1040\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>firstChatLink</span> <span class=pl-c1>=</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1041\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1041\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1041\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;#39;a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;]&amp;#39;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1042\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1042\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1042\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1043\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1043\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1043\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1044\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1044\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1044\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1045\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1045\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1045\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstChatLink</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;ul&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1046\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1046\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1046\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstChatLink</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;nav&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1047\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1047\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1047\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstChatLink</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aside&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1048\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1048\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1048\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;nav&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1049\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1049\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1049\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aside&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1050\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1050\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1050\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1051\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1051\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1051\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1052\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1052\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1052\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1053\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1053\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1053\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1054\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1054\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1054\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getScrollContainer</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1055\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1055\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1055\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-en>findBestScrollContainer</span><span class=pl-kos>(</span><span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1056\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1056\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1056\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1057\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1057\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1057\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1058\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1058\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1058\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1059\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1059\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1059\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>getElementById</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;__ai_cleaner_claude_css&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1060\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1060\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1060\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>createElement</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;style&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1061\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1061\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1061\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>id</span> <span class=pl-c1>=</span> <span class=pl-s>&amp;quot;__ai_cleaner_claude_css&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1062\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1062\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1062\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>textContent</span> <span class=pl-c1>=</span> <span class=pl-s>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1063\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1063\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1063\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;] ~ div button[aria-haspopup=&amp;quot;menu&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1064\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1064\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1064\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;] + div button[aria-haspopup=&amp;quot;menu&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1065\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1065\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1065\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          button[aria-label*=&amp;quot;&#45908; &#47566;&#51008; &#50741;&#49496;&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1066\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1066\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1066\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          button[aria-label*=&amp;quot;more options&amp;quot; i],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1067\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1067\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1067\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          button[aria-label*=&amp;quot;options&amp;quot; i] {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1068\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1068\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1068\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: inline-flex !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1069\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1069\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1069\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1070\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1070\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1070\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1071\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1071\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1071\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1072\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1072\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1072\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1073\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1073\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1073\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s></span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1074\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1074\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1074\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          div:has(&amp;gt; button[aria-label*=&amp;quot;&#45908; &#47566;&#51008; &#50741;&#49496;&amp;quot;]),</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1075\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1075\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1075\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          div:has(&amp;gt; button[aria-label*=&amp;quot;more options&amp;quot; i]),</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1076\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1076\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1076\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          div:has(&amp;gt; button[aria-label*=&amp;quot;options&amp;quot; i]) {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1077\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1077\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1077\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: flex !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1078\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1078\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1078\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1079\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1079\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1079\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1080\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1080\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1080\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1081\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1081\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1081\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1082\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1082\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1082\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>        `</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1083\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1083\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1083\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>head</span><span class=pl-kos>.</span><span class=pl-en>appendChild</span><span class=pl-kos>(</span><span class=pl-s1>style</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1084\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1084\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1084\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1085\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1085\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1085\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1086\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1086\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1086\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1087\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1087\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1087\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1088\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1088\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1088\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#45908; &#47566;&#51008; &#50741;&#49496;&amp;quot;], button[aria-label*=&amp;quot;more options&amp;quot; i], button[aria-label*=&amp;quot;options&amp;quot; i]&amp;#39;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1089\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1089\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1089\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1090\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1090\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1090\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>forEach</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>button</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1091\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1091\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1091\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>const</span> <span class=pl-s1>parent</span> <span class=pl-c1>=</span> <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>parentElement</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1092\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1092\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1092\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1093\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1093\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1093\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;display&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;inline-flex&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1094\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1094\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1094\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;visibility&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1095\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1095\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1095\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;opacity&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;1&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1096\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1096\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1096\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer-events&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1097\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1097\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1097\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1098\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1098\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1098\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>parent</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1099\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1099\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1099\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;display&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;flex&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1100\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1100\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1100\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;visibility&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1101\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1101\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1101\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;opacity&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;1&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1102\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1102\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1102\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>parent</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer-events&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1103\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1103\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1103\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1104\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1104\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1104\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1105\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1105\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1105\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1106\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1106\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1106\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1107\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1107\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1107\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1108\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1108\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1108\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1109\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1109\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1109\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1110\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1110\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1110\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>root</span> <span class=pl-c1>=</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1111\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1111\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1111\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1112\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1112\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1112\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>[</span>...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>]</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1113\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1113\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1113\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>map</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>link</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>link</span><span class=pl-kos>.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;li&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s1>link</span><span class=pl-kos>.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;div.relative.group&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s1>link</span><span class=pl-kos>.</span><span class=pl-c1>parentElement</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1114\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1114\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1114\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-v>Boolean</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1115\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1115\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1115\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>,</span> <span class=pl-s1>index</span><span class=pl-kos>,</span> <span class=pl-s1>arr</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>arr</span><span class=pl-kos>.</span><span class=pl-en>indexOf</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>===</span> <span class=pl-s1>index</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1116\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1116\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1116\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isUsableElement</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1117\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1117\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1117\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1118\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1118\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1118\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1119\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1119\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1119\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>-</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1120\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1120\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1120\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1121\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1121\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1121\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1122\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1122\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1122\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1123\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1123\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1123\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1124\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1124\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1124\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>link</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1125\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1125\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1125\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>srOnlyTitle</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[data-find-omitted]&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1126\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1126\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1126\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>visibleTitle</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;span[aria-hidden=&amp;quot;true&amp;quot;], span.truncate, .truncate&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1127\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1127\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1127\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1128\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1128\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1128\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1129\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1129\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1129\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>srOnlyTitle</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1130\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1130\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1130\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>visibleTitle</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1131\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1131\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1131\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>link</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1132\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1132\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1132\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>link</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;href&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1133\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1133\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1133\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;(&#51228;&#47785; &#50630;&#51020;)&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1134\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1134\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1134\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1135\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1135\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1135\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1136\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1136\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1136\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1137\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1137\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1137\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1138\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1138\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1138\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>link</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[data-dd-action-name=&amp;quot;sidebar-chat-item&amp;quot;][href^=&amp;quot;/chat/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1139\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1139\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1139\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-s1>link</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;href&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1140\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1140\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1140\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1141\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1141\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1141\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1142\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1142\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1142\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>async</span> <span class=pl-en>getMoreButton</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1143\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1143\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1143\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1144\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1144\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1144\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1145\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1145\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1145\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>scrollIntoView</span><span class=pl-kos>(</span><span class=pl-kos>{</span> <span class=pl-c1>block</span>: <span class=pl-s>&amp;quot;center&amp;quot;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1146\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1146\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1146\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchHover</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1147\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1147\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1147\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1148\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1148\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1148\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>350</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1149\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1149\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1149\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1150\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1150\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1150\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1151\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1151\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1151\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#45908; &#47566;&#51008; &#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1152\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1152\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1152\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;more options&amp;quot; i]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1153\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1153\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1153\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;options&amp;quot; i]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1154\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1154\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1154\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-haspopup=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1155\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1155\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1155\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>null</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1156\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1156\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1156\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1157\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1157\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1157\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1158\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1158\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1158\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1159\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1159\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1159\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1160\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1160\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1160\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-v>MetaCleaner</span> <span class=pl-c1>=</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1161\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1161\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1161\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>name</span>: <span class=pl-s>&amp;quot;Meta AI&amp;quot;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1162\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1162\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1162\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-c1>supportsLazyLoad</span>: <span class=pl-c1>true</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1163\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1163\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1163\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1164\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1164\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1164\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>detect</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1165\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1165\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1165\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1166\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1166\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1166\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>location</span><span class=pl-kos>.</span><span class=pl-c1>hostname</span><span class=pl-kos>.</span><span class=pl-en>includes</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;meta.ai&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1167\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1167\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1167\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-testid=&amp;quot;conversation-item&amp;quot;] a[href^=&amp;quot;/prompt/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1168\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1168\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1168\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>!</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-sidebar=&amp;quot;menu-action&amp;quot;][aria-label*=&amp;quot;&#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1169\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1169\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1169\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1170\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1170\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1170\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1171\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1171\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1171\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1172\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1172\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1172\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1173\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1173\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1173\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>firstConversation</span> <span class=pl-c1>=</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-testid=&amp;quot;conversation-item&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1174\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1174\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1174\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1175\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1175\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1175\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1176\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1176\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1176\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstConversation</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-sidebar=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1177\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1177\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1177\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstConversation</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;ul&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1178\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1178\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1178\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstConversation</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;nav&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1179\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1179\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1179\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>firstConversation</span><span class=pl-kos>?.</span><span class=pl-en>closest</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aside&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1180\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1180\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1180\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-sidebar=&amp;quot;sidebar&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1181\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1181\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1181\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;nav&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1182\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1182\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1182\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aside&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1183\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1183\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1183\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>body</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1184\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1184\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1184\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1185\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1185\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1185\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1186\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1186\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1186\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1187\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1187\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1187\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getScrollContainer</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1188\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1188\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1188\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-en>findBestScrollContainer</span><span class=pl-kos>(</span><span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1189\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1189\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1189\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1190\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1190\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1190\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1191\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1191\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1191\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1192\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1192\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1192\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>getElementById</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;__ai_cleaner_meta_css&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1193\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1193\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1193\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-k>const</span> <span class=pl-s1>style</span> <span class=pl-c1>=</span> <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>createElement</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;style&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1194\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1194\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1194\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>id</span> <span class=pl-c1>=</span> <span class=pl-s>&amp;quot;__ai_cleaner_meta_css&amp;quot;</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1195\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1195\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1195\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>style</span><span class=pl-kos>.</span><span class=pl-c1>textContent</span> <span class=pl-c1>=</span> <span class=pl-s>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1196\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1196\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1196\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-testid=&amp;quot;conversation-item&amp;quot;] [data-sidebar=&amp;quot;menu-action&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1197\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1197\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1197\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-testid=&amp;quot;conversation-item&amp;quot;] [data-slot=&amp;quot;dropdown-menu-trigger&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1198\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1198\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1198\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-testid=&amp;quot;conversation-item&amp;quot;] button[aria-label*=&amp;quot;&#50741;&#49496;&amp;quot;],</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1199\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1199\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1199\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-testid=&amp;quot;conversation-item&amp;quot;] button[aria-label*=&amp;quot;options&amp;quot; i] {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1200\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1200\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1200\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: inline-flex !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1201\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1201\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1201\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1202\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1202\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1202\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1203\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1203\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1203\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1204\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1204\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1204\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1205\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1205\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1205\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s></span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1206\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1206\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1206\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-testid=&amp;quot;conversation-item&amp;quot;] .contents,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1207\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1207\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1207\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          [data-testid=&amp;quot;conversation-item&amp;quot;] div:has(&amp;gt; [data-sidebar=&amp;quot;menu-action&amp;quot;]) {</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1208\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1208\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1208\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            display: contents !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1209\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1209\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1209\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            visibility: visible !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1210\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1210\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1210\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            opacity: 1 !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1211\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1211\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1211\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>            pointer-events: auto !important;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1212\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1212\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1212\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>          }</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1213\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1213\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1213\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-s>        `</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1214\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1214\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1214\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-c1>head</span><span class=pl-kos>.</span><span class=pl-en>appendChild</span><span class=pl-kos>(</span><span class=pl-s1>style</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1215\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1215\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1215\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1216\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1216\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1216\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1217\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1217\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1217\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>document</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1218\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1218\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1218\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1219\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1219\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1219\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s>&amp;#39;[data-testid=&amp;quot;conversation-item&amp;quot;] [data-sidebar=&amp;quot;menu-action&amp;quot;], [data-testid=&amp;quot;conversation-item&amp;quot;] [data-slot=&amp;quot;dropdown-menu-trigger&amp;quot;], [data-testid=&amp;quot;conversation-item&amp;quot;] button[aria-label*=&amp;quot;&#50741;&#49496;&amp;quot;], [data-testid=&amp;quot;conversation-item&amp;quot;] button[aria-label*=&amp;quot;options&amp;quot; i]&amp;#39;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1220\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1220\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1220\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1221\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1221\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1221\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>forEach</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>button</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1222\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1222\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1222\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;display&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;inline-flex&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1223\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1223\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1223\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;visibility&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;visible&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1224\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1224\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1224\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;opacity&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;1&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1225\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1225\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1225\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-s1>button</span><span class=pl-kos>.</span><span class=pl-c1>style</span><span class=pl-kos>.</span><span class=pl-en>setProperty</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;pointer-events&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;auto&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-s>&amp;quot;important&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1226\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1226\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1226\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1227\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1227\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1227\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1228\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1228\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1228\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1229\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1229\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1229\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1230\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1230\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1230\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1231\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1231\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1231\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1232\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1232\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1232\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>root</span> <span class=pl-c1>=</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getRoot</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1233\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1233\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1233\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1234\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1234\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1234\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>[</span>...<span class=pl-s1>root</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-testid=&amp;quot;conversation-item&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>]</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1235\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1235\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1235\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isUsableElement</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1236\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1236\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1236\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[href^=&amp;quot;/prompt/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1237\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1237\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1237\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>sort</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1238\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1238\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1238\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>(</span><span class=pl-s1>a</span><span class=pl-kos>,</span> <span class=pl-s1>b</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1239\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1239\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1239\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s1>a</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span> <span class=pl-c1>-</span> <span class=pl-s1>b</span><span class=pl-kos>.</span><span class=pl-en>getBoundingClientRect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>.</span><span class=pl-c1>top</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1240\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1240\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1240\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1241\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1241\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1241\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1242\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1242\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1242\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1243\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1243\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1243\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1244\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1244\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1244\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>link</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[href^=&amp;quot;/prompt/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1245\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1245\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1245\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>titleElement</span> <span class=pl-c1>=</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1246\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1246\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1246\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-sidebar=&amp;quot;menu-button&amp;quot;] .truncate&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1247\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1247\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1247\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[href^=&amp;quot;/prompt/&amp;quot;] span.truncate&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1248\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1248\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1248\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;.truncate&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1249\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1249\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1249\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1250\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1250\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1250\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1251\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1251\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1251\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>titleElement</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1252\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1252\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1252\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>link</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1253\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1253\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1253\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>link</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;href&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1254\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1254\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1254\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;(&#51228;&#47785; &#50630;&#51020;)&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1255\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1255\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1255\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1256\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1256\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1256\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1257\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1257\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1257\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1258\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1258\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1258\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1259\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1259\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1259\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>link</span> <span class=pl-c1>=</span> <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;a[href^=&amp;quot;/prompt/&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1260\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1260\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1260\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-s1>link</span><span class=pl-kos>?.</span><span class=pl-en>getAttribute</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;href&amp;quot;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1261\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1261\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1261\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1262\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1262\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1262\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1263\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1263\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1263\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>async</span> <span class=pl-en>getMoreButton</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1264\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1264\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1264\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>this</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1265\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1265\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1265\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1266\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1266\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1266\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>scrollIntoView</span><span class=pl-kos>(</span><span class=pl-kos>{</span> <span class=pl-c1>block</span>: <span class=pl-s>&amp;quot;center&amp;quot;</span> <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1267\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1267\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1267\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-en>dispatchHover</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1268\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1268\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1268\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1269\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1269\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1269\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>350</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1270\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1270\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1270\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1271\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1271\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1271\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1272\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1272\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1272\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-sidebar=&amp;quot;menu-action&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1273\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1273\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1273\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;[data-slot=&amp;quot;dropdown-menu-trigger&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1274\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1274\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1274\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;&#50741;&#49496;&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1275\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1275\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1275\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-label*=&amp;quot;options&amp;quot; i]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1276\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1276\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1276\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s1>row</span><span class=pl-kos>.</span><span class=pl-en>querySelector</span><span class=pl-kos>(</span><span class=pl-s>&amp;#39;button[aria-haspopup=&amp;quot;menu&amp;quot;]&amp;#39;</span><span class=pl-kos>)</span> <span class=pl-c1>||</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1277\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1277\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1277\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-c1>null</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1278\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1278\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1278\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1279\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1279\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1279\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1280\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1280\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1280\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1281\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1281\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1281\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1282\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1282\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1282\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-s1>cleaners</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1283\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1283\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1283\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-v>GeminiCleaner</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1284\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1284\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1284\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-v>CopilotCleaner</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1285\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1285\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1285\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-v>ClaudeCleaner</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1286\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1286\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1286\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-v>MetaCleaner</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1287\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1287\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1287\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>]</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1288\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1288\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1288\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1289\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1289\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1289\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-s1>activeCleaner</span> <span class=pl-c1>=</span> <span class=pl-s1>cleaners</span><span class=pl-kos>.</span><span class=pl-en>find</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>cleaner</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-s1>cleaner</span><span class=pl-kos>.</span><span class=pl-en>detect</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1290\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1290\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1290\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1291\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1291\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1291\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1292\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1292\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1292\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-en>alert</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1293\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1293\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1293\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>&amp;quot;&#51648;&#50896;&#46104;&#45716; AI &#52292;&#54021; &#49436;&#48708;&#49828; &#54168;&#51060;&#51648;&#47484; &#44048;&#51648;&#54616;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.\\n\\n&amp;quot;</span> <span class=pl-c1>+</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1294\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1294\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1294\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>`&#54788;&#51116; &#46020;&#47700;&#51064;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>location</span><span class=pl-kos>.</span><span class=pl-c1>hostname</span><span class=pl-kos>}</span></span>\\n\\n`</span> <span class=pl-c1>+</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1295\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1295\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1295\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;&#51648;&#50896;: Google Gemini, Microsoft Copilot, Claude, Meta AI&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1296\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1296\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1296\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1297\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1297\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1297\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1298\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1298\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1298\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1299\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1299\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1299\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1300\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1300\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1300\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-en>askDeleteLimit</span> <span class=pl-c1>=</span> <span class=pl-kos>(</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1301\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1301\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1301\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>input</span> <span class=pl-c1>=</span> <span class=pl-en>prompt</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1302\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1302\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1302\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>`[<span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span>] &#49325;&#51228;&#54624; &#52572;&#44540; &#45824;&#54868; &#44060;&#49688;&#47484; &#51077;&#47141;&#54616;&#49464;&#50836;. &#52572;&#45824; <span class=pl-s1><span class=pl-kos>${</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>maxLimit</span><span class=pl-kos>}</span></span>&#44060;&#44620;&#51648; &#49892;&#54665;&#46121;&#45768;&#45796;.`</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1303\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1303\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1303\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-v>String</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>defaultLimit</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1304\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1304\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1304\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1305\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1305\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1305\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1306\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1306\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1306\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>parsed</span> <span class=pl-c1>=</span> <span class=pl-en>parseInt</span><span class=pl-kos>(</span><span class=pl-s1>input</span> <span class=pl-c1>||</span> <span class=pl-s>&amp;quot;0&amp;quot;</span><span class=pl-kos>,</span> <span class=pl-c1>10</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1307\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1307\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1307\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1308\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1308\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1308\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-v>Number</span><span class=pl-kos>.</span><span class=pl-en>isFinite</span><span class=pl-kos>(</span><span class=pl-s1>parsed</span><span class=pl-kos>)</span> <span class=pl-c1>||</span> <span class=pl-s1>parsed</span> <span class=pl-c1>&amp;lt;=</span> <span class=pl-c1>0</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1309\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1309\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1309\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1310\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1310\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1310\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1311\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1311\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1311\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1312\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1312\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1312\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span> <span class=pl-v>Math</span><span class=pl-kos>.</span><span class=pl-en>min</span><span class=pl-kos>(</span><span class=pl-s1>parsed</span><span class=pl-kos>,</span> <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>maxLimit</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1313\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1313\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1313\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1314\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1314\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1314\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1315\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1315\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1315\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-s1>limit</span> <span class=pl-c1>=</span> <span class=pl-en>askDeleteLimit</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1316\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1316\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1316\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1317\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1317\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1317\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>limit</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1318\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1318\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1318\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#49892;&#54665;&#51060; &#52712;&#49548;&#46104;&#50632;&#49845;&#45768;&#45796;.&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1319\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1319\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1319\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1320\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1320\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1320\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1321\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1321\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1321\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1322\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1322\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1322\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>requireFinalConfirmation</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1323\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1323\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1323\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>confirmed</span> <span class=pl-c1>=</span> <span class=pl-en>confirm</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1324\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1324\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1324\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>`[<span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span>] &#52572;&#44540; &#45824;&#54868; <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>limit</span><span class=pl-kos>}</span></span>&#44060;&#47484; &#49692;&#52264;&#51201;&#51004;&#47196; &#49325;&#51228;&#54633;&#45768;&#45796;.\\n\\n`</span> <span class=pl-c1>+</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1325\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1325\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1325\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;&#51060; &#51089;&#50629;&#51008; &#46104;&#46028;&#47532;&#44592; &#50612;&#47140;&#50872; &#49688; &#51080;&#49845;&#45768;&#45796;.\\n&amp;quot;</span> <span class=pl-c1>+</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1326\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1326\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1326\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>&amp;quot;&#44228;&#49549; &#51652;&#54665;&#54616;&#49884;&#44192;&#49845;&#45768;&#44620;?&amp;quot;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1327\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1327\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1327\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1328\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1328\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1328\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1329\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1329\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1329\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>confirmed</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1330\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1330\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1330\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#49324;&#50857;&#51088;&#44032; &#49892;&#54665;&#51012; &#52712;&#49548;&#54664;&#49845;&#45768;&#45796;.&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1331\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1331\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1331\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>return</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1332\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1332\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1332\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1333\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1333\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1333\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1334\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1334\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1334\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1335\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1335\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1335\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1336\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1336\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1336\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1337\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1337\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1337\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] &#44048;&#51648;&#46108; &#49436;&#48708;&#49828;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span>`</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1338\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1338\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1338\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1339\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1339\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1339\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>supportsLazyLoad</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1340\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1340\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1340\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>preloadRowsForCleaner</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>,</span> <span class=pl-s1>limit</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1341\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1341\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1341\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1342\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1342\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1342\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1343\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1343\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1343\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>let</span> <span class=pl-s1>deletedCount</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1344\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1344\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1344\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>const</span> <span class=pl-s1>deletedKeys</span> <span class=pl-c1>=</span> <span class=pl-k>new</span> <span class=pl-v>Set</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1345\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1345\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1345\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1346\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1346\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1346\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-k>for</span> <span class=pl-kos>(</span><span class=pl-k>let</span> <span class=pl-s1>index</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span><span class=pl-kos>;</span> <span class=pl-s1>index</span> <span class=pl-c1>&amp;lt;</span> <span class=pl-s1>limit</span><span class=pl-kos>;</span> <span class=pl-s1>index</span><span class=pl-c1>++</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1347\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1347\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1347\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-smi>window</span><span class=pl-kos>.</span><span class=pl-c1>__aiChatHistoryCleanerStop</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1348\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1348\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1348\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#51473;&#51648; &#50836;&#52397;&#51004;&#47196; &#51089;&#50629;&#51012; &#47688;&#52676;&#49845;&#45768;&#45796;.&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1349\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1349\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1349\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1350\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1350\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1350\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1351\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1351\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1351\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1352\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1352\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1352\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>forceShowActionButtons</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1353\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1353\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1353\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1354\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1354\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1354\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>loadMoreIfNeeded</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>,</span> <span class=pl-s1>limit</span> <span class=pl-c1>-</span> <span class=pl-s1>deletedCount</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1355\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1355\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1355\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1356\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1356\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1356\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>let</span> <span class=pl-s1>rowsBefore</span> <span class=pl-c1>=</span> <span class=pl-s1>activeCleaner</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1357\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1357\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1357\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1358\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1358\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1358\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-c1>!</span><span class=pl-s1>deletedKeys</span><span class=pl-kos>.</span><span class=pl-en>has</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1359\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1359\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1359\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1360\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1360\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1360\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>rowsBefore</span><span class=pl-kos>.</span><span class=pl-c1>length</span> <span class=pl-c1>===</span> <span class=pl-c1>0</span> <span class=pl-c1>&amp;amp;&amp;amp;</span> <span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>supportsLazyLoad</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1361\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1361\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1361\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1362\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1362\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1362\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>`[AI Chat Cleaner] &#47196;&#46300;&#46108; &#45824;&#54868;&#44032; &#50630;&#50612; <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span> &#52628;&#44032; &#47196;&#46377;&#51012; &#54620; &#48264; &#45908; &#49884;&#46020;&#54633;&#45768;&#45796;.`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1363\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1363\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1363\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1364\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1364\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1364\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1365\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1365\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1365\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>preloadRowsForCleaner</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>,</span> <span class=pl-s1>limit</span> <span class=pl-c1>-</span> <span class=pl-s1>deletedCount</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1366\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1366\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1366\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1367\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1367\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1367\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>rowsBefore</span> <span class=pl-c1>=</span> <span class=pl-s1>activeCleaner</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1368\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1368\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1368\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>getRows</span><span class=pl-kos>(</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1369\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1369\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1369\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-c1>!</span><span class=pl-s1>deletedKeys</span><span class=pl-kos>.</span><span class=pl-en>has</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>row</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1370\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1370\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1370\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1371\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1371\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1371\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1372\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1372\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1372\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>beforeCount</span> <span class=pl-c1>=</span> <span class=pl-s1>rowsBefore</span><span class=pl-kos>.</span><span class=pl-c1>length</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1373\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1373\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1373\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1374\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1374\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1374\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>rowsBefore</span><span class=pl-kos>.</span><span class=pl-c1>length</span> <span class=pl-c1>===</span> <span class=pl-c1>0</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1375\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1375\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1375\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;[AI Chat Cleaner] &#49325;&#51228; &#44032;&#45733;&#54620; &#45824;&#54868; &#54665;&#51012; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1376\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1376\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1376\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1377\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1377\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1377\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1378\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1378\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1378\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1379\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1379\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1379\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>targetRow</span> <span class=pl-c1>=</span> <span class=pl-s1>rowsBefore</span><span class=pl-kos>[</span><span class=pl-c1>0</span><span class=pl-kos>]</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1380\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1380\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1380\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>targetTitle</span> <span class=pl-c1>=</span> <span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>getTitle</span><span class=pl-kos>(</span><span class=pl-s1>targetRow</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1381\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1381\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1381\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>targetKey</span> <span class=pl-c1>=</span> <span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>getKey</span><span class=pl-kos>(</span><span class=pl-s1>targetRow</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1382\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1382\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1382\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1383\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1383\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1383\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1384\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1384\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1384\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>`[AI Chat Cleaner] <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>deletedCount</span> <span class=pl-c1>+</span> <span class=pl-c1>1</span><span class=pl-kos>}</span></span>/<span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>limit</span><span class=pl-kos>}</span></span> &#49325;&#51228; &#45824;&#49345;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>targetTitle</span><span class=pl-kos>}</span></span>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1385\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1385\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1385\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1386\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1386\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1386\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1387\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1387\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1387\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>moreButton</span> <span class=pl-c1>=</span> <span class=pl-k>await</span> <span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-en>getMoreButton</span><span class=pl-kos>(</span><span class=pl-s1>targetRow</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1388\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1388\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1388\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1389\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1389\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1389\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>moreButton</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1390\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1390\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1390\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1391\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1391\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1391\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>`[AI Chat Cleaner] &#50741;&#49496; &#48260;&#53948;&#51012; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>targetTitle</span><span class=pl-kos>}</span></span>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1392\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1392\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1392\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1393\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1393\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1393\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1394\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1394\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1394\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1395\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1395\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1395\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1396\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1396\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1396\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>clickElement</span><span class=pl-kos>(</span><span class=pl-s1>moreButton</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1397\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1397\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1397\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>delayAfterMenuOpen</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1398\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1398\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1398\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1399\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1399\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1399\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>deleteMenuItem</span> <span class=pl-c1>=</span> <span class=pl-k>await</span> <span class=pl-en>findDeleteMenuItem</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1400\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1400\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1400\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1401\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1401\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1401\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-c1>!</span><span class=pl-s1>deleteMenuItem</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1402\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1402\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1402\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1403\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1403\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1403\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-s>`[AI Chat Cleaner] &#49325;&#51228; &#47700;&#45684;&#47484; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>targetTitle</span><span class=pl-kos>}</span></span>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1404\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1404\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1404\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1405\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1405\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1405\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1406\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1406\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1406\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>const</span> <span class=pl-s1>visibleMenuItems</span> <span class=pl-c1>=</span> <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1407\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1407\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1407\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        ...<span class=pl-smi>document</span><span class=pl-kos>.</span><span class=pl-en>querySelectorAll</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1408\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1408\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1408\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>[</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1409\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1409\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1409\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[role=&amp;quot;menu&amp;quot;] button&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1410\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1410\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1410\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[role=&amp;quot;menu&amp;quot;] [role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1411\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1411\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1411\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-cds=&amp;quot;Menu&amp;quot;] [role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1412\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1412\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1412\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-radix-popper-content-wrapper] button&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1413\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1413\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1413\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-radix-popper-content-wrapper] [role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1414\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1414\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1414\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-radix-popper-content-wrapper] [data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1415\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1415\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1415\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-radix-menu-content] [data-slot=&amp;quot;dropdown-menu-item&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1416\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1416\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1416\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-slot*=&amp;quot;dropdown&amp;quot;] button&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1417\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1417\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1417\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-slot*=&amp;quot;dropdown&amp;quot;] [role=&amp;quot;menuitem&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1418\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1418\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1418\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>            <span class=pl-s>&amp;#39;[data-testid=&amp;quot;delete-chat-trigger&amp;quot;]&amp;#39;</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1419\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1419\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1419\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-kos>]</span><span class=pl-kos>.</span><span class=pl-en>join</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;, &amp;quot;</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1420\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1420\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1420\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1421\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1421\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1421\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-kos>]</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1422\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1422\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1422\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>filter</span><span class=pl-kos>(</span><span class=pl-en>isVisible</span><span class=pl-kos>)</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1423\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1423\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1423\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>.</span><span class=pl-en>map</span><span class=pl-kos>(</span><span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>)</span> <span class=pl-c1>=&amp;gt;</span> <span class=pl-kos>(</span><span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1424\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1424\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1424\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>text</span>: <span class=pl-en>getText</span><span class=pl-kos>(</span><span class=pl-s1>el</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1425\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1425\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1425\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>title</span>: <span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;title&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1426\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1426\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1426\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>aria</span>: <span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;aria-label&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1427\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1427\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1427\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>testId</span>: <span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;data-testid&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1428\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1428\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1428\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>slot</span>: <span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;data-slot&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1429\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1429\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1429\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>          <span class=pl-c1>className</span>: <span class=pl-s1>el</span><span class=pl-kos>.</span><span class=pl-en>getAttribute</span><span class=pl-kos>?.</span><span class=pl-kos>(</span><span class=pl-s>&amp;quot;class&amp;quot;</span><span class=pl-kos>)</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1430\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1430\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1430\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>        <span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1431\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1431\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1431\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1432\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1432\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1432\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>table</span><span class=pl-kos>(</span><span class=pl-s1>visibleMenuItems</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1433\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1433\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1433\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1434\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1434\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1434\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1435\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1435\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1435\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1436\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1436\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1436\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>clickElement</span><span class=pl-kos>(</span><span class=pl-s1>deleteMenuItem</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1437\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1437\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1437\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>delayAfterDeleteClick</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1438\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1438\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1438\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1439\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1439\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1439\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>confirmButton</span> <span class=pl-c1>=</span> <span class=pl-k>await</span> <span class=pl-en>findConfirmDeleteButton</span><span class=pl-kos>(</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1440\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1440\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1440\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1441\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1441\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1441\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>confirmButton</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1442\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1442\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1442\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>clickElement</span><span class=pl-kos>(</span><span class=pl-s1>confirmButton</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1443\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1443\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1443\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>delayAfterConfirmClick</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1444\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1444\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1444\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1445\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1445\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1445\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>deletedCount</span> <span class=pl-c1>+=</span> <span class=pl-c1>1</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1446\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1446\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1446\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>deletedKeys</span><span class=pl-kos>.</span><span class=pl-en>add</span><span class=pl-kos>(</span><span class=pl-s1>targetKey</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1447\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1447\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1447\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1448\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1448\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1448\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] &#49325;&#51228; &#50756;&#47308;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>deletedCount</span><span class=pl-kos>}</span></span>&#44060;`</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1449\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1449\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1449\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>continue</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1450\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1450\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1450\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1451\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1451\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1451\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1452\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1452\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1452\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>const</span> <span class=pl-s1>changed</span> <span class=pl-c1>=</span> <span class=pl-k>await</span> <span class=pl-en>waitForRowCountChange</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1453\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1453\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1453\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>activeCleaner</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1454\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1454\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1454\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>beforeCount</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1455\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1455\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1455\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>targetKey</span><span class=pl-kos>,</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1456\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1456\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1456\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>delayAfterNoConfirmDelete</span> <span class=pl-c1>+</span> <span class=pl-c1>3000</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1457\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1457\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1457\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1458\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1458\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1458\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1459\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1459\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1459\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>if</span> <span class=pl-kos>(</span><span class=pl-s1>changed</span><span class=pl-kos>)</span> <span class=pl-kos>{</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1460\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1460\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1460\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>deletedCount</span> <span class=pl-c1>+=</span> <span class=pl-c1>1</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1461\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1461\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1461\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s1>deletedKeys</span><span class=pl-kos>.</span><span class=pl-en>add</span><span class=pl-kos>(</span><span class=pl-s1>targetKey</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1462\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1462\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1462\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1463\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1463\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1463\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>log</span><span class=pl-kos>(</span><span class=pl-s>`[AI Chat Cleaner] &#49325;&#51228; &#50756;&#47308;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>deletedCount</span><span class=pl-kos>}</span></span>&#44060;`</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1464\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1464\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1464\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>await</span> <span class=pl-en>sleep</span><span class=pl-kos>(</span><span class=pl-c1>CONFIG</span><span class=pl-kos>.</span><span class=pl-c1>delayAfterNoConfirmDelete</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1465\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1465\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1465\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-k>continue</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1466\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1466\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1466\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1467\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1467\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1467\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1468\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1468\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1468\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-smi>console</span><span class=pl-kos>.</span><span class=pl-en>warn</span><span class=pl-kos>(</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1469\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1469\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1469\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>      <span class=pl-s>`[AI Chat Cleaner] &#49325;&#51228; &#54869;&#51064; &#48260;&#53948;&#51012; &#52286;&#51648; &#47803;&#54664;&#44256;, &#47785;&#47197; &#48320;&#54868;&#46020; &#54869;&#51064;&#46104;&#51648; &#50506;&#50520;&#49845;&#45768;&#45796;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>targetTitle</span><span class=pl-kos>}</span></span>`</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1470\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1470\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1470\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1471\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1471\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1471\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>    <span class=pl-k>break</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1472\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1472\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1472\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-kos>}</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1473\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1473\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1473\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>\n</td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1474\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1474\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1474\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;>  <span class=pl-en>alert</span><span class=pl-kos>(</span><span class=pl-s>`[<span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>activeCleaner</span><span class=pl-kos>.</span><span class=pl-c1>name</span><span class=pl-kos>}</span></span>] &#52572;&#44540; &#45824;&#54868; &#49325;&#51228; &#51089;&#50629; &#50756;&#47308;: <span class=pl-s1><span class=pl-kos>${</span><span class=pl-s1>deletedCount</span><span class=pl-kos>}</span></span>&#44060;`</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n        <tr>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-L1475\&quot; class=\&quot;blob-num js-line-number js-blob-rnum\&quot; data-line-number=\&quot;1475\&quot;></td>\n          <td id=\&quot;file-ai-chat-history-delete-script-js-LC1475\&quot; class=\&quot;blob-code blob-code-inner js-file-line\&quot;><span class=pl-kos>}</span><span class=pl-kos>)</span><span class=pl-kos>(</span><span class=pl-kos>)</span><span class=pl-kos>;</span></td>\n        </tr>\n  </table>\n</div>\n\n\n    </div>\n\n  </div>\n\n</div>\n\n      </div>\n      <div class=\&quot;gist-meta\&quot;>\n        <a href=\&quot;https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238/raw/f6aa117fb2bb14c096e1b1571dfe316a57859f57/ai-chat-history-delete-script.js\&quot; style=\&quot;float:right\&quot; class=\&quot;Link--inTextBlock\&quot;>view raw</a>\n        <a href=\&quot;https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238#file-ai-chat-history-delete-script-js\&quot; class=\&quot;Link--inTextBlock\&quot;>\n          ai-chat-history-delete-script.js\n        </a>\n        hosted with &amp;#10084; by <a class=\&quot;Link--inTextBlock\&quot; href=\&quot;https://github.com\&quot;>GitHub</a>\n      </div>\n    </div>\n</div>\n&quot;,&quot;stylesheet&quot;:&quot;https://github.githubassets.com/assets/gist-embed-ac686e2e0afcc4b0.css&quot;}" data-component-name="GitgistToDOM"><link rel="stylesheet" href="https://github.githubassets.com/assets/gist-embed-ac686e2e0afcc4b0.css"><div id="gist151508994" class="gist">
    <div class="gist-file" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-readme-md" class="file my-2">
      <div id="file-readme-md-readme" class="Box-body readme blob tmp-p-5 tmp-p-xl-6 " style="overflow:auto">
    <article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading"><h1 class="heading-element">AI Chat History Delete Script</h1><a id="user-content-ai-chat-history-delete-script" class="anchor" href="#ai-chat-history-delete-script"></a></div>
<p>Gemini, Copilot, Claude, Meta AI&#51032; &#45824;&#54868; &#44592;&#47197;&#51012; &#48652;&#46972;&#50864;&#51200; &#53080;&#49556;&#50640;&#49436; &#51221;&#47532;&#54616;&#44592; &#50948;&#54620; JavaScript &#49828;&#53356;&#47549;&#53944;&#51077;&#45768;&#45796;.</p>
<div class="markdown-heading"><h2 class="heading-element">&#51648;&#50896; &#49436;&#48708;&#49828;</h2><a id="user-content-&#51648;&#50896;-&#49436;&#48708;&#49828;" class="anchor" href="#&#51648;&#50896;-&#49436;&#48708;&#49828;"></a></div>
<ul>
<li>Gemini</li>
<li>Copilot</li>
<li>Claude</li>
<li>Meta AI</li>
</ul>
<div class="markdown-heading"><h2 class="heading-element">&#49324;&#50857; &#48169;&#48277;</h2><a id="user-content-&#49324;&#50857;-&#48169;&#48277;" class="anchor" href="#&#49324;&#50857;-&#48169;&#48277;"></a></div>
<ol>
<li>&#49325;&#51228;&#54616;&#47140;&#45716; AI &#49436;&#48708;&#49828;&#51032; &#45824;&#54868; &#47785;&#47197; &#54168;&#51060;&#51648;&#47484; &#50685;&#45768;&#45796;.</li>
<li>&#48652;&#46972;&#50864;&#51200; &#44060;&#48156;&#51088; &#46020;&#44396;&#47484; &#50685;&#45768;&#45796;.</li>
<li>Console &#53485;&#50640; &#49828;&#53356;&#47549;&#53944;&#47484; &#48537;&#50668;&#45347;&#49845;&#45768;&#45796;.</li>
<li>&#52376;&#51020;&#50640;&#45716; &#51201;&#51008; &#44060;&#49688;&#47196; &#53580;&#49828;&#53944;&#54633;&#45768;&#45796;.</li>
<li>&#51221;&#49345; &#46041;&#51089;&#51012; &#54869;&#51064;&#54620; &#46244; &#54596;&#50836;&#54620; &#47564;&#53372; &#49892;&#54665;&#54633;&#45768;&#45796;.</li>
</ol>
<div class="markdown-heading"><h2 class="heading-element">&#51452;&#51032;&#49324;&#54637;</h2><a id="user-content-&#51452;&#51032;&#49324;&#54637;" class="anchor" href="#&#51452;&#51032;&#49324;&#54637;"></a></div>
<ul>
<li>&#49436;&#48708;&#49828;&#51032; &#54868;&#47732; &#44396;&#51312;&#44032; &#48148;&#45068;&#47732; &#46041;&#51089;&#54616;&#51648; &#50506;&#51012; &#49688; &#51080;&#49845;&#45768;&#45796;.</li>
<li>&#51473;&#50836;&#54620; &#45824;&#54868;&#44620;&#51648; &#49325;&#51228;&#46112; &#49688; &#51080;&#51004;&#45768; &#48152;&#46300;&#49884; &#54869;&#51064; &#54980; &#49324;&#50857;&#54616;&#49464;&#50836;.</li>
<li>&#52376;&#51020;&#50640;&#45716; 3~5&#44060; &#51221;&#46020;&#47564; &#53580;&#49828;&#53944;&#54616;&#45716; &#44163;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;.</li>
<li>&#51060; &#49828;&#53356;&#47549;&#53944;&#45716; &#44033; &#49436;&#48708;&#49828;&#51032; &#44277;&#49885; &#44592;&#45733;&#51060; &#50500;&#45785;&#45768;&#45796;.</li>
</ul>
<div class="markdown-heading"><h2 class="heading-element">&#44288;&#47144; &#44544;</h2><a id="user-content-&#44288;&#47144;-&#44544;" class="anchor" href="#&#44288;&#47144;-&#44544;"></a></div>
<p>&#49324;&#50857; &#48169;&#48277;&#44284; &#51452;&#51032;&#49324;&#54637;&#51008; &#50500;&#47000; &#44544;&#50640;&#49436; &#51088;&#49464;&#55176; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p>
<p><a href="https://lab.dongri.me/p/ai-chat-history-delete-script">Gemini&#183;Copilot&#183;Claude&#183;Meta AI &#45824;&#54868; &#44592;&#47197; &#54620; &#48264;&#50640; &#49325;&#51228;&#54616;&#44592;</a></p>
</article>
  </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238/raw/f6aa117fb2bb14c096e1b1571dfe316a57859f57/README.md" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238#file-readme-md" class="Link--inTextBlock">
          README.md
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
    <div class="gist-file" data-color-mode="light" data-light-theme="light">
      <div class="gist-data">
        
<div class="js-gist-file-update-container js-task-list-container">
      <div id="file-ai-chat-history-delete-script-js" class="file my-2">
    
    <div itemprop="text" class="Box-body p-0 blob-wrapper data type-javascript  " style="overflow:auto">

        
<div class="js-check-hidden-unicode js-blob-code-container blob-code-content">

  
  <div data-view-component="true" class="flash flash-warn flash-full d-flex flex-items-center">
  
    

    <span>
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      <a class="Link--inTextBlock" href="https://github.co/hiddenchars" target="_blank">Learn more about bidirectional Unicode characters</a>
    </span>


  <div data-view-component="true" class="flash-action">        <a href="{{ revealButtonHref }}" data-view-component="true" class="btn-sm btn">    Show hidden characters
</a>
</div>
</div>

  <span data-view-component="true" class="line-alert tooltipped tooltipped-e">
    
    

</span>

  <table data-hpc="" class="highlight tab-size js-file-line-container" data-tab-size="4" data-paste-markdown-skip="" data-tagsearch-path="ai-chat-history-delete-script.js">
        <tbody><tr>
          <td id="file-ai-chat-history-delete-script-js-L1" class="blob-num js-line-number js-blob-rnum" data-line-number="1"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L2" class="blob-num js-line-number js-blob-rnum" data-line-number="2"></td>
          <td id="file-ai-chat-history-delete-script-js-LC2" class="blob-code blob-code-inner js-file-line">  <span class="pl-c">/**</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L3" class="blob-num js-line-number js-blob-rnum" data-line-number="3"></td>
          <td id="file-ai-chat-history-delete-script-js-LC3" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * AI Chat History Cleaner - Gemini / Copilot / Claude / Meta AI</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L4" class="blob-num js-line-number js-blob-rnum" data-line-number="4"></td>
          <td id="file-ai-chat-history-delete-script-js-LC4" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   *</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L5" class="blob-num js-line-number js-blob-rnum" data-line-number="5"></td>
          <td id="file-ai-chat-history-delete-script-js-LC5" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * Supported:</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L6" class="blob-num js-line-number js-blob-rnum" data-line-number="6"></td>
          <td id="file-ai-chat-history-delete-script-js-LC6" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * - Google Gemini: gemini.google.com</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L7" class="blob-num js-line-number js-blob-rnum" data-line-number="7"></td>
          <td id="file-ai-chat-history-delete-script-js-LC7" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * - Microsoft Copilot: copilot.microsoft.com</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L8" class="blob-num js-line-number js-blob-rnum" data-line-number="8"></td>
          <td id="file-ai-chat-history-delete-script-js-LC8" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * - Claude: claude.ai</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L9" class="blob-num js-line-number js-blob-rnum" data-line-number="9"></td>
          <td id="file-ai-chat-history-delete-script-js-LC9" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * - Meta AI: meta.ai</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L10" class="blob-num js-line-number js-blob-rnum" data-line-number="10"></td>
          <td id="file-ai-chat-history-delete-script-js-LC10" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   *</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L11" class="blob-num js-line-number js-blob-rnum" data-line-number="11"></td>
          <td id="file-ai-chat-history-delete-script-js-LC11" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * Stop:</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L12" class="blob-num js-line-number js-blob-rnum" data-line-number="12"></td>
          <td id="file-ai-chat-history-delete-script-js-LC12" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   * window.__aiChatHistoryCleanerStop = true;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L13" class="blob-num js-line-number js-blob-rnum" data-line-number="13"></td>
          <td id="file-ai-chat-history-delete-script-js-LC13" class="blob-code blob-code-inner js-file-line"><span class="pl-c">   */</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L14" class="blob-num js-line-number js-blob-rnum" data-line-number="14"></td>
          <td id="file-ai-chat-history-delete-script-js-LC14" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L15" class="blob-num js-line-number js-blob-rnum" data-line-number="15"></td>
          <td id="file-ai-chat-history-delete-script-js-LC15" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-c1">CONFIG</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L16" class="blob-num js-line-number js-blob-rnum" data-line-number="16"></td>
          <td id="file-ai-chat-history-delete-script-js-LC16" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">defaultLimit</span>: <span class="pl-c1">20</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L17" class="blob-num js-line-number js-blob-rnum" data-line-number="17"></td>
          <td id="file-ai-chat-history-delete-script-js-LC17" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">maxLimit</span>: <span class="pl-c1">500</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L18" class="blob-num js-line-number js-blob-rnum" data-line-number="18"></td>
          <td id="file-ai-chat-history-delete-script-js-LC18" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L19" class="blob-num js-line-number js-blob-rnum" data-line-number="19"></td>
          <td id="file-ai-chat-history-delete-script-js-LC19" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">delayAfterMenuOpen</span>: <span class="pl-c1">850</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L20" class="blob-num js-line-number js-blob-rnum" data-line-number="20"></td>
          <td id="file-ai-chat-history-delete-script-js-LC20" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">delayAfterDeleteClick</span>: <span class="pl-c1">1000</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L21" class="blob-num js-line-number js-blob-rnum" data-line-number="21"></td>
          <td id="file-ai-chat-history-delete-script-js-LC21" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">delayAfterConfirmClick</span>: <span class="pl-c1">2600</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L22" class="blob-num js-line-number js-blob-rnum" data-line-number="22"></td>
          <td id="file-ai-chat-history-delete-script-js-LC22" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">delayAfterNoConfirmDelete</span>: <span class="pl-c1">2200</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L23" class="blob-num js-line-number js-blob-rnum" data-line-number="23"></td>
          <td id="file-ai-chat-history-delete-script-js-LC23" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L24" class="blob-num js-line-number js-blob-rnum" data-line-number="24"></td>
          <td id="file-ai-chat-history-delete-script-js-LC24" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">requireFinalConfirmation</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L25" class="blob-num js-line-number js-blob-rnum" data-line-number="25"></td>
          <td id="file-ai-chat-history-delete-script-js-LC25" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L26" class="blob-num js-line-number js-blob-rnum" data-line-number="26"></td>
          <td id="file-ai-chat-history-delete-script-js-LC26" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">enableLazyPreload</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L27" class="blob-num js-line-number js-blob-rnum" data-line-number="27"></td>
          <td id="file-ai-chat-history-delete-script-js-LC27" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">preloadExtraBuffer</span>: <span class="pl-c1">10</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L28" class="blob-num js-line-number js-blob-rnum" data-line-number="28"></td>
          <td id="file-ai-chat-history-delete-script-js-LC28" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">preloadScrollDelay</span>: <span class="pl-c1">1200</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L29" class="blob-num js-line-number js-blob-rnum" data-line-number="29"></td>
          <td id="file-ai-chat-history-delete-script-js-LC29" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">preloadMaxRounds</span>: <span class="pl-c1">90</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L30" class="blob-num js-line-number js-blob-rnum" data-line-number="30"></td>
          <td id="file-ai-chat-history-delete-script-js-LC30" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">preloadStableLimit</span>: <span class="pl-c1">5</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L31" class="blob-num js-line-number js-blob-rnum" data-line-number="31"></td>
          <td id="file-ai-chat-history-delete-script-js-LC31" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">lowWatermarkRows</span>: <span class="pl-c1">5</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L32" class="blob-num js-line-number js-blob-rnum" data-line-number="32"></td>
          <td id="file-ai-chat-history-delete-script-js-LC32" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L33" class="blob-num js-line-number js-blob-rnum" data-line-number="33"></td>
          <td id="file-ai-chat-history-delete-script-js-LC33" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">retryLoadMoreRounds</span>: <span class="pl-c1">12</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L34" class="blob-num js-line-number js-blob-rnum" data-line-number="34"></td>
          <td id="file-ai-chat-history-delete-script-js-LC34" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L35" class="blob-num js-line-number js-blob-rnum" data-line-number="35"></td>
          <td id="file-ai-chat-history-delete-script-js-LC35" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L36" class="blob-num js-line-number js-blob-rnum" data-line-number="36"></td>
          <td id="file-ai-chat-history-delete-script-js-LC36" class="blob-code blob-code-inner js-file-line">  <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">__aiChatHistoryCleanerStop</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L37" class="blob-num js-line-number js-blob-rnum" data-line-number="37"></td>
          <td id="file-ai-chat-history-delete-script-js-LC37" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L38" class="blob-num js-line-number js-blob-rnum" data-line-number="38"></td>
          <td id="file-ai-chat-history-delete-script-js-LC38" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">sleep</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">ms</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-k">new</span> <span class="pl-v">Promise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-en">setTimeout</span><span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">,</span> <span class="pl-s1">ms</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L39" class="blob-num js-line-number js-blob-rnum" data-line-number="39"></td>
          <td id="file-ai-chat-history-delete-script-js-LC39" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L40" class="blob-num js-line-number js-blob-rnum" data-line-number="40"></td>
          <td id="file-ai-chat-history-delete-script-js-LC40" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">unique</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">array</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L41" class="blob-num js-line-number js-blob-rnum" data-line-number="41"></td>
          <td id="file-ai-chat-history-delete-script-js-LC41" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">array</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">,</span> <span class="pl-s1">index</span><span class="pl-kos">,</span> <span class="pl-s1">arr</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">item</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">arr</span><span class="pl-kos">.</span><span class="pl-en">indexOf</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span> <span class="pl-c1">===</span> <span class="pl-s1">index</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L42" class="blob-num js-line-number js-blob-rnum" data-line-number="42"></td>
          <td id="file-ai-chat-history-delete-script-js-LC42" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L43" class="blob-num js-line-number js-blob-rnum" data-line-number="43"></td>
          <td id="file-ai-chat-history-delete-script-js-LC43" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">getText</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L44" class="blob-num js-line-number js-blob-rnum" data-line-number="44"></td>
          <td id="file-ai-chat-history-delete-script-js-LC44" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L45" class="blob-num js-line-number js-blob-rnum" data-line-number="45"></td>
          <td id="file-ai-chat-history-delete-script-js-LC45" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L46" class="blob-num js-line-number js-blob-rnum" data-line-number="46"></td>
          <td id="file-ai-chat-history-delete-script-js-LC46" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">?.</span><span class="pl-c1">innerText</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L47" class="blob-num js-line-number js-blob-rnum" data-line-number="47"></td>
          <td id="file-ai-chat-history-delete-script-js-LC47" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">?.</span><span class="pl-c1">textContent</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L48" class="blob-num js-line-number js-blob-rnum" data-line-number="48"></td>
          <td id="file-ai-chat-history-delete-script-js-LC48" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L49" class="blob-num js-line-number js-blob-rnum" data-line-number="49"></td>
          <td id="file-ai-chat-history-delete-script-js-LC49" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"title"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L50" class="blob-num js-line-number js-blob-rnum" data-line-number="50"></td>
          <td id="file-ai-chat-history-delete-script-js-LC50" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">""</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L51" class="blob-num js-line-number js-blob-rnum" data-line-number="51"></td>
          <td id="file-ai-chat-history-delete-script-js-LC51" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span> <span class="pl-c1">+</span> <span class="pl-s">""</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L52" class="blob-num js-line-number js-blob-rnum" data-line-number="52"></td>
          <td id="file-ai-chat-history-delete-script-js-LC52" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L53" class="blob-num js-line-number js-blob-rnum" data-line-number="53"></td>
          <td id="file-ai-chat-history-delete-script-js-LC53" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">replace</span><span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">\s</span><span class="pl-c1">+</span><span class="pl-c1">/</span>g</span><span class="pl-kos">,</span> <span class="pl-s">" "</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L54" class="blob-num js-line-number js-blob-rnum" data-line-number="54"></td>
          <td id="file-ai-chat-history-delete-script-js-LC54" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">trim</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L55" class="blob-num js-line-number js-blob-rnum" data-line-number="55"></td>
          <td id="file-ai-chat-history-delete-script-js-LC55" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L56" class="blob-num js-line-number js-blob-rnum" data-line-number="56"></td>
          <td id="file-ai-chat-history-delete-script-js-LC56" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L57" class="blob-num js-line-number js-blob-rnum" data-line-number="57"></td>
          <td id="file-ai-chat-history-delete-script-js-LC57" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">isVisible</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L58" class="blob-num js-line-number js-blob-rnum" data-line-number="58"></td>
          <td id="file-ai-chat-history-delete-script-js-LC58" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span> <span class="pl-c1">false</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L59" class="blob-num js-line-number js-blob-rnum" data-line-number="59"></td>
          <td id="file-ai-chat-history-delete-script-js-LC59" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L60" class="blob-num js-line-number js-blob-rnum" data-line-number="60"></td>
          <td id="file-ai-chat-history-delete-script-js-LC60" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">rect</span> <span class="pl-c1">=</span> <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L61" class="blob-num js-line-number js-blob-rnum" data-line-number="61"></td>
          <td id="file-ai-chat-history-delete-script-js-LC61" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-en">getComputedStyle</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L62" class="blob-num js-line-number js-blob-rnum" data-line-number="62"></td>
          <td id="file-ai-chat-history-delete-script-js-LC62" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L63" class="blob-num js-line-number js-blob-rnum" data-line-number="63"></td>
          <td id="file-ai-chat-history-delete-script-js-LC63" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L64" class="blob-num js-line-number js-blob-rnum" data-line-number="64"></td>
          <td id="file-ai-chat-history-delete-script-js-LC64" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">width</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L65" class="blob-num js-line-number js-blob-rnum" data-line-number="65"></td>
          <td id="file-ai-chat-history-delete-script-js-LC65" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">height</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L66" class="blob-num js-line-number js-blob-rnum" data-line-number="66"></td>
          <td id="file-ai-chat-history-delete-script-js-LC66" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">bottom</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L67" class="blob-num js-line-number js-blob-rnum" data-line-number="67"></td>
          <td id="file-ai-chat-history-delete-script-js-LC67" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">&lt;</span> <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">innerHeight</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L68" class="blob-num js-line-number js-blob-rnum" data-line-number="68"></td>
          <td id="file-ai-chat-history-delete-script-js-LC68" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">right</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L69" class="blob-num js-line-number js-blob-rnum" data-line-number="69"></td>
          <td id="file-ai-chat-history-delete-script-js-LC69" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">left</span> <span class="pl-c1">&lt;</span> <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">innerWidth</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L70" class="blob-num js-line-number js-blob-rnum" data-line-number="70"></td>
          <td id="file-ai-chat-history-delete-script-js-LC70" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">display</span> <span class="pl-c1">!==</span> <span class="pl-s">"none"</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L71" class="blob-num js-line-number js-blob-rnum" data-line-number="71"></td>
          <td id="file-ai-chat-history-delete-script-js-LC71" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">visibility</span> <span class="pl-c1">!==</span> <span class="pl-s">"hidden"</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L72" class="blob-num js-line-number js-blob-rnum" data-line-number="72"></td>
          <td id="file-ai-chat-history-delete-script-js-LC72" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">opacity</span> <span class="pl-c1">!==</span> <span class="pl-s">"0"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L73" class="blob-num js-line-number js-blob-rnum" data-line-number="73"></td>
          <td id="file-ai-chat-history-delete-script-js-LC73" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L74" class="blob-num js-line-number js-blob-rnum" data-line-number="74"></td>
          <td id="file-ai-chat-history-delete-script-js-LC74" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L75" class="blob-num js-line-number js-blob-rnum" data-line-number="75"></td>
          <td id="file-ai-chat-history-delete-script-js-LC75" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L76" class="blob-num js-line-number js-blob-rnum" data-line-number="76"></td>
          <td id="file-ai-chat-history-delete-script-js-LC76" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">isUsableElement</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L77" class="blob-num js-line-number js-blob-rnum" data-line-number="77"></td>
          <td id="file-ai-chat-history-delete-script-js-LC77" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span> <span class="pl-c1">false</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L78" class="blob-num js-line-number js-blob-rnum" data-line-number="78"></td>
          <td id="file-ai-chat-history-delete-script-js-LC78" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L79" class="blob-num js-line-number js-blob-rnum" data-line-number="79"></td>
          <td id="file-ai-chat-history-delete-script-js-LC79" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-en">getComputedStyle</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L80" class="blob-num js-line-number js-blob-rnum" data-line-number="80"></td>
          <td id="file-ai-chat-history-delete-script-js-LC80" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L81" class="blob-num js-line-number js-blob-rnum" data-line-number="81"></td>
          <td id="file-ai-chat-history-delete-script-js-LC81" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">display</span> <span class="pl-c1">!==</span> <span class="pl-s">"none"</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">visibility</span> <span class="pl-c1">!==</span> <span class="pl-s">"hidden"</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L82" class="blob-num js-line-number js-blob-rnum" data-line-number="82"></td>
          <td id="file-ai-chat-history-delete-script-js-LC82" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L83" class="blob-num js-line-number js-blob-rnum" data-line-number="83"></td>
          <td id="file-ai-chat-history-delete-script-js-LC83" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L84" class="blob-num js-line-number js-blob-rnum" data-line-number="84"></td>
          <td id="file-ai-chat-history-delete-script-js-LC84" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">getClickableElement</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L85" class="blob-num js-line-number js-blob-rnum" data-line-number="85"></td>
          <td id="file-ai-chat-history-delete-script-js-LC85" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span> <span class="pl-c1">null</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L86" class="blob-num js-line-number js-blob-rnum" data-line-number="86"></td>
          <td id="file-ai-chat-history-delete-script-js-LC86" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L87" class="blob-num js-line-number js-blob-rnum" data-line-number="87"></td>
          <td id="file-ai-chat-history-delete-script-js-LC87" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L88" class="blob-num js-line-number js-blob-rnum" data-line-number="88"></td>
          <td id="file-ai-chat-history-delete-script-js-LC88" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">closest</span><span class="pl-kos">?.</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L89" class="blob-num js-line-number js-blob-rnum" data-line-number="89"></td>
          <td id="file-ai-chat-history-delete-script-js-LC89" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L90" class="blob-num js-line-number js-blob-rnum" data-line-number="90"></td>
          <td id="file-ai-chat-history-delete-script-js-LC90" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">"button"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L91" class="blob-num js-line-number js-blob-rnum" data-line-number="91"></td>
          <td id="file-ai-chat-history-delete-script-js-LC91" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'[role="button"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L92" class="blob-num js-line-number js-blob-rnum" data-line-number="92"></td>
          <td id="file-ai-chat-history-delete-script-js-LC92" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'[role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L93" class="blob-num js-line-number js-blob-rnum" data-line-number="93"></td>
          <td id="file-ai-chat-history-delete-script-js-LC93" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'[data-slot="dropdown-menu-item"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L94" class="blob-num js-line-number js-blob-rnum" data-line-number="94"></td>
          <td id="file-ai-chat-history-delete-script-js-LC94" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'[data-testid="delete-chat-trigger"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L95" class="blob-num js-line-number js-blob-rnum" data-line-number="95"></td>
          <td id="file-ai-chat-history-delete-script-js-LC95" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">".mat-mdc-menu-item"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L96" class="blob-num js-line-number js-blob-rnum" data-line-number="96"></td>
          <td id="file-ai-chat-history-delete-script-js-LC96" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">"a"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L97" class="blob-num js-line-number js-blob-rnum" data-line-number="97"></td>
          <td id="file-ai-chat-history-delete-script-js-LC97" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">join</span><span class="pl-kos">(</span><span class="pl-s">", "</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L98" class="blob-num js-line-number js-blob-rnum" data-line-number="98"></td>
          <td id="file-ai-chat-history-delete-script-js-LC98" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s1">element</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L99" class="blob-num js-line-number js-blob-rnum" data-line-number="99"></td>
          <td id="file-ai-chat-history-delete-script-js-LC99" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L100" class="blob-num js-line-number js-blob-rnum" data-line-number="100"></td>
          <td id="file-ai-chat-history-delete-script-js-LC100" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L101" class="blob-num js-line-number js-blob-rnum" data-line-number="101"></td>
          <td id="file-ai-chat-history-delete-script-js-LC101" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L102" class="blob-num js-line-number js-blob-rnum" data-line-number="102"></td>
          <td id="file-ai-chat-history-delete-script-js-LC102" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">dispatchHover</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L103" class="blob-num js-line-number js-blob-rnum" data-line-number="103"></td>
          <td id="file-ai-chat-history-delete-script-js-LC103" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L104" class="blob-num js-line-number js-blob-rnum" data-line-number="104"></td>
          <td id="file-ai-chat-history-delete-script-js-LC104" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L105" class="blob-num js-line-number js-blob-rnum" data-line-number="105"></td>
          <td id="file-ai-chat-history-delete-script-js-LC105" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">rect</span> <span class="pl-c1">=</span> <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L106" class="blob-num js-line-number js-blob-rnum" data-line-number="106"></td>
          <td id="file-ai-chat-history-delete-script-js-LC106" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L107" class="blob-num js-line-number js-blob-rnum" data-line-number="107"></td>
          <td id="file-ai-chat-history-delete-script-js-LC107" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">options</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L108" class="blob-num js-line-number js-blob-rnum" data-line-number="108"></td>
          <td id="file-ai-chat-history-delete-script-js-LC108" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">bubbles</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L109" class="blob-num js-line-number js-blob-rnum" data-line-number="109"></td>
          <td id="file-ai-chat-history-delete-script-js-LC109" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">cancelable</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L110" class="blob-num js-line-number js-blob-rnum" data-line-number="110"></td>
          <td id="file-ai-chat-history-delete-script-js-LC110" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">composed</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L111" class="blob-num js-line-number js-blob-rnum" data-line-number="111"></td>
          <td id="file-ai-chat-history-delete-script-js-LC111" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">view</span>: <span class="pl-smi">window</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L112" class="blob-num js-line-number js-blob-rnum" data-line-number="112"></td>
          <td id="file-ai-chat-history-delete-script-js-LC112" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">clientX</span>: <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">right</span> <span class="pl-c1">-</span> <span class="pl-c1">20</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L113" class="blob-num js-line-number js-blob-rnum" data-line-number="113"></td>
          <td id="file-ai-chat-history-delete-script-js-LC113" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">clientY</span>: <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">+</span> <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">height</span> <span class="pl-c1">/</span> <span class="pl-c1">2</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L114" class="blob-num js-line-number js-blob-rnum" data-line-number="114"></td>
          <td id="file-ai-chat-history-delete-script-js-LC114" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L115" class="blob-num js-line-number js-blob-rnum" data-line-number="115"></td>
          <td id="file-ai-chat-history-delete-script-js-LC115" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L116" class="blob-num js-line-number js-blob-rnum" data-line-number="116"></td>
          <td id="file-ai-chat-history-delete-script-js-LC116" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L117" class="blob-num js-line-number js-blob-rnum" data-line-number="117"></td>
          <td id="file-ai-chat-history-delete-script-js-LC117" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointerover"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L118" class="blob-num js-line-number js-blob-rnum" data-line-number="118"></td>
          <td id="file-ai-chat-history-delete-script-js-LC118" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointerenter"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L119" class="blob-num js-line-number js-blob-rnum" data-line-number="119"></td>
          <td id="file-ai-chat-history-delete-script-js-LC119" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointermove"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L120" class="blob-num js-line-number js-blob-rnum" data-line-number="120"></td>
          <td id="file-ai-chat-history-delete-script-js-LC120" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mouseover"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L121" class="blob-num js-line-number js-blob-rnum" data-line-number="121"></td>
          <td id="file-ai-chat-history-delete-script-js-LC121" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mouseenter"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L122" class="blob-num js-line-number js-blob-rnum" data-line-number="122"></td>
          <td id="file-ai-chat-history-delete-script-js-LC122" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mousemove"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L123" class="blob-num js-line-number js-blob-rnum" data-line-number="123"></td>
          <td id="file-ai-chat-history-delete-script-js-LC123" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">forEach</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">eventName</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L124" class="blob-num js-line-number js-blob-rnum" data-line-number="124"></td>
          <td id="file-ai-chat-history-delete-script-js-LC124" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L125" class="blob-num js-line-number js-blob-rnum" data-line-number="125"></td>
          <td id="file-ai-chat-history-delete-script-js-LC125" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-v">EventClass</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L126" class="blob-num js-line-number js-blob-rnum" data-line-number="126"></td>
          <td id="file-ai-chat-history-delete-script-js-LC126" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">eventName</span><span class="pl-kos">.</span><span class="pl-en">startsWith</span><span class="pl-kos">(</span><span class="pl-s">"pointer"</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">PointerEvent</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L127" class="blob-num js-line-number js-blob-rnum" data-line-number="127"></td>
          <td id="file-ai-chat-history-delete-script-js-LC127" class="blob-code blob-code-inner js-file-line">            ? <span class="pl-v">PointerEvent</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L128" class="blob-num js-line-number js-blob-rnum" data-line-number="128"></td>
          <td id="file-ai-chat-history-delete-script-js-LC128" class="blob-code blob-code-inner js-file-line">            : <span class="pl-v">MouseEvent</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L129" class="blob-num js-line-number js-blob-rnum" data-line-number="129"></td>
          <td id="file-ai-chat-history-delete-script-js-LC129" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L130" class="blob-num js-line-number js-blob-rnum" data-line-number="130"></td>
          <td id="file-ai-chat-history-delete-script-js-LC130" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">EventClass</span><span class="pl-kos">(</span><span class="pl-s1">eventName</span><span class="pl-kos">,</span> <span class="pl-s1">options</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L131" class="blob-num js-line-number js-blob-rnum" data-line-number="131"></td>
          <td id="file-ai-chat-history-delete-script-js-LC131" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L132" class="blob-num js-line-number js-blob-rnum" data-line-number="132"></td>
          <td id="file-ai-chat-history-delete-script-js-LC132" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L133" class="blob-num js-line-number js-blob-rnum" data-line-number="133"></td>
          <td id="file-ai-chat-history-delete-script-js-LC133" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">MouseEvent</span><span class="pl-kos">(</span><span class="pl-s1">eventName</span><span class="pl-kos">,</span> <span class="pl-s1">options</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L134" class="blob-num js-line-number js-blob-rnum" data-line-number="134"></td>
          <td id="file-ai-chat-history-delete-script-js-LC134" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L135" class="blob-num js-line-number js-blob-rnum" data-line-number="135"></td>
          <td id="file-ai-chat-history-delete-script-js-LC135" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L136" class="blob-num js-line-number js-blob-rnum" data-line-number="136"></td>
          <td id="file-ai-chat-history-delete-script-js-LC136" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L137" class="blob-num js-line-number js-blob-rnum" data-line-number="137"></td>
          <td id="file-ai-chat-history-delete-script-js-LC137" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L138" class="blob-num js-line-number js-blob-rnum" data-line-number="138"></td>
          <td id="file-ai-chat-history-delete-script-js-LC138" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L139" class="blob-num js-line-number js-blob-rnum" data-line-number="139"></td>
          <td id="file-ai-chat-history-delete-script-js-LC139" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">clickElement</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">rawElement</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L140" class="blob-num js-line-number js-blob-rnum" data-line-number="140"></td>
          <td id="file-ai-chat-history-delete-script-js-LC140" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">element</span> <span class="pl-c1">=</span> <span class="pl-en">getClickableElement</span><span class="pl-kos">(</span><span class="pl-s1">rawElement</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L141" class="blob-num js-line-number js-blob-rnum" data-line-number="141"></td>
          <td id="file-ai-chat-history-delete-script-js-LC141" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L142" class="blob-num js-line-number js-blob-rnum" data-line-number="142"></td>
          <td id="file-ai-chat-history-delete-script-js-LC142" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span> <span class="pl-c1">false</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L143" class="blob-num js-line-number js-blob-rnum" data-line-number="143"></td>
          <td id="file-ai-chat-history-delete-script-js-LC143" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L144" class="blob-num js-line-number js-blob-rnum" data-line-number="144"></td>
          <td id="file-ai-chat-history-delete-script-js-LC144" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">scrollIntoView</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">block</span>: <span class="pl-s">"center"</span><span class="pl-kos">,</span> <span class="pl-c1">inline</span>: <span class="pl-s">"center"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L145" class="blob-num js-line-number js-blob-rnum" data-line-number="145"></td>
          <td id="file-ai-chat-history-delete-script-js-LC145" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">150</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L146" class="blob-num js-line-number js-blob-rnum" data-line-number="146"></td>
          <td id="file-ai-chat-history-delete-script-js-LC146" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L147" class="blob-num js-line-number js-blob-rnum" data-line-number="147"></td>
          <td id="file-ai-chat-history-delete-script-js-LC147" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L148" class="blob-num js-line-number js-blob-rnum" data-line-number="148"></td>
          <td id="file-ai-chat-history-delete-script-js-LC148" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">focus</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">preventScroll</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L149" class="blob-num js-line-number js-blob-rnum" data-line-number="149"></td>
          <td id="file-ai-chat-history-delete-script-js-LC149" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L150" class="blob-num js-line-number js-blob-rnum" data-line-number="150"></td>
          <td id="file-ai-chat-history-delete-script-js-LC150" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L151" class="blob-num js-line-number js-blob-rnum" data-line-number="151"></td>
          <td id="file-ai-chat-history-delete-script-js-LC151" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">focus</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L152" class="blob-num js-line-number js-blob-rnum" data-line-number="152"></td>
          <td id="file-ai-chat-history-delete-script-js-LC152" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L153" class="blob-num js-line-number js-blob-rnum" data-line-number="153"></td>
          <td id="file-ai-chat-history-delete-script-js-LC153" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L154" class="blob-num js-line-number js-blob-rnum" data-line-number="154"></td>
          <td id="file-ai-chat-history-delete-script-js-LC154" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L155" class="blob-num js-line-number js-blob-rnum" data-line-number="155"></td>
          <td id="file-ai-chat-history-delete-script-js-LC155" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">rect</span> <span class="pl-c1">=</span> <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L156" class="blob-num js-line-number js-blob-rnum" data-line-number="156"></td>
          <td id="file-ai-chat-history-delete-script-js-LC156" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L157" class="blob-num js-line-number js-blob-rnum" data-line-number="157"></td>
          <td id="file-ai-chat-history-delete-script-js-LC157" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">options</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L158" class="blob-num js-line-number js-blob-rnum" data-line-number="158"></td>
          <td id="file-ai-chat-history-delete-script-js-LC158" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">bubbles</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L159" class="blob-num js-line-number js-blob-rnum" data-line-number="159"></td>
          <td id="file-ai-chat-history-delete-script-js-LC159" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">cancelable</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L160" class="blob-num js-line-number js-blob-rnum" data-line-number="160"></td>
          <td id="file-ai-chat-history-delete-script-js-LC160" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">composed</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L161" class="blob-num js-line-number js-blob-rnum" data-line-number="161"></td>
          <td id="file-ai-chat-history-delete-script-js-LC161" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">view</span>: <span class="pl-smi">window</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L162" class="blob-num js-line-number js-blob-rnum" data-line-number="162"></td>
          <td id="file-ai-chat-history-delete-script-js-LC162" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">clientX</span>: <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">left</span> <span class="pl-c1">+</span> <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">width</span> <span class="pl-c1">/</span> <span class="pl-c1">2</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L163" class="blob-num js-line-number js-blob-rnum" data-line-number="163"></td>
          <td id="file-ai-chat-history-delete-script-js-LC163" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">clientY</span>: <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">+</span> <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">height</span> <span class="pl-c1">/</span> <span class="pl-c1">2</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L164" class="blob-num js-line-number js-blob-rnum" data-line-number="164"></td>
          <td id="file-ai-chat-history-delete-script-js-LC164" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L165" class="blob-num js-line-number js-blob-rnum" data-line-number="165"></td>
          <td id="file-ai-chat-history-delete-script-js-LC165" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L166" class="blob-num js-line-number js-blob-rnum" data-line-number="166"></td>
          <td id="file-ai-chat-history-delete-script-js-LC166" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">events</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L167" class="blob-num js-line-number js-blob-rnum" data-line-number="167"></td>
          <td id="file-ai-chat-history-delete-script-js-LC167" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointerover"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L168" class="blob-num js-line-number js-blob-rnum" data-line-number="168"></td>
          <td id="file-ai-chat-history-delete-script-js-LC168" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointerenter"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L169" class="blob-num js-line-number js-blob-rnum" data-line-number="169"></td>
          <td id="file-ai-chat-history-delete-script-js-LC169" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointermove"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L170" class="blob-num js-line-number js-blob-rnum" data-line-number="170"></td>
          <td id="file-ai-chat-history-delete-script-js-LC170" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mouseover"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L171" class="blob-num js-line-number js-blob-rnum" data-line-number="171"></td>
          <td id="file-ai-chat-history-delete-script-js-LC171" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mouseenter"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L172" class="blob-num js-line-number js-blob-rnum" data-line-number="172"></td>
          <td id="file-ai-chat-history-delete-script-js-LC172" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mousemove"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L173" class="blob-num js-line-number js-blob-rnum" data-line-number="173"></td>
          <td id="file-ai-chat-history-delete-script-js-LC173" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointerdown"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L174" class="blob-num js-line-number js-blob-rnum" data-line-number="174"></td>
          <td id="file-ai-chat-history-delete-script-js-LC174" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mousedown"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L175" class="blob-num js-line-number js-blob-rnum" data-line-number="175"></td>
          <td id="file-ai-chat-history-delete-script-js-LC175" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"pointerup"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L176" class="blob-num js-line-number js-blob-rnum" data-line-number="176"></td>
          <td id="file-ai-chat-history-delete-script-js-LC176" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"mouseup"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L177" class="blob-num js-line-number js-blob-rnum" data-line-number="177"></td>
          <td id="file-ai-chat-history-delete-script-js-LC177" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"click"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L178" class="blob-num js-line-number js-blob-rnum" data-line-number="178"></td>
          <td id="file-ai-chat-history-delete-script-js-LC178" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">]</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L179" class="blob-num js-line-number js-blob-rnum" data-line-number="179"></td>
          <td id="file-ai-chat-history-delete-script-js-LC179" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L180" class="blob-num js-line-number js-blob-rnum" data-line-number="180"></td>
          <td id="file-ai-chat-history-delete-script-js-LC180" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">const</span> <span class="pl-s1">eventName</span> <span class="pl-k">of</span> <span class="pl-s1">events</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L181" class="blob-num js-line-number js-blob-rnum" data-line-number="181"></td>
          <td id="file-ai-chat-history-delete-script-js-LC181" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L182" class="blob-num js-line-number js-blob-rnum" data-line-number="182"></td>
          <td id="file-ai-chat-history-delete-script-js-LC182" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-v">EventClass</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L183" class="blob-num js-line-number js-blob-rnum" data-line-number="183"></td>
          <td id="file-ai-chat-history-delete-script-js-LC183" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">eventName</span><span class="pl-kos">.</span><span class="pl-en">startsWith</span><span class="pl-kos">(</span><span class="pl-s">"pointer"</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">PointerEvent</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L184" class="blob-num js-line-number js-blob-rnum" data-line-number="184"></td>
          <td id="file-ai-chat-history-delete-script-js-LC184" class="blob-code blob-code-inner js-file-line">            ? <span class="pl-v">PointerEvent</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L185" class="blob-num js-line-number js-blob-rnum" data-line-number="185"></td>
          <td id="file-ai-chat-history-delete-script-js-LC185" class="blob-code blob-code-inner js-file-line">            : <span class="pl-v">MouseEvent</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L186" class="blob-num js-line-number js-blob-rnum" data-line-number="186"></td>
          <td id="file-ai-chat-history-delete-script-js-LC186" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L187" class="blob-num js-line-number js-blob-rnum" data-line-number="187"></td>
          <td id="file-ai-chat-history-delete-script-js-LC187" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">EventClass</span><span class="pl-kos">(</span><span class="pl-s1">eventName</span><span class="pl-kos">,</span> <span class="pl-s1">options</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L188" class="blob-num js-line-number js-blob-rnum" data-line-number="188"></td>
          <td id="file-ai-chat-history-delete-script-js-LC188" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L189" class="blob-num js-line-number js-blob-rnum" data-line-number="189"></td>
          <td id="file-ai-chat-history-delete-script-js-LC189" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L190" class="blob-num js-line-number js-blob-rnum" data-line-number="190"></td>
          <td id="file-ai-chat-history-delete-script-js-LC190" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">MouseEvent</span><span class="pl-kos">(</span><span class="pl-s1">eventName</span><span class="pl-kos">,</span> <span class="pl-s1">options</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L191" class="blob-num js-line-number js-blob-rnum" data-line-number="191"></td>
          <td id="file-ai-chat-history-delete-script-js-LC191" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L192" class="blob-num js-line-number js-blob-rnum" data-line-number="192"></td>
          <td id="file-ai-chat-history-delete-script-js-LC192" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L193" class="blob-num js-line-number js-blob-rnum" data-line-number="193"></td>
          <td id="file-ai-chat-history-delete-script-js-LC193" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L194" class="blob-num js-line-number js-blob-rnum" data-line-number="194"></td>
          <td id="file-ai-chat-history-delete-script-js-LC194" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L195" class="blob-num js-line-number js-blob-rnum" data-line-number="195"></td>
          <td id="file-ai-chat-history-delete-script-js-LC195" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-c1">true</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L196" class="blob-num js-line-number js-blob-rnum" data-line-number="196"></td>
          <td id="file-ai-chat-history-delete-script-js-LC196" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L197" class="blob-num js-line-number js-blob-rnum" data-line-number="197"></td>
          <td id="file-ai-chat-history-delete-script-js-LC197" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L198" class="blob-num js-line-number js-blob-rnum" data-line-number="198"></td>
          <td id="file-ai-chat-history-delete-script-js-LC198" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">dispatchScroll</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L199" class="blob-num js-line-number js-blob-rnum" data-line-number="199"></td>
          <td id="file-ai-chat-history-delete-script-js-LC199" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L200" class="blob-num js-line-number js-blob-rnum" data-line-number="200"></td>
          <td id="file-ai-chat-history-delete-script-js-LC200" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L201" class="blob-num js-line-number js-blob-rnum" data-line-number="201"></td>
          <td id="file-ai-chat-history-delete-script-js-LC201" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L202" class="blob-num js-line-number js-blob-rnum" data-line-number="202"></td>
          <td id="file-ai-chat-history-delete-script-js-LC202" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">Event</span><span class="pl-kos">(</span><span class="pl-s">"scroll"</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">bubbles</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L203" class="blob-num js-line-number js-blob-rnum" data-line-number="203"></td>
          <td id="file-ai-chat-history-delete-script-js-LC203" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L204" class="blob-num js-line-number js-blob-rnum" data-line-number="204"></td>
          <td id="file-ai-chat-history-delete-script-js-LC204" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L205" class="blob-num js-line-number js-blob-rnum" data-line-number="205"></td>
          <td id="file-ai-chat-history-delete-script-js-LC205" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L206" class="blob-num js-line-number js-blob-rnum" data-line-number="206"></td>
          <td id="file-ai-chat-history-delete-script-js-LC206" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L207" class="blob-num js-line-number js-blob-rnum" data-line-number="207"></td>
          <td id="file-ai-chat-history-delete-script-js-LC207" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">new</span> <span class="pl-v">WheelEvent</span><span class="pl-kos">(</span><span class="pl-s">"wheel"</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L208" class="blob-num js-line-number js-blob-rnum" data-line-number="208"></td>
          <td id="file-ai-chat-history-delete-script-js-LC208" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">bubbles</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L209" class="blob-num js-line-number js-blob-rnum" data-line-number="209"></td>
          <td id="file-ai-chat-history-delete-script-js-LC209" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">cancelable</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L210" class="blob-num js-line-number js-blob-rnum" data-line-number="210"></td>
          <td id="file-ai-chat-history-delete-script-js-LC210" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">deltaY</span>: <span class="pl-c1">1200</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L211" class="blob-num js-line-number js-blob-rnum" data-line-number="211"></td>
          <td id="file-ai-chat-history-delete-script-js-LC211" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L212" class="blob-num js-line-number js-blob-rnum" data-line-number="212"></td>
          <td id="file-ai-chat-history-delete-script-js-LC212" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L213" class="blob-num js-line-number js-blob-rnum" data-line-number="213"></td>
          <td id="file-ai-chat-history-delete-script-js-LC213" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L214" class="blob-num js-line-number js-blob-rnum" data-line-number="214"></td>
          <td id="file-ai-chat-history-delete-script-js-LC214" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L215" class="blob-num js-line-number js-blob-rnum" data-line-number="215"></td>
          <td id="file-ai-chat-history-delete-script-js-LC215" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">dispatchEvent</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">Event</span><span class="pl-kos">(</span><span class="pl-s">"wheel"</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">bubbles</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L216" class="blob-num js-line-number js-blob-rnum" data-line-number="216"></td>
          <td id="file-ai-chat-history-delete-script-js-LC216" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L217" class="blob-num js-line-number js-blob-rnum" data-line-number="217"></td>
          <td id="file-ai-chat-history-delete-script-js-LC217" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L218" class="blob-num js-line-number js-blob-rnum" data-line-number="218"></td>
          <td id="file-ai-chat-history-delete-script-js-LC218" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L219" class="blob-num js-line-number js-blob-rnum" data-line-number="219"></td>
          <td id="file-ai-chat-history-delete-script-js-LC219" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L220" class="blob-num js-line-number js-blob-rnum" data-line-number="220"></td>
          <td id="file-ai-chat-history-delete-script-js-LC220" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">forceScrollBottom</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L221" class="blob-num js-line-number js-blob-rnum" data-line-number="221"></td>
          <td id="file-ai-chat-history-delete-script-js-LC221" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L222" class="blob-num js-line-number js-blob-rnum" data-line-number="222"></td>
          <td id="file-ai-chat-history-delete-script-js-LC222" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L223" class="blob-num js-line-number js-blob-rnum" data-line-number="223"></td>
          <td id="file-ai-chat-history-delete-script-js-LC223" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L224" class="blob-num js-line-number js-blob-rnum" data-line-number="224"></td>
          <td id="file-ai-chat-history-delete-script-js-LC224" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-c1">scrollTop</span> <span class="pl-c1">=</span> <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-c1">scrollHeight</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L225" class="blob-num js-line-number js-blob-rnum" data-line-number="225"></td>
          <td id="file-ai-chat-history-delete-script-js-LC225" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchScroll</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L226" class="blob-num js-line-number js-blob-rnum" data-line-number="226"></td>
          <td id="file-ai-chat-history-delete-script-js-LC226" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L227" class="blob-num js-line-number js-blob-rnum" data-line-number="227"></td>
          <td id="file-ai-chat-history-delete-script-js-LC227" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L228" class="blob-num js-line-number js-blob-rnum" data-line-number="228"></td>
          <td id="file-ai-chat-history-delete-script-js-LC228" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L229" class="blob-num js-line-number js-blob-rnum" data-line-number="229"></td>
          <td id="file-ai-chat-history-delete-script-js-LC229" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">scrollTo</span><span class="pl-kos">(</span><span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L230" class="blob-num js-line-number js-blob-rnum" data-line-number="230"></td>
          <td id="file-ai-chat-history-delete-script-js-LC230" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">top</span>: <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-c1">scrollHeight</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L231" class="blob-num js-line-number js-blob-rnum" data-line-number="231"></td>
          <td id="file-ai-chat-history-delete-script-js-LC231" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">behavior</span>: <span class="pl-s">"instant"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L232" class="blob-num js-line-number js-blob-rnum" data-line-number="232"></td>
          <td id="file-ai-chat-history-delete-script-js-LC232" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L233" class="blob-num js-line-number js-blob-rnum" data-line-number="233"></td>
          <td id="file-ai-chat-history-delete-script-js-LC233" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchScroll</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L234" class="blob-num js-line-number js-blob-rnum" data-line-number="234"></td>
          <td id="file-ai-chat-history-delete-script-js-LC234" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L235" class="blob-num js-line-number js-blob-rnum" data-line-number="235"></td>
          <td id="file-ai-chat-history-delete-script-js-LC235" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L236" class="blob-num js-line-number js-blob-rnum" data-line-number="236"></td>
          <td id="file-ai-chat-history-delete-script-js-LC236" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L237" class="blob-num js-line-number js-blob-rnum" data-line-number="237"></td>
          <td id="file-ai-chat-history-delete-script-js-LC237" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">forceScrollTop</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L238" class="blob-num js-line-number js-blob-rnum" data-line-number="238"></td>
          <td id="file-ai-chat-history-delete-script-js-LC238" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L239" class="blob-num js-line-number js-blob-rnum" data-line-number="239"></td>
          <td id="file-ai-chat-history-delete-script-js-LC239" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L240" class="blob-num js-line-number js-blob-rnum" data-line-number="240"></td>
          <td id="file-ai-chat-history-delete-script-js-LC240" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L241" class="blob-num js-line-number js-blob-rnum" data-line-number="241"></td>
          <td id="file-ai-chat-history-delete-script-js-LC241" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-c1">scrollTop</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L242" class="blob-num js-line-number js-blob-rnum" data-line-number="242"></td>
          <td id="file-ai-chat-history-delete-script-js-LC242" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchScroll</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L243" class="blob-num js-line-number js-blob-rnum" data-line-number="243"></td>
          <td id="file-ai-chat-history-delete-script-js-LC243" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L244" class="blob-num js-line-number js-blob-rnum" data-line-number="244"></td>
          <td id="file-ai-chat-history-delete-script-js-LC244" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L245" class="blob-num js-line-number js-blob-rnum" data-line-number="245"></td>
          <td id="file-ai-chat-history-delete-script-js-LC245" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">try</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L246" class="blob-num js-line-number js-blob-rnum" data-line-number="246"></td>
          <td id="file-ai-chat-history-delete-script-js-LC246" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">scrollTo</span><span class="pl-kos">(</span><span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L247" class="blob-num js-line-number js-blob-rnum" data-line-number="247"></td>
          <td id="file-ai-chat-history-delete-script-js-LC247" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">top</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L248" class="blob-num js-line-number js-blob-rnum" data-line-number="248"></td>
          <td id="file-ai-chat-history-delete-script-js-LC248" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">behavior</span>: <span class="pl-s">"instant"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L249" class="blob-num js-line-number js-blob-rnum" data-line-number="249"></td>
          <td id="file-ai-chat-history-delete-script-js-LC249" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L250" class="blob-num js-line-number js-blob-rnum" data-line-number="250"></td>
          <td id="file-ai-chat-history-delete-script-js-LC250" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchScroll</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L251" class="blob-num js-line-number js-blob-rnum" data-line-number="251"></td>
          <td id="file-ai-chat-history-delete-script-js-LC251" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">_</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L252" class="blob-num js-line-number js-blob-rnum" data-line-number="252"></td>
          <td id="file-ai-chat-history-delete-script-js-LC252" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L253" class="blob-num js-line-number js-blob-rnum" data-line-number="253"></td>
          <td id="file-ai-chat-history-delete-script-js-LC253" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L254" class="blob-num js-line-number js-blob-rnum" data-line-number="254"></td>
          <td id="file-ai-chat-history-delete-script-js-LC254" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">findBestScrollContainer</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">root</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L255" class="blob-num js-line-number js-blob-rnum" data-line-number="255"></td>
          <td id="file-ai-chat-history-delete-script-js-LC255" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">candidates</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L256" class="blob-num js-line-number js-blob-rnum" data-line-number="256"></td>
          <td id="file-ai-chat-history-delete-script-js-LC256" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L257" class="blob-num js-line-number js-blob-rnum" data-line-number="257"></td>
          <td id="file-ai-chat-history-delete-script-js-LC257" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">let</span> <span class="pl-s1">node</span> <span class="pl-c1">=</span> <span class="pl-s1">root</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L258" class="blob-num js-line-number js-blob-rnum" data-line-number="258"></td>
          <td id="file-ai-chat-history-delete-script-js-LC258" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">while</span> <span class="pl-kos">(</span><span class="pl-s1">node</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">node</span> <span class="pl-c1">!==</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">documentElement</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L259" class="blob-num js-line-number js-blob-rnum" data-line-number="259"></td>
          <td id="file-ai-chat-history-delete-script-js-LC259" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">candidates</span><span class="pl-kos">.</span><span class="pl-en">push</span><span class="pl-kos">(</span><span class="pl-s1">node</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L260" class="blob-num js-line-number js-blob-rnum" data-line-number="260"></td>
          <td id="file-ai-chat-history-delete-script-js-LC260" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">node</span> <span class="pl-c1">=</span> <span class="pl-s1">node</span><span class="pl-kos">.</span><span class="pl-c1">parentElement</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L261" class="blob-num js-line-number js-blob-rnum" data-line-number="261"></td>
          <td id="file-ai-chat-history-delete-script-js-LC261" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L262" class="blob-num js-line-number js-blob-rnum" data-line-number="262"></td>
          <td id="file-ai-chat-history-delete-script-js-LC262" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L263" class="blob-num js-line-number js-blob-rnum" data-line-number="263"></td>
          <td id="file-ai-chat-history-delete-script-js-LC263" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">root</span><span class="pl-kos">?.</span><span class="pl-c1">querySelectorAll</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L264" class="blob-num js-line-number js-blob-rnum" data-line-number="264"></td>
          <td id="file-ai-chat-history-delete-script-js-LC264" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">candidates</span><span class="pl-kos">.</span><span class="pl-en">push</span><span class="pl-kos">(</span>...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"*"</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L265" class="blob-num js-line-number js-blob-rnum" data-line-number="265"></td>
          <td id="file-ai-chat-history-delete-script-js-LC265" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L266" class="blob-num js-line-number js-blob-rnum" data-line-number="266"></td>
          <td id="file-ai-chat-history-delete-script-js-LC266" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L267" class="blob-num js-line-number js-blob-rnum" data-line-number="267"></td>
          <td id="file-ai-chat-history-delete-script-js-LC267" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">candidates</span><span class="pl-kos">.</span><span class="pl-en">push</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L268" class="blob-num js-line-number js-blob-rnum" data-line-number="268"></td>
          <td id="file-ai-chat-history-delete-script-js-LC268" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"aside"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L269" class="blob-num js-line-number js-blob-rnum" data-line-number="269"></td>
          <td id="file-ai-chat-history-delete-script-js-LC269" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"nav"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L270" class="blob-num js-line-number js-blob-rnum" data-line-number="270"></td>
          <td id="file-ai-chat-history-delete-script-js-LC270" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">scrollingElement</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L271" class="blob-num js-line-number js-blob-rnum" data-line-number="271"></td>
          <td id="file-ai-chat-history-delete-script-js-LC271" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">documentElement</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L272" class="blob-num js-line-number js-blob-rnum" data-line-number="272"></td>
          <td id="file-ai-chat-history-delete-script-js-LC272" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L273" class="blob-num js-line-number js-blob-rnum" data-line-number="273"></td>
          <td id="file-ai-chat-history-delete-script-js-LC273" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L274" class="blob-num js-line-number js-blob-rnum" data-line-number="274"></td>
          <td id="file-ai-chat-history-delete-script-js-LC274" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L275" class="blob-num js-line-number js-blob-rnum" data-line-number="275"></td>
          <td id="file-ai-chat-history-delete-script-js-LC275" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">scored</span> <span class="pl-c1">=</span> <span class="pl-en">unique</span><span class="pl-kos">(</span><span class="pl-s1">candidates</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L276" class="blob-num js-line-number js-blob-rnum" data-line-number="276"></td>
          <td id="file-ai-chat-history-delete-script-js-LC276" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-v">Boolean</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L277" class="blob-num js-line-number js-blob-rnum" data-line-number="277"></td>
          <td id="file-ai-chat-history-delete-script-js-LC277" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L278" class="blob-num js-line-number js-blob-rnum" data-line-number="278"></td>
          <td id="file-ai-chat-history-delete-script-js-LC278" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">rect</span> <span class="pl-c1">=</span> <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L279" class="blob-num js-line-number js-blob-rnum" data-line-number="279"></td>
          <td id="file-ai-chat-history-delete-script-js-LC279" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">left</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L280" class="blob-num js-line-number js-blob-rnum" data-line-number="280"></td>
          <td id="file-ai-chat-history-delete-script-js-LC280" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">top</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L281" class="blob-num js-line-number js-blob-rnum" data-line-number="281"></td>
          <td id="file-ai-chat-history-delete-script-js-LC281" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">width</span>: <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">innerWidth</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L282" class="blob-num js-line-number js-blob-rnum" data-line-number="282"></td>
          <td id="file-ai-chat-history-delete-script-js-LC282" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">height</span>: <span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">innerHeight</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L283" class="blob-num js-line-number js-blob-rnum" data-line-number="283"></td>
          <td id="file-ai-chat-history-delete-script-js-LC283" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L284" class="blob-num js-line-number js-blob-rnum" data-line-number="284"></td>
          <td id="file-ai-chat-history-delete-script-js-LC284" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L285" class="blob-num js-line-number js-blob-rnum" data-line-number="285"></td>
          <td id="file-ai-chat-history-delete-script-js-LC285" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-en">getComputedStyle</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L286" class="blob-num js-line-number js-blob-rnum" data-line-number="286"></td>
          <td id="file-ai-chat-history-delete-script-js-LC286" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">scrollableAmount</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-c1">scrollHeight</span> <span class="pl-c1">||</span> <span class="pl-c1">0</span><span class="pl-kos">)</span> <span class="pl-c1">-</span> <span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-c1">clientHeight</span> <span class="pl-c1">||</span> <span class="pl-c1">0</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L287" class="blob-num js-line-number js-blob-rnum" data-line-number="287"></td>
          <td id="file-ai-chat-history-delete-script-js-LC287" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L288" class="blob-num js-line-number js-blob-rnum" data-line-number="288"></td>
          <td id="file-ai-chat-history-delete-script-js-LC288" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">let</span> <span class="pl-s1">score</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L289" class="blob-num js-line-number js-blob-rnum" data-line-number="289"></td>
          <td id="file-ai-chat-history-delete-script-js-LC289" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L290" class="blob-num js-line-number js-blob-rnum" data-line-number="290"></td>
          <td id="file-ai-chat-history-delete-script-js-LC290" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">scrollableAmount</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">40</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">100</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L291" class="blob-num js-line-number js-blob-rnum" data-line-number="291"></td>
          <td id="file-ai-chat-history-delete-script-js-LC291" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">a</span><span class="pl-s">u</span><span class="pl-s">t</span><span class="pl-s">o</span><span class="pl-c1">|</span><span class="pl-s">s</span><span class="pl-s">c</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">l</span><span class="pl-s">l</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">overflowY</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">45</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L292" class="blob-num js-line-number js-blob-rnum" data-line-number="292"></td>
          <td id="file-ai-chat-history-delete-script-js-LC292" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">left</span> <span class="pl-c1">&lt;</span> <span class="pl-c1">700</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">35</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L293" class="blob-num js-line-number js-blob-rnum" data-line-number="293"></td>
          <td id="file-ai-chat-history-delete-script-js-LC293" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">width</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">160</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">width</span> <span class="pl-c1">&lt;</span> <span class="pl-c1">750</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">35</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L294" class="blob-num js-line-number js-blob-rnum" data-line-number="294"></td>
          <td id="file-ai-chat-history-delete-script-js-LC294" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">rect</span><span class="pl-kos">.</span><span class="pl-c1">height</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">250</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">20</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L295" class="blob-num js-line-number js-blob-rnum" data-line-number="295"></td>
          <td id="file-ai-chat-history-delete-script-js-LC295" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">matches</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"aside, nav"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">20</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L296" class="blob-num js-line-number js-blob-rnum" data-line-number="296"></td>
          <td id="file-ai-chat-history-delete-script-js-LC296" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-v">Math</span><span class="pl-kos">.</span><span class="pl-en">min</span><span class="pl-kos">(</span><span class="pl-c1">120</span><span class="pl-kos">,</span> <span class="pl-s1">scrollableAmount</span> <span class="pl-c1">/</span> <span class="pl-c1">20</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L297" class="blob-num js-line-number js-blob-rnum" data-line-number="297"></td>
          <td id="file-ai-chat-history-delete-script-js-LC297" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L298" class="blob-num js-line-number js-blob-rnum" data-line-number="298"></td>
          <td id="file-ai-chat-history-delete-script-js-LC298" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">return</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L299" class="blob-num js-line-number js-blob-rnum" data-line-number="299"></td>
          <td id="file-ai-chat-history-delete-script-js-LC299" class="blob-code blob-code-inner js-file-line">          el<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L300" class="blob-num js-line-number js-blob-rnum" data-line-number="300"></td>
          <td id="file-ai-chat-history-delete-script-js-LC300" class="blob-code blob-code-inner js-file-line">          score<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L301" class="blob-num js-line-number js-blob-rnum" data-line-number="301"></td>
          <td id="file-ai-chat-history-delete-script-js-LC301" class="blob-code blob-code-inner js-file-line">          scrollableAmount<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L302" class="blob-num js-line-number js-blob-rnum" data-line-number="302"></td>
          <td id="file-ai-chat-history-delete-script-js-LC302" class="blob-code blob-code-inner js-file-line">          rect<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L303" class="blob-num js-line-number js-blob-rnum" data-line-number="303"></td>
          <td id="file-ai-chat-history-delete-script-js-LC303" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">overflowY</span>: <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">overflowY</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L304" class="blob-num js-line-number js-blob-rnum" data-line-number="304"></td>
          <td id="file-ai-chat-history-delete-script-js-LC304" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L305" class="blob-num js-line-number js-blob-rnum" data-line-number="305"></td>
          <td id="file-ai-chat-history-delete-script-js-LC305" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L306" class="blob-num js-line-number js-blob-rnum" data-line-number="306"></td>
          <td id="file-ai-chat-history-delete-script-js-LC306" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">scrollableAmount</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">40</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L307" class="blob-num js-line-number js-blob-rnum" data-line-number="307"></td>
          <td id="file-ai-chat-history-delete-script-js-LC307" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-c1">score</span> <span class="pl-c1">-</span> <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-c1">score</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L308" class="blob-num js-line-number js-blob-rnum" data-line-number="308"></td>
          <td id="file-ai-chat-history-delete-script-js-LC308" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L309" class="blob-num js-line-number js-blob-rnum" data-line-number="309"></td>
          <td id="file-ai-chat-history-delete-script-js-LC309" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-s1">scored</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">?.</span><span class="pl-c1">el</span> <span class="pl-c1">||</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">scrollingElement</span> <span class="pl-c1">||</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">documentElement</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L310" class="blob-num js-line-number js-blob-rnum" data-line-number="310"></td>
          <td id="file-ai-chat-history-delete-script-js-LC310" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L311" class="blob-num js-line-number js-blob-rnum" data-line-number="311"></td>
          <td id="file-ai-chat-history-delete-script-js-LC311" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L312" class="blob-num js-line-number js-blob-rnum" data-line-number="312"></td>
          <td id="file-ai-chat-history-delete-script-js-LC312" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">getMenuRoots</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L313" class="blob-num js-line-number js-blob-rnum" data-line-number="313"></td>
          <td id="file-ai-chat-history-delete-script-js-LC313" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L314" class="blob-num js-line-number js-blob-rnum" data-line-number="314"></td>
          <td id="file-ai-chat-history-delete-script-js-LC314" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[role="menu"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L315" class="blob-num js-line-number js-blob-rnum" data-line-number="315"></td>
          <td id="file-ai-chat-history-delete-script-js-LC315" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-cds="Menu"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L316" class="blob-num js-line-number js-blob-rnum" data-line-number="316"></td>
          <td id="file-ai-chat-history-delete-script-js-LC316" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-base-ui-focusable][role="menu"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L317" class="blob-num js-line-number js-blob-rnum" data-line-number="317"></td>
          <td id="file-ai-chat-history-delete-script-js-LC317" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-floating-ui-focusable][role="menu"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L318" class="blob-num js-line-number js-blob-rnum" data-line-number="318"></td>
          <td id="file-ai-chat-history-delete-script-js-LC318" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-radix-popper-content-wrapper]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L319" class="blob-num js-line-number js-blob-rnum" data-line-number="319"></td>
          <td id="file-ai-chat-history-delete-script-js-LC319" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-radix-menu-content]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L320" class="blob-num js-line-number js-blob-rnum" data-line-number="320"></td>
          <td id="file-ai-chat-history-delete-script-js-LC320" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-slot*="dropdown"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L321" class="blob-num js-line-number js-blob-rnum" data-line-number="321"></td>
          <td id="file-ai-chat-history-delete-script-js-LC321" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-sidebar*="menu"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L322" class="blob-num js-line-number js-blob-rnum" data-line-number="322"></td>
          <td id="file-ai-chat-history-delete-script-js-LC322" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">".cdk-overlay-container"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L323" class="blob-num js-line-number js-blob-rnum" data-line-number="323"></td>
          <td id="file-ai-chat-history-delete-script-js-LC323" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"[data-testid*='menu']"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L324" class="blob-num js-line-number js-blob-rnum" data-line-number="324"></td>
          <td id="file-ai-chat-history-delete-script-js-LC324" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"[id^='radix-']"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L325" class="blob-num js-line-number js-blob-rnum" data-line-number="325"></td>
          <td id="file-ai-chat-history-delete-script-js-LC325" class="blob-code blob-code-inner js-file-line">      ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"[id^='_r_']"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L326" class="blob-num js-line-number js-blob-rnum" data-line-number="326"></td>
          <td id="file-ai-chat-history-delete-script-js-LC326" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L327" class="blob-num js-line-number js-blob-rnum" data-line-number="327"></td>
          <td id="file-ai-chat-history-delete-script-js-LC327" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-v">Boolean</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L328" class="blob-num js-line-number js-blob-rnum" data-line-number="328"></td>
          <td id="file-ai-chat-history-delete-script-js-LC328" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L329" class="blob-num js-line-number js-blob-rnum" data-line-number="329"></td>
          <td id="file-ai-chat-history-delete-script-js-LC329" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L330" class="blob-num js-line-number js-blob-rnum" data-line-number="330"></td>
          <td id="file-ai-chat-history-delete-script-js-LC330" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">findDeleteMenuItem</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">serviceName</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L331" class="blob-num js-line-number js-blob-rnum" data-line-number="331"></td>
          <td id="file-ai-chat-history-delete-script-js-LC331" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">let</span> <span class="pl-s1">attempt</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span> <span class="pl-s1">attempt</span> <span class="pl-c1">&lt;</span> <span class="pl-c1">20</span><span class="pl-kos">;</span> <span class="pl-s1">attempt</span><span class="pl-c1">++</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L332" class="blob-num js-line-number js-blob-rnum" data-line-number="332"></td>
          <td id="file-ai-chat-history-delete-script-js-LC332" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">roots</span> <span class="pl-c1">=</span> <span class="pl-en">getMenuRoots</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L333" class="blob-num js-line-number js-blob-rnum" data-line-number="333"></td>
          <td id="file-ai-chat-history-delete-script-js-LC333" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L334" class="blob-num js-line-number js-blob-rnum" data-line-number="334"></td>
          <td id="file-ai-chat-history-delete-script-js-LC334" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">const</span> <span class="pl-s1">root</span> <span class="pl-k">of</span> <span class="pl-s1">roots</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L335" class="blob-num js-line-number js-blob-rnum" data-line-number="335"></td>
          <td id="file-ai-chat-history-delete-script-js-LC335" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">candidates</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L336" class="blob-num js-line-number js-blob-rnum" data-line-number="336"></td>
          <td id="file-ai-chat-history-delete-script-js-LC336" class="blob-code blob-code-inner js-file-line">          ...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L337" class="blob-num js-line-number js-blob-rnum" data-line-number="337"></td>
          <td id="file-ai-chat-history-delete-script-js-LC337" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L338" class="blob-num js-line-number js-blob-rnum" data-line-number="338"></td>
          <td id="file-ai-chat-history-delete-script-js-LC338" class="blob-code blob-code-inner js-file-line">              <span class="pl-c">// Claude &#54869;&#51221; &#49472;&#47113;&#53552;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L339" class="blob-num js-line-number js-blob-rnum" data-line-number="339"></td>
          <td id="file-ai-chat-history-delete-script-js-LC339" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'[data-testid="delete-chat-trigger"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L340" class="blob-num js-line-number js-blob-rnum" data-line-number="340"></td>
          <td id="file-ai-chat-history-delete-script-js-LC340" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L341" class="blob-num js-line-number js-blob-rnum" data-line-number="341"></td>
          <td id="file-ai-chat-history-delete-script-js-LC341" class="blob-code blob-code-inner js-file-line">              <span class="pl-c">// Meta &#54869;&#51221; &#44228;&#50676;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L342" class="blob-num js-line-number js-blob-rnum" data-line-number="342"></td>
          <td id="file-ai-chat-history-delete-script-js-LC342" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'[data-radix-popper-content-wrapper] [role="menuitem"][data-slot="dropdown-menu-item"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L343" class="blob-num js-line-number js-blob-rnum" data-line-number="343"></td>
          <td id="file-ai-chat-history-delete-script-js-LC343" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'[data-radix-menu-content] [role="menuitem"][data-slot="dropdown-menu-item"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L344" class="blob-num js-line-number js-blob-rnum" data-line-number="344"></td>
          <td id="file-ai-chat-history-delete-script-js-LC344" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L345" class="blob-num js-line-number js-blob-rnum" data-line-number="345"></td>
          <td id="file-ai-chat-history-delete-script-js-LC345" class="blob-code blob-code-inner js-file-line">              <span class="pl-c">// &#48276;&#50857; &#47700;&#45684; &#54637;&#47785;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L346" class="blob-num js-line-number js-blob-rnum" data-line-number="346"></td>
          <td id="file-ai-chat-history-delete-script-js-LC346" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L347" class="blob-num js-line-number js-blob-rnum" data-line-number="347"></td>
          <td id="file-ai-chat-history-delete-script-js-LC347" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'[role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L348" class="blob-num js-line-number js-blob-rnum" data-line-number="348"></td>
          <td id="file-ai-chat-history-delete-script-js-LC348" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'[data-slot="dropdown-menu-item"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L349" class="blob-num js-line-number js-blob-rnum" data-line-number="349"></td>
          <td id="file-ai-chat-history-delete-script-js-LC349" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'[data-radix-collection-item]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L350" class="blob-num js-line-number js-blob-rnum" data-line-number="350"></td>
          <td id="file-ai-chat-history-delete-script-js-LC350" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L351" class="blob-num js-line-number js-blob-rnum" data-line-number="351"></td>
          <td id="file-ai-chat-history-delete-script-js-LC351" class="blob-code blob-code-inner js-file-line">              <span class="pl-c">// &#53581;&#49828;&#53944;/&#49549;&#49457; &#44592;&#48152;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L352" class="blob-num js-line-number js-blob-rnum" data-line-number="352"></td>
          <td id="file-ai-chat-history-delete-script-js-LC352" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[title*="&#45824;&#54868; &#49325;&#51228;"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L353" class="blob-num js-line-number js-blob-rnum" data-line-number="353"></td>
          <td id="file-ai-chat-history-delete-script-js-LC353" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[aria-label*="&#45824;&#54868; &#49325;&#51228;"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L354" class="blob-num js-line-number js-blob-rnum" data-line-number="354"></td>
          <td id="file-ai-chat-history-delete-script-js-LC354" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[title*="&#52292;&#54021; &#49325;&#51228;"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L355" class="blob-num js-line-number js-blob-rnum" data-line-number="355"></td>
          <td id="file-ai-chat-history-delete-script-js-LC355" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[aria-label*="&#52292;&#54021; &#49325;&#51228;"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L356" class="blob-num js-line-number js-blob-rnum" data-line-number="356"></td>
          <td id="file-ai-chat-history-delete-script-js-LC356" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[title*="&#49325;&#51228;"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L357" class="blob-num js-line-number js-blob-rnum" data-line-number="357"></td>
          <td id="file-ai-chat-history-delete-script-js-LC357" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[aria-label*="&#49325;&#51228;"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L358" class="blob-num js-line-number js-blob-rnum" data-line-number="358"></td>
          <td id="file-ai-chat-history-delete-script-js-LC358" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[title*="Delete"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L359" class="blob-num js-line-number js-blob-rnum" data-line-number="359"></td>
          <td id="file-ai-chat-history-delete-script-js-LC359" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[aria-label*="Delete"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L360" class="blob-num js-line-number js-blob-rnum" data-line-number="360"></td>
          <td id="file-ai-chat-history-delete-script-js-LC360" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[title*="Remove"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L361" class="blob-num js-line-number js-blob-rnum" data-line-number="361"></td>
          <td id="file-ai-chat-history-delete-script-js-LC361" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">'button[aria-label*="Remove"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L362" class="blob-num js-line-number js-blob-rnum" data-line-number="362"></td>
          <td id="file-ai-chat-history-delete-script-js-LC362" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L363" class="blob-num js-line-number js-blob-rnum" data-line-number="363"></td>
          <td id="file-ai-chat-history-delete-script-js-LC363" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">".mat-mdc-menu-item"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L364" class="blob-num js-line-number js-blob-rnum" data-line-number="364"></td>
          <td id="file-ai-chat-history-delete-script-js-LC364" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">"button"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L365" class="blob-num js-line-number js-blob-rnum" data-line-number="365"></td>
          <td id="file-ai-chat-history-delete-script-js-LC365" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">"div"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L366" class="blob-num js-line-number js-blob-rnum" data-line-number="366"></td>
          <td id="file-ai-chat-history-delete-script-js-LC366" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">"span"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L367" class="blob-num js-line-number js-blob-rnum" data-line-number="367"></td>
          <td id="file-ai-chat-history-delete-script-js-LC367" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">join</span><span class="pl-kos">(</span><span class="pl-s">", "</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L368" class="blob-num js-line-number js-blob-rnum" data-line-number="368"></td>
          <td id="file-ai-chat-history-delete-script-js-LC368" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L369" class="blob-num js-line-number js-blob-rnum" data-line-number="369"></td>
          <td id="file-ai-chat-history-delete-script-js-LC369" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isVisible</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L370" class="blob-num js-line-number js-blob-rnum" data-line-number="370"></td>
          <td id="file-ai-chat-history-delete-script-js-LC370" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L371" class="blob-num js-line-number js-blob-rnum" data-line-number="371"></td>
          <td id="file-ai-chat-history-delete-script-js-LC371" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">scored</span> <span class="pl-c1">=</span> <span class="pl-s1">candidates</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L372" class="blob-num js-line-number js-blob-rnum" data-line-number="372"></td>
          <td id="file-ai-chat-history-delete-script-js-LC372" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L373" class="blob-num js-line-number js-blob-rnum" data-line-number="373"></td>
          <td id="file-ai-chat-history-delete-script-js-LC373" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">clickable</span> <span class="pl-c1">=</span> <span class="pl-en">getClickableElement</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L374" class="blob-num js-line-number js-blob-rnum" data-line-number="374"></td>
          <td id="file-ai-chat-history-delete-script-js-LC374" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">text</span> <span class="pl-c1">=</span> <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">element</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L375" class="blob-num js-line-number js-blob-rnum" data-line-number="375"></td>
          <td id="file-ai-chat-history-delete-script-js-LC375" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">clickableText</span> <span class="pl-c1">=</span> <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">clickable</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L376" class="blob-num js-line-number js-blob-rnum" data-line-number="376"></td>
          <td id="file-ai-chat-history-delete-script-js-LC376" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L377" class="blob-num js-line-number js-blob-rnum" data-line-number="377"></td>
          <td id="file-ai-chat-history-delete-script-js-LC377" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">title</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L378" class="blob-num js-line-number js-blob-rnum" data-line-number="378"></td>
          <td id="file-ai-chat-history-delete-script-js-LC378" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"title"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L379" class="blob-num js-line-number js-blob-rnum" data-line-number="379"></td>
          <td id="file-ai-chat-history-delete-script-js-LC379" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"title"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L380" class="blob-num js-line-number js-blob-rnum" data-line-number="380"></td>
          <td id="file-ai-chat-history-delete-script-js-LC380" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L381" class="blob-num js-line-number js-blob-rnum" data-line-number="381"></td>
          <td id="file-ai-chat-history-delete-script-js-LC381" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L382" class="blob-num js-line-number js-blob-rnum" data-line-number="382"></td>
          <td id="file-ai-chat-history-delete-script-js-LC382" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">aria</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L383" class="blob-num js-line-number js-blob-rnum" data-line-number="383"></td>
          <td id="file-ai-chat-history-delete-script-js-LC383" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L384" class="blob-num js-line-number js-blob-rnum" data-line-number="384"></td>
          <td id="file-ai-chat-history-delete-script-js-LC384" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L385" class="blob-num js-line-number js-blob-rnum" data-line-number="385"></td>
          <td id="file-ai-chat-history-delete-script-js-LC385" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L386" class="blob-num js-line-number js-blob-rnum" data-line-number="386"></td>
          <td id="file-ai-chat-history-delete-script-js-LC386" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L387" class="blob-num js-line-number js-blob-rnum" data-line-number="387"></td>
          <td id="file-ai-chat-history-delete-script-js-LC387" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">testId</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L388" class="blob-num js-line-number js-blob-rnum" data-line-number="388"></td>
          <td id="file-ai-chat-history-delete-script-js-LC388" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"data-testid"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L389" class="blob-num js-line-number js-blob-rnum" data-line-number="389"></td>
          <td id="file-ai-chat-history-delete-script-js-LC389" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"data-testid"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L390" class="blob-num js-line-number js-blob-rnum" data-line-number="390"></td>
          <td id="file-ai-chat-history-delete-script-js-LC390" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L391" class="blob-num js-line-number js-blob-rnum" data-line-number="391"></td>
          <td id="file-ai-chat-history-delete-script-js-LC391" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L392" class="blob-num js-line-number js-blob-rnum" data-line-number="392"></td>
          <td id="file-ai-chat-history-delete-script-js-LC392" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">slot</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L393" class="blob-num js-line-number js-blob-rnum" data-line-number="393"></td>
          <td id="file-ai-chat-history-delete-script-js-LC393" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"data-slot"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L394" class="blob-num js-line-number js-blob-rnum" data-line-number="394"></td>
          <td id="file-ai-chat-history-delete-script-js-LC394" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"data-slot"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L395" class="blob-num js-line-number js-blob-rnum" data-line-number="395"></td>
          <td id="file-ai-chat-history-delete-script-js-LC395" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L396" class="blob-num js-line-number js-blob-rnum" data-line-number="396"></td>
          <td id="file-ai-chat-history-delete-script-js-LC396" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L397" class="blob-num js-line-number js-blob-rnum" data-line-number="397"></td>
          <td id="file-ai-chat-history-delete-script-js-LC397" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">className</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L398" class="blob-num js-line-number js-blob-rnum" data-line-number="398"></td>
          <td id="file-ai-chat-history-delete-script-js-LC398" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"class"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L399" class="blob-num js-line-number js-blob-rnum" data-line-number="399"></td>
          <td id="file-ai-chat-history-delete-script-js-LC399" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"class"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L400" class="blob-num js-line-number js-blob-rnum" data-line-number="400"></td>
          <td id="file-ai-chat-history-delete-script-js-LC400" class="blob-code blob-code-inner js-file-line">              <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L401" class="blob-num js-line-number js-blob-rnum" data-line-number="401"></td>
          <td id="file-ai-chat-history-delete-script-js-LC401" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L402" class="blob-num js-line-number js-blob-rnum" data-line-number="402"></td>
          <td id="file-ai-chat-history-delete-script-js-LC402" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">combined</span> <span class="pl-c1">=</span> <span class="pl-s">`<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">text</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">clickableText</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">title</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">aria</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">testId</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">slot</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">className</span><span class="pl-kos">}</span></span>`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L403" class="blob-num js-line-number js-blob-rnum" data-line-number="403"></td>
          <td id="file-ai-chat-history-delete-script-js-LC403" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">.</span><span class="pl-en">replace</span><span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">\s</span><span class="pl-c1">+</span><span class="pl-c1">/</span>g</span><span class="pl-kos">,</span> <span class="pl-s">" "</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L404" class="blob-num js-line-number js-blob-rnum" data-line-number="404"></td>
          <td id="file-ai-chat-history-delete-script-js-LC404" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">.</span><span class="pl-en">trim</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L405" class="blob-num js-line-number js-blob-rnum" data-line-number="405"></td>
          <td id="file-ai-chat-history-delete-script-js-LC405" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L406" class="blob-num js-line-number js-blob-rnum" data-line-number="406"></td>
          <td id="file-ai-chat-history-delete-script-js-LC406" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">let</span> <span class="pl-s1">score</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L407" class="blob-num js-line-number js-blob-rnum" data-line-number="407"></td>
          <td id="file-ai-chat-history-delete-script-js-LC407" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L408" class="blob-num js-line-number js-blob-rnum" data-line-number="408"></td>
          <td id="file-ai-chat-history-delete-script-js-LC408" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// Claude &#54869;&#51221;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L409" class="blob-num js-line-number js-blob-rnum" data-line-number="409"></td>
          <td id="file-ai-chat-history-delete-script-js-LC409" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">-</span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">i</span><span class="pl-s">g</span><span class="pl-s">g</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">testId</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L410" class="blob-num js-line-number js-blob-rnum" data-line-number="410"></td>
          <td id="file-ai-chat-history-delete-script-js-LC410" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">280</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L411" class="blob-num js-line-number js-blob-rnum" data-line-number="411"></td>
          <td id="file-ai-chat-history-delete-script-js-LC411" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L412" class="blob-num js-line-number js-blob-rnum" data-line-number="412"></td>
          <td id="file-ai-chat-history-delete-script-js-LC412" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L413" class="blob-num js-line-number js-blob-rnum" data-line-number="413"></td>
          <td id="file-ai-chat-history-delete-script-js-LC413" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// Meta &#54869;&#51221;: Radix dropdown menu item + destructive class + &#49325;&#51228;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L414" class="blob-num js-line-number js-blob-rnum" data-line-number="414"></td>
          <td id="file-ai-chat-history-delete-script-js-LC414" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L415" class="blob-num js-line-number js-blob-rnum" data-line-number="415"></td>
          <td id="file-ai-chat-history-delete-script-js-LC415" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">serviceName</span> <span class="pl-c1">===</span> <span class="pl-s">"Meta AI"</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L416" class="blob-num js-line-number js-blob-rnum" data-line-number="416"></td>
          <td id="file-ai-chat-history-delete-script-js-LC416" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">d</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">p</span><span class="pl-s">d</span><span class="pl-s">o</span><span class="pl-s">w</span><span class="pl-s">n</span><span class="pl-s">-</span><span class="pl-s">m</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">u</span><span class="pl-s">-</span><span class="pl-s">i</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">slot</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L417" class="blob-num js-line-number js-blob-rnum" data-line-number="417"></td>
          <td id="file-ai-chat-history-delete-script-js-LC417" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">s</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">u</span><span class="pl-s">c</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">className</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L418" class="blob-num js-line-number js-blob-rnum" data-line-number="418"></td>
          <td id="file-ai-chat-history-delete-script-js-LC418" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">/</span></span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">combined</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L419" class="blob-num js-line-number js-blob-rnum" data-line-number="419"></td>
          <td id="file-ai-chat-history-delete-script-js-LC419" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L420" class="blob-num js-line-number js-blob-rnum" data-line-number="420"></td>
          <td id="file-ai-chat-history-delete-script-js-LC420" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">300</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L421" class="blob-num js-line-number js-blob-rnum" data-line-number="421"></td>
          <td id="file-ai-chat-history-delete-script-js-LC421" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L422" class="blob-num js-line-number js-blob-rnum" data-line-number="422"></td>
          <td id="file-ai-chat-history-delete-script-js-LC422" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L423" class="blob-num js-line-number js-blob-rnum" data-line-number="423"></td>
          <td id="file-ai-chat-history-delete-script-js-LC423" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L424" class="blob-num js-line-number js-blob-rnum" data-line-number="424"></td>
          <td id="file-ai-chat-history-delete-script-js-LC424" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">serviceName</span> <span class="pl-c1">===</span> <span class="pl-s">"Meta AI"</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L425" class="blob-num js-line-number js-blob-rnum" data-line-number="425"></td>
          <td id="file-ai-chat-history-delete-script-js-LC425" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">element</span><span class="pl-kos">.</span><span class="pl-en">closest</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"[data-radix-popper-content-wrapper]"</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L426" class="blob-num js-line-number js-blob-rnum" data-line-number="426"></td>
          <td id="file-ai-chat-history-delete-script-js-LC426" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">s</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">u</span><span class="pl-s">c</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">className</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L427" class="blob-num js-line-number js-blob-rnum" data-line-number="427"></td>
          <td id="file-ai-chat-history-delete-script-js-LC427" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">/</span></span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">combined</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L428" class="blob-num js-line-number js-blob-rnum" data-line-number="428"></td>
          <td id="file-ai-chat-history-delete-script-js-LC428" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L429" class="blob-num js-line-number js-blob-rnum" data-line-number="429"></td>
          <td id="file-ai-chat-history-delete-script-js-LC429" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">300</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L430" class="blob-num js-line-number js-blob-rnum" data-line-number="430"></td>
          <td id="file-ai-chat-history-delete-script-js-LC430" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L431" class="blob-num js-line-number js-blob-rnum" data-line-number="431"></td>
          <td id="file-ai-chat-history-delete-script-js-LC431" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L432" class="blob-num js-line-number js-blob-rnum" data-line-number="432"></td>
          <td id="file-ai-chat-history-delete-script-js-LC432" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#54620;&#44397;&#50612; &#49325;&#51228; &#47928;&#44396;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L433" class="blob-num js-line-number js-blob-rnum" data-line-number="433"></td>
          <td id="file-ai-chat-history-delete-script-js-LC433" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#45824;</span><span class="pl-s">&#54868;</span><span class="pl-s"> </span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">|</span><span class="pl-s">&#52292;</span><span class="pl-s">&#54021;</span><span class="pl-s"> </span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">|</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span>.<span class="pl-c1">*</span><span class="pl-s">&#45824;</span><span class="pl-s">&#54868;</span><span class="pl-c1">|</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span>.<span class="pl-c1">*</span><span class="pl-s">&#52292;</span><span class="pl-s">&#54021;</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">combined</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L434" class="blob-num js-line-number js-blob-rnum" data-line-number="434"></td>
          <td id="file-ai-chat-history-delete-script-js-LC434" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">160</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L435" class="blob-num js-line-number js-blob-rnum" data-line-number="435"></td>
          <td id="file-ai-chat-history-delete-script-js-LC435" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L436" class="blob-num js-line-number js-blob-rnum" data-line-number="436"></td>
          <td id="file-ai-chat-history-delete-script-js-LC436" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L437" class="blob-num js-line-number js-blob-rnum" data-line-number="437"></td>
          <td id="file-ai-chat-history-delete-script-js-LC437" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#50689;&#50612; &#49325;&#51228; &#47928;&#44396;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L438" class="blob-num js-line-number js-blob-rnum" data-line-number="438"></td>
          <td id="file-ai-chat-history-delete-script-js-LC438" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L439" class="blob-num js-line-number js-blob-rnum" data-line-number="439"></td>
          <td id="file-ai-chat-history-delete-script-js-LC439" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-s">s</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-c1">|</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">p</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">m</span><span class="pl-s">p</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-s">s</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-c1">|</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L440" class="blob-num js-line-number js-blob-rnum" data-line-number="440"></td>
          <td id="file-ai-chat-history-delete-script-js-LC440" class="blob-code blob-code-inner js-file-line">                <span class="pl-s1">combined</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L441" class="blob-num js-line-number js-blob-rnum" data-line-number="441"></td>
          <td id="file-ai-chat-history-delete-script-js-LC441" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L442" class="blob-num js-line-number js-blob-rnum" data-line-number="442"></td>
          <td id="file-ai-chat-history-delete-script-js-LC442" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L443" class="blob-num js-line-number js-blob-rnum" data-line-number="443"></td>
          <td id="file-ai-chat-history-delete-script-js-LC443" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">160</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L444" class="blob-num js-line-number js-blob-rnum" data-line-number="444"></td>
          <td id="file-ai-chat-history-delete-script-js-LC444" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L445" class="blob-num js-line-number js-blob-rnum" data-line-number="445"></td>
          <td id="file-ai-chat-history-delete-script-js-LC445" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L446" class="blob-num js-line-number js-blob-rnum" data-line-number="446"></td>
          <td id="file-ai-chat-history-delete-script-js-LC446" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#45800;&#46021; &#49325;&#51228; &#53581;&#49828;&#53944;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L447" class="blob-num js-line-number js-blob-rnum" data-line-number="447"></td>
          <td id="file-ai-chat-history-delete-script-js-LC447" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-s">&#54616;</span><span class="pl-s">&#44592;</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-cce">$</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">text</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L448" class="blob-num js-line-number js-blob-rnum" data-line-number="448"></td>
          <td id="file-ai-chat-history-delete-script-js-LC448" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">130</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L449" class="blob-num js-line-number js-blob-rnum" data-line-number="449"></td>
          <td id="file-ai-chat-history-delete-script-js-LC449" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L450" class="blob-num js-line-number js-blob-rnum" data-line-number="450"></td>
          <td id="file-ai-chat-history-delete-script-js-LC450" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L451" class="blob-num js-line-number js-blob-rnum" data-line-number="451"></td>
          <td id="file-ai-chat-history-delete-script-js-LC451" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-s">&#54616;</span><span class="pl-s">&#44592;</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-cce">$</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">clickableText</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L452" class="blob-num js-line-number js-blob-rnum" data-line-number="452"></td>
          <td id="file-ai-chat-history-delete-script-js-LC452" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">130</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L453" class="blob-num js-line-number js-blob-rnum" data-line-number="453"></td>
          <td id="file-ai-chat-history-delete-script-js-LC453" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L454" class="blob-num js-line-number js-blob-rnum" data-line-number="454"></td>
          <td id="file-ai-chat-history-delete-script-js-LC454" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L455" class="blob-num js-line-number js-blob-rnum" data-line-number="455"></td>
          <td id="file-ai-chat-history-delete-script-js-LC455" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">a</span><span class="pl-s">s</span><span class="pl-s">h</span><span class="pl-c1">|</span><span class="pl-s">r</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">combined</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L456" class="blob-num js-line-number js-blob-rnum" data-line-number="456"></td>
          <td id="file-ai-chat-history-delete-script-js-LC456" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">70</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L457" class="blob-num js-line-number js-blob-rnum" data-line-number="457"></td>
          <td id="file-ai-chat-history-delete-script-js-LC457" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L458" class="blob-num js-line-number js-blob-rnum" data-line-number="458"></td>
          <td id="file-ai-chat-history-delete-script-js-LC458" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L459" class="blob-num js-line-number js-blob-rnum" data-line-number="459"></td>
          <td id="file-ai-chat-history-delete-script-js-LC459" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#50948;&#54744;/&#54028;&#44340; &#53364;&#47000;&#49828; &#44032;&#49328;&#51216;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L460" class="blob-num js-line-number js-blob-rnum" data-line-number="460"></td>
          <td id="file-ai-chat-history-delete-script-js-LC460" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">d</span><span class="pl-s">a</span><span class="pl-s">n</span><span class="pl-s">g</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-c1">|</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">s</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">u</span><span class="pl-s">c</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">r</span><span class="pl-s">e</span><span class="pl-s">d</span><span class="pl-c1">|</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">s</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">u</span><span class="pl-s">c</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">d</span><span class="pl-s">a</span><span class="pl-s">n</span><span class="pl-s">g</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-c1">|</span><span class="pl-s">g</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">u</span><span class="pl-s">p</span><span class="pl-s">-</span><span class="pl-s">m</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">u</span><span class="pl-s">-</span><span class="pl-s">d</span><span class="pl-s">a</span><span class="pl-s">n</span><span class="pl-s">g</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">className</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L461" class="blob-num js-line-number js-blob-rnum" data-line-number="461"></td>
          <td id="file-ai-chat-history-delete-script-js-LC461" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">80</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L462" class="blob-num js-line-number js-blob-rnum" data-line-number="462"></td>
          <td id="file-ai-chat-history-delete-script-js-LC462" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L463" class="blob-num js-line-number js-blob-rnum" data-line-number="463"></td>
          <td id="file-ai-chat-history-delete-script-js-LC463" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L464" class="blob-num js-line-number js-blob-rnum" data-line-number="464"></td>
          <td id="file-ai-chat-history-delete-script-js-LC464" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#50669;&#54624;/&#53468;&#44536; &#44032;&#49328;&#51216;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L465" class="blob-num js-line-number js-blob-rnum" data-line-number="465"></td>
          <td id="file-ai-chat-history-delete-script-js-LC465" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">matches</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">'button[role="menuitem"]'</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">50</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L466" class="blob-num js-line-number js-blob-rnum" data-line-number="466"></td>
          <td id="file-ai-chat-history-delete-script-js-LC466" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">matches</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">'[role="menuitem"]'</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">45</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L467" class="blob-num js-line-number js-blob-rnum" data-line-number="467"></td>
          <td id="file-ai-chat-history-delete-script-js-LC467" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">matches</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">'[data-slot="dropdown-menu-item"]'</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">45</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L468" class="blob-num js-line-number js-blob-rnum" data-line-number="468"></td>
          <td id="file-ai-chat-history-delete-script-js-LC468" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-en">matches</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">".mat-mdc-menu-item"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">35</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L469" class="blob-num js-line-number js-blob-rnum" data-line-number="469"></td>
          <td id="file-ai-chat-history-delete-script-js-LC469" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">clickable</span><span class="pl-kos">?.</span><span class="pl-c1">tagName</span><span class="pl-kos">?.</span><span class="pl-en">toLowerCase</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">===</span> <span class="pl-s">"button"</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">25</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L470" class="blob-num js-line-number js-blob-rnum" data-line-number="470"></td>
          <td id="file-ai-chat-history-delete-script-js-LC470" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L471" class="blob-num js-line-number js-blob-rnum" data-line-number="471"></td>
          <td id="file-ai-chat-history-delete-script-js-LC471" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#49325;&#51228;&#44032; &#50500;&#45772; &#54637;&#47785; &#44048;&#51216;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L472" class="blob-num js-line-number js-blob-rnum" data-line-number="472"></td>
          <td id="file-ai-chat-history-delete-script-js-LC472" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L473" class="blob-num js-line-number js-blob-rnum" data-line-number="473"></td>
          <td id="file-ai-chat-history-delete-script-js-LC473" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#51600;</span><span class="pl-s">&#44200;</span><span class="pl-s">&#52286;</span><span class="pl-s">&#44592;</span><span class="pl-c1">|</span><span class="pl-s">&#44256;</span><span class="pl-s">&#51221;</span><span class="pl-c1">|</span><span class="pl-s">P</span><span class="pl-s">i</span><span class="pl-s">n</span><span class="pl-c1">|</span><span class="pl-s">S</span><span class="pl-s">t</span><span class="pl-s">a</span><span class="pl-s">r</span><span class="pl-c1">|</span><span class="pl-s">&#51060;</span><span class="pl-s">&#47492;</span><span class="pl-s"> </span><span class="pl-s">&#48320;</span><span class="pl-s">&#44221;</span><span class="pl-c1">|</span><span class="pl-s">&#51060;</span><span class="pl-s">&#47492;</span><span class="pl-s"> </span><span class="pl-s">&#48148;</span><span class="pl-s">&#44984;</span><span class="pl-s">&#44592;</span><span class="pl-c1">|</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">a</span><span class="pl-s">m</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">&#52488;</span><span class="pl-s">&#45824;</span><span class="pl-c1">|</span><span class="pl-s">I</span><span class="pl-s">n</span><span class="pl-s">v</span><span class="pl-s">i</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">&#44277;</span><span class="pl-s">&#50976;</span><span class="pl-c1">|</span><span class="pl-s">S</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">r</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">&#48373;</span><span class="pl-s">&#49324;</span><span class="pl-c1">|</span><span class="pl-s">C</span><span class="pl-s">o</span><span class="pl-s">p</span><span class="pl-s">y</span><span class="pl-c1">|</span><span class="pl-s">&#50836;</span><span class="pl-s">&#50557;</span><span class="pl-c1">|</span><span class="pl-s">S</span><span class="pl-s">u</span><span class="pl-s">m</span><span class="pl-s">m</span><span class="pl-s">a</span><span class="pl-s">r</span><span class="pl-s">y</span><span class="pl-c1">|</span><span class="pl-s">&#54532;</span><span class="pl-s">&#47196;</span><span class="pl-s">&#51229;</span><span class="pl-s">&#53944;</span><span class="pl-c1">|</span><span class="pl-s">P</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">j</span><span class="pl-s">e</span><span class="pl-s">c</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">&#48372;</span><span class="pl-s">&#44256;</span><span class="pl-c1">|</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">p</span><span class="pl-s">o</span><span class="pl-s">r</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">A</span><span class="pl-s">r</span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">i</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">&#48372;</span><span class="pl-s">&#44288;</span><span class="pl-c1">|</span><span class="pl-s">E</span><span class="pl-s">x</span><span class="pl-s">p</span><span class="pl-s">o</span><span class="pl-s">r</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">&#45236;</span><span class="pl-s">&#48372;</span><span class="pl-s">&#45236;</span><span class="pl-s">&#44592;</span><span class="pl-c1">|</span><span class="pl-s">M</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">&#51060;</span><span class="pl-s">&#46041;</span><span class="pl-c1">|</span><span class="pl-s">&#52628;</span><span class="pl-s">&#44032;</span><span class="pl-c1">|</span><span class="pl-s">A</span><span class="pl-s">d</span><span class="pl-s">d</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L474" class="blob-num js-line-number js-blob-rnum" data-line-number="474"></td>
          <td id="file-ai-chat-history-delete-script-js-LC474" class="blob-code blob-code-inner js-file-line">                <span class="pl-s1">combined</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L475" class="blob-num js-line-number js-blob-rnum" data-line-number="475"></td>
          <td id="file-ai-chat-history-delete-script-js-LC475" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L476" class="blob-num js-line-number js-blob-rnum" data-line-number="476"></td>
          <td id="file-ai-chat-history-delete-script-js-LC476" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L477" class="blob-num js-line-number js-blob-rnum" data-line-number="477"></td>
          <td id="file-ai-chat-history-delete-script-js-LC477" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">-=</span> <span class="pl-c1">220</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L478" class="blob-num js-line-number js-blob-rnum" data-line-number="478"></td>
          <td id="file-ai-chat-history-delete-script-js-LC478" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L479" class="blob-num js-line-number js-blob-rnum" data-line-number="479"></td>
          <td id="file-ai-chat-history-delete-script-js-LC479" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L480" class="blob-num js-line-number js-blob-rnum" data-line-number="480"></td>
          <td id="file-ai-chat-history-delete-script-js-LC480" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">return</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L481" class="blob-num js-line-number js-blob-rnum" data-line-number="481"></td>
          <td id="file-ai-chat-history-delete-script-js-LC481" class="blob-code blob-code-inner js-file-line">              <span class="pl-c1">rawElement</span>: <span class="pl-s1">element</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L482" class="blob-num js-line-number js-blob-rnum" data-line-number="482"></td>
          <td id="file-ai-chat-history-delete-script-js-LC482" class="blob-code blob-code-inner js-file-line">              <span class="pl-c1">element</span>: <span class="pl-s1">clickable</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L483" class="blob-num js-line-number js-blob-rnum" data-line-number="483"></td>
          <td id="file-ai-chat-history-delete-script-js-LC483" class="blob-code blob-code-inner js-file-line">              score<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L484" class="blob-num js-line-number js-blob-rnum" data-line-number="484"></td>
          <td id="file-ai-chat-history-delete-script-js-LC484" class="blob-code blob-code-inner js-file-line">              text<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L485" class="blob-num js-line-number js-blob-rnum" data-line-number="485"></td>
          <td id="file-ai-chat-history-delete-script-js-LC485" class="blob-code blob-code-inner js-file-line">              clickableText<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L486" class="blob-num js-line-number js-blob-rnum" data-line-number="486"></td>
          <td id="file-ai-chat-history-delete-script-js-LC486" class="blob-code blob-code-inner js-file-line">              title<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L487" class="blob-num js-line-number js-blob-rnum" data-line-number="487"></td>
          <td id="file-ai-chat-history-delete-script-js-LC487" class="blob-code blob-code-inner js-file-line">              aria<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L488" class="blob-num js-line-number js-blob-rnum" data-line-number="488"></td>
          <td id="file-ai-chat-history-delete-script-js-LC488" class="blob-code blob-code-inner js-file-line">              testId<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L489" class="blob-num js-line-number js-blob-rnum" data-line-number="489"></td>
          <td id="file-ai-chat-history-delete-script-js-LC489" class="blob-code blob-code-inner js-file-line">              slot<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L490" class="blob-num js-line-number js-blob-rnum" data-line-number="490"></td>
          <td id="file-ai-chat-history-delete-script-js-LC490" class="blob-code blob-code-inner js-file-line">              className<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L491" class="blob-num js-line-number js-blob-rnum" data-line-number="491"></td>
          <td id="file-ai-chat-history-delete-script-js-LC491" class="blob-code blob-code-inner js-file-line">              combined<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L492" class="blob-num js-line-number js-blob-rnum" data-line-number="492"></td>
          <td id="file-ai-chat-history-delete-script-js-LC492" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L493" class="blob-num js-line-number js-blob-rnum" data-line-number="493"></td>
          <td id="file-ai-chat-history-delete-script-js-LC493" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">}</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L494" class="blob-num js-line-number js-blob-rnum" data-line-number="494"></td>
          <td id="file-ai-chat-history-delete-script-js-LC494" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">element</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">score</span> <span class="pl-c1">&gt;=</span> <span class="pl-c1">110</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L495" class="blob-num js-line-number js-blob-rnum" data-line-number="495"></td>
          <td id="file-ai-chat-history-delete-script-js-LC495" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-c1">score</span> <span class="pl-c1">-</span> <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-c1">score</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L496" class="blob-num js-line-number js-blob-rnum" data-line-number="496"></td>
          <td id="file-ai-chat-history-delete-script-js-LC496" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L497" class="blob-num js-line-number js-blob-rnum" data-line-number="497"></td>
          <td id="file-ai-chat-history-delete-script-js-LC497" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">scored</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L498" class="blob-num js-line-number js-blob-rnum" data-line-number="498"></td>
          <td id="file-ai-chat-history-delete-script-js-LC498" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">const</span> <span class="pl-s1">picked</span> <span class="pl-c1">=</span> <span class="pl-s1">scored</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L499" class="blob-num js-line-number js-blob-rnum" data-line-number="499"></td>
          <td id="file-ai-chat-history-delete-script-js-LC499" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L500" class="blob-num js-line-number js-blob-rnum" data-line-number="500"></td>
          <td id="file-ai-chat-history-delete-script-js-LC500" class="blob-code blob-code-inner js-file-line">          <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#49325;&#51228; &#47700;&#45684; &#44048;&#51648;:"</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L501" class="blob-num js-line-number js-blob-rnum" data-line-number="501"></td>
          <td id="file-ai-chat-history-delete-script-js-LC501" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">service</span>: <span class="pl-s1">serviceName</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L502" class="blob-num js-line-number js-blob-rnum" data-line-number="502"></td>
          <td id="file-ai-chat-history-delete-script-js-LC502" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">text</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">text</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L503" class="blob-num js-line-number js-blob-rnum" data-line-number="503"></td>
          <td id="file-ai-chat-history-delete-script-js-LC503" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">clickableText</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">clickableText</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L504" class="blob-num js-line-number js-blob-rnum" data-line-number="504"></td>
          <td id="file-ai-chat-history-delete-script-js-LC504" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">title</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">title</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L505" class="blob-num js-line-number js-blob-rnum" data-line-number="505"></td>
          <td id="file-ai-chat-history-delete-script-js-LC505" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">aria</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">aria</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L506" class="blob-num js-line-number js-blob-rnum" data-line-number="506"></td>
          <td id="file-ai-chat-history-delete-script-js-LC506" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">testId</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">testId</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L507" class="blob-num js-line-number js-blob-rnum" data-line-number="507"></td>
          <td id="file-ai-chat-history-delete-script-js-LC507" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">slot</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">slot</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L508" class="blob-num js-line-number js-blob-rnum" data-line-number="508"></td>
          <td id="file-ai-chat-history-delete-script-js-LC508" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">score</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">score</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L509" class="blob-num js-line-number js-blob-rnum" data-line-number="509"></td>
          <td id="file-ai-chat-history-delete-script-js-LC509" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L510" class="blob-num js-line-number js-blob-rnum" data-line-number="510"></td>
          <td id="file-ai-chat-history-delete-script-js-LC510" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L511" class="blob-num js-line-number js-blob-rnum" data-line-number="511"></td>
          <td id="file-ai-chat-history-delete-script-js-LC511" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">return</span> <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">element</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L512" class="blob-num js-line-number js-blob-rnum" data-line-number="512"></td>
          <td id="file-ai-chat-history-delete-script-js-LC512" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L513" class="blob-num js-line-number js-blob-rnum" data-line-number="513"></td>
          <td id="file-ai-chat-history-delete-script-js-LC513" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L514" class="blob-num js-line-number js-blob-rnum" data-line-number="514"></td>
          <td id="file-ai-chat-history-delete-script-js-LC514" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L515" class="blob-num js-line-number js-blob-rnum" data-line-number="515"></td>
          <td id="file-ai-chat-history-delete-script-js-LC515" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">200</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L516" class="blob-num js-line-number js-blob-rnum" data-line-number="516"></td>
          <td id="file-ai-chat-history-delete-script-js-LC516" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L517" class="blob-num js-line-number js-blob-rnum" data-line-number="517"></td>
          <td id="file-ai-chat-history-delete-script-js-LC517" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L518" class="blob-num js-line-number js-blob-rnum" data-line-number="518"></td>
          <td id="file-ai-chat-history-delete-script-js-LC518" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-c1">null</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L519" class="blob-num js-line-number js-blob-rnum" data-line-number="519"></td>
          <td id="file-ai-chat-history-delete-script-js-LC519" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L520" class="blob-num js-line-number js-blob-rnum" data-line-number="520"></td>
          <td id="file-ai-chat-history-delete-script-js-LC520" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L521" class="blob-num js-line-number js-blob-rnum" data-line-number="521"></td>
          <td id="file-ai-chat-history-delete-script-js-LC521" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">findConfirmDeleteButton</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">serviceName</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L522" class="blob-num js-line-number js-blob-rnum" data-line-number="522"></td>
          <td id="file-ai-chat-history-delete-script-js-LC522" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">let</span> <span class="pl-s1">attempt</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span> <span class="pl-s1">attempt</span> <span class="pl-c1">&lt;</span> <span class="pl-c1">24</span><span class="pl-kos">;</span> <span class="pl-s1">attempt</span><span class="pl-c1">++</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L523" class="blob-num js-line-number js-blob-rnum" data-line-number="523"></td>
          <td id="file-ai-chat-history-delete-script-js-LC523" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">roots</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L524" class="blob-num js-line-number js-blob-rnum" data-line-number="524"></td>
          <td id="file-ai-chat-history-delete-script-js-LC524" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[role="dialog"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L525" class="blob-num js-line-number js-blob-rnum" data-line-number="525"></td>
          <td id="file-ai-chat-history-delete-script-js-LC525" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[role="alertdialog"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L526" class="blob-num js-line-number js-blob-rnum" data-line-number="526"></td>
          <td id="file-ai-chat-history-delete-script-js-LC526" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"mat-dialog-container"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L527" class="blob-num js-line-number js-blob-rnum" data-line-number="527"></td>
          <td id="file-ai-chat-history-delete-script-js-LC527" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-testid*="dialog"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L528" class="blob-num js-line-number js-blob-rnum" data-line-number="528"></td>
          <td id="file-ai-chat-history-delete-script-js-LC528" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-slot="dialog-content"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L529" class="blob-num js-line-number js-blob-rnum" data-line-number="529"></td>
          <td id="file-ai-chat-history-delete-script-js-LC529" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-floating-ui-focusable]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L530" class="blob-num js-line-number js-blob-rnum" data-line-number="530"></td>
          <td id="file-ai-chat-history-delete-script-js-LC530" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-radix-popper-content-wrapper]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L531" class="blob-num js-line-number js-blob-rnum" data-line-number="531"></td>
          <td id="file-ai-chat-history-delete-script-js-LC531" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-radix-dialog-content]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L532" class="blob-num js-line-number js-blob-rnum" data-line-number="532"></td>
          <td id="file-ai-chat-history-delete-script-js-LC532" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">".cdk-overlay-container"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L533" class="blob-num js-line-number js-blob-rnum" data-line-number="533"></td>
          <td id="file-ai-chat-history-delete-script-js-LC533" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L534" class="blob-num js-line-number js-blob-rnum" data-line-number="534"></td>
          <td id="file-ai-chat-history-delete-script-js-LC534" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-v">Boolean</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L535" class="blob-num js-line-number js-blob-rnum" data-line-number="535"></td>
          <td id="file-ai-chat-history-delete-script-js-LC535" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L536" class="blob-num js-line-number js-blob-rnum" data-line-number="536"></td>
          <td id="file-ai-chat-history-delete-script-js-LC536" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">const</span> <span class="pl-s1">root</span> <span class="pl-k">of</span> <span class="pl-s1">roots</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L537" class="blob-num js-line-number js-blob-rnum" data-line-number="537"></td>
          <td id="file-ai-chat-history-delete-script-js-LC537" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">rootText</span> <span class="pl-c1">=</span> <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">root</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L538" class="blob-num js-line-number js-blob-rnum" data-line-number="538"></td>
          <td id="file-ai-chat-history-delete-script-js-LC538" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L539" class="blob-num js-line-number js-blob-rnum" data-line-number="539"></td>
          <td id="file-ai-chat-history-delete-script-js-LC539" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">buttons</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L540" class="blob-num js-line-number js-blob-rnum" data-line-number="540"></td>
          <td id="file-ai-chat-history-delete-script-js-LC540" class="blob-code blob-code-inner js-file-line">          ...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'button, [role="button"], [data-slot="button"]'</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L541" class="blob-num js-line-number js-blob-rnum" data-line-number="541"></td>
          <td id="file-ai-chat-history-delete-script-js-LC541" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isVisible</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L542" class="blob-num js-line-number js-blob-rnum" data-line-number="542"></td>
          <td id="file-ai-chat-history-delete-script-js-LC542" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L543" class="blob-num js-line-number js-blob-rnum" data-line-number="543"></td>
          <td id="file-ai-chat-history-delete-script-js-LC543" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">scored</span> <span class="pl-c1">=</span> <span class="pl-s1">buttons</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L544" class="blob-num js-line-number js-blob-rnum" data-line-number="544"></td>
          <td id="file-ai-chat-history-delete-script-js-LC544" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">button</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L545" class="blob-num js-line-number js-blob-rnum" data-line-number="545"></td>
          <td id="file-ai-chat-history-delete-script-js-LC545" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">text</span> <span class="pl-c1">=</span> <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">button</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L546" class="blob-num js-line-number js-blob-rnum" data-line-number="546"></td>
          <td id="file-ai-chat-history-delete-script-js-LC546" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">title</span> <span class="pl-c1">=</span> <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"title"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L547" class="blob-num js-line-number js-blob-rnum" data-line-number="547"></td>
          <td id="file-ai-chat-history-delete-script-js-LC547" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">aria</span> <span class="pl-c1">=</span> <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L548" class="blob-num js-line-number js-blob-rnum" data-line-number="548"></td>
          <td id="file-ai-chat-history-delete-script-js-LC548" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">className</span> <span class="pl-c1">=</span> <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"class"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s">""</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L549" class="blob-num js-line-number js-blob-rnum" data-line-number="549"></td>
          <td id="file-ai-chat-history-delete-script-js-LC549" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L550" class="blob-num js-line-number js-blob-rnum" data-line-number="550"></td>
          <td id="file-ai-chat-history-delete-script-js-LC550" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">const</span> <span class="pl-s1">combined</span> <span class="pl-c1">=</span> <span class="pl-s">`<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">text</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">title</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">aria</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">rootText</span><span class="pl-kos">}</span></span> <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">className</span><span class="pl-kos">}</span></span>`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L551" class="blob-num js-line-number js-blob-rnum" data-line-number="551"></td>
          <td id="file-ai-chat-history-delete-script-js-LC551" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">.</span><span class="pl-en">replace</span><span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">\s</span><span class="pl-c1">+</span><span class="pl-c1">/</span>g</span><span class="pl-kos">,</span> <span class="pl-s">" "</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L552" class="blob-num js-line-number js-blob-rnum" data-line-number="552"></td>
          <td id="file-ai-chat-history-delete-script-js-LC552" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">.</span><span class="pl-en">trim</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L553" class="blob-num js-line-number js-blob-rnum" data-line-number="553"></td>
          <td id="file-ai-chat-history-delete-script-js-LC553" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L554" class="blob-num js-line-number js-blob-rnum" data-line-number="554"></td>
          <td id="file-ai-chat-history-delete-script-js-LC554" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">let</span> <span class="pl-s1">score</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L555" class="blob-num js-line-number js-blob-rnum" data-line-number="555"></td>
          <td id="file-ai-chat-history-delete-script-js-LC555" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L556" class="blob-num js-line-number js-blob-rnum" data-line-number="556"></td>
          <td id="file-ai-chat-history-delete-script-js-LC556" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// Claude &#54869;&#51064;&#52285;: "&#45824;&#54868; &#49325;&#51228;" + "&#49325;&#51228;"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L557" class="blob-num js-line-number js-blob-rnum" data-line-number="557"></td>
          <td id="file-ai-chat-history-delete-script-js-LC557" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#45824;</span><span class="pl-s">&#54868;</span><span class="pl-s"> </span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">rootText</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-cce">$</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">text</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L558" class="blob-num js-line-number js-blob-rnum" data-line-number="558"></td>
          <td id="file-ai-chat-history-delete-script-js-LC558" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">280</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L559" class="blob-num js-line-number js-blob-rnum" data-line-number="559"></td>
          <td id="file-ai-chat-history-delete-script-js-LC559" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L560" class="blob-num js-line-number js-blob-rnum" data-line-number="560"></td>
          <td id="file-ai-chat-history-delete-script-js-LC560" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L561" class="blob-num js-line-number js-blob-rnum" data-line-number="561"></td>
          <td id="file-ai-chat-history-delete-script-js-LC561" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// Meta &#54869;&#51064;&#52285;: "&#52292;&#54021;&#51012; &#49325;&#51228;&#54624;&#44620;&#50836;?" + "&#49325;&#51228;"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L562" class="blob-num js-line-number js-blob-rnum" data-line-number="562"></td>
          <td id="file-ai-chat-history-delete-script-js-LC562" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#52292;</span><span class="pl-s">&#54021;</span><span class="pl-s">&#51012;</span><span class="pl-s"> </span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-s">&#54624;</span><span class="pl-s">&#44620;</span><span class="pl-s">&#50836;</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">rootText</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-cce">$</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">text</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L563" class="blob-num js-line-number js-blob-rnum" data-line-number="563"></td>
          <td id="file-ai-chat-history-delete-script-js-LC563" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">280</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L564" class="blob-num js-line-number js-blob-rnum" data-line-number="564"></td>
          <td id="file-ai-chat-history-delete-script-js-LC564" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L565" class="blob-num js-line-number js-blob-rnum" data-line-number="565"></td>
          <td id="file-ai-chat-history-delete-script-js-LC565" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L566" class="blob-num js-line-number js-blob-rnum" data-line-number="566"></td>
          <td id="file-ai-chat-history-delete-script-js-LC566" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#48276;&#50857; &#54869;&#51064;&#52285;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L567" class="blob-num js-line-number js-blob-rnum" data-line-number="567"></td>
          <td id="file-ai-chat-history-delete-script-js-LC567" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-s">&#54616;</span><span class="pl-s">&#44592;</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-cce">$</span><span class="pl-c1">|</span><span class="pl-cce">^</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-cce">$</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">text</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">150</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L568" class="blob-num js-line-number js-blob-rnum" data-line-number="568"></td>
          <td id="file-ai-chat-history-delete-script-js-LC568" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#45824;</span><span class="pl-s">&#54868;</span><span class="pl-s"> </span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">|</span><span class="pl-s">&#52292;</span><span class="pl-s">&#54021;</span><span class="pl-s"> </span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span><span class="pl-c1">|</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span>.<span class="pl-c1">*</span><span class="pl-s">&#45824;</span><span class="pl-s">&#54868;</span><span class="pl-c1">|</span><span class="pl-s">&#49325;</span><span class="pl-s">&#51228;</span>.<span class="pl-c1">*</span><span class="pl-s">&#52292;</span><span class="pl-s">&#54021;</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">combined</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">120</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L569" class="blob-num js-line-number js-blob-rnum" data-line-number="569"></td>
          <td id="file-ai-chat-history-delete-script-js-LC569" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L570" class="blob-num js-line-number js-blob-rnum" data-line-number="570"></td>
          <td id="file-ai-chat-history-delete-script-js-LC570" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L571" class="blob-num js-line-number js-blob-rnum" data-line-number="571"></td>
          <td id="file-ai-chat-history-delete-script-js-LC571" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-s">s</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-c1">|</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">D</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-s">e</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">p</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">m</span><span class="pl-s">p</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-s">s</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-c1">|</span><span class="pl-s">R</span><span class="pl-s">e</span><span class="pl-s">m</span><span class="pl-s">o</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L572" class="blob-num js-line-number js-blob-rnum" data-line-number="572"></td>
          <td id="file-ai-chat-history-delete-script-js-LC572" class="blob-code blob-code-inner js-file-line">                <span class="pl-s1">combined</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L573" class="blob-num js-line-number js-blob-rnum" data-line-number="573"></td>
          <td id="file-ai-chat-history-delete-script-js-LC573" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L574" class="blob-num js-line-number js-blob-rnum" data-line-number="574"></td>
          <td id="file-ai-chat-history-delete-script-js-LC574" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L575" class="blob-num js-line-number js-blob-rnum" data-line-number="575"></td>
          <td id="file-ai-chat-history-delete-script-js-LC575" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">120</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L576" class="blob-num js-line-number js-blob-rnum" data-line-number="576"></td>
          <td id="file-ai-chat-history-delete-script-js-LC576" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L577" class="blob-num js-line-number js-blob-rnum" data-line-number="577"></td>
          <td id="file-ai-chat-history-delete-script-js-LC577" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L578" class="blob-num js-line-number js-blob-rnum" data-line-number="578"></td>
          <td id="file-ai-chat-history-delete-script-js-LC578" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#54869;</span><span class="pl-s">&#51064;</span><span class="pl-c1">|</span><span class="pl-s">C</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">f</span><span class="pl-s">i</span><span class="pl-s">r</span><span class="pl-s">m</span><span class="pl-c1">|</span><span class="pl-s">O</span><span class="pl-s">K</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">text</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">25</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L579" class="blob-num js-line-number js-blob-rnum" data-line-number="579"></td>
          <td id="file-ai-chat-history-delete-script-js-LC579" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L580" class="blob-num js-line-number js-blob-rnum" data-line-number="580"></td>
          <td id="file-ai-chat-history-delete-script-js-LC580" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#50948;&#54744; &#48260;&#53948; &#53364;&#47000;&#49828; &#44032;&#49328;&#51216;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L581" class="blob-num js-line-number js-blob-rnum" data-line-number="581"></td>
          <td id="file-ai-chat-history-delete-script-js-LC581" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L582" class="blob-num js-line-number js-blob-rnum" data-line-number="582"></td>
          <td id="file-ai-chat-history-delete-script-js-LC582" class="blob-code blob-code-inner js-file-line">              <span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">d</span><span class="pl-s">a</span><span class="pl-s">n</span><span class="pl-s">g</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-c1">|</span><span class="pl-s">r</span><span class="pl-s">e</span><span class="pl-s">d</span><span class="pl-c1">|</span><span class="pl-s">a</span><span class="pl-s">c</span><span class="pl-s">c</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">d</span><span class="pl-s">e</span><span class="pl-s">s</span><span class="pl-s">t</span><span class="pl-s">r</span><span class="pl-s">u</span><span class="pl-s">c</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-c1">|</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">-</span><span class="pl-s">d</span><span class="pl-s">a</span><span class="pl-s">n</span><span class="pl-s">g</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-c1">|</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">t</span><span class="pl-s">e</span><span class="pl-s">x</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">-</span><span class="pl-s">a</span><span class="pl-s">c</span><span class="pl-s">c</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">g</span><span class="pl-s">r</span><span class="pl-s">a</span><span class="pl-s">d</span><span class="pl-s">i</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">r</span><span class="pl-s">e</span><span class="pl-s">d</span><span class="pl-c1">|</span><span class="pl-s">f</span><span class="pl-s">r</span><span class="pl-s">o</span><span class="pl-s">m</span><span class="pl-s">-</span><span class="pl-s">g</span><span class="pl-s">r</span><span class="pl-s">a</span><span class="pl-s">d</span><span class="pl-s">i</span><span class="pl-s">e</span><span class="pl-s">n</span><span class="pl-s">t</span><span class="pl-s">-</span><span class="pl-s">r</span><span class="pl-s">e</span><span class="pl-s">d</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L583" class="blob-num js-line-number js-blob-rnum" data-line-number="583"></td>
          <td id="file-ai-chat-history-delete-script-js-LC583" class="blob-code blob-code-inner js-file-line">                <span class="pl-s1">className</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L584" class="blob-num js-line-number js-blob-rnum" data-line-number="584"></td>
          <td id="file-ai-chat-history-delete-script-js-LC584" class="blob-code blob-code-inner js-file-line">              <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L585" class="blob-num js-line-number js-blob-rnum" data-line-number="585"></td>
          <td id="file-ai-chat-history-delete-script-js-LC585" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L586" class="blob-num js-line-number js-blob-rnum" data-line-number="586"></td>
          <td id="file-ai-chat-history-delete-script-js-LC586" class="blob-code blob-code-inner js-file-line">              <span class="pl-s1">score</span> <span class="pl-c1">+=</span> <span class="pl-c1">60</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L587" class="blob-num js-line-number js-blob-rnum" data-line-number="587"></td>
          <td id="file-ai-chat-history-delete-script-js-LC587" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L588" class="blob-num js-line-number js-blob-rnum" data-line-number="588"></td>
          <td id="file-ai-chat-history-delete-script-js-LC588" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L589" class="blob-num js-line-number js-blob-rnum" data-line-number="589"></td>
          <td id="file-ai-chat-history-delete-script-js-LC589" class="blob-code blob-code-inner js-file-line">            <span class="pl-c">// &#52712;&#49548;/&#45803;&#44592; &#44048;&#51216;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L590" class="blob-num js-line-number js-blob-rnum" data-line-number="590"></td>
          <td id="file-ai-chat-history-delete-script-js-LC590" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#52712;</span><span class="pl-s">&#49548;</span><span class="pl-c1">|</span><span class="pl-s">C</span><span class="pl-s">a</span><span class="pl-s">n</span><span class="pl-s">c</span><span class="pl-s">e</span><span class="pl-s">l</span><span class="pl-c1">|</span><span class="pl-s">&#45803;</span><span class="pl-s">&#44592;</span><span class="pl-c1">|</span><span class="pl-s">C</span><span class="pl-s">l</span><span class="pl-s">o</span><span class="pl-s">s</span><span class="pl-s">e</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">text</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">-=</span> <span class="pl-c1">450</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L591" class="blob-num js-line-number js-blob-rnum" data-line-number="591"></td>
          <td id="file-ai-chat-history-delete-script-js-LC591" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#45803;</span><span class="pl-s">&#44592;</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">aria</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-s1">score</span> <span class="pl-c1">-=</span> <span class="pl-c1">450</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L592" class="blob-num js-line-number js-blob-rnum" data-line-number="592"></td>
          <td id="file-ai-chat-history-delete-script-js-LC592" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L593" class="blob-num js-line-number js-blob-rnum" data-line-number="593"></td>
          <td id="file-ai-chat-history-delete-script-js-LC593" class="blob-code blob-code-inner js-file-line">            <span class="pl-k">return</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L594" class="blob-num js-line-number js-blob-rnum" data-line-number="594"></td>
          <td id="file-ai-chat-history-delete-script-js-LC594" class="blob-code blob-code-inner js-file-line">              button<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L595" class="blob-num js-line-number js-blob-rnum" data-line-number="595"></td>
          <td id="file-ai-chat-history-delete-script-js-LC595" class="blob-code blob-code-inner js-file-line">              score<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L596" class="blob-num js-line-number js-blob-rnum" data-line-number="596"></td>
          <td id="file-ai-chat-history-delete-script-js-LC596" class="blob-code blob-code-inner js-file-line">              text<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L597" class="blob-num js-line-number js-blob-rnum" data-line-number="597"></td>
          <td id="file-ai-chat-history-delete-script-js-LC597" class="blob-code blob-code-inner js-file-line">              title<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L598" class="blob-num js-line-number js-blob-rnum" data-line-number="598"></td>
          <td id="file-ai-chat-history-delete-script-js-LC598" class="blob-code blob-code-inner js-file-line">              aria<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L599" class="blob-num js-line-number js-blob-rnum" data-line-number="599"></td>
          <td id="file-ai-chat-history-delete-script-js-LC599" class="blob-code blob-code-inner js-file-line">              combined<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L600" class="blob-num js-line-number js-blob-rnum" data-line-number="600"></td>
          <td id="file-ai-chat-history-delete-script-js-LC600" class="blob-code blob-code-inner js-file-line">            <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L601" class="blob-num js-line-number js-blob-rnum" data-line-number="601"></td>
          <td id="file-ai-chat-history-delete-script-js-LC601" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">}</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L602" class="blob-num js-line-number js-blob-rnum" data-line-number="602"></td>
          <td id="file-ai-chat-history-delete-script-js-LC602" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">score</span> <span class="pl-c1">&gt;=</span> <span class="pl-c1">120</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L603" class="blob-num js-line-number js-blob-rnum" data-line-number="603"></td>
          <td id="file-ai-chat-history-delete-script-js-LC603" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-c1">score</span> <span class="pl-c1">-</span> <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-c1">score</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L604" class="blob-num js-line-number js-blob-rnum" data-line-number="604"></td>
          <td id="file-ai-chat-history-delete-script-js-LC604" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L605" class="blob-num js-line-number js-blob-rnum" data-line-number="605"></td>
          <td id="file-ai-chat-history-delete-script-js-LC605" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">scored</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L606" class="blob-num js-line-number js-blob-rnum" data-line-number="606"></td>
          <td id="file-ai-chat-history-delete-script-js-LC606" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">const</span> <span class="pl-s1">picked</span> <span class="pl-c1">=</span> <span class="pl-s1">scored</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L607" class="blob-num js-line-number js-blob-rnum" data-line-number="607"></td>
          <td id="file-ai-chat-history-delete-script-js-LC607" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L608" class="blob-num js-line-number js-blob-rnum" data-line-number="608"></td>
          <td id="file-ai-chat-history-delete-script-js-LC608" class="blob-code blob-code-inner js-file-line">          <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#49325;&#51228; &#54869;&#51064; &#48260;&#53948; &#44048;&#51648;:"</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L609" class="blob-num js-line-number js-blob-rnum" data-line-number="609"></td>
          <td id="file-ai-chat-history-delete-script-js-LC609" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">service</span>: <span class="pl-s1">serviceName</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L610" class="blob-num js-line-number js-blob-rnum" data-line-number="610"></td>
          <td id="file-ai-chat-history-delete-script-js-LC610" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">text</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">text</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L611" class="blob-num js-line-number js-blob-rnum" data-line-number="611"></td>
          <td id="file-ai-chat-history-delete-script-js-LC611" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">title</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">title</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L612" class="blob-num js-line-number js-blob-rnum" data-line-number="612"></td>
          <td id="file-ai-chat-history-delete-script-js-LC612" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">aria</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">aria</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L613" class="blob-num js-line-number js-blob-rnum" data-line-number="613"></td>
          <td id="file-ai-chat-history-delete-script-js-LC613" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">score</span>: <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">score</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L614" class="blob-num js-line-number js-blob-rnum" data-line-number="614"></td>
          <td id="file-ai-chat-history-delete-script-js-LC614" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L615" class="blob-num js-line-number js-blob-rnum" data-line-number="615"></td>
          <td id="file-ai-chat-history-delete-script-js-LC615" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L616" class="blob-num js-line-number js-blob-rnum" data-line-number="616"></td>
          <td id="file-ai-chat-history-delete-script-js-LC616" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">return</span> <span class="pl-s1">picked</span><span class="pl-kos">.</span><span class="pl-c1">button</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L617" class="blob-num js-line-number js-blob-rnum" data-line-number="617"></td>
          <td id="file-ai-chat-history-delete-script-js-LC617" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L618" class="blob-num js-line-number js-blob-rnum" data-line-number="618"></td>
          <td id="file-ai-chat-history-delete-script-js-LC618" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L619" class="blob-num js-line-number js-blob-rnum" data-line-number="619"></td>
          <td id="file-ai-chat-history-delete-script-js-LC619" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L620" class="blob-num js-line-number js-blob-rnum" data-line-number="620"></td>
          <td id="file-ai-chat-history-delete-script-js-LC620" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">200</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L621" class="blob-num js-line-number js-blob-rnum" data-line-number="621"></td>
          <td id="file-ai-chat-history-delete-script-js-LC621" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L622" class="blob-num js-line-number js-blob-rnum" data-line-number="622"></td>
          <td id="file-ai-chat-history-delete-script-js-LC622" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L623" class="blob-num js-line-number js-blob-rnum" data-line-number="623"></td>
          <td id="file-ai-chat-history-delete-script-js-LC623" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-c1">null</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L624" class="blob-num js-line-number js-blob-rnum" data-line-number="624"></td>
          <td id="file-ai-chat-history-delete-script-js-LC624" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L625" class="blob-num js-line-number js-blob-rnum" data-line-number="625"></td>
          <td id="file-ai-chat-history-delete-script-js-LC625" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L626" class="blob-num js-line-number js-blob-rnum" data-line-number="626"></td>
          <td id="file-ai-chat-history-delete-script-js-LC626" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">waitForRowCountChange</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L627" class="blob-num js-line-number js-blob-rnum" data-line-number="627"></td>
          <td id="file-ai-chat-history-delete-script-js-LC627" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">cleaner</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L628" class="blob-num js-line-number js-blob-rnum" data-line-number="628"></td>
          <td id="file-ai-chat-history-delete-script-js-LC628" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">beforeCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L629" class="blob-num js-line-number js-blob-rnum" data-line-number="629"></td>
          <td id="file-ai-chat-history-delete-script-js-LC629" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">targetKey</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L630" class="blob-num js-line-number js-blob-rnum" data-line-number="630"></td>
          <td id="file-ai-chat-history-delete-script-js-LC630" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">timeoutMs</span> <span class="pl-c1">=</span> <span class="pl-c1">5000</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L631" class="blob-num js-line-number js-blob-rnum" data-line-number="631"></td>
          <td id="file-ai-chat-history-delete-script-js-LC631" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L632" class="blob-num js-line-number js-blob-rnum" data-line-number="632"></td>
          <td id="file-ai-chat-history-delete-script-js-LC632" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">start</span> <span class="pl-c1">=</span> <span class="pl-v">Date</span><span class="pl-kos">.</span><span class="pl-en">now</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L633" class="blob-num js-line-number js-blob-rnum" data-line-number="633"></td>
          <td id="file-ai-chat-history-delete-script-js-LC633" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L634" class="blob-num js-line-number js-blob-rnum" data-line-number="634"></td>
          <td id="file-ai-chat-history-delete-script-js-LC634" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">while</span> <span class="pl-kos">(</span><span class="pl-v">Date</span><span class="pl-kos">.</span><span class="pl-en">now</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">-</span> <span class="pl-s1">start</span> <span class="pl-c1">&lt;</span> <span class="pl-s1">timeoutMs</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L635" class="blob-num js-line-number js-blob-rnum" data-line-number="635"></td>
          <td id="file-ai-chat-history-delete-script-js-LC635" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">rows</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L636" class="blob-num js-line-number js-blob-rnum" data-line-number="636"></td>
          <td id="file-ai-chat-history-delete-script-js-LC636" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">currentCount</span> <span class="pl-c1">=</span> <span class="pl-s1">rows</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L637" class="blob-num js-line-number js-blob-rnum" data-line-number="637"></td>
          <td id="file-ai-chat-history-delete-script-js-LC637" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">stillExists</span> <span class="pl-c1">=</span> <span class="pl-s1">targetKey</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L638" class="blob-num js-line-number js-blob-rnum" data-line-number="638"></td>
          <td id="file-ai-chat-history-delete-script-js-LC638" class="blob-code blob-code-inner js-file-line">        ? <span class="pl-s1">rows</span><span class="pl-kos">.</span><span class="pl-en">some</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">===</span> <span class="pl-s1">targetKey</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L639" class="blob-num js-line-number js-blob-rnum" data-line-number="639"></td>
          <td id="file-ai-chat-history-delete-script-js-LC639" class="blob-code blob-code-inner js-file-line">        : <span class="pl-c1">false</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L640" class="blob-num js-line-number js-blob-rnum" data-line-number="640"></td>
          <td id="file-ai-chat-history-delete-script-js-LC640" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L641" class="blob-num js-line-number js-blob-rnum" data-line-number="641"></td>
          <td id="file-ai-chat-history-delete-script-js-LC641" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">currentCount</span> <span class="pl-c1">&lt;</span> <span class="pl-s1">beforeCount</span> <span class="pl-c1">||</span> <span class="pl-c1">!</span><span class="pl-s1">stillExists</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L642" class="blob-num js-line-number js-blob-rnum" data-line-number="642"></td>
          <td id="file-ai-chat-history-delete-script-js-LC642" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">return</span> <span class="pl-c1">true</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L643" class="blob-num js-line-number js-blob-rnum" data-line-number="643"></td>
          <td id="file-ai-chat-history-delete-script-js-LC643" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L644" class="blob-num js-line-number js-blob-rnum" data-line-number="644"></td>
          <td id="file-ai-chat-history-delete-script-js-LC644" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L645" class="blob-num js-line-number js-blob-rnum" data-line-number="645"></td>
          <td id="file-ai-chat-history-delete-script-js-LC645" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">250</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L646" class="blob-num js-line-number js-blob-rnum" data-line-number="646"></td>
          <td id="file-ai-chat-history-delete-script-js-LC646" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L647" class="blob-num js-line-number js-blob-rnum" data-line-number="647"></td>
          <td id="file-ai-chat-history-delete-script-js-LC647" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L648" class="blob-num js-line-number js-blob-rnum" data-line-number="648"></td>
          <td id="file-ai-chat-history-delete-script-js-LC648" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-c1">false</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L649" class="blob-num js-line-number js-blob-rnum" data-line-number="649"></td>
          <td id="file-ai-chat-history-delete-script-js-LC649" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L650" class="blob-num js-line-number js-blob-rnum" data-line-number="650"></td>
          <td id="file-ai-chat-history-delete-script-js-LC650" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L651" class="blob-num js-line-number js-blob-rnum" data-line-number="651"></td>
          <td id="file-ai-chat-history-delete-script-js-LC651" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">preloadRowsForCleaner</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">cleaner</span><span class="pl-kos">,</span> <span class="pl-s1">targetCount</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L652" class="blob-num js-line-number js-blob-rnum" data-line-number="652"></td>
          <td id="file-ai-chat-history-delete-script-js-LC652" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">enableLazyPreload</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L653" class="blob-num js-line-number js-blob-rnum" data-line-number="653"></td>
          <td id="file-ai-chat-history-delete-script-js-LC653" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">supportsLazyLoad</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L654" class="blob-num js-line-number js-blob-rnum" data-line-number="654"></td>
          <td id="file-ai-chat-history-delete-script-js-LC654" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L655" class="blob-num js-line-number js-blob-rnum" data-line-number="655"></td>
          <td id="file-ai-chat-history-delete-script-js-LC655" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">desiredCount</span> <span class="pl-c1">=</span> <span class="pl-v">Math</span><span class="pl-kos">.</span><span class="pl-en">min</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L656" class="blob-num js-line-number js-blob-rnum" data-line-number="656"></td>
          <td id="file-ai-chat-history-delete-script-js-LC656" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">targetCount</span> <span class="pl-c1">+</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">preloadExtraBuffer</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L657" class="blob-num js-line-number js-blob-rnum" data-line-number="657"></td>
          <td id="file-ai-chat-history-delete-script-js-LC657" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">maxLimit</span> <span class="pl-c1">+</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">preloadExtraBuffer</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L658" class="blob-num js-line-number js-blob-rnum" data-line-number="658"></td>
          <td id="file-ai-chat-history-delete-script-js-LC658" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L659" class="blob-num js-line-number js-blob-rnum" data-line-number="659"></td>
          <td id="file-ai-chat-history-delete-script-js-LC659" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L660" class="blob-num js-line-number js-blob-rnum" data-line-number="660"></td>
          <td id="file-ai-chat-history-delete-script-js-LC660" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">scroller</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getScrollContainer</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L661" class="blob-num js-line-number js-blob-rnum" data-line-number="661"></td>
          <td id="file-ai-chat-history-delete-script-js-LC661" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L662" class="blob-num js-line-number js-blob-rnum" data-line-number="662"></td>
          <td id="file-ai-chat-history-delete-script-js-LC662" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">scroller</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L663" class="blob-num js-line-number js-blob-rnum" data-line-number="663"></td>
          <td id="file-ai-chat-history-delete-script-js-LC663" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#49828;&#53356;&#47204; &#52968;&#53580;&#51060;&#45320;&#47484; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.`</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L664" class="blob-num js-line-number js-blob-rnum" data-line-number="664"></td>
          <td id="file-ai-chat-history-delete-script-js-LC664" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L665" class="blob-num js-line-number js-blob-rnum" data-line-number="665"></td>
          <td id="file-ai-chat-history-delete-script-js-LC665" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L666" class="blob-num js-line-number js-blob-rnum" data-line-number="666"></td>
          <td id="file-ai-chat-history-delete-script-js-LC666" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L667" class="blob-num js-line-number js-blob-rnum" data-line-number="667"></td>
          <td id="file-ai-chat-history-delete-script-js-LC667" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">let</span> <span class="pl-s1">previousCount</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L668" class="blob-num js-line-number js-blob-rnum" data-line-number="668"></td>
          <td id="file-ai-chat-history-delete-script-js-LC668" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">let</span> <span class="pl-s1">stableRounds</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L669" class="blob-num js-line-number js-blob-rnum" data-line-number="669"></td>
          <td id="file-ai-chat-history-delete-script-js-LC669" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L670" class="blob-num js-line-number js-blob-rnum" data-line-number="670"></td>
          <td id="file-ai-chat-history-delete-script-js-LC670" class="blob-code blob-code-inner js-file-line">    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#45824;&#54868; &#47785;&#47197; &#49324;&#51204; &#47196;&#46377; &#49884;&#51089;:`</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L671" class="blob-num js-line-number js-blob-rnum" data-line-number="671"></td>
          <td id="file-ai-chat-history-delete-script-js-LC671" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">previousCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L672" class="blob-num js-line-number js-blob-rnum" data-line-number="672"></td>
          <td id="file-ai-chat-history-delete-script-js-LC672" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">&#47785;&#54364;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">desiredCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L673" class="blob-num js-line-number js-blob-rnum" data-line-number="673"></td>
          <td id="file-ai-chat-history-delete-script-js-LC673" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">scrollHeight</span>: <span class="pl-s1">scroller</span><span class="pl-kos">.</span><span class="pl-c1">scrollHeight</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L674" class="blob-num js-line-number js-blob-rnum" data-line-number="674"></td>
          <td id="file-ai-chat-history-delete-script-js-LC674" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">clientHeight</span>: <span class="pl-s1">scroller</span><span class="pl-kos">.</span><span class="pl-c1">clientHeight</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L675" class="blob-num js-line-number js-blob-rnum" data-line-number="675"></td>
          <td id="file-ai-chat-history-delete-script-js-LC675" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L676" class="blob-num js-line-number js-blob-rnum" data-line-number="676"></td>
          <td id="file-ai-chat-history-delete-script-js-LC676" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L677" class="blob-num js-line-number js-blob-rnum" data-line-number="677"></td>
          <td id="file-ai-chat-history-delete-script-js-LC677" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">let</span> <span class="pl-s1">round</span> <span class="pl-c1">=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span> <span class="pl-s1">round</span> <span class="pl-c1">&lt;=</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">preloadMaxRounds</span><span class="pl-kos">;</span> <span class="pl-s1">round</span><span class="pl-c1">++</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L678" class="blob-num js-line-number js-blob-rnum" data-line-number="678"></td>
          <td id="file-ai-chat-history-delete-script-js-LC678" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">__aiChatHistoryCleanerStop</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L679" class="blob-num js-line-number js-blob-rnum" data-line-number="679"></td>
          <td id="file-ai-chat-history-delete-script-js-LC679" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#51473;&#51648; &#50836;&#52397;&#51004;&#47196; &#49324;&#51204; &#47196;&#46377;&#51012; &#47688;&#52676;&#49845;&#45768;&#45796;."</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L680" class="blob-num js-line-number js-blob-rnum" data-line-number="680"></td>
          <td id="file-ai-chat-history-delete-script-js-LC680" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L681" class="blob-num js-line-number js-blob-rnum" data-line-number="681"></td>
          <td id="file-ai-chat-history-delete-script-js-LC681" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L682" class="blob-num js-line-number js-blob-rnum" data-line-number="682"></td>
          <td id="file-ai-chat-history-delete-script-js-LC682" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L683" class="blob-num js-line-number js-blob-rnum" data-line-number="683"></td>
          <td id="file-ai-chat-history-delete-script-js-LC683" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">currentCount</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L684" class="blob-num js-line-number js-blob-rnum" data-line-number="684"></td>
          <td id="file-ai-chat-history-delete-script-js-LC684" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L685" class="blob-num js-line-number js-blob-rnum" data-line-number="685"></td>
          <td id="file-ai-chat-history-delete-script-js-LC685" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">currentCount</span> <span class="pl-c1">&gt;=</span> <span class="pl-s1">desiredCount</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L686" class="blob-num js-line-number js-blob-rnum" data-line-number="686"></td>
          <td id="file-ai-chat-history-delete-script-js-LC686" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#49324;&#51204; &#47196;&#46377; &#47785;&#54364; &#46020;&#45804;:`</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L687" class="blob-num js-line-number js-blob-rnum" data-line-number="687"></td>
          <td id="file-ai-chat-history-delete-script-js-LC687" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">&#47196;&#46300;&#49688;</span>: <span class="pl-s1">currentCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L688" class="blob-num js-line-number js-blob-rnum" data-line-number="688"></td>
          <td id="file-ai-chat-history-delete-script-js-LC688" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">&#47785;&#54364;</span>: <span class="pl-s1">desiredCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L689" class="blob-num js-line-number js-blob-rnum" data-line-number="689"></td>
          <td id="file-ai-chat-history-delete-script-js-LC689" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L690" class="blob-num js-line-number js-blob-rnum" data-line-number="690"></td>
          <td id="file-ai-chat-history-delete-script-js-LC690" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L691" class="blob-num js-line-number js-blob-rnum" data-line-number="691"></td>
          <td id="file-ai-chat-history-delete-script-js-LC691" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L692" class="blob-num js-line-number js-blob-rnum" data-line-number="692"></td>
          <td id="file-ai-chat-history-delete-script-js-LC692" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L693" class="blob-num js-line-number js-blob-rnum" data-line-number="693"></td>
          <td id="file-ai-chat-history-delete-script-js-LC693" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">forceScrollBottom</span><span class="pl-kos">(</span><span class="pl-s1">scroller</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L694" class="blob-num js-line-number js-blob-rnum" data-line-number="694"></td>
          <td id="file-ai-chat-history-delete-script-js-LC694" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">preloadScrollDelay</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L695" class="blob-num js-line-number js-blob-rnum" data-line-number="695"></td>
          <td id="file-ai-chat-history-delete-script-js-LC695" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L696" class="blob-num js-line-number js-blob-rnum" data-line-number="696"></td>
          <td id="file-ai-chat-history-delete-script-js-LC696" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">newCount</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L697" class="blob-num js-line-number js-blob-rnum" data-line-number="697"></td>
          <td id="file-ai-chat-history-delete-script-js-LC697" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L698" class="blob-num js-line-number js-blob-rnum" data-line-number="698"></td>
          <td id="file-ai-chat-history-delete-script-js-LC698" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#49324;&#51204; &#47196;&#46377; &#51652;&#54665;:`</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L699" class="blob-num js-line-number js-blob-rnum" data-line-number="699"></td>
          <td id="file-ai-chat-history-delete-script-js-LC699" class="blob-code blob-code-inner js-file-line">        round<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L700" class="blob-num js-line-number js-blob-rnum" data-line-number="700"></td>
          <td id="file-ai-chat-history-delete-script-js-LC700" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">&#51060;&#51204;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">currentCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L701" class="blob-num js-line-number js-blob-rnum" data-line-number="701"></td>
          <td id="file-ai-chat-history-delete-script-js-LC701" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">newCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L702" class="blob-num js-line-number js-blob-rnum" data-line-number="702"></td>
          <td id="file-ai-chat-history-delete-script-js-LC702" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">&#47785;&#54364;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">desiredCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L703" class="blob-num js-line-number js-blob-rnum" data-line-number="703"></td>
          <td id="file-ai-chat-history-delete-script-js-LC703" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L704" class="blob-num js-line-number js-blob-rnum" data-line-number="704"></td>
          <td id="file-ai-chat-history-delete-script-js-LC704" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L705" class="blob-num js-line-number js-blob-rnum" data-line-number="705"></td>
          <td id="file-ai-chat-history-delete-script-js-LC705" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">newCount</span> <span class="pl-c1">&lt;=</span> <span class="pl-s1">previousCount</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L706" class="blob-num js-line-number js-blob-rnum" data-line-number="706"></td>
          <td id="file-ai-chat-history-delete-script-js-LC706" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">stableRounds</span> <span class="pl-c1">+=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L707" class="blob-num js-line-number js-blob-rnum" data-line-number="707"></td>
          <td id="file-ai-chat-history-delete-script-js-LC707" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span> <span class="pl-k">else</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L708" class="blob-num js-line-number js-blob-rnum" data-line-number="708"></td>
          <td id="file-ai-chat-history-delete-script-js-LC708" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">stableRounds</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L709" class="blob-num js-line-number js-blob-rnum" data-line-number="709"></td>
          <td id="file-ai-chat-history-delete-script-js-LC709" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">previousCount</span> <span class="pl-c1">=</span> <span class="pl-s1">newCount</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L710" class="blob-num js-line-number js-blob-rnum" data-line-number="710"></td>
          <td id="file-ai-chat-history-delete-script-js-LC710" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L711" class="blob-num js-line-number js-blob-rnum" data-line-number="711"></td>
          <td id="file-ai-chat-history-delete-script-js-LC711" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L712" class="blob-num js-line-number js-blob-rnum" data-line-number="712"></td>
          <td id="file-ai-chat-history-delete-script-js-LC712" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">stableRounds</span> <span class="pl-c1">&gt;=</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">preloadStableLimit</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L713" class="blob-num js-line-number js-blob-rnum" data-line-number="713"></td>
          <td id="file-ai-chat-history-delete-script-js-LC713" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L714" class="blob-num js-line-number js-blob-rnum" data-line-number="714"></td>
          <td id="file-ai-chat-history-delete-script-js-LC714" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#52628;&#44032; &#47196;&#46300; &#51613;&#44032;&#44032; &#47688;&#52656; &#49324;&#51204; &#47196;&#46377;&#51012; &#51333;&#47308;&#54633;&#45768;&#45796;.`</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L715" class="blob-num js-line-number js-blob-rnum" data-line-number="715"></td>
          <td id="file-ai-chat-history-delete-script-js-LC715" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L716" class="blob-num js-line-number js-blob-rnum" data-line-number="716"></td>
          <td id="file-ai-chat-history-delete-script-js-LC716" class="blob-code blob-code-inner js-file-line">            <span class="pl-c1">&#47196;&#46300;&#49688;</span>: <span class="pl-s1">newCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L717" class="blob-num js-line-number js-blob-rnum" data-line-number="717"></td>
          <td id="file-ai-chat-history-delete-script-js-LC717" class="blob-code blob-code-inner js-file-line">            stableRounds<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L718" class="blob-num js-line-number js-blob-rnum" data-line-number="718"></td>
          <td id="file-ai-chat-history-delete-script-js-LC718" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L719" class="blob-num js-line-number js-blob-rnum" data-line-number="719"></td>
          <td id="file-ai-chat-history-delete-script-js-LC719" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L720" class="blob-num js-line-number js-blob-rnum" data-line-number="720"></td>
          <td id="file-ai-chat-history-delete-script-js-LC720" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L721" class="blob-num js-line-number js-blob-rnum" data-line-number="721"></td>
          <td id="file-ai-chat-history-delete-script-js-LC721" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L722" class="blob-num js-line-number js-blob-rnum" data-line-number="722"></td>
          <td id="file-ai-chat-history-delete-script-js-LC722" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L723" class="blob-num js-line-number js-blob-rnum" data-line-number="723"></td>
          <td id="file-ai-chat-history-delete-script-js-LC723" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L724" class="blob-num js-line-number js-blob-rnum" data-line-number="724"></td>
          <td id="file-ai-chat-history-delete-script-js-LC724" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">forceScrollTop</span><span class="pl-kos">(</span><span class="pl-s1">scroller</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L725" class="blob-num js-line-number js-blob-rnum" data-line-number="725"></td>
          <td id="file-ai-chat-history-delete-script-js-LC725" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">700</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L726" class="blob-num js-line-number js-blob-rnum" data-line-number="726"></td>
          <td id="file-ai-chat-history-delete-script-js-LC726" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L727" class="blob-num js-line-number js-blob-rnum" data-line-number="727"></td>
          <td id="file-ai-chat-history-delete-script-js-LC727" class="blob-code blob-code-inner js-file-line">    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#45824;&#54868; &#47785;&#47197; &#49324;&#51204; &#47196;&#46377; &#51333;&#47308;:`</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L728" class="blob-num js-line-number js-blob-rnum" data-line-number="728"></td>
          <td id="file-ai-chat-history-delete-script-js-LC728" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">&#52572;&#51333;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L729" class="blob-num js-line-number js-blob-rnum" data-line-number="729"></td>
          <td id="file-ai-chat-history-delete-script-js-LC729" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L730" class="blob-num js-line-number js-blob-rnum" data-line-number="730"></td>
          <td id="file-ai-chat-history-delete-script-js-LC730" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L731" class="blob-num js-line-number js-blob-rnum" data-line-number="731"></td>
          <td id="file-ai-chat-history-delete-script-js-LC731" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L732" class="blob-num js-line-number js-blob-rnum" data-line-number="732"></td>
          <td id="file-ai-chat-history-delete-script-js-LC732" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">loadMoreIfNeeded</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">cleaner</span><span class="pl-kos">,</span> <span class="pl-s1">remainingTarget</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L733" class="blob-num js-line-number js-blob-rnum" data-line-number="733"></td>
          <td id="file-ai-chat-history-delete-script-js-LC733" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">supportsLazyLoad</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L734" class="blob-num js-line-number js-blob-rnum" data-line-number="734"></td>
          <td id="file-ai-chat-history-delete-script-js-LC734" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L735" class="blob-num js-line-number js-blob-rnum" data-line-number="735"></td>
          <td id="file-ai-chat-history-delete-script-js-LC735" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">rows</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L736" class="blob-num js-line-number js-blob-rnum" data-line-number="736"></td>
          <td id="file-ai-chat-history-delete-script-js-LC736" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L737" class="blob-num js-line-number js-blob-rnum" data-line-number="737"></td>
          <td id="file-ai-chat-history-delete-script-js-LC737" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">rows</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">lowWatermarkRows</span><span class="pl-kos">)</span> <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L738" class="blob-num js-line-number js-blob-rnum" data-line-number="738"></td>
          <td id="file-ai-chat-history-delete-script-js-LC738" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L739" class="blob-num js-line-number js-blob-rnum" data-line-number="739"></td>
          <td id="file-ai-chat-history-delete-script-js-LC739" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">scroller</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getScrollContainer</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L740" class="blob-num js-line-number js-blob-rnum" data-line-number="740"></td>
          <td id="file-ai-chat-history-delete-script-js-LC740" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L741" class="blob-num js-line-number js-blob-rnum" data-line-number="741"></td>
          <td id="file-ai-chat-history-delete-script-js-LC741" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">scroller</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L742" class="blob-num js-line-number js-blob-rnum" data-line-number="742"></td>
          <td id="file-ai-chat-history-delete-script-js-LC742" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#49828;&#53356;&#47204; &#52968;&#53580;&#51060;&#45320;&#47484; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.`</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L743" class="blob-num js-line-number js-blob-rnum" data-line-number="743"></td>
          <td id="file-ai-chat-history-delete-script-js-LC743" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L744" class="blob-num js-line-number js-blob-rnum" data-line-number="744"></td>
          <td id="file-ai-chat-history-delete-script-js-LC744" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L745" class="blob-num js-line-number js-blob-rnum" data-line-number="745"></td>
          <td id="file-ai-chat-history-delete-script-js-LC745" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L746" class="blob-num js-line-number js-blob-rnum" data-line-number="746"></td>
          <td id="file-ai-chat-history-delete-script-js-LC746" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">let</span> <span class="pl-s1">previousCount</span> <span class="pl-c1">=</span> <span class="pl-s1">rows</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L747" class="blob-num js-line-number js-blob-rnum" data-line-number="747"></td>
          <td id="file-ai-chat-history-delete-script-js-LC747" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">let</span> <span class="pl-s1">stableRounds</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L748" class="blob-num js-line-number js-blob-rnum" data-line-number="748"></td>
          <td id="file-ai-chat-history-delete-script-js-LC748" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L749" class="blob-num js-line-number js-blob-rnum" data-line-number="749"></td>
          <td id="file-ai-chat-history-delete-script-js-LC749" class="blob-code blob-code-inner js-file-line">    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#47196;&#46300;&#46108; &#45824;&#54868;&#44032; &#48512;&#51313;&#54644; &#52628;&#44032; &#47196;&#46377;&#51012; &#49884;&#46020;&#54633;&#45768;&#45796;.`</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L750" class="blob-num js-line-number js-blob-rnum" data-line-number="750"></td>
          <td id="file-ai-chat-history-delete-script-js-LC750" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">previousCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L751" class="blob-num js-line-number js-blob-rnum" data-line-number="751"></td>
          <td id="file-ai-chat-history-delete-script-js-LC751" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">&#45224;&#51008;&#49325;&#51228;&#47785;&#54364;</span>: <span class="pl-s1">remainingTarget</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L752" class="blob-num js-line-number js-blob-rnum" data-line-number="752"></td>
          <td id="file-ai-chat-history-delete-script-js-LC752" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L753" class="blob-num js-line-number js-blob-rnum" data-line-number="753"></td>
          <td id="file-ai-chat-history-delete-script-js-LC753" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L754" class="blob-num js-line-number js-blob-rnum" data-line-number="754"></td>
          <td id="file-ai-chat-history-delete-script-js-LC754" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">let</span> <span class="pl-s1">round</span> <span class="pl-c1">=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span> <span class="pl-s1">round</span> <span class="pl-c1">&lt;=</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">retryLoadMoreRounds</span><span class="pl-kos">;</span> <span class="pl-s1">round</span><span class="pl-c1">++</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L755" class="blob-num js-line-number js-blob-rnum" data-line-number="755"></td>
          <td id="file-ai-chat-history-delete-script-js-LC755" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">__aiChatHistoryCleanerStop</span><span class="pl-kos">)</span> <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L756" class="blob-num js-line-number js-blob-rnum" data-line-number="756"></td>
          <td id="file-ai-chat-history-delete-script-js-LC756" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L757" class="blob-num js-line-number js-blob-rnum" data-line-number="757"></td>
          <td id="file-ai-chat-history-delete-script-js-LC757" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">forceScrollBottom</span><span class="pl-kos">(</span><span class="pl-s1">scroller</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L758" class="blob-num js-line-number js-blob-rnum" data-line-number="758"></td>
          <td id="file-ai-chat-history-delete-script-js-LC758" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">preloadScrollDelay</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L759" class="blob-num js-line-number js-blob-rnum" data-line-number="759"></td>
          <td id="file-ai-chat-history-delete-script-js-LC759" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L760" class="blob-num js-line-number js-blob-rnum" data-line-number="760"></td>
          <td id="file-ai-chat-history-delete-script-js-LC760" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">newCount</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L761" class="blob-num js-line-number js-blob-rnum" data-line-number="761"></td>
          <td id="file-ai-chat-history-delete-script-js-LC761" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L762" class="blob-num js-line-number js-blob-rnum" data-line-number="762"></td>
          <td id="file-ai-chat-history-delete-script-js-LC762" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#52628;&#44032; &#47196;&#46377; &#51652;&#54665;:`</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L763" class="blob-num js-line-number js-blob-rnum" data-line-number="763"></td>
          <td id="file-ai-chat-history-delete-script-js-LC763" class="blob-code blob-code-inner js-file-line">        round<span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L764" class="blob-num js-line-number js-blob-rnum" data-line-number="764"></td>
          <td id="file-ai-chat-history-delete-script-js-LC764" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">&#51060;&#51204;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">previousCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L765" class="blob-num js-line-number js-blob-rnum" data-line-number="765"></td>
          <td id="file-ai-chat-history-delete-script-js-LC765" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">&#54788;&#51116;&#47196;&#46300;&#49688;</span>: <span class="pl-s1">newCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L766" class="blob-num js-line-number js-blob-rnum" data-line-number="766"></td>
          <td id="file-ai-chat-history-delete-script-js-LC766" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L767" class="blob-num js-line-number js-blob-rnum" data-line-number="767"></td>
          <td id="file-ai-chat-history-delete-script-js-LC767" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L768" class="blob-num js-line-number js-blob-rnum" data-line-number="768"></td>
          <td id="file-ai-chat-history-delete-script-js-LC768" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">newCount</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">lowWatermarkRows</span><span class="pl-kos">)</span> <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L769" class="blob-num js-line-number js-blob-rnum" data-line-number="769"></td>
          <td id="file-ai-chat-history-delete-script-js-LC769" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L770" class="blob-num js-line-number js-blob-rnum" data-line-number="770"></td>
          <td id="file-ai-chat-history-delete-script-js-LC770" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">newCount</span> <span class="pl-c1">&lt;=</span> <span class="pl-s1">previousCount</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L771" class="blob-num js-line-number js-blob-rnum" data-line-number="771"></td>
          <td id="file-ai-chat-history-delete-script-js-LC771" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">stableRounds</span> <span class="pl-c1">+=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L772" class="blob-num js-line-number js-blob-rnum" data-line-number="772"></td>
          <td id="file-ai-chat-history-delete-script-js-LC772" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span> <span class="pl-k">else</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L773" class="blob-num js-line-number js-blob-rnum" data-line-number="773"></td>
          <td id="file-ai-chat-history-delete-script-js-LC773" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">stableRounds</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L774" class="blob-num js-line-number js-blob-rnum" data-line-number="774"></td>
          <td id="file-ai-chat-history-delete-script-js-LC774" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">previousCount</span> <span class="pl-c1">=</span> <span class="pl-s1">newCount</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L775" class="blob-num js-line-number js-blob-rnum" data-line-number="775"></td>
          <td id="file-ai-chat-history-delete-script-js-LC775" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L776" class="blob-num js-line-number js-blob-rnum" data-line-number="776"></td>
          <td id="file-ai-chat-history-delete-script-js-LC776" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L777" class="blob-num js-line-number js-blob-rnum" data-line-number="777"></td>
          <td id="file-ai-chat-history-delete-script-js-LC777" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">stableRounds</span> <span class="pl-c1">&gt;=</span> <span class="pl-c1">3</span><span class="pl-kos">)</span> <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L778" class="blob-num js-line-number js-blob-rnum" data-line-number="778"></td>
          <td id="file-ai-chat-history-delete-script-js-LC778" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L779" class="blob-num js-line-number js-blob-rnum" data-line-number="779"></td>
          <td id="file-ai-chat-history-delete-script-js-LC779" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L780" class="blob-num js-line-number js-blob-rnum" data-line-number="780"></td>
          <td id="file-ai-chat-history-delete-script-js-LC780" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">forceScrollTop</span><span class="pl-kos">(</span><span class="pl-s1">scroller</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L781" class="blob-num js-line-number js-blob-rnum" data-line-number="781"></td>
          <td id="file-ai-chat-history-delete-script-js-LC781" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">500</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L782" class="blob-num js-line-number js-blob-rnum" data-line-number="782"></td>
          <td id="file-ai-chat-history-delete-script-js-LC782" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L783" class="blob-num js-line-number js-blob-rnum" data-line-number="783"></td>
          <td id="file-ai-chat-history-delete-script-js-LC783" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L784" class="blob-num js-line-number js-blob-rnum" data-line-number="784"></td>
          <td id="file-ai-chat-history-delete-script-js-LC784" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-v">GeminiCleaner</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L785" class="blob-num js-line-number js-blob-rnum" data-line-number="785"></td>
          <td id="file-ai-chat-history-delete-script-js-LC785" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">name</span>: <span class="pl-s">"Google Gemini"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L786" class="blob-num js-line-number js-blob-rnum" data-line-number="786"></td>
          <td id="file-ai-chat-history-delete-script-js-LC786" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">supportsLazyLoad</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L787" class="blob-num js-line-number js-blob-rnum" data-line-number="787"></td>
          <td id="file-ai-chat-history-delete-script-js-LC787" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L788" class="blob-num js-line-number js-blob-rnum" data-line-number="788"></td>
          <td id="file-ai-chat-history-delete-script-js-LC788" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">detect</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L789" class="blob-num js-line-number js-blob-rnum" data-line-number="789"></td>
          <td id="file-ai-chat-history-delete-script-js-LC789" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L790" class="blob-num js-line-number js-blob-rnum" data-line-number="790"></td>
          <td id="file-ai-chat-history-delete-script-js-LC790" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">location</span><span class="pl-kos">.</span><span class="pl-c1">hostname</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">"gemini.google.com"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L791" class="blob-num js-line-number js-blob-rnum" data-line-number="791"></td>
          <td id="file-ai-chat-history-delete-script-js-LC791" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-test-id="all-conversations"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L792" class="blob-num js-line-number js-blob-rnum" data-line-number="792"></td>
          <td id="file-ai-chat-history-delete-script-js-LC792" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L793" class="blob-num js-line-number js-blob-rnum" data-line-number="793"></td>
          <td id="file-ai-chat-history-delete-script-js-LC793" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'[data-test-id="conversation"] [data-test-id="actions-menu-button"]'</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L794" class="blob-num js-line-number js-blob-rnum" data-line-number="794"></td>
          <td id="file-ai-chat-history-delete-script-js-LC794" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L795" class="blob-num js-line-number js-blob-rnum" data-line-number="795"></td>
          <td id="file-ai-chat-history-delete-script-js-LC795" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L796" class="blob-num js-line-number js-blob-rnum" data-line-number="796"></td>
          <td id="file-ai-chat-history-delete-script-js-LC796" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L797" class="blob-num js-line-number js-blob-rnum" data-line-number="797"></td>
          <td id="file-ai-chat-history-delete-script-js-LC797" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L798" class="blob-num js-line-number js-blob-rnum" data-line-number="798"></td>
          <td id="file-ai-chat-history-delete-script-js-LC798" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L799" class="blob-num js-line-number js-blob-rnum" data-line-number="799"></td>
          <td id="file-ai-chat-history-delete-script-js-LC799" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L800" class="blob-num js-line-number js-blob-rnum" data-line-number="800"></td>
          <td id="file-ai-chat-history-delete-script-js-LC800" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-test-id="all-conversations"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L801" class="blob-num js-line-number js-blob-rnum" data-line-number="801"></td>
          <td id="file-ai-chat-history-delete-script-js-LC801" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"#sidenav-section-content-chats"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L802" class="blob-num js-line-number js-blob-rnum" data-line-number="802"></td>
          <td id="file-ai-chat-history-delete-script-js-LC802" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">".chat-history-list"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L803" class="blob-num js-line-number js-blob-rnum" data-line-number="803"></td>
          <td id="file-ai-chat-history-delete-script-js-LC803" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">".chat-history"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L804" class="blob-num js-line-number js-blob-rnum" data-line-number="804"></td>
          <td id="file-ai-chat-history-delete-script-js-LC804" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L805" class="blob-num js-line-number js-blob-rnum" data-line-number="805"></td>
          <td id="file-ai-chat-history-delete-script-js-LC805" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L806" class="blob-num js-line-number js-blob-rnum" data-line-number="806"></td>
          <td id="file-ai-chat-history-delete-script-js-LC806" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L807" class="blob-num js-line-number js-blob-rnum" data-line-number="807"></td>
          <td id="file-ai-chat-history-delete-script-js-LC807" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L808" class="blob-num js-line-number js-blob-rnum" data-line-number="808"></td>
          <td id="file-ai-chat-history-delete-script-js-LC808" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getScrollContainer</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L809" class="blob-num js-line-number js-blob-rnum" data-line-number="809"></td>
          <td id="file-ai-chat-history-delete-script-js-LC809" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-en">findBestScrollContainer</span><span class="pl-kos">(</span><span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L810" class="blob-num js-line-number js-blob-rnum" data-line-number="810"></td>
          <td id="file-ai-chat-history-delete-script-js-LC810" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L811" class="blob-num js-line-number js-blob-rnum" data-line-number="811"></td>
          <td id="file-ai-chat-history-delete-script-js-LC811" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L812" class="blob-num js-line-number js-blob-rnum" data-line-number="812"></td>
          <td id="file-ai-chat-history-delete-script-js-LC812" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L813" class="blob-num js-line-number js-blob-rnum" data-line-number="813"></td>
          <td id="file-ai-chat-history-delete-script-js-LC813" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">getElementById</span><span class="pl-kos">(</span><span class="pl-s">"__ai_cleaner_gemini_css"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L814" class="blob-num js-line-number js-blob-rnum" data-line-number="814"></td>
          <td id="file-ai-chat-history-delete-script-js-LC814" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">createElement</span><span class="pl-kos">(</span><span class="pl-s">"style"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L815" class="blob-num js-line-number js-blob-rnum" data-line-number="815"></td>
          <td id="file-ai-chat-history-delete-script-js-LC815" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-c1">=</span> <span class="pl-s">"__ai_cleaner_gemini_css"</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L816" class="blob-num js-line-number js-blob-rnum" data-line-number="816"></td>
          <td id="file-ai-chat-history-delete-script-js-LC816" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span> <span class="pl-c1">=</span> <span class="pl-s">`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L817" class="blob-num js-line-number js-blob-rnum" data-line-number="817"></td>
          <td id="file-ai-chat-history-delete-script-js-LC817" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-test-id="conversation"] .hovered-trailing-content,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L818" class="blob-num js-line-number js-blob-rnum" data-line-number="818"></td>
          <td id="file-ai-chat-history-delete-script-js-LC818" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-test-id="conversation"] [data-test-id="actions-menu-button"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L819" class="blob-num js-line-number js-blob-rnum" data-line-number="819"></td>
          <td id="file-ai-chat-history-delete-script-js-LC819" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-test-id="conversation"] [data-test-id="actions-menu-button"] button {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L820" class="blob-num js-line-number js-blob-rnum" data-line-number="820"></td>
          <td id="file-ai-chat-history-delete-script-js-LC820" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: flex !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L821" class="blob-num js-line-number js-blob-rnum" data-line-number="821"></td>
          <td id="file-ai-chat-history-delete-script-js-LC821" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L822" class="blob-num js-line-number js-blob-rnum" data-line-number="822"></td>
          <td id="file-ai-chat-history-delete-script-js-LC822" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L823" class="blob-num js-line-number js-blob-rnum" data-line-number="823"></td>
          <td id="file-ai-chat-history-delete-script-js-LC823" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L824" class="blob-num js-line-number js-blob-rnum" data-line-number="824"></td>
          <td id="file-ai-chat-history-delete-script-js-LC824" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L825" class="blob-num js-line-number js-blob-rnum" data-line-number="825"></td>
          <td id="file-ai-chat-history-delete-script-js-LC825" class="blob-code blob-code-inner js-file-line"><span class="pl-s"></span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L826" class="blob-num js-line-number js-blob-rnum" data-line-number="826"></td>
          <td id="file-ai-chat-history-delete-script-js-LC826" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-test-id="conversation"] .trailing-content {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L827" class="blob-num js-line-number js-blob-rnum" data-line-number="827"></td>
          <td id="file-ai-chat-history-delete-script-js-LC827" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 0 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L828" class="blob-num js-line-number js-blob-rnum" data-line-number="828"></td>
          <td id="file-ai-chat-history-delete-script-js-LC828" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: none !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L829" class="blob-num js-line-number js-blob-rnum" data-line-number="829"></td>
          <td id="file-ai-chat-history-delete-script-js-LC829" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L830" class="blob-num js-line-number js-blob-rnum" data-line-number="830"></td>
          <td id="file-ai-chat-history-delete-script-js-LC830" class="blob-code blob-code-inner js-file-line"><span class="pl-s">        `</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L831" class="blob-num js-line-number js-blob-rnum" data-line-number="831"></td>
          <td id="file-ai-chat-history-delete-script-js-LC831" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">head</span><span class="pl-kos">.</span><span class="pl-en">appendChild</span><span class="pl-kos">(</span><span class="pl-s1">style</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L832" class="blob-num js-line-number js-blob-rnum" data-line-number="832"></td>
          <td id="file-ai-chat-history-delete-script-js-LC832" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L833" class="blob-num js-line-number js-blob-rnum" data-line-number="833"></td>
          <td id="file-ai-chat-history-delete-script-js-LC833" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L834" class="blob-num js-line-number js-blob-rnum" data-line-number="834"></td>
          <td id="file-ai-chat-history-delete-script-js-LC834" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L835" class="blob-num js-line-number js-blob-rnum" data-line-number="835"></td>
          <td id="file-ai-chat-history-delete-script-js-LC835" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L836" class="blob-num js-line-number js-blob-rnum" data-line-number="836"></td>
          <td id="file-ai-chat-history-delete-script-js-LC836" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">root</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L837" class="blob-num js-line-number js-blob-rnum" data-line-number="837"></td>
          <td id="file-ai-chat-history-delete-script-js-LC837" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L838" class="blob-num js-line-number js-blob-rnum" data-line-number="838"></td>
          <td id="file-ai-chat-history-delete-script-js-LC838" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">[</span>...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-test-id="conversation"]'</span><span class="pl-kos">)</span><span class="pl-kos">]</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L839" class="blob-num js-line-number js-blob-rnum" data-line-number="839"></td>
          <td id="file-ai-chat-history-delete-script-js-LC839" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isUsableElement</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L840" class="blob-num js-line-number js-blob-rnum" data-line-number="840"></td>
          <td id="file-ai-chat-history-delete-script-js-LC840" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[href^="/app/"]'</span><span class="pl-kos">)</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L841" class="blob-num js-line-number js-blob-rnum" data-line-number="841"></td>
          <td id="file-ai-chat-history-delete-script-js-LC841" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L842" class="blob-num js-line-number js-blob-rnum" data-line-number="842"></td>
          <td id="file-ai-chat-history-delete-script-js-LC842" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L843" class="blob-num js-line-number js-blob-rnum" data-line-number="843"></td>
          <td id="file-ai-chat-history-delete-script-js-LC843" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">-</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L844" class="blob-num js-line-number js-blob-rnum" data-line-number="844"></td>
          <td id="file-ai-chat-history-delete-script-js-LC844" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L845" class="blob-num js-line-number js-blob-rnum" data-line-number="845"></td>
          <td id="file-ai-chat-history-delete-script-js-LC845" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L846" class="blob-num js-line-number js-blob-rnum" data-line-number="846"></td>
          <td id="file-ai-chat-history-delete-script-js-LC846" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L847" class="blob-num js-line-number js-blob-rnum" data-line-number="847"></td>
          <td id="file-ai-chat-history-delete-script-js-LC847" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L848" class="blob-num js-line-number js-blob-rnum" data-line-number="848"></td>
          <td id="file-ai-chat-history-delete-script-js-LC848" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">titleElement</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">".title-text"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L849" class="blob-num js-line-number js-blob-rnum" data-line-number="849"></td>
          <td id="file-ai-chat-history-delete-script-js-LC849" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">linkElement</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"a[aria-label]"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L850" class="blob-num js-line-number js-blob-rnum" data-line-number="850"></td>
          <td id="file-ai-chat-history-delete-script-js-LC850" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L851" class="blob-num js-line-number js-blob-rnum" data-line-number="851"></td>
          <td id="file-ai-chat-history-delete-script-js-LC851" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L852" class="blob-num js-line-number js-blob-rnum" data-line-number="852"></td>
          <td id="file-ai-chat-history-delete-script-js-LC852" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">titleElement</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L853" class="blob-num js-line-number js-blob-rnum" data-line-number="853"></td>
          <td id="file-ai-chat-history-delete-script-js-LC853" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">linkElement</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L854" class="blob-num js-line-number js-blob-rnum" data-line-number="854"></td>
          <td id="file-ai-chat-history-delete-script-js-LC854" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L855" class="blob-num js-line-number js-blob-rnum" data-line-number="855"></td>
          <td id="file-ai-chat-history-delete-script-js-LC855" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"(&#51228;&#47785; &#50630;&#51020;)"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L856" class="blob-num js-line-number js-blob-rnum" data-line-number="856"></td>
          <td id="file-ai-chat-history-delete-script-js-LC856" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L857" class="blob-num js-line-number js-blob-rnum" data-line-number="857"></td>
          <td id="file-ai-chat-history-delete-script-js-LC857" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L858" class="blob-num js-line-number js-blob-rnum" data-line-number="858"></td>
          <td id="file-ai-chat-history-delete-script-js-LC858" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L859" class="blob-num js-line-number js-blob-rnum" data-line-number="859"></td>
          <td id="file-ai-chat-history-delete-script-js-LC859" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L860" class="blob-num js-line-number js-blob-rnum" data-line-number="860"></td>
          <td id="file-ai-chat-history-delete-script-js-LC860" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">linkElement</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[href^="/app/"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L861" class="blob-num js-line-number js-blob-rnum" data-line-number="861"></td>
          <td id="file-ai-chat-history-delete-script-js-LC861" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-s1">linkElement</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"href"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L862" class="blob-num js-line-number js-blob-rnum" data-line-number="862"></td>
          <td id="file-ai-chat-history-delete-script-js-LC862" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L863" class="blob-num js-line-number js-blob-rnum" data-line-number="863"></td>
          <td id="file-ai-chat-history-delete-script-js-LC863" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L864" class="blob-num js-line-number js-blob-rnum" data-line-number="864"></td>
          <td id="file-ai-chat-history-delete-script-js-LC864" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">async</span> <span class="pl-en">getMoreButton</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L865" class="blob-num js-line-number js-blob-rnum" data-line-number="865"></td>
          <td id="file-ai-chat-history-delete-script-js-LC865" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L866" class="blob-num js-line-number js-blob-rnum" data-line-number="866"></td>
          <td id="file-ai-chat-history-delete-script-js-LC866" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L867" class="blob-num js-line-number js-blob-rnum" data-line-number="867"></td>
          <td id="file-ai-chat-history-delete-script-js-LC867" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">scrollIntoView</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">block</span>: <span class="pl-s">"center"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L868" class="blob-num js-line-number js-blob-rnum" data-line-number="868"></td>
          <td id="file-ai-chat-history-delete-script-js-LC868" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchHover</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L869" class="blob-num js-line-number js-blob-rnum" data-line-number="869"></td>
          <td id="file-ai-chat-history-delete-script-js-LC869" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L870" class="blob-num js-line-number js-blob-rnum" data-line-number="870"></td>
          <td id="file-ai-chat-history-delete-script-js-LC870" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">300</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L871" class="blob-num js-line-number js-blob-rnum" data-line-number="871"></td>
          <td id="file-ai-chat-history-delete-script-js-LC871" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L872" class="blob-num js-line-number js-blob-rnum" data-line-number="872"></td>
          <td id="file-ai-chat-history-delete-script-js-LC872" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L873" class="blob-num js-line-number js-blob-rnum" data-line-number="873"></td>
          <td id="file-ai-chat-history-delete-script-js-LC873" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-test-id="actions-menu-button"] button'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L874" class="blob-num js-line-number js-blob-rnum" data-line-number="874"></td>
          <td id="file-ai-chat-history-delete-script-js-LC874" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-test-id="actions-menu-button"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L875" class="blob-num js-line-number js-blob-rnum" data-line-number="875"></td>
          <td id="file-ai-chat-history-delete-script-js-LC875" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="&#45908;&#48372;&#44592;"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L876" class="blob-num js-line-number js-blob-rnum" data-line-number="876"></td>
          <td id="file-ai-chat-history-delete-script-js-LC876" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="&#50741;&#49496;"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L877" class="blob-num js-line-number js-blob-rnum" data-line-number="877"></td>
          <td id="file-ai-chat-history-delete-script-js-LC877" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'mat-icon[fonticon="more_vert"]'</span><span class="pl-kos">)</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"button"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L878" class="blob-num js-line-number js-blob-rnum" data-line-number="878"></td>
          <td id="file-ai-chat-history-delete-script-js-LC878" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">null</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L879" class="blob-num js-line-number js-blob-rnum" data-line-number="879"></td>
          <td id="file-ai-chat-history-delete-script-js-LC879" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L880" class="blob-num js-line-number js-blob-rnum" data-line-number="880"></td>
          <td id="file-ai-chat-history-delete-script-js-LC880" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L881" class="blob-num js-line-number js-blob-rnum" data-line-number="881"></td>
          <td id="file-ai-chat-history-delete-script-js-LC881" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L882" class="blob-num js-line-number js-blob-rnum" data-line-number="882"></td>
          <td id="file-ai-chat-history-delete-script-js-LC882" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L883" class="blob-num js-line-number js-blob-rnum" data-line-number="883"></td>
          <td id="file-ai-chat-history-delete-script-js-LC883" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-v">CopilotCleaner</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L884" class="blob-num js-line-number js-blob-rnum" data-line-number="884"></td>
          <td id="file-ai-chat-history-delete-script-js-LC884" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">name</span>: <span class="pl-s">"Microsoft Copilot"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L885" class="blob-num js-line-number js-blob-rnum" data-line-number="885"></td>
          <td id="file-ai-chat-history-delete-script-js-LC885" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">supportsLazyLoad</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L886" class="blob-num js-line-number js-blob-rnum" data-line-number="886"></td>
          <td id="file-ai-chat-history-delete-script-js-LC886" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L887" class="blob-num js-line-number js-blob-rnum" data-line-number="887"></td>
          <td id="file-ai-chat-history-delete-script-js-LC887" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">detect</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L888" class="blob-num js-line-number js-blob-rnum" data-line-number="888"></td>
          <td id="file-ai-chat-history-delete-script-js-LC888" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L889" class="blob-num js-line-number js-blob-rnum" data-line-number="889"></td>
          <td id="file-ai-chat-history-delete-script-js-LC889" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">location</span><span class="pl-kos">.</span><span class="pl-c1">hostname</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">"copilot.microsoft.com"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L890" class="blob-num js-line-number js-blob-rnum" data-line-number="890"></td>
          <td id="file-ai-chat-history-delete-script-js-LC890" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-testid="sidebar-expanded-content"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L891" class="blob-num js-line-number js-blob-rnum" data-line-number="891"></td>
          <td id="file-ai-chat-history-delete-script-js-LC891" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[id^="conversation-options-"]'</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L892" class="blob-num js-line-number js-blob-rnum" data-line-number="892"></td>
          <td id="file-ai-chat-history-delete-script-js-LC892" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L893" class="blob-num js-line-number js-blob-rnum" data-line-number="893"></td>
          <td id="file-ai-chat-history-delete-script-js-LC893" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L894" class="blob-num js-line-number js-blob-rnum" data-line-number="894"></td>
          <td id="file-ai-chat-history-delete-script-js-LC894" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L895" class="blob-num js-line-number js-blob-rnum" data-line-number="895"></td>
          <td id="file-ai-chat-history-delete-script-js-LC895" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L896" class="blob-num js-line-number js-blob-rnum" data-line-number="896"></td>
          <td id="file-ai-chat-history-delete-script-js-LC896" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L897" class="blob-num js-line-number js-blob-rnum" data-line-number="897"></td>
          <td id="file-ai-chat-history-delete-script-js-LC897" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-testid="sidebar-expanded-content"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L898" class="blob-num js-line-number js-blob-rnum" data-line-number="898"></td>
          <td id="file-ai-chat-history-delete-script-js-LC898" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[role="list"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L899" class="blob-num js-line-number js-blob-rnum" data-line-number="899"></td>
          <td id="file-ai-chat-history-delete-script-js-LC899" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L900" class="blob-num js-line-number js-blob-rnum" data-line-number="900"></td>
          <td id="file-ai-chat-history-delete-script-js-LC900" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L901" class="blob-num js-line-number js-blob-rnum" data-line-number="901"></td>
          <td id="file-ai-chat-history-delete-script-js-LC901" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L902" class="blob-num js-line-number js-blob-rnum" data-line-number="902"></td>
          <td id="file-ai-chat-history-delete-script-js-LC902" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L903" class="blob-num js-line-number js-blob-rnum" data-line-number="903"></td>
          <td id="file-ai-chat-history-delete-script-js-LC903" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getScrollContainer</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L904" class="blob-num js-line-number js-blob-rnum" data-line-number="904"></td>
          <td id="file-ai-chat-history-delete-script-js-LC904" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-en">findBestScrollContainer</span><span class="pl-kos">(</span><span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L905" class="blob-num js-line-number js-blob-rnum" data-line-number="905"></td>
          <td id="file-ai-chat-history-delete-script-js-LC905" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L906" class="blob-num js-line-number js-blob-rnum" data-line-number="906"></td>
          <td id="file-ai-chat-history-delete-script-js-LC906" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L907" class="blob-num js-line-number js-blob-rnum" data-line-number="907"></td>
          <td id="file-ai-chat-history-delete-script-js-LC907" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L908" class="blob-num js-line-number js-blob-rnum" data-line-number="908"></td>
          <td id="file-ai-chat-history-delete-script-js-LC908" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">getElementById</span><span class="pl-kos">(</span><span class="pl-s">"__ai_cleaner_copilot_css"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L909" class="blob-num js-line-number js-blob-rnum" data-line-number="909"></td>
          <td id="file-ai-chat-history-delete-script-js-LC909" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">createElement</span><span class="pl-kos">(</span><span class="pl-s">"style"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L910" class="blob-num js-line-number js-blob-rnum" data-line-number="910"></td>
          <td id="file-ai-chat-history-delete-script-js-LC910" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-c1">=</span> <span class="pl-s">"__ai_cleaner_copilot_css"</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L911" class="blob-num js-line-number js-blob-rnum" data-line-number="911"></td>
          <td id="file-ai-chat-history-delete-script-js-LC911" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span> <span class="pl-c1">=</span> <span class="pl-s">`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L912" class="blob-num js-line-number js-blob-rnum" data-line-number="912"></td>
          <td id="file-ai-chat-history-delete-script-js-LC912" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          button[id^="conversation-options-"] {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L913" class="blob-num js-line-number js-blob-rnum" data-line-number="913"></td>
          <td id="file-ai-chat-history-delete-script-js-LC913" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: flex !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L914" class="blob-num js-line-number js-blob-rnum" data-line-number="914"></td>
          <td id="file-ai-chat-history-delete-script-js-LC914" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L915" class="blob-num js-line-number js-blob-rnum" data-line-number="915"></td>
          <td id="file-ai-chat-history-delete-script-js-LC915" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L916" class="blob-num js-line-number js-blob-rnum" data-line-number="916"></td>
          <td id="file-ai-chat-history-delete-script-js-LC916" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L917" class="blob-num js-line-number js-blob-rnum" data-line-number="917"></td>
          <td id="file-ai-chat-history-delete-script-js-LC917" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            position: static !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L918" class="blob-num js-line-number js-blob-rnum" data-line-number="918"></td>
          <td id="file-ai-chat-history-delete-script-js-LC918" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            width: 24px !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L919" class="blob-num js-line-number js-blob-rnum" data-line-number="919"></td>
          <td id="file-ai-chat-history-delete-script-js-LC919" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            height: 24px !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L920" class="blob-num js-line-number js-blob-rnum" data-line-number="920"></td>
          <td id="file-ai-chat-history-delete-script-js-LC920" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            min-width: 24px !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L921" class="blob-num js-line-number js-blob-rnum" data-line-number="921"></td>
          <td id="file-ai-chat-history-delete-script-js-LC921" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            min-height: 24px !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L922" class="blob-num js-line-number js-blob-rnum" data-line-number="922"></td>
          <td id="file-ai-chat-history-delete-script-js-LC922" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            clip: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L923" class="blob-num js-line-number js-blob-rnum" data-line-number="923"></td>
          <td id="file-ai-chat-history-delete-script-js-LC923" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            clip-path: none !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L924" class="blob-num js-line-number js-blob-rnum" data-line-number="924"></td>
          <td id="file-ai-chat-history-delete-script-js-LC924" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            overflow: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L925" class="blob-num js-line-number js-blob-rnum" data-line-number="925"></td>
          <td id="file-ai-chat-history-delete-script-js-LC925" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            transform: none !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L926" class="blob-num js-line-number js-blob-rnum" data-line-number="926"></td>
          <td id="file-ai-chat-history-delete-script-js-LC926" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L927" class="blob-num js-line-number js-blob-rnum" data-line-number="927"></td>
          <td id="file-ai-chat-history-delete-script-js-LC927" class="blob-code blob-code-inner js-file-line"><span class="pl-s"></span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L928" class="blob-num js-line-number js-blob-rnum" data-line-number="928"></td>
          <td id="file-ai-chat-history-delete-script-js-LC928" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          span:has(&gt; button[id^="conversation-options-"]) {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L929" class="blob-num js-line-number js-blob-rnum" data-line-number="929"></td>
          <td id="file-ai-chat-history-delete-script-js-LC929" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: inline-flex !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L930" class="blob-num js-line-number js-blob-rnum" data-line-number="930"></td>
          <td id="file-ai-chat-history-delete-script-js-LC930" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L931" class="blob-num js-line-number js-blob-rnum" data-line-number="931"></td>
          <td id="file-ai-chat-history-delete-script-js-LC931" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L932" class="blob-num js-line-number js-blob-rnum" data-line-number="932"></td>
          <td id="file-ai-chat-history-delete-script-js-LC932" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L933" class="blob-num js-line-number js-blob-rnum" data-line-number="933"></td>
          <td id="file-ai-chat-history-delete-script-js-LC933" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            position: static !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L934" class="blob-num js-line-number js-blob-rnum" data-line-number="934"></td>
          <td id="file-ai-chat-history-delete-script-js-LC934" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            width: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L935" class="blob-num js-line-number js-blob-rnum" data-line-number="935"></td>
          <td id="file-ai-chat-history-delete-script-js-LC935" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            height: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L936" class="blob-num js-line-number js-blob-rnum" data-line-number="936"></td>
          <td id="file-ai-chat-history-delete-script-js-LC936" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            clip: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L937" class="blob-num js-line-number js-blob-rnum" data-line-number="937"></td>
          <td id="file-ai-chat-history-delete-script-js-LC937" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            clip-path: none !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L938" class="blob-num js-line-number js-blob-rnum" data-line-number="938"></td>
          <td id="file-ai-chat-history-delete-script-js-LC938" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            overflow: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L939" class="blob-num js-line-number js-blob-rnum" data-line-number="939"></td>
          <td id="file-ai-chat-history-delete-script-js-LC939" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L940" class="blob-num js-line-number js-blob-rnum" data-line-number="940"></td>
          <td id="file-ai-chat-history-delete-script-js-LC940" class="blob-code blob-code-inner js-file-line"><span class="pl-s">        `</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L941" class="blob-num js-line-number js-blob-rnum" data-line-number="941"></td>
          <td id="file-ai-chat-history-delete-script-js-LC941" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">head</span><span class="pl-kos">.</span><span class="pl-en">appendChild</span><span class="pl-kos">(</span><span class="pl-s1">style</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L942" class="blob-num js-line-number js-blob-rnum" data-line-number="942"></td>
          <td id="file-ai-chat-history-delete-script-js-LC942" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L943" class="blob-num js-line-number js-blob-rnum" data-line-number="943"></td>
          <td id="file-ai-chat-history-delete-script-js-LC943" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L944" class="blob-num js-line-number js-blob-rnum" data-line-number="944"></td>
          <td id="file-ai-chat-history-delete-script-js-LC944" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'button[id^="conversation-options-"]'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">forEach</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">button</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L945" class="blob-num js-line-number js-blob-rnum" data-line-number="945"></td>
          <td id="file-ai-chat-history-delete-script-js-LC945" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">parent</span> <span class="pl-c1">=</span> <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">parentElement</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L946" class="blob-num js-line-number js-blob-rnum" data-line-number="946"></td>
          <td id="file-ai-chat-history-delete-script-js-LC946" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L947" class="blob-num js-line-number js-blob-rnum" data-line-number="947"></td>
          <td id="file-ai-chat-history-delete-script-js-LC947" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"display"</span><span class="pl-kos">,</span> <span class="pl-s">"flex"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L948" class="blob-num js-line-number js-blob-rnum" data-line-number="948"></td>
          <td id="file-ai-chat-history-delete-script-js-LC948" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"visibility"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L949" class="blob-num js-line-number js-blob-rnum" data-line-number="949"></td>
          <td id="file-ai-chat-history-delete-script-js-LC949" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"opacity"</span><span class="pl-kos">,</span> <span class="pl-s">"1"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L950" class="blob-num js-line-number js-blob-rnum" data-line-number="950"></td>
          <td id="file-ai-chat-history-delete-script-js-LC950" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"pointer-events"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L951" class="blob-num js-line-number js-blob-rnum" data-line-number="951"></td>
          <td id="file-ai-chat-history-delete-script-js-LC951" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"position"</span><span class="pl-kos">,</span> <span class="pl-s">"static"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L952" class="blob-num js-line-number js-blob-rnum" data-line-number="952"></td>
          <td id="file-ai-chat-history-delete-script-js-LC952" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"width"</span><span class="pl-kos">,</span> <span class="pl-s">"24px"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L953" class="blob-num js-line-number js-blob-rnum" data-line-number="953"></td>
          <td id="file-ai-chat-history-delete-script-js-LC953" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"height"</span><span class="pl-kos">,</span> <span class="pl-s">"24px"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L954" class="blob-num js-line-number js-blob-rnum" data-line-number="954"></td>
          <td id="file-ai-chat-history-delete-script-js-LC954" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"clip"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L955" class="blob-num js-line-number js-blob-rnum" data-line-number="955"></td>
          <td id="file-ai-chat-history-delete-script-js-LC955" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"clip-path"</span><span class="pl-kos">,</span> <span class="pl-s">"none"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L956" class="blob-num js-line-number js-blob-rnum" data-line-number="956"></td>
          <td id="file-ai-chat-history-delete-script-js-LC956" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"overflow"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L957" class="blob-num js-line-number js-blob-rnum" data-line-number="957"></td>
          <td id="file-ai-chat-history-delete-script-js-LC957" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L958" class="blob-num js-line-number js-blob-rnum" data-line-number="958"></td>
          <td id="file-ai-chat-history-delete-script-js-LC958" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">parent</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L959" class="blob-num js-line-number js-blob-rnum" data-line-number="959"></td>
          <td id="file-ai-chat-history-delete-script-js-LC959" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">classList</span><span class="pl-kos">.</span><span class="pl-en">remove</span><span class="pl-kos">(</span><span class="pl-s">"sr-only"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L960" class="blob-num js-line-number js-blob-rnum" data-line-number="960"></td>
          <td id="file-ai-chat-history-delete-script-js-LC960" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"display"</span><span class="pl-kos">,</span> <span class="pl-s">"inline-flex"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L961" class="blob-num js-line-number js-blob-rnum" data-line-number="961"></td>
          <td id="file-ai-chat-history-delete-script-js-LC961" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"visibility"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L962" class="blob-num js-line-number js-blob-rnum" data-line-number="962"></td>
          <td id="file-ai-chat-history-delete-script-js-LC962" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"opacity"</span><span class="pl-kos">,</span> <span class="pl-s">"1"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L963" class="blob-num js-line-number js-blob-rnum" data-line-number="963"></td>
          <td id="file-ai-chat-history-delete-script-js-LC963" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"pointer-events"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L964" class="blob-num js-line-number js-blob-rnum" data-line-number="964"></td>
          <td id="file-ai-chat-history-delete-script-js-LC964" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"position"</span><span class="pl-kos">,</span> <span class="pl-s">"static"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L965" class="blob-num js-line-number js-blob-rnum" data-line-number="965"></td>
          <td id="file-ai-chat-history-delete-script-js-LC965" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"width"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L966" class="blob-num js-line-number js-blob-rnum" data-line-number="966"></td>
          <td id="file-ai-chat-history-delete-script-js-LC966" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"height"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L967" class="blob-num js-line-number js-blob-rnum" data-line-number="967"></td>
          <td id="file-ai-chat-history-delete-script-js-LC967" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"clip"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L968" class="blob-num js-line-number js-blob-rnum" data-line-number="968"></td>
          <td id="file-ai-chat-history-delete-script-js-LC968" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"clip-path"</span><span class="pl-kos">,</span> <span class="pl-s">"none"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L969" class="blob-num js-line-number js-blob-rnum" data-line-number="969"></td>
          <td id="file-ai-chat-history-delete-script-js-LC969" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"overflow"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L970" class="blob-num js-line-number js-blob-rnum" data-line-number="970"></td>
          <td id="file-ai-chat-history-delete-script-js-LC970" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L971" class="blob-num js-line-number js-blob-rnum" data-line-number="971"></td>
          <td id="file-ai-chat-history-delete-script-js-LC971" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L972" class="blob-num js-line-number js-blob-rnum" data-line-number="972"></td>
          <td id="file-ai-chat-history-delete-script-js-LC972" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L973" class="blob-num js-line-number js-blob-rnum" data-line-number="973"></td>
          <td id="file-ai-chat-history-delete-script-js-LC973" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L974" class="blob-num js-line-number js-blob-rnum" data-line-number="974"></td>
          <td id="file-ai-chat-history-delete-script-js-LC974" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L975" class="blob-num js-line-number js-blob-rnum" data-line-number="975"></td>
          <td id="file-ai-chat-history-delete-script-js-LC975" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L976" class="blob-num js-line-number js-blob-rnum" data-line-number="976"></td>
          <td id="file-ai-chat-history-delete-script-js-LC976" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L977" class="blob-num js-line-number js-blob-rnum" data-line-number="977"></td>
          <td id="file-ai-chat-history-delete-script-js-LC977" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">root</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L978" class="blob-num js-line-number js-blob-rnum" data-line-number="978"></td>
          <td id="file-ai-chat-history-delete-script-js-LC978" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L979" class="blob-num js-line-number js-blob-rnum" data-line-number="979"></td>
          <td id="file-ai-chat-history-delete-script-js-LC979" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">[</span>...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[role="link"][aria-label]'</span><span class="pl-kos">)</span><span class="pl-kos">]</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L980" class="blob-num js-line-number js-blob-rnum" data-line-number="980"></td>
          <td id="file-ai-chat-history-delete-script-js-LC980" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isUsableElement</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L981" class="blob-num js-line-number js-blob-rnum" data-line-number="981"></td>
          <td id="file-ai-chat-history-delete-script-js-LC981" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[id^="conversation-options-"]'</span><span class="pl-kos">)</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L982" class="blob-num js-line-number js-blob-rnum" data-line-number="982"></td>
          <td id="file-ai-chat-history-delete-script-js-LC982" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L983" class="blob-num js-line-number js-blob-rnum" data-line-number="983"></td>
          <td id="file-ai-chat-history-delete-script-js-LC983" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">const</span> <span class="pl-s1">title</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L984" class="blob-num js-line-number js-blob-rnum" data-line-number="984"></td>
          <td id="file-ai-chat-history-delete-script-js-LC984" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">return</span> <span class="pl-c1">!</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-s">&#49352;</span><span class="pl-s"> </span><span class="pl-s">&#45824;</span><span class="pl-s">&#54868;</span><span class="pl-c1">|</span><span class="pl-s">N</span><span class="pl-s">e</span><span class="pl-s">w</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">h</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-c1">|</span><span class="pl-s">N</span><span class="pl-s">e</span><span class="pl-s">w</span><span class="pl-s"> </span><span class="pl-s">c</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-s">v</span><span class="pl-s">e</span><span class="pl-s">r</span><span class="pl-s">s</span><span class="pl-s">a</span><span class="pl-s">t</span><span class="pl-s">i</span><span class="pl-s">o</span><span class="pl-s">n</span><span class="pl-c1">/</span>i</span><span class="pl-kos">.</span><span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">title</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L985" class="blob-num js-line-number js-blob-rnum" data-line-number="985"></td>
          <td id="file-ai-chat-history-delete-script-js-LC985" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L986" class="blob-num js-line-number js-blob-rnum" data-line-number="986"></td>
          <td id="file-ai-chat-history-delete-script-js-LC986" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L987" class="blob-num js-line-number js-blob-rnum" data-line-number="987"></td>
          <td id="file-ai-chat-history-delete-script-js-LC987" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L988" class="blob-num js-line-number js-blob-rnum" data-line-number="988"></td>
          <td id="file-ai-chat-history-delete-script-js-LC988" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">-</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L989" class="blob-num js-line-number js-blob-rnum" data-line-number="989"></td>
          <td id="file-ai-chat-history-delete-script-js-LC989" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L990" class="blob-num js-line-number js-blob-rnum" data-line-number="990"></td>
          <td id="file-ai-chat-history-delete-script-js-LC990" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L991" class="blob-num js-line-number js-blob-rnum" data-line-number="991"></td>
          <td id="file-ai-chat-history-delete-script-js-LC991" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L992" class="blob-num js-line-number js-blob-rnum" data-line-number="992"></td>
          <td id="file-ai-chat-history-delete-script-js-LC992" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L993" class="blob-num js-line-number js-blob-rnum" data-line-number="993"></td>
          <td id="file-ai-chat-history-delete-script-js-LC993" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">titleElement</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"p[title]"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L994" class="blob-num js-line-number js-blob-rnum" data-line-number="994"></td>
          <td id="file-ai-chat-history-delete-script-js-LC994" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L995" class="blob-num js-line-number js-blob-rnum" data-line-number="995"></td>
          <td id="file-ai-chat-history-delete-script-js-LC995" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L996" class="blob-num js-line-number js-blob-rnum" data-line-number="996"></td>
          <td id="file-ai-chat-history-delete-script-js-LC996" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">titleElement</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"title"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L997" class="blob-num js-line-number js-blob-rnum" data-line-number="997"></td>
          <td id="file-ai-chat-history-delete-script-js-LC997" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L998" class="blob-num js-line-number js-blob-rnum" data-line-number="998"></td>
          <td id="file-ai-chat-history-delete-script-js-LC998" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L999" class="blob-num js-line-number js-blob-rnum" data-line-number="999"></td>
          <td id="file-ai-chat-history-delete-script-js-LC999" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"(&#51228;&#47785; &#50630;&#51020;)"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1000" class="blob-num js-line-number js-blob-rnum" data-line-number="1000"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1000" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1001" class="blob-num js-line-number js-blob-rnum" data-line-number="1001"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1001" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1002" class="blob-num js-line-number js-blob-rnum" data-line-number="1002"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1002" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1003" class="blob-num js-line-number js-blob-rnum" data-line-number="1003"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1003" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1004" class="blob-num js-line-number js-blob-rnum" data-line-number="1004"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1004" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">button</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[id^="conversation-options-"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1005" class="blob-num js-line-number js-blob-rnum" data-line-number="1005"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1005" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-s1">button</span><span class="pl-kos">?.</span><span class="pl-c1">id</span> <span class="pl-c1">||</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1006" class="blob-num js-line-number js-blob-rnum" data-line-number="1006"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1006" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1007" class="blob-num js-line-number js-blob-rnum" data-line-number="1007"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1007" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1008" class="blob-num js-line-number js-blob-rnum" data-line-number="1008"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1008" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">async</span> <span class="pl-en">getMoreButton</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1009" class="blob-num js-line-number js-blob-rnum" data-line-number="1009"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1009" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1010" class="blob-num js-line-number js-blob-rnum" data-line-number="1010"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1010" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1011" class="blob-num js-line-number js-blob-rnum" data-line-number="1011"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1011" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">scrollIntoView</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">block</span>: <span class="pl-s">"center"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1012" class="blob-num js-line-number js-blob-rnum" data-line-number="1012"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1012" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchHover</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1013" class="blob-num js-line-number js-blob-rnum" data-line-number="1013"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1013" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1014" class="blob-num js-line-number js-blob-rnum" data-line-number="1014"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1014" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">300</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1015" class="blob-num js-line-number js-blob-rnum" data-line-number="1015"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1015" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1016" class="blob-num js-line-number js-blob-rnum" data-line-number="1016"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1016" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1017" class="blob-num js-line-number js-blob-rnum" data-line-number="1017"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1017" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[id^="conversation-options-"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1018" class="blob-num js-line-number js-blob-rnum" data-line-number="1018"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1018" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="&#48372;&#44592; &#50741;&#49496;"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1019" class="blob-num js-line-number js-blob-rnum" data-line-number="1019"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1019" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[title*="&#48372;&#44592; &#50741;&#49496;"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1020" class="blob-num js-line-number js-blob-rnum" data-line-number="1020"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1020" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="options" i]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1021" class="blob-num js-line-number js-blob-rnum" data-line-number="1021"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1021" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[title*="options" i]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1022" class="blob-num js-line-number js-blob-rnum" data-line-number="1022"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1022" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">null</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1023" class="blob-num js-line-number js-blob-rnum" data-line-number="1023"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1023" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1024" class="blob-num js-line-number js-blob-rnum" data-line-number="1024"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1024" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1025" class="blob-num js-line-number js-blob-rnum" data-line-number="1025"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1025" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1026" class="blob-num js-line-number js-blob-rnum" data-line-number="1026"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1026" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1027" class="blob-num js-line-number js-blob-rnum" data-line-number="1027"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1027" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-v">ClaudeCleaner</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1028" class="blob-num js-line-number js-blob-rnum" data-line-number="1028"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1028" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">name</span>: <span class="pl-s">"Claude"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1029" class="blob-num js-line-number js-blob-rnum" data-line-number="1029"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1029" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">supportsLazyLoad</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1030" class="blob-num js-line-number js-blob-rnum" data-line-number="1030"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1030" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1031" class="blob-num js-line-number js-blob-rnum" data-line-number="1031"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1031" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">detect</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1032" class="blob-num js-line-number js-blob-rnum" data-line-number="1032"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1032" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1033" class="blob-num js-line-number js-blob-rnum" data-line-number="1033"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1033" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">location</span><span class="pl-kos">.</span><span class="pl-c1">hostname</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">"claude.ai"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1034" class="blob-num js-line-number js-blob-rnum" data-line-number="1034"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1034" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1035" class="blob-num js-line-number js-blob-rnum" data-line-number="1035"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1035" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="&#45908; &#47566;&#51008; &#50741;&#49496;"]'</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1036" class="blob-num js-line-number js-blob-rnum" data-line-number="1036"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1036" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1037" class="blob-num js-line-number js-blob-rnum" data-line-number="1037"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1037" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1038" class="blob-num js-line-number js-blob-rnum" data-line-number="1038"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1038" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1039" class="blob-num js-line-number js-blob-rnum" data-line-number="1039"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1039" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1040" class="blob-num js-line-number js-blob-rnum" data-line-number="1040"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1040" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">firstChatLink</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1041" class="blob-num js-line-number js-blob-rnum" data-line-number="1041"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1041" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">'a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"]'</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1042" class="blob-num js-line-number js-blob-rnum" data-line-number="1042"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1042" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1043" class="blob-num js-line-number js-blob-rnum" data-line-number="1043"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1043" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1044" class="blob-num js-line-number js-blob-rnum" data-line-number="1044"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1044" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1045" class="blob-num js-line-number js-blob-rnum" data-line-number="1045"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1045" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstChatLink</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"ul"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1046" class="blob-num js-line-number js-blob-rnum" data-line-number="1046"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1046" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstChatLink</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"nav"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1047" class="blob-num js-line-number js-blob-rnum" data-line-number="1047"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1047" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstChatLink</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"aside"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1048" class="blob-num js-line-number js-blob-rnum" data-line-number="1048"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1048" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"nav"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1049" class="blob-num js-line-number js-blob-rnum" data-line-number="1049"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1049" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"aside"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1050" class="blob-num js-line-number js-blob-rnum" data-line-number="1050"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1050" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1051" class="blob-num js-line-number js-blob-rnum" data-line-number="1051"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1051" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1052" class="blob-num js-line-number js-blob-rnum" data-line-number="1052"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1052" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1053" class="blob-num js-line-number js-blob-rnum" data-line-number="1053"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1053" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1054" class="blob-num js-line-number js-blob-rnum" data-line-number="1054"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1054" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getScrollContainer</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1055" class="blob-num js-line-number js-blob-rnum" data-line-number="1055"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1055" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-en">findBestScrollContainer</span><span class="pl-kos">(</span><span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1056" class="blob-num js-line-number js-blob-rnum" data-line-number="1056"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1056" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1057" class="blob-num js-line-number js-blob-rnum" data-line-number="1057"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1057" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1058" class="blob-num js-line-number js-blob-rnum" data-line-number="1058"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1058" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1059" class="blob-num js-line-number js-blob-rnum" data-line-number="1059"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1059" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">getElementById</span><span class="pl-kos">(</span><span class="pl-s">"__ai_cleaner_claude_css"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1060" class="blob-num js-line-number js-blob-rnum" data-line-number="1060"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1060" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">createElement</span><span class="pl-kos">(</span><span class="pl-s">"style"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1061" class="blob-num js-line-number js-blob-rnum" data-line-number="1061"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1061" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-c1">=</span> <span class="pl-s">"__ai_cleaner_claude_css"</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1062" class="blob-num js-line-number js-blob-rnum" data-line-number="1062"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1062" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span> <span class="pl-c1">=</span> <span class="pl-s">`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1063" class="blob-num js-line-number js-blob-rnum" data-line-number="1063"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1063" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"] ~ div button[aria-haspopup="menu"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1064" class="blob-num js-line-number js-blob-rnum" data-line-number="1064"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1064" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"] + div button[aria-haspopup="menu"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1065" class="blob-num js-line-number js-blob-rnum" data-line-number="1065"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1065" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          button[aria-label*="&#45908; &#47566;&#51008; &#50741;&#49496;"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1066" class="blob-num js-line-number js-blob-rnum" data-line-number="1066"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1066" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          button[aria-label*="more options" i],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1067" class="blob-num js-line-number js-blob-rnum" data-line-number="1067"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1067" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          button[aria-label*="options" i] {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1068" class="blob-num js-line-number js-blob-rnum" data-line-number="1068"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1068" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: inline-flex !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1069" class="blob-num js-line-number js-blob-rnum" data-line-number="1069"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1069" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1070" class="blob-num js-line-number js-blob-rnum" data-line-number="1070"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1070" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1071" class="blob-num js-line-number js-blob-rnum" data-line-number="1071"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1071" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1072" class="blob-num js-line-number js-blob-rnum" data-line-number="1072"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1072" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1073" class="blob-num js-line-number js-blob-rnum" data-line-number="1073"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1073" class="blob-code blob-code-inner js-file-line"><span class="pl-s"></span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1074" class="blob-num js-line-number js-blob-rnum" data-line-number="1074"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1074" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          div:has(&gt; button[aria-label*="&#45908; &#47566;&#51008; &#50741;&#49496;"]),</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1075" class="blob-num js-line-number js-blob-rnum" data-line-number="1075"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1075" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          div:has(&gt; button[aria-label*="more options" i]),</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1076" class="blob-num js-line-number js-blob-rnum" data-line-number="1076"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1076" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          div:has(&gt; button[aria-label*="options" i]) {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1077" class="blob-num js-line-number js-blob-rnum" data-line-number="1077"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1077" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: flex !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1078" class="blob-num js-line-number js-blob-rnum" data-line-number="1078"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1078" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1079" class="blob-num js-line-number js-blob-rnum" data-line-number="1079"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1079" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1080" class="blob-num js-line-number js-blob-rnum" data-line-number="1080"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1080" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1081" class="blob-num js-line-number js-blob-rnum" data-line-number="1081"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1081" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1082" class="blob-num js-line-number js-blob-rnum" data-line-number="1082"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1082" class="blob-code blob-code-inner js-file-line"><span class="pl-s">        `</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1083" class="blob-num js-line-number js-blob-rnum" data-line-number="1083"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1083" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">head</span><span class="pl-kos">.</span><span class="pl-en">appendChild</span><span class="pl-kos">(</span><span class="pl-s1">style</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1084" class="blob-num js-line-number js-blob-rnum" data-line-number="1084"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1084" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1085" class="blob-num js-line-number js-blob-rnum" data-line-number="1085"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1085" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1086" class="blob-num js-line-number js-blob-rnum" data-line-number="1086"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1086" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1087" class="blob-num js-line-number js-blob-rnum" data-line-number="1087"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1087" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1088" class="blob-num js-line-number js-blob-rnum" data-line-number="1088"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1088" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'button[aria-label*="&#45908; &#47566;&#51008; &#50741;&#49496;"], button[aria-label*="more options" i], button[aria-label*="options" i]'</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1089" class="blob-num js-line-number js-blob-rnum" data-line-number="1089"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1089" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1090" class="blob-num js-line-number js-blob-rnum" data-line-number="1090"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1090" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">forEach</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">button</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1091" class="blob-num js-line-number js-blob-rnum" data-line-number="1091"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1091" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">const</span> <span class="pl-s1">parent</span> <span class="pl-c1">=</span> <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">parentElement</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1092" class="blob-num js-line-number js-blob-rnum" data-line-number="1092"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1092" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1093" class="blob-num js-line-number js-blob-rnum" data-line-number="1093"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1093" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"display"</span><span class="pl-kos">,</span> <span class="pl-s">"inline-flex"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1094" class="blob-num js-line-number js-blob-rnum" data-line-number="1094"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1094" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"visibility"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1095" class="blob-num js-line-number js-blob-rnum" data-line-number="1095"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1095" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"opacity"</span><span class="pl-kos">,</span> <span class="pl-s">"1"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1096" class="blob-num js-line-number js-blob-rnum" data-line-number="1096"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1096" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"pointer-events"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1097" class="blob-num js-line-number js-blob-rnum" data-line-number="1097"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1097" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1098" class="blob-num js-line-number js-blob-rnum" data-line-number="1098"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1098" class="blob-code blob-code-inner js-file-line">          <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">parent</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1099" class="blob-num js-line-number js-blob-rnum" data-line-number="1099"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1099" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"display"</span><span class="pl-kos">,</span> <span class="pl-s">"flex"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1100" class="blob-num js-line-number js-blob-rnum" data-line-number="1100"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1100" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"visibility"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1101" class="blob-num js-line-number js-blob-rnum" data-line-number="1101"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1101" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"opacity"</span><span class="pl-kos">,</span> <span class="pl-s">"1"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1102" class="blob-num js-line-number js-blob-rnum" data-line-number="1102"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1102" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">parent</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"pointer-events"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1103" class="blob-num js-line-number js-blob-rnum" data-line-number="1103"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1103" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1104" class="blob-num js-line-number js-blob-rnum" data-line-number="1104"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1104" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1105" class="blob-num js-line-number js-blob-rnum" data-line-number="1105"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1105" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1106" class="blob-num js-line-number js-blob-rnum" data-line-number="1106"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1106" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1107" class="blob-num js-line-number js-blob-rnum" data-line-number="1107"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1107" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1108" class="blob-num js-line-number js-blob-rnum" data-line-number="1108"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1108" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1109" class="blob-num js-line-number js-blob-rnum" data-line-number="1109"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1109" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1110" class="blob-num js-line-number js-blob-rnum" data-line-number="1110"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1110" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">root</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1111" class="blob-num js-line-number js-blob-rnum" data-line-number="1111"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1111" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1112" class="blob-num js-line-number js-blob-rnum" data-line-number="1112"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1112" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">[</span>...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"]'</span><span class="pl-kos">)</span><span class="pl-kos">]</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1113" class="blob-num js-line-number js-blob-rnum" data-line-number="1113"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1113" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">link</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">link</span><span class="pl-kos">.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"li"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s1">link</span><span class="pl-kos">.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"div.relative.group"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s1">link</span><span class="pl-kos">.</span><span class="pl-c1">parentElement</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1114" class="blob-num js-line-number js-blob-rnum" data-line-number="1114"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1114" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-v">Boolean</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1115" class="blob-num js-line-number js-blob-rnum" data-line-number="1115"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1115" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">,</span> <span class="pl-s1">index</span><span class="pl-kos">,</span> <span class="pl-s1">arr</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">arr</span><span class="pl-kos">.</span><span class="pl-en">indexOf</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">===</span> <span class="pl-s1">index</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1116" class="blob-num js-line-number js-blob-rnum" data-line-number="1116"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1116" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isUsableElement</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1117" class="blob-num js-line-number js-blob-rnum" data-line-number="1117"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1117" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1118" class="blob-num js-line-number js-blob-rnum" data-line-number="1118"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1118" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1119" class="blob-num js-line-number js-blob-rnum" data-line-number="1119"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1119" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">-</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1120" class="blob-num js-line-number js-blob-rnum" data-line-number="1120"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1120" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1121" class="blob-num js-line-number js-blob-rnum" data-line-number="1121"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1121" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1122" class="blob-num js-line-number js-blob-rnum" data-line-number="1122"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1122" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1123" class="blob-num js-line-number js-blob-rnum" data-line-number="1123"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1123" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1124" class="blob-num js-line-number js-blob-rnum" data-line-number="1124"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1124" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">link</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1125" class="blob-num js-line-number js-blob-rnum" data-line-number="1125"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1125" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">srOnlyTitle</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"[data-find-omitted]"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1126" class="blob-num js-line-number js-blob-rnum" data-line-number="1126"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1126" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">visibleTitle</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'span[aria-hidden="true"], span.truncate, .truncate'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1127" class="blob-num js-line-number js-blob-rnum" data-line-number="1127"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1127" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1128" class="blob-num js-line-number js-blob-rnum" data-line-number="1128"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1128" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1129" class="blob-num js-line-number js-blob-rnum" data-line-number="1129"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1129" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">srOnlyTitle</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1130" class="blob-num js-line-number js-blob-rnum" data-line-number="1130"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1130" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">visibleTitle</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1131" class="blob-num js-line-number js-blob-rnum" data-line-number="1131"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1131" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">link</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1132" class="blob-num js-line-number js-blob-rnum" data-line-number="1132"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1132" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">link</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"href"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1133" class="blob-num js-line-number js-blob-rnum" data-line-number="1133"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1133" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"(&#51228;&#47785; &#50630;&#51020;)"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1134" class="blob-num js-line-number js-blob-rnum" data-line-number="1134"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1134" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1135" class="blob-num js-line-number js-blob-rnum" data-line-number="1135"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1135" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1136" class="blob-num js-line-number js-blob-rnum" data-line-number="1136"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1136" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1137" class="blob-num js-line-number js-blob-rnum" data-line-number="1137"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1137" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1138" class="blob-num js-line-number js-blob-rnum" data-line-number="1138"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1138" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">link</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[data-dd-action-name="sidebar-chat-item"][href^="/chat/"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1139" class="blob-num js-line-number js-blob-rnum" data-line-number="1139"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1139" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-s1">link</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"href"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1140" class="blob-num js-line-number js-blob-rnum" data-line-number="1140"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1140" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1141" class="blob-num js-line-number js-blob-rnum" data-line-number="1141"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1141" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1142" class="blob-num js-line-number js-blob-rnum" data-line-number="1142"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1142" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">async</span> <span class="pl-en">getMoreButton</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1143" class="blob-num js-line-number js-blob-rnum" data-line-number="1143"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1143" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1144" class="blob-num js-line-number js-blob-rnum" data-line-number="1144"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1144" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1145" class="blob-num js-line-number js-blob-rnum" data-line-number="1145"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1145" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">scrollIntoView</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">block</span>: <span class="pl-s">"center"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1146" class="blob-num js-line-number js-blob-rnum" data-line-number="1146"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1146" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchHover</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1147" class="blob-num js-line-number js-blob-rnum" data-line-number="1147"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1147" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1148" class="blob-num js-line-number js-blob-rnum" data-line-number="1148"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1148" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">350</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1149" class="blob-num js-line-number js-blob-rnum" data-line-number="1149"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1149" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1150" class="blob-num js-line-number js-blob-rnum" data-line-number="1150"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1150" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1151" class="blob-num js-line-number js-blob-rnum" data-line-number="1151"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1151" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="&#45908; &#47566;&#51008; &#50741;&#49496;"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1152" class="blob-num js-line-number js-blob-rnum" data-line-number="1152"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1152" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="more options" i]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1153" class="blob-num js-line-number js-blob-rnum" data-line-number="1153"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1153" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="options" i]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1154" class="blob-num js-line-number js-blob-rnum" data-line-number="1154"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1154" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-haspopup="menu"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1155" class="blob-num js-line-number js-blob-rnum" data-line-number="1155"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1155" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">null</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1156" class="blob-num js-line-number js-blob-rnum" data-line-number="1156"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1156" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1157" class="blob-num js-line-number js-blob-rnum" data-line-number="1157"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1157" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1158" class="blob-num js-line-number js-blob-rnum" data-line-number="1158"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1158" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1159" class="blob-num js-line-number js-blob-rnum" data-line-number="1159"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1159" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1160" class="blob-num js-line-number js-blob-rnum" data-line-number="1160"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1160" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-v">MetaCleaner</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1161" class="blob-num js-line-number js-blob-rnum" data-line-number="1161"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1161" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">name</span>: <span class="pl-s">"Meta AI"</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1162" class="blob-num js-line-number js-blob-rnum" data-line-number="1162"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1162" class="blob-code blob-code-inner js-file-line">    <span class="pl-c1">supportsLazyLoad</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1163" class="blob-num js-line-number js-blob-rnum" data-line-number="1163"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1163" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1164" class="blob-num js-line-number js-blob-rnum" data-line-number="1164"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1164" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">detect</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1165" class="blob-num js-line-number js-blob-rnum" data-line-number="1165"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1165" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1166" class="blob-num js-line-number js-blob-rnum" data-line-number="1166"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1166" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">location</span><span class="pl-kos">.</span><span class="pl-c1">hostname</span><span class="pl-kos">.</span><span class="pl-en">includes</span><span class="pl-kos">(</span><span class="pl-s">"meta.ai"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1167" class="blob-num js-line-number js-blob-rnum" data-line-number="1167"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1167" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-testid="conversation-item"] a[href^="/prompt/"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1168" class="blob-num js-line-number js-blob-rnum" data-line-number="1168"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1168" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-sidebar="menu-action"][aria-label*="&#50741;&#49496;"]'</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1169" class="blob-num js-line-number js-blob-rnum" data-line-number="1169"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1169" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1170" class="blob-num js-line-number js-blob-rnum" data-line-number="1170"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1170" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1171" class="blob-num js-line-number js-blob-rnum" data-line-number="1171"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1171" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1172" class="blob-num js-line-number js-blob-rnum" data-line-number="1172"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1172" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1173" class="blob-num js-line-number js-blob-rnum" data-line-number="1173"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1173" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">firstConversation</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-testid="conversation-item"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1174" class="blob-num js-line-number js-blob-rnum" data-line-number="1174"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1174" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1175" class="blob-num js-line-number js-blob-rnum" data-line-number="1175"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1175" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1176" class="blob-num js-line-number js-blob-rnum" data-line-number="1176"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1176" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstConversation</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">'[data-sidebar="menu"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1177" class="blob-num js-line-number js-blob-rnum" data-line-number="1177"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1177" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstConversation</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"ul"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1178" class="blob-num js-line-number js-blob-rnum" data-line-number="1178"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1178" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstConversation</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"nav"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1179" class="blob-num js-line-number js-blob-rnum" data-line-number="1179"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1179" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">firstConversation</span><span class="pl-kos">?.</span><span class="pl-en">closest</span><span class="pl-kos">(</span><span class="pl-s">"aside"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1180" class="blob-num js-line-number js-blob-rnum" data-line-number="1180"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1180" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-sidebar="sidebar"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1181" class="blob-num js-line-number js-blob-rnum" data-line-number="1181"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1181" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"nav"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1182" class="blob-num js-line-number js-blob-rnum" data-line-number="1182"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1182" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">"aside"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1183" class="blob-num js-line-number js-blob-rnum" data-line-number="1183"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1183" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">body</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1184" class="blob-num js-line-number js-blob-rnum" data-line-number="1184"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1184" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1185" class="blob-num js-line-number js-blob-rnum" data-line-number="1185"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1185" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1186" class="blob-num js-line-number js-blob-rnum" data-line-number="1186"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1186" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1187" class="blob-num js-line-number js-blob-rnum" data-line-number="1187"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1187" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getScrollContainer</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1188" class="blob-num js-line-number js-blob-rnum" data-line-number="1188"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1188" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-en">findBestScrollContainer</span><span class="pl-kos">(</span><span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1189" class="blob-num js-line-number js-blob-rnum" data-line-number="1189"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1189" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1190" class="blob-num js-line-number js-blob-rnum" data-line-number="1190"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1190" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1191" class="blob-num js-line-number js-blob-rnum" data-line-number="1191"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1191" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1192" class="blob-num js-line-number js-blob-rnum" data-line-number="1192"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1192" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">getElementById</span><span class="pl-kos">(</span><span class="pl-s">"__ai_cleaner_meta_css"</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1193" class="blob-num js-line-number js-blob-rnum" data-line-number="1193"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1193" class="blob-code blob-code-inner js-file-line">        <span class="pl-k">const</span> <span class="pl-s1">style</span> <span class="pl-c1">=</span> <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">createElement</span><span class="pl-kos">(</span><span class="pl-s">"style"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1194" class="blob-num js-line-number js-blob-rnum" data-line-number="1194"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1194" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-c1">=</span> <span class="pl-s">"__ai_cleaner_meta_css"</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1195" class="blob-num js-line-number js-blob-rnum" data-line-number="1195"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1195" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">style</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span> <span class="pl-c1">=</span> <span class="pl-s">`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1196" class="blob-num js-line-number js-blob-rnum" data-line-number="1196"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1196" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-testid="conversation-item"] [data-sidebar="menu-action"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1197" class="blob-num js-line-number js-blob-rnum" data-line-number="1197"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1197" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-testid="conversation-item"] [data-slot="dropdown-menu-trigger"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1198" class="blob-num js-line-number js-blob-rnum" data-line-number="1198"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1198" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-testid="conversation-item"] button[aria-label*="&#50741;&#49496;"],</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1199" class="blob-num js-line-number js-blob-rnum" data-line-number="1199"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1199" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-testid="conversation-item"] button[aria-label*="options" i] {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1200" class="blob-num js-line-number js-blob-rnum" data-line-number="1200"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1200" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: inline-flex !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1201" class="blob-num js-line-number js-blob-rnum" data-line-number="1201"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1201" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1202" class="blob-num js-line-number js-blob-rnum" data-line-number="1202"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1202" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1203" class="blob-num js-line-number js-blob-rnum" data-line-number="1203"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1203" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1204" class="blob-num js-line-number js-blob-rnum" data-line-number="1204"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1204" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1205" class="blob-num js-line-number js-blob-rnum" data-line-number="1205"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1205" class="blob-code blob-code-inner js-file-line"><span class="pl-s"></span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1206" class="blob-num js-line-number js-blob-rnum" data-line-number="1206"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1206" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-testid="conversation-item"] .contents,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1207" class="blob-num js-line-number js-blob-rnum" data-line-number="1207"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1207" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          [data-testid="conversation-item"] div:has(&gt; [data-sidebar="menu-action"]) {</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1208" class="blob-num js-line-number js-blob-rnum" data-line-number="1208"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1208" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            display: contents !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1209" class="blob-num js-line-number js-blob-rnum" data-line-number="1209"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1209" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            visibility: visible !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1210" class="blob-num js-line-number js-blob-rnum" data-line-number="1210"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1210" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            opacity: 1 !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1211" class="blob-num js-line-number js-blob-rnum" data-line-number="1211"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1211" class="blob-code blob-code-inner js-file-line"><span class="pl-s">            pointer-events: auto !important;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1212" class="blob-num js-line-number js-blob-rnum" data-line-number="1212"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1212" class="blob-code blob-code-inner js-file-line"><span class="pl-s">          }</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1213" class="blob-num js-line-number js-blob-rnum" data-line-number="1213"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1213" class="blob-code blob-code-inner js-file-line"><span class="pl-s">        `</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1214" class="blob-num js-line-number js-blob-rnum" data-line-number="1214"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1214" class="blob-code blob-code-inner js-file-line">        <span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-c1">head</span><span class="pl-kos">.</span><span class="pl-en">appendChild</span><span class="pl-kos">(</span><span class="pl-s1">style</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1215" class="blob-num js-line-number js-blob-rnum" data-line-number="1215"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1215" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1216" class="blob-num js-line-number js-blob-rnum" data-line-number="1216"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1216" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1217" class="blob-num js-line-number js-blob-rnum" data-line-number="1217"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1217" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">document</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1218" class="blob-num js-line-number js-blob-rnum" data-line-number="1218"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1218" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1219" class="blob-num js-line-number js-blob-rnum" data-line-number="1219"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1219" class="blob-code blob-code-inner js-file-line">          <span class="pl-s">'[data-testid="conversation-item"] [data-sidebar="menu-action"], [data-testid="conversation-item"] [data-slot="dropdown-menu-trigger"], [data-testid="conversation-item"] button[aria-label*="&#50741;&#49496;"], [data-testid="conversation-item"] button[aria-label*="options" i]'</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1220" class="blob-num js-line-number js-blob-rnum" data-line-number="1220"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1220" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1221" class="blob-num js-line-number js-blob-rnum" data-line-number="1221"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1221" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">forEach</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">button</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1222" class="blob-num js-line-number js-blob-rnum" data-line-number="1222"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1222" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"display"</span><span class="pl-kos">,</span> <span class="pl-s">"inline-flex"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1223" class="blob-num js-line-number js-blob-rnum" data-line-number="1223"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1223" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"visibility"</span><span class="pl-kos">,</span> <span class="pl-s">"visible"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1224" class="blob-num js-line-number js-blob-rnum" data-line-number="1224"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1224" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"opacity"</span><span class="pl-kos">,</span> <span class="pl-s">"1"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1225" class="blob-num js-line-number js-blob-rnum" data-line-number="1225"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1225" class="blob-code blob-code-inner js-file-line">          <span class="pl-s1">button</span><span class="pl-kos">.</span><span class="pl-c1">style</span><span class="pl-kos">.</span><span class="pl-en">setProperty</span><span class="pl-kos">(</span><span class="pl-s">"pointer-events"</span><span class="pl-kos">,</span> <span class="pl-s">"auto"</span><span class="pl-kos">,</span> <span class="pl-s">"important"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1226" class="blob-num js-line-number js-blob-rnum" data-line-number="1226"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1226" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1227" class="blob-num js-line-number js-blob-rnum" data-line-number="1227"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1227" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1228" class="blob-num js-line-number js-blob-rnum" data-line-number="1228"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1228" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1229" class="blob-num js-line-number js-blob-rnum" data-line-number="1229"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1229" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1230" class="blob-num js-line-number js-blob-rnum" data-line-number="1230"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1230" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1231" class="blob-num js-line-number js-blob-rnum" data-line-number="1231"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1231" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1232" class="blob-num js-line-number js-blob-rnum" data-line-number="1232"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1232" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">root</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getRoot</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1233" class="blob-num js-line-number js-blob-rnum" data-line-number="1233"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1233" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1234" class="blob-num js-line-number js-blob-rnum" data-line-number="1234"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1234" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">[</span>...<span class="pl-s1">root</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">'[data-testid="conversation-item"]'</span><span class="pl-kos">)</span><span class="pl-kos">]</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1235" class="blob-num js-line-number js-blob-rnum" data-line-number="1235"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1235" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isUsableElement</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1236" class="blob-num js-line-number js-blob-rnum" data-line-number="1236"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1236" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[href^="/prompt/"]'</span><span class="pl-kos">)</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1237" class="blob-num js-line-number js-blob-rnum" data-line-number="1237"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1237" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">sort</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1238" class="blob-num js-line-number js-blob-rnum" data-line-number="1238"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1238" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1239" class="blob-num js-line-number js-blob-rnum" data-line-number="1239"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1239" class="blob-code blob-code-inner js-file-line">            <span class="pl-s1">a</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span> <span class="pl-c1">-</span> <span class="pl-s1">b</span><span class="pl-kos">.</span><span class="pl-en">getBoundingClientRect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">top</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1240" class="blob-num js-line-number js-blob-rnum" data-line-number="1240"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1240" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1241" class="blob-num js-line-number js-blob-rnum" data-line-number="1241"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1241" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1242" class="blob-num js-line-number js-blob-rnum" data-line-number="1242"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1242" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1243" class="blob-num js-line-number js-blob-rnum" data-line-number="1243"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1243" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1244" class="blob-num js-line-number js-blob-rnum" data-line-number="1244"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1244" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">link</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[href^="/prompt/"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1245" class="blob-num js-line-number js-blob-rnum" data-line-number="1245"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1245" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">titleElement</span> <span class="pl-c1">=</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1246" class="blob-num js-line-number js-blob-rnum" data-line-number="1246"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1246" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-sidebar="menu-button"] .truncate'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1247" class="blob-num js-line-number js-blob-rnum" data-line-number="1247"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1247" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[href^="/prompt/"] span.truncate'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1248" class="blob-num js-line-number js-blob-rnum" data-line-number="1248"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1248" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">".truncate"</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1249" class="blob-num js-line-number js-blob-rnum" data-line-number="1249"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1249" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1250" class="blob-num js-line-number js-blob-rnum" data-line-number="1250"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1250" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1251" class="blob-num js-line-number js-blob-rnum" data-line-number="1251"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1251" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">titleElement</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1252" class="blob-num js-line-number js-blob-rnum" data-line-number="1252"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1252" class="blob-code blob-code-inner js-file-line">        <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">link</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1253" class="blob-num js-line-number js-blob-rnum" data-line-number="1253"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1253" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">link</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"href"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1254" class="blob-num js-line-number js-blob-rnum" data-line-number="1254"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1254" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"(&#51228;&#47785; &#50630;&#51020;)"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1255" class="blob-num js-line-number js-blob-rnum" data-line-number="1255"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1255" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1256" class="blob-num js-line-number js-blob-rnum" data-line-number="1256"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1256" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1257" class="blob-num js-line-number js-blob-rnum" data-line-number="1257"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1257" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1258" class="blob-num js-line-number js-blob-rnum" data-line-number="1258"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1258" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1259" class="blob-num js-line-number js-blob-rnum" data-line-number="1259"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1259" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">link</span> <span class="pl-c1">=</span> <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'a[href^="/prompt/"]'</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1260" class="blob-num js-line-number js-blob-rnum" data-line-number="1260"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1260" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-s1">link</span><span class="pl-kos">?.</span><span class="pl-en">getAttribute</span><span class="pl-kos">(</span><span class="pl-s">"href"</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1261" class="blob-num js-line-number js-blob-rnum" data-line-number="1261"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1261" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1262" class="blob-num js-line-number js-blob-rnum" data-line-number="1262"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1262" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1263" class="blob-num js-line-number js-blob-rnum" data-line-number="1263"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1263" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">async</span> <span class="pl-en">getMoreButton</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1264" class="blob-num js-line-number js-blob-rnum" data-line-number="1264"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1264" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1265" class="blob-num js-line-number js-blob-rnum" data-line-number="1265"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1265" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1266" class="blob-num js-line-number js-blob-rnum" data-line-number="1266"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1266" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">scrollIntoView</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">block</span>: <span class="pl-s">"center"</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1267" class="blob-num js-line-number js-blob-rnum" data-line-number="1267"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1267" class="blob-code blob-code-inner js-file-line">      <span class="pl-en">dispatchHover</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1268" class="blob-num js-line-number js-blob-rnum" data-line-number="1268"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1268" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1269" class="blob-num js-line-number js-blob-rnum" data-line-number="1269"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1269" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">350</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1270" class="blob-num js-line-number js-blob-rnum" data-line-number="1270"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1270" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1271" class="blob-num js-line-number js-blob-rnum" data-line-number="1271"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1271" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1272" class="blob-num js-line-number js-blob-rnum" data-line-number="1272"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1272" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-sidebar="menu-action"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1273" class="blob-num js-line-number js-blob-rnum" data-line-number="1273"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1273" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'[data-slot="dropdown-menu-trigger"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1274" class="blob-num js-line-number js-blob-rnum" data-line-number="1274"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1274" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="&#50741;&#49496;"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1275" class="blob-num js-line-number js-blob-rnum" data-line-number="1275"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1275" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-label*="options" i]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1276" class="blob-num js-line-number js-blob-rnum" data-line-number="1276"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1276" class="blob-code blob-code-inner js-file-line">        <span class="pl-s1">row</span><span class="pl-kos">.</span><span class="pl-en">querySelector</span><span class="pl-kos">(</span><span class="pl-s">'button[aria-haspopup="menu"]'</span><span class="pl-kos">)</span> <span class="pl-c1">||</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1277" class="blob-num js-line-number js-blob-rnum" data-line-number="1277"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1277" class="blob-code blob-code-inner js-file-line">        <span class="pl-c1">null</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1278" class="blob-num js-line-number js-blob-rnum" data-line-number="1278"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1278" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1279" class="blob-num js-line-number js-blob-rnum" data-line-number="1279"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1279" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1280" class="blob-num js-line-number js-blob-rnum" data-line-number="1280"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1280" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1281" class="blob-num js-line-number js-blob-rnum" data-line-number="1281"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1281" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1282" class="blob-num js-line-number js-blob-rnum" data-line-number="1282"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1282" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-s1">cleaners</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1283" class="blob-num js-line-number js-blob-rnum" data-line-number="1283"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1283" class="blob-code blob-code-inner js-file-line">    <span class="pl-v">GeminiCleaner</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1284" class="blob-num js-line-number js-blob-rnum" data-line-number="1284"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1284" class="blob-code blob-code-inner js-file-line">    <span class="pl-v">CopilotCleaner</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1285" class="blob-num js-line-number js-blob-rnum" data-line-number="1285"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1285" class="blob-code blob-code-inner js-file-line">    <span class="pl-v">ClaudeCleaner</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1286" class="blob-num js-line-number js-blob-rnum" data-line-number="1286"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1286" class="blob-code blob-code-inner js-file-line">    <span class="pl-v">MetaCleaner</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1287" class="blob-num js-line-number js-blob-rnum" data-line-number="1287"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1287" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">]</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1288" class="blob-num js-line-number js-blob-rnum" data-line-number="1288"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1288" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1289" class="blob-num js-line-number js-blob-rnum" data-line-number="1289"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1289" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-s1">activeCleaner</span> <span class="pl-c1">=</span> <span class="pl-s1">cleaners</span><span class="pl-kos">.</span><span class="pl-en">find</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">cleaner</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">cleaner</span><span class="pl-kos">.</span><span class="pl-en">detect</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1290" class="blob-num js-line-number js-blob-rnum" data-line-number="1290"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1290" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1291" class="blob-num js-line-number js-blob-rnum" data-line-number="1291"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1291" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1292" class="blob-num js-line-number js-blob-rnum" data-line-number="1292"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1292" class="blob-code blob-code-inner js-file-line">    <span class="pl-en">alert</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1293" class="blob-num js-line-number js-blob-rnum" data-line-number="1293"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1293" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">"&#51648;&#50896;&#46104;&#45716; AI &#52292;&#54021; &#49436;&#48708;&#49828; &#54168;&#51060;&#51648;&#47484; &#44048;&#51648;&#54616;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.\n\n"</span> <span class="pl-c1">+</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1294" class="blob-num js-line-number js-blob-rnum" data-line-number="1294"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1294" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">`&#54788;&#51116; &#46020;&#47700;&#51064;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">location</span><span class="pl-kos">.</span><span class="pl-c1">hostname</span><span class="pl-kos">}</span></span>\n\n`</span> <span class="pl-c1">+</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1295" class="blob-num js-line-number js-blob-rnum" data-line-number="1295"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1295" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"&#51648;&#50896;: Google Gemini, Microsoft Copilot, Claude, Meta AI"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1296" class="blob-num js-line-number js-blob-rnum" data-line-number="1296"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1296" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1297" class="blob-num js-line-number js-blob-rnum" data-line-number="1297"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1297" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1298" class="blob-num js-line-number js-blob-rnum" data-line-number="1298"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1298" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1299" class="blob-num js-line-number js-blob-rnum" data-line-number="1299"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1299" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1300" class="blob-num js-line-number js-blob-rnum" data-line-number="1300"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1300" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-en">askDeleteLimit</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1301" class="blob-num js-line-number js-blob-rnum" data-line-number="1301"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1301" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">input</span> <span class="pl-c1">=</span> <span class="pl-en">prompt</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1302" class="blob-num js-line-number js-blob-rnum" data-line-number="1302"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1302" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">`[<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span>] &#49325;&#51228;&#54624; &#52572;&#44540; &#45824;&#54868; &#44060;&#49688;&#47484; &#51077;&#47141;&#54616;&#49464;&#50836;. &#52572;&#45824; <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">maxLimit</span><span class="pl-kos">}</span></span>&#44060;&#44620;&#51648; &#49892;&#54665;&#46121;&#45768;&#45796;.`</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1303" class="blob-num js-line-number js-blob-rnum" data-line-number="1303"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1303" class="blob-code blob-code-inner js-file-line">      <span class="pl-v">String</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">defaultLimit</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1304" class="blob-num js-line-number js-blob-rnum" data-line-number="1304"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1304" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1305" class="blob-num js-line-number js-blob-rnum" data-line-number="1305"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1305" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1306" class="blob-num js-line-number js-blob-rnum" data-line-number="1306"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1306" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">parsed</span> <span class="pl-c1">=</span> <span class="pl-en">parseInt</span><span class="pl-kos">(</span><span class="pl-s1">input</span> <span class="pl-c1">||</span> <span class="pl-s">"0"</span><span class="pl-kos">,</span> <span class="pl-c1">10</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1307" class="blob-num js-line-number js-blob-rnum" data-line-number="1307"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1307" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1308" class="blob-num js-line-number js-blob-rnum" data-line-number="1308"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1308" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-v">Number</span><span class="pl-kos">.</span><span class="pl-en">isFinite</span><span class="pl-kos">(</span><span class="pl-s1">parsed</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-s1">parsed</span> <span class="pl-c1">&lt;=</span> <span class="pl-c1">0</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1309" class="blob-num js-line-number js-blob-rnum" data-line-number="1309"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1309" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1310" class="blob-num js-line-number js-blob-rnum" data-line-number="1310"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1310" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1311" class="blob-num js-line-number js-blob-rnum" data-line-number="1311"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1311" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1312" class="blob-num js-line-number js-blob-rnum" data-line-number="1312"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1312" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span> <span class="pl-v">Math</span><span class="pl-kos">.</span><span class="pl-en">min</span><span class="pl-kos">(</span><span class="pl-s1">parsed</span><span class="pl-kos">,</span> <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">maxLimit</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1313" class="blob-num js-line-number js-blob-rnum" data-line-number="1313"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1313" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1314" class="blob-num js-line-number js-blob-rnum" data-line-number="1314"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1314" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1315" class="blob-num js-line-number js-blob-rnum" data-line-number="1315"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1315" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-s1">limit</span> <span class="pl-c1">=</span> <span class="pl-en">askDeleteLimit</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1316" class="blob-num js-line-number js-blob-rnum" data-line-number="1316"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1316" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1317" class="blob-num js-line-number js-blob-rnum" data-line-number="1317"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1317" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">limit</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1318" class="blob-num js-line-number js-blob-rnum" data-line-number="1318"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1318" class="blob-code blob-code-inner js-file-line">    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#49892;&#54665;&#51060; &#52712;&#49548;&#46104;&#50632;&#49845;&#45768;&#45796;."</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1319" class="blob-num js-line-number js-blob-rnum" data-line-number="1319"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1319" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1320" class="blob-num js-line-number js-blob-rnum" data-line-number="1320"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1320" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1321" class="blob-num js-line-number js-blob-rnum" data-line-number="1321"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1321" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1322" class="blob-num js-line-number js-blob-rnum" data-line-number="1322"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1322" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">requireFinalConfirmation</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1323" class="blob-num js-line-number js-blob-rnum" data-line-number="1323"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1323" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">confirmed</span> <span class="pl-c1">=</span> <span class="pl-en">confirm</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1324" class="blob-num js-line-number js-blob-rnum" data-line-number="1324"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1324" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">`[<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span>] &#52572;&#44540; &#45824;&#54868; <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">limit</span><span class="pl-kos">}</span></span>&#44060;&#47484; &#49692;&#52264;&#51201;&#51004;&#47196; &#49325;&#51228;&#54633;&#45768;&#45796;.\n\n`</span> <span class="pl-c1">+</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1325" class="blob-num js-line-number js-blob-rnum" data-line-number="1325"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1325" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"&#51060; &#51089;&#50629;&#51008; &#46104;&#46028;&#47532;&#44592; &#50612;&#47140;&#50872; &#49688; &#51080;&#49845;&#45768;&#45796;.\n"</span> <span class="pl-c1">+</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1326" class="blob-num js-line-number js-blob-rnum" data-line-number="1326"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1326" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">"&#44228;&#49549; &#51652;&#54665;&#54616;&#49884;&#44192;&#49845;&#45768;&#44620;?"</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1327" class="blob-num js-line-number js-blob-rnum" data-line-number="1327"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1327" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1328" class="blob-num js-line-number js-blob-rnum" data-line-number="1328"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1328" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1329" class="blob-num js-line-number js-blob-rnum" data-line-number="1329"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1329" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">confirmed</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1330" class="blob-num js-line-number js-blob-rnum" data-line-number="1330"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1330" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#49324;&#50857;&#51088;&#44032; &#49892;&#54665;&#51012; &#52712;&#49548;&#54664;&#49845;&#45768;&#45796;."</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1331" class="blob-num js-line-number js-blob-rnum" data-line-number="1331"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1331" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">return</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1332" class="blob-num js-line-number js-blob-rnum" data-line-number="1332"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1332" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1333" class="blob-num js-line-number js-blob-rnum" data-line-number="1333"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1333" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1334" class="blob-num js-line-number js-blob-rnum" data-line-number="1334"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1334" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1335" class="blob-num js-line-number js-blob-rnum" data-line-number="1335"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1335" class="blob-code blob-code-inner js-file-line">  <span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1336" class="blob-num js-line-number js-blob-rnum" data-line-number="1336"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1336" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1337" class="blob-num js-line-number js-blob-rnum" data-line-number="1337"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1337" class="blob-code blob-code-inner js-file-line">  <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] &#44048;&#51648;&#46108; &#49436;&#48708;&#49828;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1338" class="blob-num js-line-number js-blob-rnum" data-line-number="1338"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1338" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1339" class="blob-num js-line-number js-blob-rnum" data-line-number="1339"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1339" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">supportsLazyLoad</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1340" class="blob-num js-line-number js-blob-rnum" data-line-number="1340"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1340" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">preloadRowsForCleaner</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">,</span> <span class="pl-s1">limit</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1341" class="blob-num js-line-number js-blob-rnum" data-line-number="1341"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1341" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1342" class="blob-num js-line-number js-blob-rnum" data-line-number="1342"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1342" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1343" class="blob-num js-line-number js-blob-rnum" data-line-number="1343"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1343" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">let</span> <span class="pl-s1">deletedCount</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1344" class="blob-num js-line-number js-blob-rnum" data-line-number="1344"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1344" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">const</span> <span class="pl-s1">deletedKeys</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">Set</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1345" class="blob-num js-line-number js-blob-rnum" data-line-number="1345"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1345" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1346" class="blob-num js-line-number js-blob-rnum" data-line-number="1346"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1346" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-k">let</span> <span class="pl-s1">index</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span> <span class="pl-s1">index</span> <span class="pl-c1">&lt;</span> <span class="pl-s1">limit</span><span class="pl-kos">;</span> <span class="pl-s1">index</span><span class="pl-c1">++</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1347" class="blob-num js-line-number js-blob-rnum" data-line-number="1347"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1347" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-smi">window</span><span class="pl-kos">.</span><span class="pl-c1">__aiChatHistoryCleanerStop</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1348" class="blob-num js-line-number js-blob-rnum" data-line-number="1348"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1348" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#51473;&#51648; &#50836;&#52397;&#51004;&#47196; &#51089;&#50629;&#51012; &#47688;&#52676;&#49845;&#45768;&#45796;."</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1349" class="blob-num js-line-number js-blob-rnum" data-line-number="1349"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1349" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1350" class="blob-num js-line-number js-blob-rnum" data-line-number="1350"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1350" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1351" class="blob-num js-line-number js-blob-rnum" data-line-number="1351"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1351" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1352" class="blob-num js-line-number js-blob-rnum" data-line-number="1352"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1352" class="blob-code blob-code-inner js-file-line">    <span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">forceShowActionButtons</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1353" class="blob-num js-line-number js-blob-rnum" data-line-number="1353"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1353" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1354" class="blob-num js-line-number js-blob-rnum" data-line-number="1354"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1354" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">loadMoreIfNeeded</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">,</span> <span class="pl-s1">limit</span> <span class="pl-c1">-</span> <span class="pl-s1">deletedCount</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1355" class="blob-num js-line-number js-blob-rnum" data-line-number="1355"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1355" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1356" class="blob-num js-line-number js-blob-rnum" data-line-number="1356"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1356" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">let</span> <span class="pl-s1">rowsBefore</span> <span class="pl-c1">=</span> <span class="pl-s1">activeCleaner</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1357" class="blob-num js-line-number js-blob-rnum" data-line-number="1357"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1357" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1358" class="blob-num js-line-number js-blob-rnum" data-line-number="1358"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1358" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-c1">!</span><span class="pl-s1">deletedKeys</span><span class="pl-kos">.</span><span class="pl-en">has</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1359" class="blob-num js-line-number js-blob-rnum" data-line-number="1359"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1359" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1360" class="blob-num js-line-number js-blob-rnum" data-line-number="1360"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1360" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">rowsBefore</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">===</span> <span class="pl-c1">0</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">supportsLazyLoad</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1361" class="blob-num js-line-number js-blob-rnum" data-line-number="1361"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1361" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1362" class="blob-num js-line-number js-blob-rnum" data-line-number="1362"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1362" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">`[AI Chat Cleaner] &#47196;&#46300;&#46108; &#45824;&#54868;&#44032; &#50630;&#50612; <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span> &#52628;&#44032; &#47196;&#46377;&#51012; &#54620; &#48264; &#45908; &#49884;&#46020;&#54633;&#45768;&#45796;.`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1363" class="blob-num js-line-number js-blob-rnum" data-line-number="1363"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1363" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1364" class="blob-num js-line-number js-blob-rnum" data-line-number="1364"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1364" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1365" class="blob-num js-line-number js-blob-rnum" data-line-number="1365"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1365" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">preloadRowsForCleaner</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">,</span> <span class="pl-s1">limit</span> <span class="pl-c1">-</span> <span class="pl-s1">deletedCount</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1366" class="blob-num js-line-number js-blob-rnum" data-line-number="1366"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1366" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1367" class="blob-num js-line-number js-blob-rnum" data-line-number="1367"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1367" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">rowsBefore</span> <span class="pl-c1">=</span> <span class="pl-s1">activeCleaner</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1368" class="blob-num js-line-number js-blob-rnum" data-line-number="1368"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1368" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">getRows</span><span class="pl-kos">(</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1369" class="blob-num js-line-number js-blob-rnum" data-line-number="1369"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1369" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-c1">!</span><span class="pl-s1">deletedKeys</span><span class="pl-kos">.</span><span class="pl-en">has</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">row</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1370" class="blob-num js-line-number js-blob-rnum" data-line-number="1370"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1370" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1371" class="blob-num js-line-number js-blob-rnum" data-line-number="1371"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1371" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1372" class="blob-num js-line-number js-blob-rnum" data-line-number="1372"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1372" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">beforeCount</span> <span class="pl-c1">=</span> <span class="pl-s1">rowsBefore</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1373" class="blob-num js-line-number js-blob-rnum" data-line-number="1373"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1373" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1374" class="blob-num js-line-number js-blob-rnum" data-line-number="1374"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1374" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">rowsBefore</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">===</span> <span class="pl-c1">0</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1375" class="blob-num js-line-number js-blob-rnum" data-line-number="1375"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1375" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">"[AI Chat Cleaner] &#49325;&#51228; &#44032;&#45733;&#54620; &#45824;&#54868; &#54665;&#51012; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;."</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1376" class="blob-num js-line-number js-blob-rnum" data-line-number="1376"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1376" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1377" class="blob-num js-line-number js-blob-rnum" data-line-number="1377"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1377" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1378" class="blob-num js-line-number js-blob-rnum" data-line-number="1378"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1378" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1379" class="blob-num js-line-number js-blob-rnum" data-line-number="1379"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1379" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">targetRow</span> <span class="pl-c1">=</span> <span class="pl-s1">rowsBefore</span><span class="pl-kos">[</span><span class="pl-c1">0</span><span class="pl-kos">]</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1380" class="blob-num js-line-number js-blob-rnum" data-line-number="1380"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1380" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">targetTitle</span> <span class="pl-c1">=</span> <span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">getTitle</span><span class="pl-kos">(</span><span class="pl-s1">targetRow</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1381" class="blob-num js-line-number js-blob-rnum" data-line-number="1381"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1381" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">targetKey</span> <span class="pl-c1">=</span> <span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">getKey</span><span class="pl-kos">(</span><span class="pl-s1">targetRow</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1382" class="blob-num js-line-number js-blob-rnum" data-line-number="1382"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1382" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1383" class="blob-num js-line-number js-blob-rnum" data-line-number="1383"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1383" class="blob-code blob-code-inner js-file-line">    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1384" class="blob-num js-line-number js-blob-rnum" data-line-number="1384"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1384" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">`[AI Chat Cleaner] <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">deletedCount</span> <span class="pl-c1">+</span> <span class="pl-c1">1</span><span class="pl-kos">}</span></span>/<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">limit</span><span class="pl-kos">}</span></span> &#49325;&#51228; &#45824;&#49345;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">targetTitle</span><span class="pl-kos">}</span></span>`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1385" class="blob-num js-line-number js-blob-rnum" data-line-number="1385"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1385" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1386" class="blob-num js-line-number js-blob-rnum" data-line-number="1386"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1386" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1387" class="blob-num js-line-number js-blob-rnum" data-line-number="1387"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1387" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">moreButton</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-en">getMoreButton</span><span class="pl-kos">(</span><span class="pl-s1">targetRow</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1388" class="blob-num js-line-number js-blob-rnum" data-line-number="1388"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1388" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1389" class="blob-num js-line-number js-blob-rnum" data-line-number="1389"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1389" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">moreButton</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1390" class="blob-num js-line-number js-blob-rnum" data-line-number="1390"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1390" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1391" class="blob-num js-line-number js-blob-rnum" data-line-number="1391"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1391" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">`[AI Chat Cleaner] &#50741;&#49496; &#48260;&#53948;&#51012; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">targetTitle</span><span class="pl-kos">}</span></span>`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1392" class="blob-num js-line-number js-blob-rnum" data-line-number="1392"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1392" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1393" class="blob-num js-line-number js-blob-rnum" data-line-number="1393"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1393" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1394" class="blob-num js-line-number js-blob-rnum" data-line-number="1394"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1394" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1395" class="blob-num js-line-number js-blob-rnum" data-line-number="1395"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1395" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1396" class="blob-num js-line-number js-blob-rnum" data-line-number="1396"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1396" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">clickElement</span><span class="pl-kos">(</span><span class="pl-s1">moreButton</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1397" class="blob-num js-line-number js-blob-rnum" data-line-number="1397"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1397" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">delayAfterMenuOpen</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1398" class="blob-num js-line-number js-blob-rnum" data-line-number="1398"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1398" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1399" class="blob-num js-line-number js-blob-rnum" data-line-number="1399"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1399" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">deleteMenuItem</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-en">findDeleteMenuItem</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1400" class="blob-num js-line-number js-blob-rnum" data-line-number="1400"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1400" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1401" class="blob-num js-line-number js-blob-rnum" data-line-number="1401"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1401" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">deleteMenuItem</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1402" class="blob-num js-line-number js-blob-rnum" data-line-number="1402"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1402" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1403" class="blob-num js-line-number js-blob-rnum" data-line-number="1403"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1403" class="blob-code blob-code-inner js-file-line">        <span class="pl-s">`[AI Chat Cleaner] &#49325;&#51228; &#47700;&#45684;&#47484; &#52286;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">targetTitle</span><span class="pl-kos">}</span></span>`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1404" class="blob-num js-line-number js-blob-rnum" data-line-number="1404"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1404" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1405" class="blob-num js-line-number js-blob-rnum" data-line-number="1405"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1405" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1406" class="blob-num js-line-number js-blob-rnum" data-line-number="1406"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1406" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">const</span> <span class="pl-s1">visibleMenuItems</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1407" class="blob-num js-line-number js-blob-rnum" data-line-number="1407"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1407" class="blob-code blob-code-inner js-file-line">        ...<span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1408" class="blob-num js-line-number js-blob-rnum" data-line-number="1408"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1408" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">[</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1409" class="blob-num js-line-number js-blob-rnum" data-line-number="1409"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1409" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[role="menu"] button'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1410" class="blob-num js-line-number js-blob-rnum" data-line-number="1410"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1410" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[role="menu"] [role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1411" class="blob-num js-line-number js-blob-rnum" data-line-number="1411"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1411" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-cds="Menu"] [role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1412" class="blob-num js-line-number js-blob-rnum" data-line-number="1412"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1412" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-radix-popper-content-wrapper] button'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1413" class="blob-num js-line-number js-blob-rnum" data-line-number="1413"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1413" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-radix-popper-content-wrapper] [role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1414" class="blob-num js-line-number js-blob-rnum" data-line-number="1414"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1414" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-radix-popper-content-wrapper] [data-slot="dropdown-menu-item"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1415" class="blob-num js-line-number js-blob-rnum" data-line-number="1415"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1415" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-radix-menu-content] [data-slot="dropdown-menu-item"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1416" class="blob-num js-line-number js-blob-rnum" data-line-number="1416"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1416" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-slot*="dropdown"] button'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1417" class="blob-num js-line-number js-blob-rnum" data-line-number="1417"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1417" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-slot*="dropdown"] [role="menuitem"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1418" class="blob-num js-line-number js-blob-rnum" data-line-number="1418"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1418" class="blob-code blob-code-inner js-file-line">            <span class="pl-s">'[data-testid="delete-chat-trigger"]'</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1419" class="blob-num js-line-number js-blob-rnum" data-line-number="1419"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1419" class="blob-code blob-code-inner js-file-line">          <span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">join</span><span class="pl-kos">(</span><span class="pl-s">", "</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1420" class="blob-num js-line-number js-blob-rnum" data-line-number="1420"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1420" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1421" class="blob-num js-line-number js-blob-rnum" data-line-number="1421"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1421" class="blob-code blob-code-inner js-file-line">      <span class="pl-kos">]</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1422" class="blob-num js-line-number js-blob-rnum" data-line-number="1422"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1422" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-en">isVisible</span><span class="pl-kos">)</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1423" class="blob-num js-line-number js-blob-rnum" data-line-number="1423"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1423" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1424" class="blob-num js-line-number js-blob-rnum" data-line-number="1424"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1424" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">text</span>: <span class="pl-en">getText</span><span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1425" class="blob-num js-line-number js-blob-rnum" data-line-number="1425"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1425" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">title</span>: <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"title"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1426" class="blob-num js-line-number js-blob-rnum" data-line-number="1426"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1426" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">aria</span>: <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"aria-label"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1427" class="blob-num js-line-number js-blob-rnum" data-line-number="1427"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1427" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">testId</span>: <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"data-testid"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1428" class="blob-num js-line-number js-blob-rnum" data-line-number="1428"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1428" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">slot</span>: <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"data-slot"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1429" class="blob-num js-line-number js-blob-rnum" data-line-number="1429"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1429" class="blob-code blob-code-inner js-file-line">          <span class="pl-c1">className</span>: <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-en">getAttribute</span><span class="pl-kos">?.</span><span class="pl-kos">(</span><span class="pl-s">"class"</span><span class="pl-kos">)</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1430" class="blob-num js-line-number js-blob-rnum" data-line-number="1430"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1430" class="blob-code blob-code-inner js-file-line">        <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1431" class="blob-num js-line-number js-blob-rnum" data-line-number="1431"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1431" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1432" class="blob-num js-line-number js-blob-rnum" data-line-number="1432"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1432" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">table</span><span class="pl-kos">(</span><span class="pl-s1">visibleMenuItems</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1433" class="blob-num js-line-number js-blob-rnum" data-line-number="1433"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1433" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1434" class="blob-num js-line-number js-blob-rnum" data-line-number="1434"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1434" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1435" class="blob-num js-line-number js-blob-rnum" data-line-number="1435"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1435" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1436" class="blob-num js-line-number js-blob-rnum" data-line-number="1436"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1436" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">clickElement</span><span class="pl-kos">(</span><span class="pl-s1">deleteMenuItem</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1437" class="blob-num js-line-number js-blob-rnum" data-line-number="1437"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1437" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">delayAfterDeleteClick</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1438" class="blob-num js-line-number js-blob-rnum" data-line-number="1438"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1438" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1439" class="blob-num js-line-number js-blob-rnum" data-line-number="1439"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1439" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">confirmButton</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-en">findConfirmDeleteButton</span><span class="pl-kos">(</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1440" class="blob-num js-line-number js-blob-rnum" data-line-number="1440"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1440" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1441" class="blob-num js-line-number js-blob-rnum" data-line-number="1441"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1441" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">confirmButton</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1442" class="blob-num js-line-number js-blob-rnum" data-line-number="1442"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1442" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">clickElement</span><span class="pl-kos">(</span><span class="pl-s1">confirmButton</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1443" class="blob-num js-line-number js-blob-rnum" data-line-number="1443"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1443" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">delayAfterConfirmClick</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1444" class="blob-num js-line-number js-blob-rnum" data-line-number="1444"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1444" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1445" class="blob-num js-line-number js-blob-rnum" data-line-number="1445"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1445" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">deletedCount</span> <span class="pl-c1">+=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1446" class="blob-num js-line-number js-blob-rnum" data-line-number="1446"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1446" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">deletedKeys</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-s1">targetKey</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1447" class="blob-num js-line-number js-blob-rnum" data-line-number="1447"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1447" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1448" class="blob-num js-line-number js-blob-rnum" data-line-number="1448"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1448" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] &#49325;&#51228; &#50756;&#47308;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">deletedCount</span><span class="pl-kos">}</span></span>&#44060;`</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1449" class="blob-num js-line-number js-blob-rnum" data-line-number="1449"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1449" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">continue</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1450" class="blob-num js-line-number js-blob-rnum" data-line-number="1450"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1450" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1451" class="blob-num js-line-number js-blob-rnum" data-line-number="1451"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1451" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1452" class="blob-num js-line-number js-blob-rnum" data-line-number="1452"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1452" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">const</span> <span class="pl-s1">changed</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-en">waitForRowCountChange</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1453" class="blob-num js-line-number js-blob-rnum" data-line-number="1453"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1453" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">activeCleaner</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1454" class="blob-num js-line-number js-blob-rnum" data-line-number="1454"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1454" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">beforeCount</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1455" class="blob-num js-line-number js-blob-rnum" data-line-number="1455"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1455" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">targetKey</span><span class="pl-kos">,</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1456" class="blob-num js-line-number js-blob-rnum" data-line-number="1456"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1456" class="blob-code blob-code-inner js-file-line">      <span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">delayAfterNoConfirmDelete</span> <span class="pl-c1">+</span> <span class="pl-c1">3000</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1457" class="blob-num js-line-number js-blob-rnum" data-line-number="1457"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1457" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1458" class="blob-num js-line-number js-blob-rnum" data-line-number="1458"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1458" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1459" class="blob-num js-line-number js-blob-rnum" data-line-number="1459"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1459" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">changed</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1460" class="blob-num js-line-number js-blob-rnum" data-line-number="1460"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1460" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">deletedCount</span> <span class="pl-c1">+=</span> <span class="pl-c1">1</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1461" class="blob-num js-line-number js-blob-rnum" data-line-number="1461"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1461" class="blob-code blob-code-inner js-file-line">      <span class="pl-s1">deletedKeys</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-s1">targetKey</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1462" class="blob-num js-line-number js-blob-rnum" data-line-number="1462"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1462" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1463" class="blob-num js-line-number js-blob-rnum" data-line-number="1463"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1463" class="blob-code blob-code-inner js-file-line">      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`[AI Chat Cleaner] &#49325;&#51228; &#50756;&#47308;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">deletedCount</span><span class="pl-kos">}</span></span>&#44060;`</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1464" class="blob-num js-line-number js-blob-rnum" data-line-number="1464"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1464" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">await</span> <span class="pl-en">sleep</span><span class="pl-kos">(</span><span class="pl-c1">CONFIG</span><span class="pl-kos">.</span><span class="pl-c1">delayAfterNoConfirmDelete</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1465" class="blob-num js-line-number js-blob-rnum" data-line-number="1465"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1465" class="blob-code blob-code-inner js-file-line">      <span class="pl-k">continue</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1466" class="blob-num js-line-number js-blob-rnum" data-line-number="1466"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1466" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1467" class="blob-num js-line-number js-blob-rnum" data-line-number="1467"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1467" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1468" class="blob-num js-line-number js-blob-rnum" data-line-number="1468"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1468" class="blob-code blob-code-inner js-file-line">    <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1469" class="blob-num js-line-number js-blob-rnum" data-line-number="1469"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1469" class="blob-code blob-code-inner js-file-line">      <span class="pl-s">`[AI Chat Cleaner] &#49325;&#51228; &#54869;&#51064; &#48260;&#53948;&#51012; &#52286;&#51648; &#47803;&#54664;&#44256;, &#47785;&#47197; &#48320;&#54868;&#46020; &#54869;&#51064;&#46104;&#51648; &#50506;&#50520;&#49845;&#45768;&#45796;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">targetTitle</span><span class="pl-kos">}</span></span>`</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1470" class="blob-num js-line-number js-blob-rnum" data-line-number="1470"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1470" class="blob-code blob-code-inner js-file-line">    <span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1471" class="blob-num js-line-number js-blob-rnum" data-line-number="1471"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1471" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">break</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1472" class="blob-num js-line-number js-blob-rnum" data-line-number="1472"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1472" class="blob-code blob-code-inner js-file-line">  <span class="pl-kos">}</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1473" class="blob-num js-line-number js-blob-rnum" data-line-number="1473"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1473" class="blob-code blob-code-inner js-file-line">
</td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1474" class="blob-num js-line-number js-blob-rnum" data-line-number="1474"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1474" class="blob-code blob-code-inner js-file-line">  <span class="pl-en">alert</span><span class="pl-kos">(</span><span class="pl-s">`[<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">activeCleaner</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">}</span></span>] &#52572;&#44540; &#45824;&#54868; &#49325;&#51228; &#51089;&#50629; &#50756;&#47308;: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">deletedCount</span><span class="pl-kos">}</span></span>&#44060;`</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
        <tr>
          <td id="file-ai-chat-history-delete-script-js-L1475" class="blob-num js-line-number js-blob-rnum" data-line-number="1475"></td>
          <td id="file-ai-chat-history-delete-script-js-LC1475" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></td>
        </tr>
  </tbody></table>
</div>


    </div>

  </div>

</div>

      </div>
      <div class="gist-meta">
        <a href="https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238/raw/f6aa117fb2bb14c096e1b1571dfe316a57859f57/ai-chat-history-delete-script.js" style="float:right" class="Link--inTextBlock">view raw</a>
        <a href="https://gist.github.com/catgarret/93849470ec0420b5f464cd79d2f18238#file-ai-chat-history-delete-script-js" class="Link--inTextBlock">
          ai-chat-history-delete-script.js
        </a>
        hosted with &#10084; by <a class="Link--inTextBlock" href="https://github.com">GitHub</a>
      </div>
    </div>
</div>
</div><p>&#51060; &#49828;&#53356;&#47549;&#53944;&#45716; &#44033; &#49436;&#48708;&#49828;&#51032; &#54788;&#51116; &#54868;&#47732; &#44396;&#51312;&#47484; &#44592;&#51456;&#51004;&#47196; &#46041;&#51089;&#54633;&#45768;&#45796;. &#46384;&#46972;&#49436; Gemini, Copilot, Claude, Meta AI&#51032; UI&#45208; &#48260;&#53948; &#44396;&#51312;&#44032; &#48148;&#45068;&#47732; &#51221;&#49345;&#51201;&#51004;&#47196; &#46041;&#51089;&#54616;&#51648; &#50506;&#51012; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#52376;&#51020; &#49324;&#50857;&#54624; &#46412;&#45716; &#47566;&#51008; &#44060;&#49688;&#47484; &#54620; &#48264;&#50640; &#49892;&#54665;&#54616;&#44592;&#48372;&#45796;, 3&#44060;&#50640;&#49436; 5&#44060; &#51221;&#46020;&#47196; &#47676;&#51200; &#53580;&#49828;&#53944;&#54644;&#48372;&#45716; &#44163;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;.</p><p>&#46608;&#54620; &#49325;&#51228; &#45824;&#49345;&#50640;&#45716; &#51473;&#50836;&#54616;&#45796;&#44256; &#49373;&#44033;&#54616;&#45716; &#45824;&#54868;&#44620;&#51648; &#54252;&#54632;&#46112; &#49688; &#51080;&#49845;&#45768;&#45796;. &#49892;&#54665; &#51204; &#45824;&#54868; &#47785;&#47197;&#51012; &#54620; &#48264; &#54869;&#51064;&#54616;&#44256;, &#54596;&#50836;&#54620; &#44592;&#47197;&#51060; &#51080;&#45796;&#47732; &#48324;&#46020;&#47196; &#51200;&#51109;&#54620; &#46244; &#49324;&#50857;&#54616;&#45716; &#44163;&#51060; &#51339;&#49845;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[GSAP ScrollTrigger ]]></title><description><![CDATA[GSAP ScrollTrigger&#47484; &#49324;&#50857;&#54644; &#50937; &#54168;&#51060;&#51648;&#50640;&#49436; &#44032;&#47196; &#49828;&#53356;&#47204; &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#44396;&#54788;&#54620; &#44592;&#47197;&#51077;&#45768;&#45796;. &#49828;&#53356;&#47204; &#44592;&#48152; &#51064;&#53552;&#47001;&#49496;&#44284; &#54532;&#47200;&#53944;&#50644;&#46300; &#50528;&#45768;&#47700;&#51060;&#49496; &#44396;&#49457;&#51012; &#49892;&#54744;&#54633;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/gsap-scrolltrigger</link><guid isPermaLink="false">https://lab.dongri.me/p/gsap-scrolltrigger</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Wed, 01 Jan 2025 15:25:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ivfd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ivfd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ivfd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 424w, https://substackcdn.com/image/fetch/$s_!Ivfd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 848w, https://substackcdn.com/image/fetch/$s_!Ivfd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 1272w, https://substackcdn.com/image/fetch/$s_!Ivfd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ivfd!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:11998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/153901093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ivfd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 424w, https://substackcdn.com/image/fetch/$s_!Ivfd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 848w, https://substackcdn.com/image/fetch/$s_!Ivfd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 1272w, https://substackcdn.com/image/fetch/$s_!Ivfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe04f32a-21e1-4019-ab03-b36825cc0e04_1456x819.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#50937;&#50640;&#49436; &#55124;&#55176; &#49324;&#50857;&#46104;&#45716; &#51064;&#44592; &#51080;&#45716; &#51064;&#53552;&#47001;&#49496;&#51012; &#44861;&#51088;&#47732;, &#45800;&#50672; <strong>&#49828;&#53356;&#47204; &#50528;&#45768;&#47700;&#51060;&#49496;</strong>&#51068; &#44163;&#51077;&#45768;&#45796;.</p><p>&#44284;&#44144;&#50640;&#45716; jQuery &#54540;&#47084;&#44536;&#51064;&#51012; &#49324;&#50857;&#54616;&#50668; &#44036;&#45800;&#55176; &#52628;&#44032;&#54616;&#44256; &#50557;&#44036;&#51032; &#49688;&#51221;&#51012; &#53685;&#54644; &#50896;&#54616;&#45716; &#44592;&#45733;&#51012; &#44396;&#54788;&#54616;&#44260; &#54664;&#49845;&#45768;&#45796;. &#54616;&#51648;&#47564; &#51060;&#51228;&#45716; jQuery &#49324;&#50857;&#51012; &#51648;&#50577;&#54616;&#45716; &#52628;&#49464;&#46972; &#54876;&#50857;&#54616;&#44592;&#44032; &#49789;&#51648; &#50506;&#49845;&#45768;&#45796;. &#49828;&#53356;&#47204;&#54624; &#46412; &#53080;&#53584;&#52768;&#44032; sticky &#49345;&#53468;&#47196; &#48320;&#54616;&#44144;&#45208; &#53945;&#51221; &#50948;&#52824;&#50640;&#49436; &#50528;&#45768;&#47700;&#51060;&#49496; &#54952;&#44284;&#47484; &#51452;&#44592; &#50948;&#54644; &#44284;&#44144;&#50640;&#45716; <strong><a href="https://prinzhorn.github.io/skrollr/">Skrollr</a></strong>&#45208; <strong><a href="https://github.com/janpaepke/ScrollMagic">ScrollMagic</a></strong><a href="https://github.com/janpaepke/ScrollMagic"> </a>&#44057;&#51008; JavaScript &#46972;&#51060;&#48652;&#47084;&#47532;&#47484; &#51452;&#47196; &#49324;&#50857;&#54664;&#49845;&#45768;&#45796;. &#54616;&#51648;&#47564; &#52572;&#44540;&#50640;&#45716; <strong><a href="https://gsap.com/">GSAP</a></strong><a href="https://gsap.com/">(GreenSock Animation Platform)</a>&#44032; &#45824;&#49464;&#51064; &#46319;&#54633;&#45768;&#45796;.</p><p>GSAP&#47196; &#51204;&#54872;&#46108; &#51648;&#46020; &#44900; &#50724;&#47000;&#46108; &#44163; &#44057;&#51008;&#45936;, &#50612;&#47157;&#44172; &#45712;&#44788;&#51256;&#49436; &#50628;&#46160;&#47484; &#45236;&#51648; &#47803;&#54616;&#45796;&#44032; &#51060;&#48264;&#50640; &#47560;&#51020;&#51012; &#45796;&#51105;&#44256; <strong>GSAP&#51032; ScrollTrigger&#47484; &#54876;&#50857;&#54644; &#44032;&#47196; &#49828;&#53356;&#47204; &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#44396;&#54788;</strong>&#54644;&#48372;&#50520;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w3a_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w3a_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 424w, https://substackcdn.com/image/fetch/$s_!w3a_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 848w, https://substackcdn.com/image/fetch/$s_!w3a_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 1272w, https://substackcdn.com/image/fetch/$s_!w3a_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w3a_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:464452,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/153901093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w3a_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 424w, https://substackcdn.com/image/fetch/$s_!w3a_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 848w, https://substackcdn.com/image/fetch/$s_!w3a_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 1272w, https://substackcdn.com/image/fetch/$s_!w3a_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe822deaa-ba2c-4bbe-a9a7-ac0ff808e264_1456x819.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#49324;&#49892; &#52376;&#51020;&#50640;&#45716; &#44397;&#45236;&#50640;&#49436; &#51060;&#47484; &#44396;&#54788;&#54620; &#49324;&#47168;&#45208; &#53076;&#46300; &#50696;&#51228;&#47484; &#52280;&#44256;&#54616;&#47140; &#54664;&#51648;&#47564;, &#51060;&#54644;&#54616;&#44592; &#49789;&#51648; &#50506;&#50520;&#49845;&#45768;&#45796;. <strong><a href="https://scroll-driven-animations.style/">WAAPI &#49828;&#53356;&#47204; &#44592;&#48152; &#50528;&#45768;&#47700;&#51060;&#49496;</a></strong>&#51012; &#49324;&#50857;&#54620;&#45796;&#47732; CSS&#47564;&#51004;&#47196; &#45908; &#49789;&#44172; &#44396;&#54788;&#51060; &#44032;&#45733;&#54616;&#44192;&#51648;&#47564; &#50500;&#51649; &#47784;&#46304; &#48652;&#46972;&#50864;&#51200;&#50640;&#49436; &#51648;&#50896;&#54616;&#51648; &#50506;&#44592; &#46412;&#47928;&#50640; &#51228;&#44032; &#51060;&#54644;&#54624; &#49688; &#51080;&#45716; &#48169;&#49885;&#51004;&#47196; &#51221;&#47532;&#54616;&#44256; &#44592;&#47197;&#54644;&#48372;&#50520;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>GSAP(+ScrollTrigger) &#49464;&#54021;&#54616;&#44592;</h3><p>&#46972;&#51060;&#48652;&#47084;&#47532; &#49464;&#54021;&#51008; GSAP &#44277;&#49885; &#44032;&#51060;&#46300; &#45236;&#51032; <a href="https://gsap.com/docs/v3/Installation">Installation</a>&#51012; &#53685;&#54644; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.<br>&#51200;&#45716; &#51221;&#51201;&#51064; &#54168;&#51060;&#51648;&#47196; &#53580;&#49828;&#53944; &#54624;&#44144;&#46972; CDN &#49828;&#53356;&#47549;&#53944; &#53468;&#44536;&#47484; &#49341;&#51077;&#54664;&#49845;&#45768;&#45796;.</p><pre><code>&lt;script src="//cdnjs.cloudflare.com/ajax/libs/gsap/3.12.4/gsap.min.js"&gt;&lt;/script&gt;
&lt;script src="//cdnjs.cloudflare.com/ajax/libs/gsap/3.12.4/ScrollTrigger.min.js"&gt;&lt;/script&gt;</code></pre><h3>&#47560;&#53356;&#50629; &#44396;&#51312;</h3><p>&#51204;&#52404;&#47484; &#44048;&#49912;&#45716; wrap&#50504;&#50640; &#44033; section&#51060; &#49464;&#44060;&#44032; &#46308;&#50612;&#44032;&#44256;, &#46160; &#48264;&#51704; &#49465;&#49496;&#50640;&#49436; &#44032;&#47196; &#49828;&#53356;&#47204;&#51012; &#44396;&#54788;&#54616;&#44256;&#51088; &#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1rIt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1rIt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 424w, https://substackcdn.com/image/fetch/$s_!1rIt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 848w, https://substackcdn.com/image/fetch/$s_!1rIt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 1272w, https://substackcdn.com/image/fetch/$s_!1rIt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1rIt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png" width="1373" height="932" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:932,&quot;width&quot;:1373,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33769,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1rIt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 424w, https://substackcdn.com/image/fetch/$s_!1rIt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 848w, https://substackcdn.com/image/fetch/$s_!1rIt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 1272w, https://substackcdn.com/image/fetch/$s_!1rIt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee1e02b-cb5a-474c-ba78-6c9e819c8fb4_1373x932.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><pre><code>&lt;div class="wrap"&gt;
  &lt;div class="section intro"&gt;
    Section 01
  &lt;/div&gt;
  &lt;div class="section xScroll"&gt;
    &lt;p&gt;Section 02&lt;/p&gt;
    &lt;img src="https://dummyimage.com/800x400/000/fff"&gt;
    &lt;img src="https://dummyimage.com/800x400/000/fff"&gt;
    &lt;img src="https://dummyimage.com/800x400/000/fff"&gt;
    &lt;img src="https://dummyimage.com/800x400/000/fff"&gt;
    &lt;img src="https://dummyimage.com/800x400/000/fff"&gt;
  &lt;/div&gt;
  &lt;div class="section end"&gt;
    Section 03&lt;br&gt;DONE!
  &lt;/div&gt;
&lt;/div&gt;</code></pre><h3>CSS &#49464;&#54021;</h3><pre><code>.wrap {
  <strong>overflow-x: hidden; </strong>// &#44032;&#47196; &#49828;&#53356;&#47204; &#51228;&#44144;
}

.section {
  <strong>min-width: 100vw; </strong>// &#48624;&#54252;&#53944; &#52572;&#45824; &#45320;&#48708; &#51648;&#51221;<strong>
  min-height: 100vh;</strong> // &#48624;&#54252;&#53944; &#52572;&#45824; &#45458;&#51060; &#51648;&#51221;

  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
}</code></pre><p>&#48372;&#53685; &#44032;&#47196; &#49828;&#53356;&#47204;&#51012; &#51201;&#50857;&#54616;&#45716; &#54168;&#51060;&#51648;&#45716; &#48624;&#54252;&#53944;&#50640; &#44873; &#52264;&#45716; &#50689;&#50669;&#50640; &#44256;&#51221;&#46104;&#44256;, &#44536; &#50504;&#50640;&#49436; &#44032;&#47196; &#53080;&#53584;&#52768;&#44032; &#49828;&#53356;&#47204;&#46104;&#46020;&#47197; &#44396;&#54788;&#54633;&#45768;&#45796;. &#51060;&#47484; &#50948;&#54644; &#44033; &#49465;&#49496;&#51032; &#52572;&#49548; &#45320;&#48708;&#50752; &#45458;&#51060;&#47484; &#44033;&#44033; <strong>100vw</strong>&#50752; <strong>100vh</strong>&#47196; &#49444;&#51221;&#54616;&#50688;&#49845;&#45768;&#45796;.</p><p>&#46608;&#54620;, &#46160; &#48264;&#51704; &#49465;&#49496;&#51032; &#44032;&#47196;&#47196; &#45208;&#50676;&#46108; &#53080;&#53584;&#52768;&#47196; &#51064;&#54644; &#54168;&#51060;&#51648; &#51204;&#52404;&#50640; &#44032;&#47196; &#49828;&#53356;&#47204;&#51060; &#49373;&#44592;&#45716; &#44163;&#51012; &#48169;&#51648;&#54616;&#44592; &#50948;&#54644;, <code>div.section</code>&#51012; &#44048;&#49912;&#44256; &#51080;&#45716; <code>div.wrap</code>&#51032; &#44032;&#47196; &#49828;&#53356;&#47204;&#51012; &#51228;&#44144;&#54616;&#50688;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aKh1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aKh1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 424w, https://substackcdn.com/image/fetch/$s_!aKh1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 848w, https://substackcdn.com/image/fetch/$s_!aKh1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 1272w, https://substackcdn.com/image/fetch/$s_!aKh1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aKh1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png" width="1266" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1266,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14760,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aKh1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 424w, https://substackcdn.com/image/fetch/$s_!aKh1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 848w, https://substackcdn.com/image/fetch/$s_!aKh1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 1272w, https://substackcdn.com/image/fetch/$s_!aKh1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa140ed63-dc1e-474d-b616-d74239868bfa_1266x684.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">div.wrap&#50640; <code>overflow-x: hidden&#51012; &#51452;&#51648; &#50506;&#51004;&#47732;, &#44032;&#47196; &#49828;&#53356;&#47204;&#51060; &#49373;&#44609;&#45768;&#45796;.</code></figcaption></figure></div><p>&#46160; &#48264;&#51704; &#49465;&#49496;&#51008; &#53080;&#53584;&#52768;&#44032; &#44032;&#47196;&#47196; &#49828;&#53356;&#47204; &#46104;&#46020;&#47197; &#44396;&#54788;&#54644;&#50556; &#54616;&#44592; &#46412;&#47928;&#50640;, &#49465;&#49496;&#51032; <strong>width</strong>&#47484; &#53080;&#53584;&#52768; &#45320;&#48708;&#50752; &#46041;&#51068;&#54616;&#44172; &#49444;&#51221;&#54616;&#50688;&#49845;&#45768;&#45796;. &#46608;&#54620;, &#49465;&#49496; &#44036;&#51032; &#44396;&#48516;&#51012; &#47749;&#54869;&#55176; &#54616;&#44256;, &#53080;&#53584;&#52768;&#47484; &#48372;&#44592; &#51339;&#44172; &#54616;&#44592; &#50948;&#54644; &#44592;&#48376;&#51201;&#51064; &#49828;&#53440;&#51068;&#51012; &#51648;&#51221;&#54616;&#47728; CSS &#49464;&#54021;&#51012; &#47560;&#47924;&#47532;&#54616;&#50688;&#49845;&#45768;&#45796;.</p><pre><code>body {
  margin: 0;
  padding: 0;
}

.wrap {
  overflow-x: hidden;
}

.section {
  display: flex;
  align-items: center;

  text-align: center;
  min-width: 100vw;
  min-height: 100vh;

  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
}

/* &#52395;&#48264;&#51704; &#49465;&#49496; */
.intro {
  justify-content: center;
  background: #f2f2f2;
}


/* &#46160;&#48264;&#51704; &#49465;&#49496; (&#44032;&#47196; &#49828;&#53356;&#47204;) */
.xScroll {
  gap: 200px;
  background: #ddd;
  width: max-content;
}

.xScroll p {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 800px;
  height: 400px;
  background: #fff;
  margin-left: calc((100vw - 800px)/2);
}

.xScroll img:last-child {
  margin-right: calc((100vw - 800px)/2);
}

.xScroll img {
  width: 800px;
  height: 400px;
}

/* &#49464;&#48264;&#51704; &#49465;&#49496; */
.end {
  justify-content: center;
  background: #000;
  color: #fff;
}</code></pre><p>CSS &#51201;&#50857; &#49884; &#50500;&#47000;&#50752; &#44057;&#51060; &#45208;&#53440;&#45225;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1MZH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1MZH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 424w, https://substackcdn.com/image/fetch/$s_!1MZH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 848w, https://substackcdn.com/image/fetch/$s_!1MZH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 1272w, https://substackcdn.com/image/fetch/$s_!1MZH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1MZH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif" width="922" height="594" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09715afe-3a3f-4354-a26e-31253474b308_922x594.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:594,&quot;width&quot;:922,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:515723,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1MZH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 424w, https://substackcdn.com/image/fetch/$s_!1MZH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 848w, https://substackcdn.com/image/fetch/$s_!1MZH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 1272w, https://substackcdn.com/image/fetch/$s_!1MZH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09715afe-3a3f-4354-a26e-31253474b308_922x594.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>GSAP ScrollTrigger&#51012; &#53685;&#54620; &#44032;&#47196; &#49828;&#53356;&#47204; &#51201;&#50857;&#54616;&#44592;</h3><p>CDN &#49828;&#53356;&#47549;&#53944;&#47484; &#49341;&#51077;&#54616;&#44256; &#44592;&#48376;&#51201;&#51064; HTML &#48143; CSS &#47560;&#53356;&#50629; &#51089;&#50629;&#51012; &#47560;&#52452;&#45796;&#47732;, &#51060;&#51228; <strong>GSAP ScrollTrigger</strong>&#47484; &#49324;&#50857;&#54644; &#48376;&#44201;&#51201;&#51004;&#47196; &#44032;&#47196; &#49828;&#53356;&#47204;&#51012; &#44396;&#54788;&#54644;&#48389;&#45768;&#45796;.</p><p>&#47676;&#51200; ScrollTrigger&#47484; <strong>&#46321;&#47197;(&#49440;&#50616;)</strong> &#54644;&#51469;&#45768;&#45796;. &#51060;&#54980; ScrollTrigger &#50808;&#50640; GSAP&#51032; &#45796;&#50577;&#54620; &#54540;&#47084;&#44536;&#51064;&#51012; &#49324;&#50857;&#54624; &#44221;&#50864;&#50640;&#46020; &#46041;&#51068;&#54616;&#44172; <code>gsap.registerPlugin()</code> &#50504;&#50640; &#49324;&#50857;&#54616;&#47140;&#45716; &#54540;&#47084;&#44536;&#51064;&#51012; &#45347;&#51004;&#47732; &#46121;&#45768;&#45796;. &#50668;&#47084; &#44060;&#47484; &#46321;&#47197;&#54624; &#46412;&#45716; <strong>&#53092;&#47560;(,)</strong>&#47196; &#44396;&#48516;&#54633;&#45768;&#45796;.</p><pre><code><code>  gsap.registerPlugin(ScrollTrigger);</code></code></pre><p>GSAP ScrollTrigger&#47484; &#49324;&#50857;&#54620; &#44032;&#47196; &#49828;&#53356;&#47204;&#51008; &#49892;&#51228; &#48652;&#46972;&#50864;&#51200;&#51032; &#44592;&#48376; &#44032;&#47196; &#49828;&#53356;&#47204;&#51060; &#50500;&#45772;, <strong>&#49464;&#47196; &#49828;&#53356;&#47204; &#50689;&#50669;&#51012; &#54869;&#51109;</strong>&#54616;&#44256;, <code>transformX</code>&#47484; &#49324;&#50857;&#54644; &#53080;&#53584;&#52768;&#51032; &#44032;&#47196; &#50948;&#52824;&#47484; &#51312;&#51221;&#54616;&#45716; &#48169;&#49885;&#51004;&#47196; &#44396;&#54788;&#46121;&#45768;&#45796;. &#51060;&#47484; &#50948;&#54644; &#47676;&#51200;, &#44032;&#47196; &#53080;&#53584;&#52768;&#47484; &#44048;&#49912;&#44256; &#51080;&#45716; &#46160; &#48264;&#51704; &#49465;&#49496;(<code>.xScroll</code>)&#51032; <strong>&#44032;&#47196; &#53080;&#53584;&#52768; &#44600;&#51060;</strong>&#47484; &#44396;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><p><strong>&#44032;&#47196; &#53080;&#53584;&#52768; &#44600;&#51060;&#45716; &#53080;&#53584;&#52768;&#51032; &#51204;&#52404; &#44600;&#51060;&#50640;&#49436; &#54788;&#51116; &#48624;&#54252;&#53944;&#51032; &#45320;&#48708;(&#48652;&#46972;&#50864;&#51200; &#52285; &#45320;&#48708;)&#47484; &#48764;&#49436; &#44228;&#49328;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</strong> &#51060;&#45716; &#44032;&#47196; &#53080;&#53584;&#52768;&#44032; &#48624;&#54252;&#53944;&#47484; &#45336;&#50612;&#49436;&#45716; &#48512;&#48516;&#51032; &#44600;&#51060;&#47484; &#44396;&#54616;&#44592; &#50948;&#54632;&#51077;&#45768;&#45796;.</p><pre><code><code>// &#44032;&#47196; &#49828;&#53356;&#47204;&#51060; &#51201;&#50857;&#46112; &#46160; &#48264;&#51704; &#49465;&#49496;(.xScroll) &#51648;&#51221;
const xScroll = document.querySelector(".xScroll");

// &#53080;&#53584;&#52768; &#51204;&#52404; &#44600;&#51060;(scrollWidth)&#50640;&#49436; &#54788;&#51116; &#48624;&#54252;&#53944;&#51032; &#45320;&#48708;(window.innerWidth)&#47484; &#48768; &#44050;&#51012; &#53685;&#54644; &#44032;&#47196; &#49828;&#53356;&#47204; &#49884; &#51060;&#46041;&#54644;&#50556; &#54624; &#51204;&#52404; &#44600;&#51060; &#44228;&#49328;
const xScrollWidth = xScroll.scrollWidth - window.innerWidth;</code></code></pre><p>&#51060;&#50612;&#49436; GSAP&#50752; ScrollTrigger &#49444;&#51221;&#51012; &#54633;&#45768;&#45796;.</p><pre><code>gsap.to(xScroll, {
  x: -xScrollWidth, // &#53080;&#53584;&#52768;&#44032; &#44032;&#47196;&#47196; &#51060;&#46041;(&#49828;&#53356;&#47204;)&#46104;&#44172;&#45140; &#51020;&#49688;&#47196; &#49444;&#51221;
  ease: "none", // &#50528;&#45768;&#47700;&#51060;&#49496;&#50640; &#44032;&#49549;&#46020; &#54952;&#44284;&#47484; &#49324;&#50857;&#54616;&#51648; &#50506;&#51020;
  scrollTrigger: {
    trigger: xScroll, // &#53944;&#47532;&#44144; &#50836;&#49548; &#51648;&#51221;
    start: "top top", // xScroll&#51032; &#49345;&#45800;&#44284; &#48652;&#46972;&#50864;&#51200; &#49345;&#45800;&#51060; &#47582;&#45823;&#51012; &#46412; &#50528;&#45768;&#47700;&#51060;&#49496; &#49884;&#51089;
    end: `+=${xScrollWidth}`, // xScroll&#51032; &#53080;&#53584;&#52768; &#45320;&#48708;&#47564;&#53372; &#49828;&#53356;&#47204; &#54980; &#50528;&#45768;&#47700;&#51060;&#49496; &#51333;&#47308;
    scrub: true, // &#49828;&#53356;&#47204; &#51652;&#54665;&#50640; &#46384;&#46972; &#50528;&#45768;&#47700;&#51060;&#49496;&#51060; &#46041;&#44592;&#54868;&#46104;&#50612; &#51652;&#54665;
    pin: true, // &#49828;&#53356;&#47204; &#51473;&#50640; &#50836;&#49548;&#47484; &#44256;&#51221;&#54616;&#50668; &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#49892;&#54665;
    anticipatePin: 1, // &#49828;&#53356;&#47204; &#53944;&#47532;&#44144; &#50836;&#49548;&#51032; &#50948;&#52824;&#47484; &#50696;&#52769;&#54616;&#50668; &#49828;&#53356;&#47204; &#49884; &#53888;&#45716; &#54952;&#44284; &#48169;&#51648;
    markers: false, // &#46356;&#48260;&#44536;&#50857; &#47560;&#52964; &#54364;&#49884;
  }
});</code></pre><p>&#46160; &#48264;&#51704; &#49465;&#49496;&#51064; <code>xScroll</code>&#51012; &#50812;&#51901;&#51004;&#47196; &#51060;&#46041;(&#44032;&#47196; &#49828;&#53356;&#47204;)&#49884;&#53412;&#44592; &#50948;&#54644;, <code>gsap.to()</code>&#47484; &#49324;&#50857;&#54616;&#50668; <code>xScroll</code>&#51012; &#51648;&#51221;&#54616;&#44256; <code>x</code> &#44050;&#51012; &#51020;&#49688;&#47196; &#49444;&#51221;&#54633;&#45768;&#45796;. (&#50577;&#49688;&#51068; &#44221;&#50864; &#50864;&#52769;&#51004;&#47196; &#51060;&#46041;&#54633;&#45768;&#45796;.)</p><p>&#44536; &#54980;, <code>ScrollTrigger</code> &#54540;&#47084;&#44536;&#51064;&#51012; &#49444;&#51221;&#54633;&#45768;&#45796;. <code>xScroll</code> &#50689;&#50669;&#50640; &#51652;&#51077;&#54616;&#47732; &#44032;&#47196; &#49828;&#53356;&#47204;&#51060; &#46104;&#50612;&#50556; &#54616;&#48064;&#47196;, <code>xScroll</code>&#51012; &#53944;&#47532;&#44144;&#47196; &#51648;&#51221;&#54633;&#45768;&#45796;.</p><p><code>start</code>&#50752; <code>end</code>&#45716; &#44033;&#44033; &#50528;&#45768;&#47700;&#51060;&#49496;&#51032; &#49884;&#51089; &#51648;&#51216;&#44284; &#45149; &#51648;&#51216;&#51012; &#49444;&#51221;&#54616;&#45716; &#50669;&#54624;&#51012; &#54616;&#47728;, &#53944;&#47532;&#44144; &#50836;&#49548;&#51032; &#44592;&#51456; &#50948;&#52824;&#50752; &#48624;&#54252;&#53944;(&#48652;&#46972;&#50864;&#51200; &#54868;&#47732;)&#51032; &#44592;&#51456; &#50948;&#52824; &#46160; &#44032;&#51648; &#44050;&#51004;&#47196; &#46041;&#51089;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U-ML!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U-ML!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 424w, https://substackcdn.com/image/fetch/$s_!U-ML!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 848w, https://substackcdn.com/image/fetch/$s_!U-ML!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 1272w, https://substackcdn.com/image/fetch/$s_!U-ML!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U-ML!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png" width="1221" height="659" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:659,&quot;width&quot;:1221,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43145,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U-ML!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 424w, https://substackcdn.com/image/fetch/$s_!U-ML!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 848w, https://substackcdn.com/image/fetch/$s_!U-ML!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 1272w, https://substackcdn.com/image/fetch/$s_!U-ML!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0e1f6a-f52f-4535-b706-5cfdbba53d06_1221x659.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#50696;&#47484; &#46308;&#50612;, <code>div.xScroll</code>&#50640; <code>start: "top center"</code>&#47484; &#51648;&#51221;&#54664;&#45796;&#44256; &#44032;&#51221;&#54620;&#45796;&#47732;, <code>div.xScroll</code>&#51032; &#49345;&#45800;&#51060; &#48652;&#46972;&#50864;&#51200;&#51032; &#51473;&#50521;&#50640; &#50948;&#52824;&#54624; &#46412; &#53944;&#47532;&#44144;&#44032; &#49884;&#51089;&#46108;&#45796;&#44256; &#51060;&#54644;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p><code>end</code>&#50640;&#45716; <code>div.xScroll</code>&#44032; &#52509; &#44032;&#47196; &#49828;&#53356;&#47204; &#44600;&#51060;&#47564;&#53372; &#49464;&#47196;&#47196; &#49828;&#53356;&#47204; &#49884; &#51333;&#47308;&#46104;&#44172;&#45140; &#54616;&#44592; &#50948;&#54644; <code>+=${xScrollWidth}</code>&#47484; &#51077;&#47141;&#54633;&#45768;&#45796;.</p><p><code>scrub</code>, <code>pin</code>, <code>anticipatePin</code>, <code>markers</code>&#45716; &#50948; &#53076;&#46300;&#50640; &#54632;&#44760; &#44592;&#51116;&#54620; &#51452;&#49437;&#50640; &#45804;&#47536; &#49444;&#47749;&#51004;&#47196; &#45824;&#52404;&#54633;&#45768;&#45796;. <code>scrub</code>, <code>pin</code>, <code>anticipatePin</code>&#51008; GSAP ScrollTrigger&#47196; &#44032;&#47196; &#49828;&#53356;&#47204;&#51012; &#44396;&#54788;&#54624; &#46412; &#44592;&#48376;&#44050; &#44536;&#45824;&#47196; &#49324;&#50857;&#54620;&#45796;&#44256; &#48372;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><h3>&#44208;&#44284;&#47932;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7KfB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7KfB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 424w, https://substackcdn.com/image/fetch/$s_!7KfB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 848w, https://substackcdn.com/image/fetch/$s_!7KfB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 1272w, https://substackcdn.com/image/fetch/$s_!7KfB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7KfB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif" width="856" height="578" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:578,&quot;width&quot;:856,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:969489,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7KfB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 424w, https://substackcdn.com/image/fetch/$s_!7KfB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 848w, https://substackcdn.com/image/fetch/$s_!7KfB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 1272w, https://substackcdn.com/image/fetch/$s_!7KfB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69fd2221-6bfa-4bba-bd44-0e78af129ff3_856x578.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://jsfiddle.net/dongris/145e0zct/7/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kO04!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 424w, https://substackcdn.com/image/fetch/$s_!kO04!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 848w, https://substackcdn.com/image/fetch/$s_!kO04!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 1272w, https://substackcdn.com/image/fetch/$s_!kO04!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kO04!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png" width="890" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:890,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9913,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://jsfiddle.net/dongris/145e0zct/7/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kO04!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 424w, https://substackcdn.com/image/fetch/$s_!kO04!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 848w, https://substackcdn.com/image/fetch/$s_!kO04!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 1272w, https://substackcdn.com/image/fetch/$s_!kO04!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb0271ef-dd92-44b4-8aeb-ef5134e76732_890x397.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51060;&#48120;&#51648; &#53364;&#47533; &#49884;, JS Fiddle&#50640;&#49436; &#44208;&#44284;&#47932;&#51012; &#51649;&#51217; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>&#51060;&#47111;&#44172; &#44032;&#47196; &#49828;&#53356;&#47204; &#44396;&#54788;&#51060; &#45149;&#45228;&#49845;&#45768;&#45796;. &#44536;&#47088;&#45936; &#44544; &#52488;&#48152;&#50640; &#49341;&#51077;&#46108; &#44396;&#46041; &#50689;&#49345;&#44284; &#45804;&#47532; &#47956;&#44032; &#48736;&#51652; &#48512;&#48516;&#51060; &#51080;&#45716; &#44163; &#44057;&#49845;&#45768;&#45796;.</p><p>&#49828;&#53356;&#47204;&#51060; &#45149;&#45208;&#47732; <code>div.xScroll</code> &#48176;&#44221;&#49353;&#51060; &#48148;&#45068;&#44256;, &#51060;&#54980; &#49828;&#53356;&#47204; &#49884; &#46244;&#50640; &#51080;&#45716; &#49464; &#48264;&#51704; &#49465;&#49496;(<code>div.end</code>)&#51060; &#44256;&#51221;&#46108; &#52292;&#47196; &#46300;&#47084;&#45208;&#45716; &#48512;&#48516;&#51060; &#48736;&#51276;&#45348;&#50836;.</p><p>&#51312;&#44552; &#44592;&#44368;&#47484; &#48512;&#47140;&#48420;&#49845;&#45768;&#45796;. <code>scrollTrigger</code>&#51032; <code>onUpdate</code> &#49549;&#49457;&#51012; &#54876;&#50857;&#54644; &#50528;&#45768;&#47700;&#51060;&#49496;&#51032; &#49884;&#51089;&#44284; &#45149;&#51012; &#54028;&#50501;&#54616;&#44256;, &#48176;&#44221;&#49353; &#48320;&#54868;&#47484; &#51452;&#50632;&#49845;&#45768;&#45796;. &#48176;&#44221;&#49353; &#48320;&#44221; &#50808;&#50640;&#46020; &#45796;&#50577;&#54620; &#46356;&#51088;&#51064; &#54952;&#44284;&#45208; &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#51201;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#49464; &#48264;&#51704; &#49465;&#49496;(<code>div.end</code>)&#51060; &#49828;&#53356;&#47204; &#49884; &#44256;&#51221;&#46108; &#52292;&#47196; &#46300;&#47084;&#45208;&#45716; &#48512;&#48516;&#51008; <code>position</code>&#44284; <code>z-index</code>&#47484; &#51060;&#50857;&#54644; &#52376;&#47532;&#54664;&#49845;&#45768;&#45796;. &#51060; &#48512;&#48516;&#51008; &#44544;&#51012; &#51069;&#51004;&#49884;&#45716; &#48516;&#51060; &#50500;&#47000; GitHub&#50640; &#54840;&#49828;&#54021;&#46108; &#47553;&#53356;&#47484; &#53685;&#54644; &#51649;&#51217; &#54869;&#51064;&#54644; &#48372;&#49892; &#49688; &#51080;&#46020;&#47197; &#51116;&#48120;(?) &#50836;&#49548;&#47196; &#45224;&#44200;&#46160;&#44192;&#49845;&#45768;&#45796;.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://git.dongri.me/example/gsap_scrollTrigger/&quot;,&quot;text&quot;:&quot;[&#49900;&#54868;] GASP ScrollTrigger - &#44032;&#47196; &#50528;&#45768;&#47700;&#51060;&#49496;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://git.dongri.me/example/gsap_scrollTrigger/"><span>[&#49900;&#54868;] GASP ScrollTrigger - &#44032;&#47196; &#50528;&#45768;&#47700;&#51060;&#49496;</span></a></p><p>&#51060;&#51228; &#44396;&#54788;&#51060; &#45149;&#45228;&#51004;&#45768;, &#50668;&#47084;&#48516;&#46020; &#51649;&#51217; &#49828;&#53356;&#47204;&#51012; &#49884;&#46020;&#54644; &#48372;&#49464;&#50836;! (&#44536;&#47100; &#47956;&#44032;&#44032; &#48320;&#54624; &#44144;&#50696;&#50836;!) </p><p></p>]]></content:encoded></item><item><title><![CDATA[Windows Bluetooth 연결 자동화 하기]]></title><description><![CDATA[Windows Bluetooth &#50672;&#44208; &#51088;&#46041;&#54868; &#54616;&#44592;&#50640; &#45824;&#54620; &#44060;&#48156; &#44592;&#47197;&#51077;&#45768;&#45796;. Windows, Bluetooth, Automation &#44288;&#47144; &#49444;&#51221;, &#49324;&#50857;&#48277;, &#44396;&#54788; &#44284;&#51221;&#50640;&#49436; &#54869;&#51064;&#54620; &#54645;&#49900; &#54252;&#51064;&#53944;&#47484; &#44036;&#45800;&#55176; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/windows-bluetooth</link><guid isPermaLink="false">https://lab.dongri.me/p/windows-bluetooth</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Wed, 09 Oct 2024 13:03:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ztkG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ztkG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ztkG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ztkG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ztkG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ztkG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ztkG!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1254382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/150005445?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ztkG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ztkG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ztkG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ztkG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2654248b-a383-4276-b7a6-b75bcfc4976c_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c495566d-2169-4079-98be-cf3196c1300e&quot;,&quot;caption&quot;:&quot;&#47589;&#48513;&#54532;&#47196;&#47484; &#53364;&#47016;&#49528; &#47784;&#46300;&#47196; &#50024;&#50724;&#45796;&#44032; &#51089;&#45380; &#48176;&#53552;&#47532; &#49828;&#50928;&#47553;&#51004;&#47196; &#54620;&#48264; &#44144;&#44552;&#51012; &#51452;&#44256; &#44368;&#52404;&#54664;&#49845;&#45768;&#45796;. K-&#51649;&#51109;&#51064; &#49373;&#54876;&#51012; &#54616;&#45796; &#48372;&#45768; &#49373;&#49328;&#51201;&#51064; &#51089;&#50629;&#48372;&#45796;&#45716; &#45800;&#49692; &#44172;&#51076;(&#49828;&#53440;&#53356;&#47000;&#54532;&#53944;)&#51060;&#45208; &#50976;&#53916;&#48652;, &#50937;&#49436;&#54609; &#50857;&#46020;&#47196;&#47564; &#50416;&#44256; &#51080;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;INTEL NUC13 (NUC13ANKi7) &#44396;&#47588; &#54980;&#44592;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a599190-071c-480d-85f9-f188e161e86d_750x1334.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-07-14T12:25:11.757Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b8ecb-22fb-4314-92db-8c39e573ab7f_3814x2880.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/nuc13-nuc13anki7&quot;,&quot;section_name&quot;:&quot;&#128269; Review&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:146398161,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;&#46041;&#44536;&#47532; &#50672;&#44396;&#49548;&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>NUC 13&#50640;&#45716; &#45236;&#51109; &#49828;&#54588;&#52964;&#44032; &#50630;&#50612;, &#44396;&#44544; Nest Hub&#47484; &#48660;&#47336;&#53804;&#49828; &#49828;&#54588;&#52964;&#47196; &#50672;&#44208;&#54644; &#49324;&#50857;&#54616;&#44256; &#51080;&#49845;&#45768;&#45796;. </p><p>&#54168;&#50612;&#47553;&#51008; &#46104;&#50612; &#51080;&#51648;&#47564;, &#45796;&#47480; &#48660;&#47336;&#53804;&#49828; &#44592;&#44592;&#46308;&#44284; &#45804;&#47532; &#51088;&#46041;&#51004;&#47196; &#50672;&#44208;&#46104;&#51648; &#50506;&#50500; PC&#47484; &#49324;&#50857;&#54624; &#46412;&#47560;&#45796; &#49688;&#46041;&#51004;&#47196; &#50672;&#44208;&#54644;&#50556; &#54616;&#45716; &#48520;&#54200;&#54632;&#51060; &#51080;&#50632;&#49845;&#45768;&#45796;. &#48512;&#54021; &#46608;&#45716; &#47196;&#44536;&#51064; &#49884; &#51088;&#46041;&#51004;&#47196; Nest Hub&#50752; &#50672;&#44208;&#54624; &#49688; &#51080;&#45716; &#48169;&#48277;&#51060; &#51080;&#51012;&#51648; &#52286;&#50500;&#48372;&#50520;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>Bluetooth command line tools</h3><p>&#52376;&#51020;&#50640;&#45716; PowerShell &#49828;&#53356;&#47549;&#53944;&#47564;&#51004;&#47196; &#48660;&#47336;&#53804;&#49828; &#51228;&#50612;&#44032; &#44032;&#45733;&#54624; &#51460; &#50508;&#50520;&#51004;&#45208;, &#51648;&#50896;&#46104;&#51648; &#50506;&#45716; &#44163; &#44057;&#50520;&#49845;&#45768;&#45796;. &#45824;&#49888;, Microsoft Windows&#50857; &#47749;&#47161;&#51460; &#50976;&#54008;&#47532;&#54000;&#51064; <strong><a href="https://bluetoothinstaller.com/bluetooth-command-line-tools">Bluetooth Command Line Tools</a></strong>&#47484; &#53685;&#54644; &#48660;&#47336;&#53804;&#49828;&#47484; &#51228;&#50612;&#54624; &#49688; &#51080;&#45796;&#45716; &#44163;&#51012; &#50508;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://bluetoothinstaller.com/bluetooth-command-line-tools" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MOKf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!MOKf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!MOKf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!MOKf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MOKf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33316,&quot;alt&quot;:&quot;Bluetooth command line tools&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://bluetoothinstaller.com/bluetooth-command-line-tools&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Bluetooth command line tools" title="Bluetooth command line tools" srcset="https://substackcdn.com/image/fetch/$s_!MOKf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!MOKf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!MOKf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!MOKf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0b57393-77f8-46cb-94a1-f477c21bcba2_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#54532;&#47196;&#44536;&#47016;&#51012; &#45796;&#50868;&#47196;&#46300;&#54616;&#50668; &#49444;&#52824;&#54616;&#47732; &#46104;&#47728;, &#49444;&#52824; &#44221;&#47196;&#45716; &#45796;&#51020;&#44284; &#44057;&#49845;&#45768;&#45796;.</p><pre><code>C:\Program Files (x86)\Bluetooth Command Line Tools\bin</code></pre><h4>&#48660;&#47336;&#53804;&#49828; &#50672;&#44208; &#52968;&#53944;&#47204; &#54616;&#44592;</h4><p>Bluetooth Command Line Tools(&#51060;&#54616; BCL)&#50640;&#49436; &#48660;&#47336;&#53804;&#49828;&#47484; &#51228;&#50612;&#54616;&#44592; &#50948;&#54644; &#54596;&#50836;&#54620; &#51452;&#50836; &#54637;&#47785;&#51008; Device Address&#50752; GUID&#51077;&#45768;&#45796;. &#54788;&#51116; Windows&#50640; &#54168;&#50612;&#47553;&#46108; Device Address&#50752; GUID&#45716; BCL&#50640;&#49436; <code>btdiscovery -s</code> &#47749;&#47161;&#50612;&#47484; &#53685;&#54644; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GnuE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GnuE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 424w, https://substackcdn.com/image/fetch/$s_!GnuE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 848w, https://substackcdn.com/image/fetch/$s_!GnuE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 1272w, https://substackcdn.com/image/fetch/$s_!GnuE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GnuE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png" width="1456" height="1173" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1173,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:204910,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GnuE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 424w, https://substackcdn.com/image/fetch/$s_!GnuE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 848w, https://substackcdn.com/image/fetch/$s_!GnuE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 1272w, https://substackcdn.com/image/fetch/$s_!GnuE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89cde4d4-d442-4b50-b8c1-2dd387abf4b8_1475x1188.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#44292;&#54840;&#47196; &#44048;&#49912;&#51652; &#48512;&#48516;&#51060; Device Address&#51060;&#44256;, &#44536; &#50694;&#50640; &#51080;&#45716; &#50689;&#47928;&#44284; &#49707;&#51088;&#44032; &#51312;&#54633;&#46108; 4&#51088;&#47532; &#47928;&#51088;&#44032; GUID&#51077;&#45768;&#45796;.</figcaption></figure></div><h4>&#48176;&#52824; &#49828;&#53356;&#47549;&#53944; &#50696;&#51228;</h4><p>&#44277;&#49885; &#54856;&#54168;&#51060;&#51648;&#50640;&#49436; <a href="https://bluetoothinstaller.com/bluetooth-command-line-tools/bluetooth-sample-scripts.html">Bluetooth Command Line Tools&#47484; &#49324;&#50857;&#54620; &#48176;&#52824; &#49828;&#53356;&#47549;&#53944; &#49368;&#54540;</a>&#47484; &#48176;&#54252;&#54616;&#44256; &#51080;&#51004;&#47728; &#48660;&#47336;&#53804;&#49828; &#51109;&#52824;&#47484; &#51228;&#44144;&#54616;&#44256;, &#54168;&#50612;&#47553; &#48143; &#50672;&#44208;&#44620;&#51648; &#51652;&#54665;&#54616;&#45716; &#45236;&#50857;&#51060; &#45812;&#44200; &#51080;&#49845;&#45768;&#45796;.</p><pre><code>@echo  off

rem   The following line is needed only if you haven't added Bluetooth Command Line Tools to system PATH
set PATH=c:\program files\bluetooth command line tools\bin;%PATH%

rem   Change the following 2 lines to match your device
set DEVICE_ADDRESS=00:01:02:03:FF:FF
set SERVICE_UUID=1124

rem   If your device requires PIN code other than '0000', uncomment and change the following line
rem set PIN=1234


rem   Remove the device. Ignoring possible error here 
btpair -u -b"%DEVICE_ADDRESS%"

rem   Pair the device
btpair -p%PIN% -b"%DEVICE_ADDRESS%"
if errorlevel 1 goto error

rem   Enable the service
btcom -c -b"%DEVICE_ADDRESS%" -s%SERVICE_UUID%
if errorlevel 1 goto error

goto success

rem   Allow user to read error message before window is closed
:error
pause
exit

:success
exit</code></pre><p>&#50948; &#49828;&#53356;&#47549;&#53944;&#45716; &#48660;&#47336;&#53804;&#49828; &#44592;&#44592;&#47484; &#51228;&#44144;&#54616;&#44256; &#46321;&#47197; &#48143; &#50672;&#44208;&#51012; &#49688;&#54665;&#54616;&#44592; &#46412;&#47928;&#50640; Windows &#52285;&#50640;&#49436; &#52628;&#44032; &#46321;&#47197; &#54728;&#50857; &#48260;&#53948;&#51012; &#45580;&#47084;&#50556; &#54633;&#45768;&#45796;. &#46608;&#54620; &#48520;&#54596;&#50836;&#54620; &#48512;&#48516;&#51060; &#51080;&#50612; &#44036;&#49548;&#54868;&#54664;&#49845;&#45768;&#45796;.</p><p></p><h4>&#48660;&#47336;&#53804;&#49828; &#50672;&#44208; &#54644;&#51228; &#54980; &#45796;&#49884; &#50672;&#44208;&#54616;&#45716; &#49828;&#53356;&#47549;&#53944;</h4><pre><code>@echo  off

<strong>rem Bluetooth Command Line Tools &#44221;&#47196; &#49444;&#51221;</strong>
set PATH="C:\Program Files (x86)\Bluetooth Command Line Tools\bin";%PATH%

<strong>rem Bluetooth &#51109;&#52824; &#51452;&#49548; &#48143; GUID &#49444;&#51221; (&#47784;&#47484; &#44221;&#50864; btdiscovery -s&#47196; &#54869;&#51064;)</strong>
set DEVICE_ADDRESS=<em><strong>&#46356;&#48148;&#51060;&#49828; Address &#52280;&#44256;</strong></em>
set SERVICE_UUID=<em><strong>GUID&#47484; &#51077;&#47141;&#54644;&#51452;&#49464;&#50836;</strong></em>

btcom -r -b %DEVICE_ADDRESS% -s%SERVICE_GUID%
btcom -c -b %DEVICE_ADDRESS% -s%SERVICE_GUID%</code></pre><p>&#49324;&#50857;&#46108; btcom&#51032; &#47749;&#47161;&#50612;&#51032; &#50857;&#46020;&#45716; &#50500;&#47000;&#50752; &#44057;&#49845;&#45768;&#45796;.</p><ul><li><p><strong>-b</strong> Device Address</p></li><li><p><strong>-c</strong> Bluetooth &#50672;&#44208;</p></li><li><p><strong>-r</strong> Bluetooth &#50672;&#44208; &#54644;&#51228;</p></li><li><p><strong>-s</strong> Device &#51060;&#47492; (GUID)</p></li></ul><p>&#50948;&#51032; &#49828;&#53356;&#47549;&#53944;&#47484; &#47700;&#47784;&#51109;&#50640; &#48537;&#50668;&#45347;&#51008; &#54980;, &#54028;&#51068;&#51032; &#54869;&#51109;&#51088;&#47484; <strong>.bat</strong>&#47196; &#51648;&#51221;&#54616;&#50668; &#51200;&#51109;&#54633;&#45768;&#45796;.</p><div><hr></div><h3>Windows &#49828;&#52992;&#51460;&#47084; &#46321;&#47197;&#54616;&#44592;</h3><ol><li><p>&#8862; &#50952;&#46020;&#50864; &#53412;&#47484; &#45580;&#47084; &#44160;&#49353;&#52285;&#51012; &#53685;&#54644; <strong>&#51089;&#50629; &#49828;&#52992;&#51460;&#47084;&#47484; &#49892;&#54665;</strong>&#54633;&#45768;&#45796;.</p></li><li><p>&#51089;&#50629; &#49828;&#52992;&#51460;&#47084; &#52285;&#51032; &#51340;&#52769;&#50640; &#50948;&#52824;&#54620; <strong>&#44592;&#48376; &#51089;&#50629; &#47564;&#46308;&#44592;&#47484; &#53364;&#47533;</strong>&#54633;&#45768;&#45796;.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1z3Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1z3Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 424w, https://substackcdn.com/image/fetch/$s_!1z3Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 848w, https://substackcdn.com/image/fetch/$s_!1z3Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 1272w, https://substackcdn.com/image/fetch/$s_!1z3Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1z3Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png" width="1456" height="952" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:952,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201422,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1z3Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 424w, https://substackcdn.com/image/fetch/$s_!1z3Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 848w, https://substackcdn.com/image/fetch/$s_!1z3Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 1272w, https://substackcdn.com/image/fetch/$s_!1z3Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf77dc-1246-4310-a5b6-b1e3a078a8a1_1991x1302.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="3"><li><p>&#49828;&#52992;&#51460;&#51032; &#51060;&#47492;&#51012; &#51648;&#51221;&#54616;&#44256; <strong>&#45796;&#51020;</strong> &#48260;&#53948;&#51012; &#45572;&#47493;&#45768;&#45796;.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HbdK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HbdK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 424w, https://substackcdn.com/image/fetch/$s_!HbdK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 848w, https://substackcdn.com/image/fetch/$s_!HbdK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 1272w, https://substackcdn.com/image/fetch/$s_!HbdK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HbdK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png" width="1104" height="807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:807,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79076,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HbdK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 424w, https://substackcdn.com/image/fetch/$s_!HbdK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 848w, https://substackcdn.com/image/fetch/$s_!HbdK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 1272w, https://substackcdn.com/image/fetch/$s_!HbdK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6db438-7890-4d0f-a3ac-739f98ab94bd_1104x807.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="4"><li><p>&#51089;&#50629; &#53944;&#47532;&#44144;&#45716; <strong>&#52980;&#54504;&#53552; &#49884;&#51089;&#49884;</strong> &#54841;&#51008; <strong>&#47196;&#44536;&#50728; &#54624; &#46412;</strong>&#47196; &#51648;&#51221;&#54633;&#45768;&#45796;.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Ak8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Ak8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 424w, https://substackcdn.com/image/fetch/$s_!7Ak8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 848w, https://substackcdn.com/image/fetch/$s_!7Ak8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 1272w, https://substackcdn.com/image/fetch/$s_!7Ak8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Ak8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png" width="1104" height="807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:807,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79785,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7Ak8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 424w, https://substackcdn.com/image/fetch/$s_!7Ak8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 848w, https://substackcdn.com/image/fetch/$s_!7Ak8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 1272w, https://substackcdn.com/image/fetch/$s_!7Ak8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e490f1b-f693-473f-ad7d-b81e7c93a702_1104x807.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="5"><li><p><strong>&#54532;&#47196;&#44536;&#47016; &#49884;&#51089;</strong>&#51012; &#49440;&#53469; &#54980; &#45796;&#51020;&#51012; &#45572;&#47493;&#45768;&#45796;.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eF1w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eF1w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 424w, https://substackcdn.com/image/fetch/$s_!eF1w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 848w, https://substackcdn.com/image/fetch/$s_!eF1w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 1272w, https://substackcdn.com/image/fetch/$s_!eF1w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eF1w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png" width="1104" height="807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:807,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76692,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eF1w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 424w, https://substackcdn.com/image/fetch/$s_!eF1w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 848w, https://substackcdn.com/image/fetch/$s_!eF1w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 1272w, https://substackcdn.com/image/fetch/$s_!eF1w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a47bf7a-be05-4b49-b91b-d927d13eeca5_1104x807.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="6"><li><p>&#51060;&#54980; &#45800;&#44228;&#50640;&#49436; <strong>&#51200;&#51109;&#54620; &#48176;&#52824; &#54028;&#51068;(.bat)&#51012; &#51648;&#51221;</strong>&#54644; &#51452;&#47732; &#50756;&#47308;&#46121;&#45768;&#45796;.</p></li></ol><p></p>]]></content:encoded></item><item><title><![CDATA[이미지 Pixel Mosaic 애니메이션 — 프로토타입]]></title><description><![CDATA[CSS image-rendering &#49549;&#49457;&#51012; &#49324;&#50857;&#54644; &#44396;&#54788;&#54644;&#48372;&#44592;]]></description><link>https://lab.dongri.me/p/pixel-mosaic</link><guid isPermaLink="false">https://lab.dongri.me/p/pixel-mosaic</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sun, 28 Apr 2024 13:06:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FufO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#54532;&#47196;&#53664;&#53440;&#51077; &#48260;&#51204;&#50640;&#49436; &#48156;&#51204;&#54644; Lazy Loading &#54540;&#47084;&#44536;&#51064;&#51012; &#51228;&#51089;&#54664;&#49845;&#45768;&#45796;.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9c34ce99-5846-4ecd-af52-d84d83d21876&quot;,&quot;caption&quot;:&quot;2024&#45380; 4&#50900;, &#51060;&#48120;&#51648;&#44032; &#53360; &#54589;&#49472;&#50640;&#49436; &#49884;&#51089;&#54644; &#51216;&#52264; &#49440;&#47749;&#54644;&#51648;&#45716; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496; &#54532;&#47196;&#53664;&#53440;&#51077;&#51012; &#47564;&#46308;&#50632;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#51060;&#48120;&#51648; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496; &#8212; Lazy Loading &#54540;&#47084;&#44536;&#51064;&#54868;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86892b82-f178-4ee2-950d-a13166e17b18_1094x1094.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-09T00:00:00.308Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_2HY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/pixel-mosaic-lazy-loader&quot;,&quot;section_name&quot;:&quot;&#128187; Develop&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:207512060,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2339184,&quot;publication_name&quot;:&quot;&#46041;&#44536;&#47532; &#50672;&#44396;&#49548; &#183; Dongri LAB&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!O1Tv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p>&#50696;&#51204;&#50640; Muzli&#50640; &#49548;&#44060;&#46108; &#49324;&#51060;&#53944;&#50640;&#49436; &#51060;&#48120;&#51648;&#50640; CSS image-rendering &#49549;&#49457;&#51012; &#49324;&#50857;&#54644; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496;&#51012; &#51201;&#50857;&#54620; &#44163;&#51012; &#48372;&#47728;, &#51060;&#48120;&#51648;&#47484; &#51648;&#50672; &#47196;&#46377;(lazy loading)&#54624; &#46412;&#50640; &#54952;&#44284;&#51201;&#51004;&#47196; &#51201;&#50857;&#54624; &#49688; &#51080;&#44192;&#45796; &#49910;&#50612; &#46384;&#46972; &#54644;&#48420;&#49845;&#45768;&#45796;.</p><p>&#50896;&#48376; &#49324;&#51060;&#53944;&#47484; &#46384;&#47196; &#47700;&#47784;&#54644; &#46160;&#51648; &#50506;&#50500; &#50500;&#49789;&#44172;&#46020; &#44592;&#50613;&#51012; &#45124;&#51665;&#50612;&#45236;&#47728; &#54532;&#47196;&#53440;&#51077;&#51012; &#47564;&#46308;&#50632;&#45348;&#50836;.</p><h3>&#51060;&#48120;&#51648;</h3><ul><li><p>640X360 &#53356;&#44592;&#51032; &#50896;&#48376; &#51060;&#48120;&#51648; </p></li><li><p>100X56  &#53356;&#44592;&#51032; &#51060;&#48120;&#51648; (&#46041;&#51068; &#48708;&#50984;&#47196; &#52629;&#49548;)</p></li><li><p>50X28  &#53356;&#44592;&#51032; &#51060;&#48120;&#51648; (&#46041;&#51068; &#48708;&#50984;&#47196; &#52629;&#49548;)</p><p></p></li></ul><h3>&#50528;&#45768;&#47700;&#51060;&#49496; &#47749;&#49464;</h3><ol><li><p>&#47784;&#46304; &#51060;&#48120;&#51648;&#45716; &#50896;&#48376; &#51060;&#48120;&#51648; &#53356;&#44592;&#51064; 640X360&#47196; &#45432;&#52636;&#46108;&#45796;. </p></li><li><p>CSS image-rendering: pixelated &#49549;&#49457;&#51012; &#51201;&#50857;&#54620;&#45796;. </p></li><li><p>50X28 &#8594; 100X56 &#8594; 640X360 &#49692;&#51004;&#47196; &#45432;&#52636;&#46108;&#45796;. </p></li><li><p>&#44033; &#51060;&#48120;&#51648;&#45716; 0.5&#52488; &#46364;&#47112;&#51060; &#46104;&#50612; &#45432;&#52636;&#46108;&#45796;.</p></li></ol><p></p><h3>&#44208;&#44284;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://git.dongri.me/example/pixelated/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FufO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 424w, https://substackcdn.com/image/fetch/$s_!FufO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 848w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1272w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FufO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif" width="840" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3968832,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:&quot;https://git.dongri.me/example/pixelated/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FufO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 424w, https://substackcdn.com/image/fetch/$s_!FufO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 848w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1272w, https://substackcdn.com/image/fetch/$s_!FufO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b5f581a-3ca4-44bd-9bda-1bbde54ea8b6_840x554.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://git.dongri.me/example/pixelated/">&#54532;&#47196;&#53664;&#53440;&#51077; &#54869;&#51064;&#54616;&#47084; &#44032;&#44592;</a></figcaption></figure></div><p>&#54589;&#49472;&#50640;&#49436; &#51216;&#52264; &#51089;&#51008; &#54589;&#49472;&#47196; &#52504;&#52504;&#54644;&#51648;&#47732;&#49436; &#49440;&#47749;&#54644;&#51648;&#46020;&#47197; &#54644;&#48372;&#44256; &#49910;&#50632;&#51004;&#45208; &#45800;&#49692; HTML/CSS &#49345;&#51004;&#47196; &#44396;&#54788;&#54616;&#44592;&#50640;&#45716; &#51060;&#48120;&#51648;&#47484; &#53356;&#44592;&#48324;&#47196; &#47532;&#49324;&#51060;&#51669; &#54644;&#50556; &#54616;&#45716; &#44060;&#49688;&#44032; &#47566;&#50500;&#51256;&#49436; <strong>3&#45800;&#44228;&#47196;&#47564; &#51652;&#54665;</strong>&#54664;&#49845;&#45768;&#45796;.</p><p><strong>&#51060;&#48120;&#51648;&#51032; &#53356;&#44592; &#52264;&#51060;&#44032; &#53356;&#51648; &#50506;&#50500;&#50556; &#51088;&#50672;&#49828;&#47101;&#44256; &#50696;&#48868;&#51004;&#47728;</strong> &#54644;&#50808;&#49324;&#51060;&#53944;&#50640;&#49436;&#45716; &#51221;&#51648; &#51060;&#48120;&#51648;&#47196;&#47564; &#51060;&#47336;&#50612;&#51276;&#45716;&#45936; &#50724;&#55176;&#47140; gif&#50752; &#44057;&#51008; &#46041;&#51201;&#51064; &#50528;&#45768;&#47700;&#51060;&#49496;&#50640; &#54876;&#50857;&#54616;&#45768; &#54952;&#44284;&#44032; &#44537;&#45824;&#54868;&#46104;&#45716; &#44163; &#44057;&#49845;&#45768;&#45796;.</p><p></p><h3>&#50948; &#54532;&#47196;&#53664;&#53440;&#51077; &#44396;&#54788; &#48169;&#49885;&#51032; &#54620;&#44228;&#47196;&#45716;</h3><ul><li><p>&#51221;&#51201;&#51064; &#54168;&#51060;&#51648;&#50640;&#47564; &#51228;&#54620;&#51201;&#51004;&#47196; &#54876;&#50857;&#54624; &#49688; &#51080;&#51012; &#46319;&#54633;&#45768;&#45796;. <br>(&#51060;&#48120;&#51648;&#51032; &#49324;&#51060;&#51592;&#44032; &#44256;&#51221;&#51201;&#51060;&#50612;&#50556; &#54616;&#44256;, &#49324;&#51060;&#51592;&#48324;&#47196; &#51060;&#48120;&#51648;&#44032; &#51456;&#48708;&#46104;&#50612; &#51080;&#50612;&#50556; &#54616;&#45716; &#46321;)</p></li><li><p>&#51060;&#48120;&#51648; &#53356;&#44592;&#45716; GD &#46972;&#51060;&#48652;&#47084;&#47532; &#46321;&#51012; &#51060;&#50857;&#54616;&#50668; &#49436;&#48260;&#50640;&#49436; &#48120;&#47532; &#49324;&#51060;&#51592;&#48324;&#47196; &#47532;&#49324;&#51060;&#51669; &#54616;&#50668; &#51200;&#51109;&#54644; &#46160;&#47732; &#45936;&#51060;&#53552;&#46308;&#51060; &#45804;&#46972;&#51648;&#45716; &#54168;&#51060;&#51648;&#50640;&#46020; &#51201;&#50857;&#54644; &#48380; &#49688; &#51080;&#51012; &#44163; &#44057;&#49845;&#45768;&#45796;.</p></li><li><p>&#54616;&#51648;&#47564; &#48520;&#47084;&#50724;&#45716; &#51060;&#48120;&#51648; &#44060;&#49688;&#44032; &#47566;&#50500;&#51648;&#44256;, &#51089;&#51008; &#51060;&#48120;&#51648; &#53356;&#44592;&#46972; &#54624;&#51648;&#46972;&#46020; &#48520;&#47084;&#50724;&#45716; &#45936; &#49884;&#44036;&#51060; &#44152;&#47532;&#44592; &#46412;&#47928;&#50640; &#51648;&#50672; &#47196;&#46377;(lazy loading)&#50640; &#45824;&#54620; &#54952;&#44284;&#44032; &#50630;&#45716; &#45800;&#49692; &#51064;&#53552;&#47001;&#49496;&#51060;&#46972;&#44256;&#47564; &#49373;&#44033;&#54633;&#45768;&#45796;.</p></li><li><p>base64 &#51064;&#53076;&#46377;&#51004;&#47196; &#44032;&#51109; &#51089;&#51008; &#51060;&#48120;&#51648; &#53356;&#44592;&#47484; html&#50640; &#49900;&#51004;&#47732; &#46104;&#51648; &#50506;&#51012;&#44620;? &#49910;&#44592;&#46020;&#8230;.</p></li></ul><div><hr></div><h3>&#44032;&#49444; &amp; &#49884;&#46020;&#54644; &#48372;&#44592; </h3><ul><li><p>Lazy Loading&#51008; &#54868;&#47732; &#50689;&#50669;&#50640; &#46308;&#50612;&#50772;&#51012; &#46412; &#49828;&#53000;&#47112;&#53668;&#44284; &#44057;&#51008; &#54952;&#44284; &#50630;&#51060; &#51060;&#48120;&#51648; &#47196;&#46377;&#51060; &#45734;&#44172; &#51060;&#47336;&#50612;&#51648;&#45908;&#46972;&#46020; &#47784;&#51088;&#51060;&#53356; &#54952;&#44284;&#44032; &#48372;&#51064;&#45796;&#47732; &#51060;&#50857;&#51088;&#44032; &#51648;&#47336;&#54644;&#54616;&#51648; &#50506;&#44256; &#54616;&#45208;&#51032; &#53080;&#49481;&#53944; &#54952;&#44284;&#47196; &#49373;&#44033;&#54616;&#51648; &#50506;&#51012;&#44620;? </p></li><li><p>&#53945;&#51221; class&#47484; &#44032;&#51652; &#50896;&#48376; &#51060;&#48120;&#51648;&#50640; Canvas&#47484; &#54876;&#50857;&#54644; Pixel Mosaic &#54952;&#44284;&#47484; &#44396;&#54788;&#54620;&#45796;&#47732; &#49324;&#51060;&#51592;&#47560;&#45796; &#46384;&#47196; &#51060;&#48120;&#51648;&#47484; &#51200;&#51109;&#54616;&#51648; &#50506;&#44256; &#54616;&#45208;&#51032; &#51060;&#48120;&#51648;&#47196; &#47928;&#49436; &#45236;&#51032; &#50668;&#47084; &#51060;&#48120;&#51648;&#50640; &#49789;&#44172; &#51201;&#50857;&#54624; &#49688; &#51080;&#51648; &#50506;&#51012;&#44620;? </p></li></ul><p></p><p>&#50948;&#50752; &#44057;&#51008; &#49373;&#44033;&#51012; &#44032;&#51648;&#44256; &#44592;&#48376; Javascript &#47928;&#48277; &#50948;&#51452;&#47564; &#50508;&#44256; &#51080;&#45716; &#51200;&#45716; Chat GPT&#51032; &#46020;&#50880;&#51012; &#48155;&#44592;&#47196; &#54616;&#44256; &#50668;&#47084; &#48264; &#49884;&#46020;&#54644; &#48420;&#45716;&#45936; Canvas&#47484; &#54876;&#50857;&#54620; &#50896;&#54616;&#45716; &#51089;&#46041; &#53076;&#46300;&#47484; &#47564;&#46308;&#50612; &#51452;&#51648; &#50506;&#50500; &#49892;&#54056;&#54664;&#49845;&#45768;&#45796;.</p><p>Chat GPT&#45716; &#47784;&#51088;&#51060;&#53356;&#47484; &#44032;&#50864;&#49884;&#50504; &#48660;&#47084; &#54952;&#44284;&#47196; &#48372;&#50668;&#51452;&#44144;&#45208; &#51060;&#48120;&#51648;&#47484; &#49892;&#51228; &#47784;&#51088;&#51060;&#53356; &#54952;&#44284;&#47484; &#51201;&#50857;&#54616;&#45716; &#44163;&#52376;&#47100; &#47924;&#50616;&#44032; &#47196;&#51649;&#51012; &#49324;&#50857;&#54644; &#54589;&#49472;&#51012; &#44396;&#54788;&#54664;&#51004;&#45208;, &#44396;&#44544;&#51012; &#44160;&#49353;&#54644; &#48372;&#45768; <strong>Canvas&#50640; imageSmoothingEnabled = false &#49549;&#49457;&#47564; &#51452;&#47732;, CSS image-rendering: pixelated&#50752; &#44057;&#51060; &#49789;&#44172; &#44396;&#54788;&#54624; &#49688; &#51080;&#45716; &#44163; &#44057;&#50520;&#49845;&#45768;&#45796;.</strong></p><p>&#46384;&#46972;&#49436; &#44256;&#51221;&#46108; &#54253;&#50640; &#51089;&#51008; &#49324;&#51060;&#51592;&#47196; &#52629;&#49548;&#54620; &#51060;&#48120;&#51648;&#47484; &#50896;&#48376; &#53356;&#44592;&#51032; Canvas&#50640; &#54869;&#45824;&#54616;&#45716; &#49885;&#51004;&#47196; &#54952;&#44284;&#47484; &#44396;&#54788;&#54616;&#46020;&#47197; &#51452;&#47928;&#54664;&#51004;&#45208; &#44228;&#49549; &#51096; &#50504;&#46076;&#49436; &#54252;&#44592;&#47484;&#8230;.</p><p></p><h3>&#47560;&#47924;&#47532;</h3><p>&#50896;&#47000; &#51060;&#48120;&#51648;&#47484; &#47588;&#45124;&#47101;&#44172; &#48372;&#50668;&#51452;&#44592; &#50948;&#54620; &#48169;&#49885;&#51004;&#47196; &#44060;&#48156;&#46108; &#49549;&#49457;&#51064;&#45936; <strong>&#51060;&#47484; &#51060;&#50857;&#54644; &#44284;&#44144; &#54589;&#49472; &#47784;&#51088;&#51060;&#53356; &#54952;&#44284;&#47196; &#54876;&#50857;&#54664;&#45796;&#45716; &#48156;&#49345;&#50640; &#44048;&#53444;</strong>&#54664;&#49845;&#45768;&#45796;.</p><p>&#48372;&#53685;&#51008; auto&#47196; &#46160;&#44256; &#49324;&#50857;&#54624; &#51068;&#51060; &#50630;&#51648;&#47564;, <strong>&#44256;&#51204; &#54589;&#49472; &#49828;&#53440;&#51068;&#51060;&#45208; &#51200;&#54644;&#49345;&#46020;&#51032; QR &#53076;&#46300;, &#48148;&#53076;&#46300; &#51060;&#48120;&#51648;&#50640; image-rendering: pixelated&#47484; &#49324;&#50857;&#54620;&#45796;&#47732; &#50857;&#47049;&#51060; &#51201;&#51008; &#51200;&#54644;&#49345;&#46020; &#51060;&#48120;&#51648;&#47196; &#54644;&#49345;&#46020;&#44032; &#45458;&#51008; &#47784;&#45768;&#53552;&#50640; &#54868;&#51656;&#50676;&#54868;&#52376;&#47100; &#50504; &#48372;&#51060;&#44256; &#54952;&#44284;&#51201;&#51004;&#47196; &#48372;&#50668;&#51460; &#49688; &#51080;&#44192;&#45796;</strong> &#49910;&#50632;&#49845;&#45768;&#45796;.</p><p>&#50669;&#49884; &#49324;&#46988;&#51008; &#50500;&#45716; &#44172; &#47566;&#50500;&#50556; &#50668;&#44592;&#51200;&#44592; &#54876;&#50857;&#54624; &#49688; &#51080;&#45796;&#44256; &#49373;&#44033;&#54616;&#47728; &#45796;&#49884; &#54620;&#48264; Javascript&#50752; Canvas&#47484; &#44277;&#48512;&#54644;&#50556; &#54624; &#54596;&#50836;&#49457;&#51012; &#45712;&#45197;&#45768;&#45796;.</p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d685e292-8256-4b38-9ee1-da60e9413fc4&quot;,&quot;caption&quot;:&quot;2024&#45380; 4&#50900;, &#51060;&#48120;&#51648;&#44032; &#53360; &#54589;&#49472;&#50640;&#49436; &#49884;&#51089;&#54644; &#51216;&#52264; &#49440;&#47749;&#54644;&#51648;&#45716; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496; &#54532;&#47196;&#53664;&#53440;&#51077;&#51012; &#47564;&#46308;&#50632;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#51060;&#48120;&#51648; Pixel Mosaic &#50528;&#45768;&#47700;&#51060;&#49496; &#8212; Lazy Loading &#54540;&#47084;&#44536;&#51064;&#54868;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86892b82-f178-4ee2-950d-a13166e17b18_1094x1094.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-09T00:00:00.308Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_2HY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50a6a242-45d1-43df-8a06-e98e1a51bca2_1672x941.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/pixel-mosaic-lazy-loader&quot;,&quot;section_name&quot;:&quot;&#128187; Develop&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:207512060,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2339184,&quot;publication_name&quot;:&quot;&#46041;&#44536;&#47532; &#50672;&#44396;&#49548; &#183; Dongri LAB&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!O1Tv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[Vaultwarden 설치하기]]></title><description><![CDATA[Vaultwarden&#51012; &#49444;&#52824;&#54644; Enpass &#45824;&#50504;&#51004;&#47196; &#49324;&#50857;&#54624; &#49688; &#51080;&#45716; &#49472;&#54532;&#54840;&#49828;&#54021; &#48708;&#48128;&#48264;&#54840; &#44288;&#47532; &#54872;&#44221;&#51012; &#44396;&#52629;&#54620; &#44592;&#47197;&#51077;&#45768;&#45796;. &#49444;&#52824; &#44284;&#51221;&#44284; &#49324;&#50857; &#54980;&#44592;&#47484; &#54632;&#44760; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/vaultwarden</link><guid isPermaLink="false">https://lab.dongri.me/p/vaultwarden</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sat, 10 Sep 2022 15:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Sxr3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Sxr3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sxr3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Sxr3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Sxr3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Sxr3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sxr3!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1032376,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Sxr3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Sxr3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Sxr3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Sxr3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295b7776-5c74-4abc-8c97-88587acddac8_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>&#51060; &#44544;&#51008; 2022&#45380;&#50640; &#51089;&#49457;&#54620; &#49444;&#52824; &#44592;&#47197;&#51012; <strong>2026&#45380; 7&#50900; &#44592;&#51456;&#51004;&#47196; &#45796;&#49884; &#51221;&#47532;&#54620; &#44544;</strong>&#51077;&#45768;&#45796;.<br>Ubuntu&#50752; Docker Compose, Nginx Proxy Manager&#47484; &#51060;&#50857;&#54644; <br>Vaultwarden&#51012; &#49444;&#52824;&#54616;&#44256; HTTPS&#47196; &#50672;&#44208;&#54616;&#45716; &#48169;&#48277;&#51012; &#45796;&#47353;&#45768;&#45796;. <br>&#47560;&#51648;&#47561;&#50640;&#45716; &#49440;&#53469; &#49324;&#54637;&#51004;&#47196; <strong>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#49444;&#51221;&#46020; &#52628;&#44032;</strong>&#54664;&#49845;&#45768;&#45796;.</p></blockquote><p></p><p>&#48708;&#48128;&#48264;&#54840; &#44288;&#47532; &#54532;&#47196;&#44536;&#47016;&#51004;&#47196; Enpass&#47484; &#49324;&#50857;&#54644; &#50724;&#45796; &#52628;&#49437; &#50672;&#55092;&#47484; &#51060;&#50857;&#54644; Vaultwarden&#51012; &#49444;&#52824;&#54664;&#49845;&#45768;&#45796;.</p><p>&#44284;&#44144; 1~2&#47564; &#50896;&#45824;&#50640; &#44396;&#51077;&#54620; Enpass &#54217;&#49373; &#46972;&#51060;&#49440;&#49828;&#47564;&#51004;&#47196;&#46020; &#44592;&#45733;&#51008; &#52649;&#48516;&#54664;&#49845;&#45768;&#45796;. <br>&#44536;&#47084;&#45208; <strong>&#54924;&#49324; &#48372;&#50504; &#51221;&#52293;&#49345; Enpass &#48380;&#53944;&#47484; &#51200;&#51109;&#54616;&#45912; &#50808;&#48512; &#53364;&#46972;&#50864;&#46300; &#49436;&#48708;&#49828;&#44032; &#52264;&#45800;</strong>&#46104;&#47732;&#49436; &#54924;&#49324;&#50640;&#49436;&#45716; &#49324;&#49892;&#49345; &#49324;&#50857;&#54624; &#49688; &#50630;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;.</p><p>Enpass&#51032; &#44032;&#44201; &#51221;&#52293;&#51060; &#44284;&#44144;&#48372;&#45796; &#53356;&#44172; &#50724;&#47480; &#51216;&#46020; &#51060;&#51204;&#51012; &#44256;&#48124;&#54616;&#44172; &#46108; &#51060;&#50976;&#50688;&#49845;&#45768;&#45796;. <br>Vaultwarden&#51008; &#51649;&#51217; &#49436;&#48260;&#47484; &#50868;&#50689;&#54644;&#50556; &#54616;&#51648;&#47564;, &#44277;&#49885; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#47484; &#49324;&#50857;&#54616;&#47732;&#49436; <strong>&#44060;&#51064; &#49436;&#48260;&#50640; &#45936;&#51060;&#53552;&#47484; &#48372;&#44288;&#54624; &#49688; &#51080;&#44256; TOTP &#51064;&#51613; &#53076;&#46300; &#44592;&#45733;&#46020; &#54876;&#50857;</strong>&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#44592;&#51316;&#50640; OTP &#50545;&#51004;&#47196; Authy&#47484; &#49324;&#50857;&#54664;&#51648;&#47564;, <a href="https://www.digitaltrends.com/mobile/authy-hackers-breach-two-factor-authentication-2fa-codes/">&#48372;&#50504; &#49324;&#44256;</a> &#51060;&#54980;&#50640;&#45716; &#48708;&#48128;&#48264;&#54840; &#44288;&#47532;&#51088;&#50752; &#48324;&#46020;&#51032; &#51064;&#51613; &#49688;&#45800;&#51012; &#54632;&#44760; &#44288;&#47532;&#54616;&#45716; &#48169;&#54693;&#51012; &#45796;&#49884; &#44256;&#48124;&#54616;&#44172; &#46096;&#49845;&#45768;&#45796;.</p><p>&#51200;&#45716; &#48324;&#46020;&#51032; NAS&#47484; &#50868;&#50689;&#54616;&#51648; &#50506;&#44256;, &#45224;&#45716; Oracle Cloud &#51064;&#49828;&#53556;&#49828;&#50640; Vaultwarden&#51012; &#49444;&#52824;&#54664;&#49845;&#45768;&#45796;.</p><p>&#49472;&#54532;&#54840;&#49828;&#54021;&#51008; &#45936;&#51060;&#53552;&#47484; &#51649;&#51217; &#44288;&#47532;&#54624; &#49688; &#51080;&#45796;&#45716; &#51109;&#51216;&#51060; &#51080;&#51648;&#47564; &#49436;&#48260; &#51109;&#50528;, &#48177;&#50629;, &#48372;&#50504; &#50629;&#45936;&#51060;&#53944;&#46020; &#51649;&#51217; &#52293;&#51076;&#51256;&#50556; &#54633;&#45768;&#45796;. &#46384;&#46972;&#49436; &#45800;&#49692;&#55176; &#49444;&#52824;&#54616;&#45716; &#44163;&#48372;&#45796; &#45936;&#51060;&#53552; &#51200;&#51109; &#50948;&#52824;&#50752; &#50629;&#45936;&#51060;&#53944; &#48169;&#48277;&#51012; &#54632;&#44760; &#50508;&#50500;&#46160;&#45716; &#44163;&#51060; &#51473;&#50836;&#54633;&#45768;&#45796;.</p><div><hr></div><h2>Bitwarden&#44284; Vaultwarden&#51032; &#52264;&#51060;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P2i8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P2i8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!P2i8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!P2i8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!P2i8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P2i8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg" width="800" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58542,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P2i8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!P2i8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!P2i8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!P2i8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc505a751-7d94-485e-b443-6e35da436eb0_800x480.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#52636;&#52376;: <a href="https://www.cec.es/bitwarden-vs-vaultwarden-cual-se-adapta-mejor-a-tus-necesidades-de-seguridad-de-contrasenas/">Bitwarden vs Vaultwarden: &#191;Cu&#225;l se adapta mejor a tus necesidades de seguridad de contrase&#241;as? &#8211; CEC</a></figcaption></figure></div><p>Bitwarden&#51008; Bitwarden Inc.&#50640;&#49436; &#44277;&#49885;&#51201;&#51004;&#47196; &#44060;&#48156;&#54616;&#45716; <strong>&#50724;&#54536;&#49548;&#49828; &#48708;&#48128;&#48264;&#54840; &#44288;&#47532; &#49436;&#48708;&#49828;</strong>&#51077;&#45768;&#45796;.</p><p>&#44277;&#49885; &#53364;&#46972;&#50864;&#46300;&#47484; &#51060;&#50857;&#54624; &#49688;&#46020; &#51080;&#44256; &#49436;&#48260;&#47484; &#51649;&#51217; &#44396;&#52629;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;. <br>Chrome, Edge, Firefox &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#44284; &#45936;&#49828;&#53356;&#53681;&#183;&#47784;&#48148;&#51068; &#50545;&#46020; &#44277;&#49885;&#51201;&#51004;&#47196; &#51228;&#44277;&#54633;&#45768;&#45796;.</p><p>Vaultwarden&#51008; &#44284;&#44144; <code>bitwarden_rs</code>&#46972;&#45716; &#51060;&#47492;&#51004;&#47196; &#44060;&#48156;&#46104;&#45912; &#48708;&#44277;&#49885; &#50724;&#54536;&#49548;&#49828; &#49436;&#48260;&#51077;&#45768;&#45796;.</p><p>&#44277;&#49885; Bitwarden &#49436;&#48260;&#47484; &#45800;&#49692;&#55176; &#49688;&#51221;&#54620; &#54252;&#53356;&#46972;&#44592;&#48372;&#45796;, <strong>&#44277;&#49885; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#50752; &#54840;&#54872;&#46104;&#45716; &#49436;&#48260; API&#47484; Rust&#47196; &#45796;&#49884; &#44396;&#54788;&#54620; &#54532;&#47196;&#51229;&#53944;</strong>&#50640; &#44032;&#44637;&#49845;&#45768;&#45796;. &#44277;&#49885; &#49436;&#48260;&#48372;&#45796; &#49345;&#45824;&#51201;&#51004;&#47196; &#44032;&#48333;&#44256; Docker&#47484; &#51060;&#50857;&#54644; &#44036;&#45800;&#54616;&#44172; &#49444;&#52824;&#54624; &#49688; &#51080;&#50612; &#44060;&#51064;&#51060;&#45208; &#44032;&#51313; &#45800;&#50948;&#51032; &#49472;&#54532;&#54840;&#49828;&#54021; &#54872;&#44221;&#50640;&#49436; &#47566;&#51060; &#49324;&#50857;&#46121;&#45768;&#45796;.</p><p>Vaultwarden&#51012; &#49324;&#50857;&#54616;&#45908;&#46972;&#46020; &#48652;&#46972;&#50864;&#51200; &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#44284; &#45936;&#49828;&#53356;&#53681;&#183;&#47784;&#48148;&#51068; &#50545;&#51008; &#44277;&#49885; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#47484; &#49324;&#50857;&#54633;&#45768;&#45796;.</p><p>&#45796;&#47564; Vaultwarden&#51008; &#48708;&#44277;&#49885; &#54840;&#54872; &#49436;&#48260;&#51060;&#48064;&#47196; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#44032; &#53356;&#44172; &#48320;&#44221;&#46104;&#47732; Vaultwarden&#46020; &#54632;&#44760; &#50629;&#45936;&#51060;&#53944;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><p>&#49892;&#51228;&#47196; 2026&#45380; 7&#50900;&#50640;&#45716; Bitwarden &#48652;&#46972;&#50864;&#51200; &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#51060; <code>2026.7.0</code>&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#46108; &#46244;, Vaultwarden <code>1.36.0</code>&#50640;&#49436;&#45716; &#47196;&#44536;&#51064;&#50640; &#49457;&#44277;&#54644;&#46020; &#44552;&#44256; &#54637;&#47785;&#51060; &#48372;&#51060;&#51648; &#50506;&#45716; &#47928;&#51228;&#44032; &#48156;&#49373;&#54664;&#49845;&#45768;&#45796;.</p><p>&#50937; &#44552;&#44256;&#50752; &#44592;&#51316; &#45936;&#49828;&#53356;&#53681; &#50545;&#50640;&#49436;&#45716; &#45936;&#51060;&#53552;&#44032; &#51221;&#49345;&#51201;&#51004;&#47196; &#48372;&#50688;&#51648;&#47564; Chrome&#44284; Edge &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#50640;&#49436;&#45716; &#44552;&#44256;&#44032; &#48708;&#50612; &#51080;&#50632;&#49845;&#45768;&#45796;. Vaultwarden&#51012; <code>1.37.0</code>&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#54616;&#51088; &#54637;&#47785;&#51060; &#45796;&#49884; &#51221;&#49345;&#51201;&#51004;&#47196; &#54364;&#49884;&#46096;&#49845;&#45768;&#45796;.</p><p>&#45936;&#51060;&#53552;&#44032; &#49325;&#51228;&#46108; &#47928;&#51228;&#45716; &#50500;&#45768;&#50632;&#51648;&#47564; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#47564; &#50629;&#45936;&#51060;&#53944;&#46104;&#44256; Vaultwarden &#49436;&#48260;&#44032; &#50724;&#47000;&#46108; &#49345;&#53468;&#47196; &#45224;&#51004;&#47732; &#54840;&#54872;&#49457; &#47928;&#51228;&#44032; &#48156;&#49373;&#54624; &#49688; &#51080;&#45796;&#45716; &#51216;&#51012; &#54869;&#51064;&#54664;&#49845;&#45768;&#45796;.</p><div><hr></div><h2>&#49444;&#52824; &#44396;&#49457;</h2><p>&#51060; &#44544;&#50640;&#49436;&#45716; <strong>&#45796;&#51020; &#44396;&#49457;&#51012; &#49324;&#50857;</strong>&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7o3q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7o3q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 424w, https://substackcdn.com/image/fetch/$s_!7o3q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 848w, https://substackcdn.com/image/fetch/$s_!7o3q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 1272w, https://substackcdn.com/image/fetch/$s_!7o3q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7o3q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png" width="1456" height="244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:244,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:557764,&quot;alt&quot;:&quot;Ubuntu &#8594; Docker &#8594; Docker Compose &#8594; Nginx Proxy Manager &#8594; Vaultwarden &#8594; Let's Encrypt SSL &#51064;&#51613;&#49436;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ubuntu &#8594; Docker &#8594; Docker Compose &#8594; Nginx Proxy Manager &#8594; Vaultwarden &#8594; Let's Encrypt SSL &#51064;&#51613;&#49436;" title="Ubuntu &#8594; Docker &#8594; Docker Compose &#8594; Nginx Proxy Manager &#8594; Vaultwarden &#8594; Let's Encrypt SSL &#51064;&#51613;&#49436;" srcset="https://substackcdn.com/image/fetch/$s_!7o3q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 424w, https://substackcdn.com/image/fetch/$s_!7o3q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 848w, https://substackcdn.com/image/fetch/$s_!7o3q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 1272w, https://substackcdn.com/image/fetch/$s_!7o3q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4d13d6-1808-4821-b020-dafeeed47466_1536x257.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>&#49444;&#52824; &#54980; &#46356;&#47113;&#53552;&#47532;</strong>&#45716; &#45796;&#51020;&#44284; &#44057;&#51008; &#54805;&#53468;&#44032; &#46121;&#45768;&#45796;.</p><pre><code><code>~/dockers
&#9500;&#9472;&#9472; nginxproxymanager
&#9474;   &#9500;&#9472;&#9472; data
&#9474;   &#9500;&#9472;&#9472; letsencrypt
&#9474;   &#9500;&#9472;&#9472; .env
&#9474;   &#9492;&#9472;&#9472; docker-compose.yml
&#9492;&#9472;&#9472; vaultwarden
    &#9500;&#9472;&#9472; vw-data
    &#9500;&#9472;&#9472; backups
    &#9500;&#9472;&#9472; .env
    &#9492;&#9472;&#9472; docker-compose.yml</code></code></pre><p><strong>Vaultwarden&#51032; &#49892;&#51228; &#45936;&#51060;&#53552;&#45716; &#45796;&#51020; &#54260;&#45908;&#50640; &#51200;&#51109;</strong>&#46121;&#45768;&#45796;.</p><pre><code><code>~/dockers/vaultwarden/vw-data</code></code></pre><p>Docker &#52968;&#53580;&#51060;&#45320;&#45716; &#45796;&#49884; &#47564;&#46308; &#49688; &#51080;&#51648;&#47564; <code>vw-data</code><strong>&#50640;&#45716; &#44228;&#51221;&#44284; &#44552;&#44256; &#45936;&#51060;&#53552;, &#52392;&#48512; &#54028;&#51068;, &#50516;&#54840;&#54868; &#53412;&#50752; &#49436;&#48260; &#49444;&#51221;&#51060; &#46308;&#50612; &#51080;&#51004;&#48064;&#47196; &#49325;&#51228;&#54616;&#47732; &#50504; &#46121;&#45768;&#45796;.</strong></p><div><hr></div><h3>Ubuntu &#52488;&#44592; &#49444;&#51221;</h3><p>&#54056;&#53412;&#51648;&#47484; &#50629;&#45936;&#51060;&#53944;&#54616;&#44256; &#49436;&#48260; &#49884;&#44036;&#45824;&#47484; &#54620;&#44397;&#51004;&#47196; &#49444;&#51221;&#54633;&#45768;&#45796;.</p><p>&#47700;&#47784;&#47532;&#44032; &#51201;&#51008; &#49548;&#54805; &#51064;&#49828;&#53556;&#49828;&#46972;&#47732; 2GB &#49828;&#50769; &#54028;&#51068;&#46020; &#54632;&#44760; &#47564;&#46308; &#49688; &#51080;&#49845;&#45768;&#45796;. <br><strong>&#51060;&#48120; &#49828;&#50769;&#51060; &#49444;&#51221;&#46076; &#51080;&#45796;&#47732; &#49828;&#50769; &#49373;&#49457; &#48512;&#48516;&#51008; &#44148;&#45320;&#46832;&#50612;&#46020; &#46121;&#45768;&#45796;.</strong></p><pre><code><code># &#54056;&#53412;&#51648; &#50629;&#45936;&#51060;&#53944;
sudo apt update
sudo apt -y upgrade

# &#49436;&#48260; &#49884;&#44036;&#45824;&#47484; &#54620;&#44397;&#51004;&#47196; &#49444;&#51221;
sudo timedatectl set-timezone Asia/Seoul

# &#44592;&#51316; &#49828;&#50769; &#54869;&#51064;
swapon --show

# 2GB &#49828;&#50769; &#54028;&#51068; &#49373;&#49457;
# &#51060;&#48120; &#49828;&#50769;&#51060; &#51080;&#45796;&#47732; &#50500;&#47000; &#45348; &#51460;&#51008; &#49892;&#54665;&#54616;&#51648; &#50506;&#50500;&#46020; &#46121;&#45768;&#45796;.
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# &#51116;&#48512;&#54021; &#54980;&#50640;&#46020; &#49828;&#50769; &#50976;&#51648;
# &#44592;&#51316; &#49444;&#51221;&#51060; &#51080;&#51012; &#46412; &#51473;&#48373;&#51004;&#47196; &#52628;&#44032;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;.
grep -q '^/swapfile ' /etc/fstab || \
  echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

# &#52572;&#51333; &#54869;&#51064;
timedatectl
free -h
swapon --show</code></code></pre><h3>Docker&#50752; Docker Compose &#49444;&#52824;</h3><p>Docker&#50752; Docker Compose&#47484; &#49444;&#52824;&#54616;&#44256; &#48512;&#54021;&#54624; &#46412; &#51088;&#46041;&#51004;&#47196; &#49892;&#54665;&#46104;&#46020;&#47197; &#49444;&#51221;&#54633;&#45768;&#45796;.</p><pre><code><code># Docker&#50752; Docker Compose &#49444;&#52824;
sudo apt install -y docker.io docker-compose-v2

# docker-compose-v2 &#54056;&#53412;&#51648;&#47484; &#52286;&#51012; &#49688; &#50630;&#51012; &#46412;&#45716; &#50500;&#47000; &#47749;&#47161;&#51012; &#49324;&#50857;&#54633;&#45768;&#45796;.
# sudo apt install -y docker.io docker-compose-plugin

# Docker &#49892;&#54665; &#48143; &#51088;&#46041; &#49884;&#51089;
sudo systemctl enable --now docker

# &#49444;&#52824; &#54869;&#51064;
docker --version
docker compose version</code></code></pre><p>&#44284;&#44144; &#47928;&#49436;&#50640;&#49436; &#47566;&#51060; &#48372;&#51060;&#45716; <code>docker-compose</code> &#45824;&#49888; <strong>&#54788;&#51116;&#45716; &#44277;&#48177;&#51060; &#46308;&#50612;&#44036; </strong><code>docker compose</code><strong> &#47749;&#47161;&#51012; &#49324;&#50857;</strong>&#54633;&#45768;&#45796;.</p><p>&#51068;&#48152; &#49324;&#50857;&#51088; &#44228;&#51221;&#50640;&#49436;&#46020; <code>sudo</code> &#50630;&#51060; Docker&#47484; &#49324;&#50857;&#54616;&#44256; &#49910;&#45796;&#47732; &#45796;&#51020; &#47749;&#47161;&#51012; &#49892;&#54665;&#54620; &#46244; &#47196;&#44536;&#50500;&#50883;&#54616;&#44256; &#45796;&#49884; &#47196;&#44536;&#51064;&#54633;&#45768;&#45796;.</p><pre><code><code>sudo usermod -aG docker "$USER"</code></code></pre><h3>&#44277;&#50857; Docker &#45348;&#53944;&#50892;&#53356; &#49373;&#49457;</h3><p>Nginx Proxy Manager&#50752; Vaultwarden&#51012; &#49436;&#47196; &#45796;&#47480; Compose &#54028;&#51068;&#47196; &#44288;&#47532;&#54616;&#47732;&#49436;&#46020; &#45236;&#48512; &#45348;&#53944;&#50892;&#53356;&#47196; &#50672;&#44208;&#54616;&#44592; &#50948;&#54644; &#44277;&#50857; Docker &#45348;&#53944;&#50892;&#53356;&#47484; &#47564;&#46317;&#45768;&#45796;.</p><pre><code><code>docker network inspect proxy-network &gt;/dev/null 2&gt;&amp;1 || \
  docker network create proxy-network</code></code></pre><p>&#51060; &#45348;&#53944;&#50892;&#53356;&#47484; &#49324;&#50857;&#54616;&#47732; Vaultwarden&#51032; &#54252;&#53944;&#47484; &#50808;&#48512;&#50640; &#51649;&#51217; &#44277;&#44060;&#54616;&#51648; &#50506;&#44256; Nginx Proxy Manager&#50640;&#49436; &#52968;&#53580;&#51060;&#45320; &#51060;&#47492;&#51004;&#47196; &#50672;&#44208;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><h3>Nginx Proxy Manager &#49444;&#52824;</h3><p>Vaultwarden &#50937; &#44552;&#44256;&#45716; &#48652;&#46972;&#50864;&#51200;&#51032; Web Crypto API&#47484; &#49324;&#50857;&#54616;&#44592; &#46412;&#47928;&#50640; HTTPS &#54872;&#44221;&#51060; &#54596;&#50836;&#54633;&#45768;&#45796;. Vaultwarden&#46020; HTTPS&#50752; &#47532;&#48260;&#49828; &#54532;&#47197;&#49884; &#49324;&#50857;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;.</p><p>&#50668;&#44592;&#49436;&#45716; &#50937; &#54868;&#47732;&#50640;&#49436; &#54532;&#47197;&#49884; &#54840;&#49828;&#53944;&#50752; SSL &#51064;&#51613;&#49436;&#47484; &#44288;&#47532;&#54624; &#49688; &#51080;&#45716; Nginx Proxy Manager&#47484; &#49324;&#50857;&#54633;&#45768;&#45796;. Nginx Proxy Manager &#50669;&#49884; &#44277;&#49885;&#51201;&#51004;&#47196; Docker Compose &#49444;&#52824; &#50696;&#49884;&#47484; &#51228;&#44277;&#54633;&#45768;&#45796;.</p><h3>&#49444;&#52824; &#54260;&#45908;&#50752; &#48708;&#48128;&#48264;&#54840; &#47564;&#46308;&#44592;</h3><pre><code><code># &#49444;&#52824; &#54260;&#45908; &#49373;&#49457;
mkdir -p ~/dockers/nginxproxymanager/{data,letsencrypt}
cd ~/dockers/nginxproxymanager

# &#45936;&#51060;&#53552;&#48288;&#51060;&#49828;&#50857; &#47924;&#51089;&#50948; &#48708;&#48128;&#48264;&#54840; &#46160; &#44060; &#49373;&#49457;
openssl rand -base64 32
openssl rand -base64 32</code></code></pre><p>&#52636;&#47141;&#46108; &#46160; &#48708;&#48128;&#48264;&#54840;&#47484; &#44033;&#44033; &#48373;&#49324;&#54644; &#50504;&#51204;&#54620; &#44275;&#50640; &#48372;&#44288;&#54633;&#45768;&#45796;.</p><h3>&#54872;&#44221;&#48320;&#49688; &#54028;&#51068; &#49373;&#49457;</h3><p>&#50500;&#47000; &#47749;&#47161; &#51204;&#52404;&#47484; &#48373;&#49324;&#54644; &#48537;&#50668;&#45347;&#46104; <strong>&#48708;&#48128;&#48264;&#54840; &#48512;&#48516;&#51008; &#48169;&#44552; &#49373;&#49457;&#54620; &#44050;&#51004;&#47196; &#44368;&#52404;</strong>&#54633;&#45768;&#45796;.</p><pre><code><code>cat &gt; .env &lt;&lt;'EOF'
DB_MYSQL_ROOT_PASSWORD=&#52395;_&#48264;&#51704;_&#48708;&#48128;&#48264;&#54840;&#47196;_&#44368;&#52404;
DB_MYSQL_PASSWORD=&#46160;_&#48264;&#51704;_&#48708;&#48128;&#48264;&#54840;&#47196;_&#44368;&#52404;
EOF

# &#45796;&#47480; &#49324;&#50857;&#51088;&#44032; &#54028;&#51068;&#51012; &#51069;&#51648; &#47803;&#54616;&#46020;&#47197; &#44428;&#54620; &#51228;&#54620;
chmod 600 .env</code></code></pre><p><code>EOF</code> &#49324;&#51060;&#50640; &#51077;&#47141;&#46108; &#45236;&#50857;&#51060; <code>.env</code> &#54028;&#51068;&#47196; &#51200;&#51109;&#46104;&#48064;&#47196; &#48324;&#46020;&#51032; &#54200;&#51665;&#44592;&#47484; &#49324;&#50857;&#54624; &#54596;&#50836;&#44032; &#50630;&#49845;&#45768;&#45796;.</p><h3>Docker Compose &#54028;&#51068; &#49373;&#49457; &#48143; &#49892;&#54665;</h3><pre><code><code>cat &gt; docker-compose.yml &lt;&lt;'EOF'
services:
  app:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
    environment:
      DB_MYSQL_HOST: db
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: npm
      DB_MYSQL_PASSWORD: ${DB_MYSQL_PASSWORD}
      DB_MYSQL_NAME: npm
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
    networks:
      - proxy-network

  db:
    image: jc21/mariadb-aria:latest
    container_name: nginx-proxy-manager-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: npm
      MYSQL_USER: npm
      MYSQL_PASSWORD: ${DB_MYSQL_PASSWORD}
      MARIADB_AUTO_UPGRADE: "1"
    volumes:
      - ./data/mysql:/var/lib/mysql
    networks:
      - proxy-network

networks:
  proxy-network:
    external: true
EOF

# Compose &#47928;&#48277; &#54869;&#51064;
docker compose config

# &#51060;&#48120;&#51648; &#45796;&#50868;&#47196;&#46300; &#48143; &#49892;&#54665;
docker compose pull
docker compose up -d

# &#49892;&#54665; &#49345;&#53468; &#54869;&#51064;
docker compose ps</code></code></pre><p><code>docker compose config</code>&#50640;&#49436; &#50724;&#47448;&#44032; &#50630;&#45796;&#47732; Nginx Proxy Manager&#44032; &#49892;&#54665;&#46121;&#45768;&#45796;.</p><p>&#44288;&#47532; &#54168;&#51060;&#51648;&#45716; &#45796;&#51020; &#51452;&#49548;&#47196; &#51217;&#49549;&#54633;&#45768;&#45796;.</p><pre><code>http://&#49436;&#48260;-i</code></pre><p>&#52572;&#52488; &#47196;&#44536;&#51064; &#51221;&#48372;&#45716; &#49444;&#52824; &#49884;&#51216;&#51032; Nginx Proxy Manager &#44277;&#49885; &#47928;&#49436;&#47484; &#54869;&#51064;&#54616;&#44256;, <br>&#47196;&#44536;&#51064;&#54620; &#46244; &#44288;&#47532;&#51088; &#51060;&#47700;&#51068;&#44284; &#48708;&#48128;&#48264;&#54840;&#47484; &#51593;&#49884; &#48320;&#44221;&#54633;&#45768;&#45796;.</p><p><code>81</code>&#48264; &#54252;&#53944;&#45716; &#44288;&#47532;&#51088; &#54168;&#51060;&#51648;&#50857;&#51077;&#45768;&#45796;. <br>&#44032;&#45733;&#54616;&#47732; &#51064;&#53552;&#45367; &#51204;&#52404;&#50640; &#44277;&#44060;&#54616;&#51648; &#47568;&#44256; Ubuntu &#48169;&#54868;&#48317;&#51060;&#45208; Oracle Cloud &#48372;&#50504; &#47785;&#47197;&#50640;&#49436; &#48376;&#51064;&#51060; &#49324;&#50857;&#54616;&#45716; IP&#47564; &#51217;&#44540;&#54616;&#46020;&#47197; &#51228;&#54620;&#54616;&#45716; &#54200;&#51060; &#50504;&#51204;&#54633;&#45768;&#45796;.</p><div><hr></div><h2>Vaultwarden &#49444;&#52824;</h2><h3>&#49444;&#52824; &#54260;&#45908;&#50752; &#44288;&#47532;&#51088; &#53664;&#53360; &#47564;&#46308;&#44592;</h3><pre><code><code># &#49444;&#52824; &#54260;&#45908;&#50752; &#48177;&#50629; &#54260;&#45908; &#49373;&#49457;
mkdir -p ~/dockers/vaultwarden/{vw-data,backups}
cd ~/dockers/vaultwarden

# &#44288;&#47532;&#51088; &#54168;&#51060;&#51648;&#50640; &#49324;&#50857;&#54624; &#47924;&#51089;&#50948; &#53664;&#53360; &#49373;&#49457;
openssl rand -base64 48</code></code></pre><p>&#52636;&#47141;&#46108; &#44288;&#47532;&#51088; &#53664;&#53360;&#51008; &#48152;&#46300;&#49884; &#48324;&#46020;&#47196; &#48372;&#44288;&#54633;&#45768;&#45796;.</p><p>&#44288;&#47532;&#51088; &#54168;&#51060;&#51648;&#45716; &#49444;&#52824; &#54980; &#45796;&#51020; &#51452;&#49548;&#47196; &#51217;&#49549;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><pre><code><code>https://vault.example.com/admin</code></code></pre><h3>&#54872;&#44221;&#48320;&#49688; &#54028;&#51068; &#49373;&#49457;</h3><p>&#50500;&#47000;&#51032; &#46020;&#47700;&#51064;&#44284; &#44288;&#47532;&#51088; &#53664;&#53360;&#51012; &#49892;&#51228; &#44050;&#51004;&#47196; &#48148;&#45001;&#45768;&#45796;.<br>&#52376;&#51020; &#44228;&#51221;&#51012; &#49373;&#49457;&#54644;&#50556; &#54616;&#48064;&#47196; <strong>&#54924;&#50896;&#44032;&#51077;&#51008; &#50864;&#49440; &#54728;&#50857;</strong>&#54633;&#45768;&#45796;.</p><pre><code><code>cat &gt; .env &lt;&lt;'EOF'
DOMAIN=https://vault.example.com
SIGNUPS_ALLOWED=true
ADMIN_TOKEN=&#48169;&#44552;_&#49373;&#49457;&#54620;_&#44288;&#47532;&#51088;_&#53664;&#53360;&#51004;&#47196;_&#44368;&#52404;
EOF

chmod 600 .env</code></code></pre><h3>Docker Compose &#54028;&#51068; &#49373;&#49457; &#48143; &#49892;&#54665;</h3><pre><code><code>cat &gt; docker-compose.yml &lt;&lt;'EOF'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    env_file:
      - .env
    environment:
      DOMAIN: ${DOMAIN}
      SIGNUPS_ALLOWED: ${SIGNUPS_ALLOWED}
      ADMIN_TOKEN: ${ADMIN_TOKEN}
    volumes:
      - ./vw-data:/data
    networks:
      - proxy-network

networks:
  proxy-network:
    external: true
EOF

# Compose &#47928;&#48277; &#54869;&#51064;
docker compose config

# &#51060;&#48120;&#51648; &#45796;&#50868;&#47196;&#46300; &#48143; &#49892;&#54665;
docker compose pull
docker compose up -d

# &#49892;&#54665; &#49345;&#53468; &#54869;&#51064;
docker compose ps

# Vaultwarden &#49436;&#48260;&#50752; Web Vault &#48260;&#51204; &#54869;&#51064;
docker exec vaultwarden /vaultwarden --version</code></code></pre><p>Vaultwarden&#51008; &#52968;&#53580;&#51060;&#45320; &#51060;&#48120;&#51648;&#50752; &#54840;&#49828;&#53944;&#51032; &#45936;&#51060;&#53552; &#54260;&#45908;&#47484; &#50672;&#44208;&#54644; &#45936;&#51060;&#53552;&#47484; &#50689;&#44396; &#51200;&#51109;&#54616;&#45716; &#48169;&#49885;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;. &#50948; &#44396;&#49457;&#50640;&#49436;&#45716; <strong>&#54840;&#49828;&#53944;&#51032; </strong><code>vw-data</code><strong> &#54260;&#45908;&#44032; &#52968;&#53580;&#51060;&#45320;&#51032; </strong><code>/data</code><strong>&#50640; &#50672;&#44208;</strong>&#46121;&#45768;&#45796;.</p><p>&#48260;&#51204; &#54869;&#51064; &#44208;&#44284;&#50640;&#45716; &#45796;&#51020; &#46160; &#54637;&#47785;&#51060; &#54364;&#49884;&#46121;&#45768;&#45796;.</p><pre><code><code>Vaultwarden 1.x.x
Web-Vault 2026.x.x</code></code></pre><p><code>Vaultwarden</code>&#51008; &#49436;&#48260; &#48376;&#52404; &#48260;&#51204;&#51060;&#44256; <code>Web-Vault</code>&#45716; &#49436;&#48260;&#50640; &#54252;&#54632;&#46108; &#50937; &#51064;&#53552;&#54168;&#51060;&#49828; &#48260;&#51204;&#51077;&#45768;&#45796;. &#46160; &#49707;&#51088;&#44032; &#45796;&#47480; &#44163;&#51008; &#51221;&#49345;&#51077;&#45768;&#45796;.</p><div><hr></div><h3>Nginx Proxy Manager &#50672;&#44208;</h3><p>Nginx Proxy Manager &#44288;&#47532;&#51088; &#54168;&#51060;&#51648;&#50640; &#51217;&#49549;&#54633;&#45768;&#45796;.</p><pre><code>http://&#49436;&#48260; ip:81</code></pre><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68c5a2a9-8d47-4d6f-99ec-351b83f2fdb4_2458x1704.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eae765b0-1493-44de-ab8a-b0e198fecc4c_2458x1704.png&quot;}],&quot;caption&quot;:&quot;Hosts &#8594; Proxy Hosts &#8594; Add Proxy Host&#47484; &#49440;&#53469;&#54633;&#45768;&#45796;.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/369523a6-ca3d-4b44-9b01-4e1287bd3a26_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><h3>Details</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bSY_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bSY_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 424w, https://substackcdn.com/image/fetch/$s_!bSY_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 848w, https://substackcdn.com/image/fetch/$s_!bSY_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 1272w, https://substackcdn.com/image/fetch/$s_!bSY_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bSY_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png" width="1456" height="897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:897,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115360,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bSY_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 424w, https://substackcdn.com/image/fetch/$s_!bSY_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 848w, https://substackcdn.com/image/fetch/$s_!bSY_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 1272w, https://substackcdn.com/image/fetch/$s_!bSY_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc44e83a-ef11-4ebd-b689-37cafe146a63_2458x1514.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>&#45796;&#51020;&#44284; &#44057;&#51060; &#51077;&#47141;</strong>&#54633;&#45768;&#45796;.</p><pre><code><code>Domain Names: vault.example.com
Scheme: http
Forward Hostname / IP: vaultwarden
Forward Port: 80</code></code></pre><p><strong>&#45796;&#51020; &#54637;&#47785;&#51012; &#54876;&#49457;&#54868;</strong>&#54633;&#45768;&#45796;.</p><pre><code><code>Block Common Exploits
Websockets Support</code></code></pre><h3>SSL</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1VTK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1VTK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 424w, https://substackcdn.com/image/fetch/$s_!1VTK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 848w, https://substackcdn.com/image/fetch/$s_!1VTK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 1272w, https://substackcdn.com/image/fetch/$s_!1VTK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1VTK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp" width="1456" height="636" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:636,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13738,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1VTK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 424w, https://substackcdn.com/image/fetch/$s_!1VTK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 848w, https://substackcdn.com/image/fetch/$s_!1VTK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 1272w, https://substackcdn.com/image/fetch/$s_!1VTK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc844a34-f8b8-471b-a359-6eeba86933a2_1456x636.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><code>SSL Certificate</code>&#50640;&#49436; <code>Request a new SSL Certificate</code>&#47484; &#49440;&#53469;&#54633;&#45768;&#45796;.</p><p>&#45796;&#51020; &#54637;&#47785;&#51012; &#54876;&#49457;&#54868;&#54633;&#45768;&#45796;.</p><pre><code><code>Force SSL
HTTP/2 Support
HSTS Enabled</code></code></pre><p>Let&#8217;s Encrypt &#51060;&#50857;&#50557;&#44288;&#50640; &#46041;&#51032;&#54620; &#46244; &#51200;&#51109;&#54633;&#45768;&#45796;.</p><p>&#51221;&#49345;&#51201;&#51004;&#47196; &#49444;&#51221;&#46104;&#47732; &#45796;&#51020; &#51452;&#49548;&#47196; Vaultwarden&#50640; &#51217;&#49549;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><pre><code>httpas</code></pre><p>&#44284;&#44144; &#49444;&#52824; &#50696;&#49884;&#50640;&#49436;&#45716; &#49892;&#49884;&#44036; &#50508;&#47548;&#51012; &#50948;&#54644; <code>3012</code> &#54252;&#53944;&#47484; &#48324;&#46020;&#47196; &#50672;&#44208;&#54616;&#44592;&#46020; &#54664;&#51648;&#47564; <br>&#54788;&#51116; &#44396;&#49457;&#50640;&#49436;&#45716; &#48324;&#46020;&#51032; <code>3012</code> &#54252;&#53944; &#47588;&#54609;&#51060; &#54596;&#50836;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>&#52395; &#44228;&#51221; &#49373;&#49457; &#54980; &#54924;&#50896;&#44032;&#51077; &#52264;&#45800;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!83Bz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!83Bz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 424w, https://substackcdn.com/image/fetch/$s_!83Bz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 848w, https://substackcdn.com/image/fetch/$s_!83Bz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 1272w, https://substackcdn.com/image/fetch/$s_!83Bz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!83Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png" width="1456" height="890" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:890,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:224142,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!83Bz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 424w, https://substackcdn.com/image/fetch/$s_!83Bz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 848w, https://substackcdn.com/image/fetch/$s_!83Bz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 1272w, https://substackcdn.com/image/fetch/$s_!83Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd963043-da75-4bfc-bb08-57d1159d7d9e_1458x891.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Vaultwarden &#50937; &#54168;&#51060;&#51648;&#50640;&#49436; <strong>&#49324;&#50857;&#54624; &#44228;&#51221;&#51012; &#47676;&#51200; &#49373;&#49457;</strong>&#54633;&#45768;&#45796;.<br>&#44228;&#51221; &#49373;&#49457;&#51060; &#45149;&#45228;&#45796;&#47732; <strong>&#50500;&#47000; &#47749;&#47161;&#51012; &#49892;&#54665;&#54644; &#54924;&#50896;&#44032;&#51077;&#51012; &#52264;&#45800;</strong>&#54633;&#45768;&#45796;.</p><pre><code><code>cd ~/dockers/vaultwarden

# SIGNUPS_ALLOWED=true&#47484; false&#47196; &#48320;&#44221;
sed -i 's/^SIGNUPS_ALLOWED=true$/SIGNUPS_ALLOWED=false/' .env

# &#48320;&#44221;&#46108; &#49444;&#51221; &#54869;&#51064;
grep SIGNUPS_ALLOWED .env

# &#52968;&#53580;&#51060;&#45320;&#50640; &#49444;&#51221; &#51201;&#50857;
docker compose up -d</code></code></pre><p><strong>&#44208;&#44284;&#44032; &#45796;&#51020;&#44284; &#44057;&#51060; &#54364;&#49884;&#46104;&#47732; &#51221;&#49345;</strong>&#51077;&#45768;&#45796;.</p><pre><code><code>SIGNUPS_ALLOWED=false</code></code></pre><p>Vaultwarden &#44288;&#47532;&#51088; &#54168;&#51060;&#51648;&#50640;&#49436; &#49444;&#51221;&#51012; &#51200;&#51109;&#54620; &#51201;&#51060; &#51080;&#45796;&#47732; <code>vw-data/config.json</code>&#51032; &#44050;&#51060; <code>.env</code>&#48372;&#45796; &#50864;&#49440; &#51201;&#50857;&#46112; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#49892;&#54665; &#49884; &#45796;&#51020;&#44284; &#44057;&#51008; &#47700;&#49884;&#51648;&#44032; &#54364;&#49884;&#46104;&#45908;&#46972;&#46020; &#50724;&#47448;&#45716; &#50500;&#45785;&#45768;&#45796;.</p><pre><code><code>The following environment variables are being overridden by the config.json file</code></code></pre><p>&#44288;&#47532;&#51088; &#54168;&#51060;&#51648;&#50640;&#49436; &#51200;&#51109;&#54620; &#49444;&#51221;&#51060; &#54872;&#44221;&#48320;&#49688;&#48372;&#45796; &#50864;&#49440; &#51201;&#50857;&#46104;&#44256; &#51080;&#45796;&#45716; &#50504;&#45236;&#51077;&#45768;&#45796;.</p><div><hr></div><h2>Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944; &#50672;&#44208;</h2><p>&#48652;&#46972;&#50864;&#51200; &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#51060;&#45208; &#45936;&#49828;&#53356;&#53681; &#50545;&#50640;&#49436; &#48148;&#47196; &#47196;&#44536;&#51064;&#54616;&#47732; &#44277;&#49885; Bitwarden &#49436;&#48260;&#47196; &#50672;&#44208;&#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YAsN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YAsN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 424w, https://substackcdn.com/image/fetch/$s_!YAsN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 848w, https://substackcdn.com/image/fetch/$s_!YAsN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 1272w, https://substackcdn.com/image/fetch/$s_!YAsN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YAsN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png" width="1456" height="1516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e724e76a-0419-438d-a783-76a2b2927954_1554x1618.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1516,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:433243,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YAsN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 424w, https://substackcdn.com/image/fetch/$s_!YAsN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 848w, https://substackcdn.com/image/fetch/$s_!YAsN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 1272w, https://substackcdn.com/image/fetch/$s_!YAsN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe724e76a-0419-438d-a783-76a2b2927954_1554x1618.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#47196;&#44536;&#51064; &#54868;&#47732;&#50640;&#49436; <strong>&#51088;&#52404; &#54840;&#49828;&#53944;</strong> &#46608;&#45716; <strong>Self-hosted</strong> &#54637;&#47785;&#51012; &#45580;&#47084;&#51452;&#49464;&#50836;.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GpiA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GpiA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 424w, https://substackcdn.com/image/fetch/$s_!GpiA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 848w, https://substackcdn.com/image/fetch/$s_!GpiA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 1272w, https://substackcdn.com/image/fetch/$s_!GpiA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GpiA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png" width="1456" height="1516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1516,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:383942,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/141606468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!GpiA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 424w, https://substackcdn.com/image/fetch/$s_!GpiA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 848w, https://substackcdn.com/image/fetch/$s_!GpiA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 1272w, https://substackcdn.com/image/fetch/$s_!GpiA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607a155f-48ab-4240-b4ae-feccdaf88ee2_1456x1516.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>&#49436;&#48260; &#51452;&#49548;&#47484; &#51077;&#47141;&#54620; &#46244; &#51200;&#51109;&#48260;&#53948;</strong>&#51012; &#45580;&#47084;&#51452;&#49464;&#50836;.</figcaption></figure></div><p>&#47196;&#44536;&#51064; &#54868;&#47732;&#50640;&#49436; &#49436;&#48260; &#49444;&#51221; &#46608;&#45716; <code>Self-hosted</code> &#54637;&#47785;&#51012; &#50676;&#44256; &#49436;&#48260; &#51452;&#49548;&#47484; &#51077;&#47141; &#54620;&#46244;,<br>Vaultwarden&#50640;&#49436; &#47564;&#46304; &#44228;&#51221;&#51004;&#47196; &#47196;&#44536;&#51064;&#54633;&#45768;&#45796;.</p><p>&#48652;&#46972;&#50864;&#51200; &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#44284; &#50545;&#51008; &#44277;&#49885; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#47484; &#49324;&#50857;&#54616;&#51648;&#47564; <strong>&#45936;&#51060;&#53552;&#45716; &#51649;&#51217; &#44396;&#52629;&#54620; Vaultwarden &#49436;&#48260;&#50752; &#46041;&#44592;&#54868;</strong>&#46121;&#45768;&#45796;.</p><div><hr></div><h3>Vaultwarden &#45936;&#51060;&#53552; &#48177;&#50629;</h3><p>Vaultwarden &#45936;&#51060;&#53552;&#45716; &#45796;&#51020; &#54260;&#45908;&#50640; &#51200;&#51109;&#46121;&#45768;&#45796;.</p><pre><code><code>~/dockers/vaultwarden/vw-data</code></code></pre><p>&#51068;&#48152;&#51201;&#51004;&#47196; &#45796;&#51020; &#54028;&#51068;&#44284; &#54260;&#45908;&#44032; &#54252;&#54632;&#46121;&#45768;&#45796;.</p><pre><code><code>db.sqlite3
config.json
attachments
sends
rsa_key.pem
rsa_key.pub.pem</code></code></pre><p>&#45936;&#51060;&#53552;&#48288;&#51060;&#49828;&#49104; &#50500;&#45768;&#46972; &#52392;&#48512; &#54028;&#51068;&#44284; &#50516;&#54840;&#54868; &#53412;, &#49444;&#51221;&#51012; &#54632;&#44760; &#48373;&#44396;&#54616;&#47140;&#47732; <code>vw-data</code> &#54260;&#45908; &#51204;&#52404;&#47484; &#48177;&#50629;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><p>&#50500;&#47000; &#47749;&#47161;&#51008; Vaultwarden&#51012; &#51104;&#49884; &#47688;&#52628;&#44256; &#45936;&#51060;&#53552; &#51204;&#52404;&#47484; &#50517;&#52629;&#54620; &#46244; &#45796;&#49884; &#49884;&#51089;&#54633;&#45768;&#45796;.</p><pre><code><code>cd ~/dockers/vaultwarden

# &#48177;&#50629; &#54260;&#45908; &#49373;&#49457;
mkdir -p backups

# &#45936;&#51060;&#53552;&#48288;&#51060;&#49828;&#44032; &#48320;&#44221;&#46104;&#51648; &#50506;&#46020;&#47197; &#51104;&#49884; &#51473;&#51648;
docker compose stop vaultwarden

# &#54788;&#51116; &#45216;&#51676;&#50752; &#49884;&#44036;&#51012; &#48537;&#50668; &#51204;&#52404; &#45936;&#51060;&#53552; &#50517;&#52629;
tar -czpf \
  "backups/vw-data-$(date +%Y%m%d-%H%M%S).tar.gz" \
  vw-data

# Vaultwarden &#45796;&#49884; &#49892;&#54665;
docker compose start vaultwarden

# &#49373;&#49457;&#46108; &#48177;&#50629; &#54869;&#51064;
ls -lh backups</code></code></pre><p>&#49436;&#48260; &#45236;&#48512;&#50640;&#47564; &#48177;&#50629;&#54616;&#47732; &#51064;&#49828;&#53556;&#49828;&#45208; &#46356;&#49828;&#53356;&#50640; &#47928;&#51228;&#44032; &#49373;&#44220;&#51012; &#46412; &#48177;&#50629;&#46020; &#54632;&#44760; &#49324;&#46972;&#51656; &#49688; &#51080;&#49845;&#45768;&#45796;. &#51473;&#50836;&#54620; &#48177;&#50629; &#54028;&#51068;&#51008; &#47196;&#52972; &#52980;&#54504;&#53552;&#45208; &#48324;&#46020; &#51200;&#51109;&#51109;&#52824;&#50640;&#46020; &#48373;&#49324;&#54616;&#45716; &#44163;&#51060; &#51339;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>Vaultwarden &#49688;&#46041; &#50629;&#45936;&#51060;&#53944;</h3><p>Compose &#54028;&#51068;&#50640; <code>latest</code>&#47484; &#51201;&#50632;&#45796;&#44256; &#49892;&#54665; &#51473;&#51064; Vaultwarden&#51060; &#51088;&#46041;&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#46104;&#45716; &#44163;&#51008; &#50500;&#45785;&#45768;&#45796;.</p><p>&#52572;&#49888; &#51060;&#48120;&#51648;&#47484; &#45236;&#47140;&#48155;&#44256; &#49352; &#51060;&#48120;&#51648;&#47196; &#52968;&#53580;&#51060;&#45320;&#47484; &#51116;&#49373;&#49457;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><p>&#50629;&#45936;&#51060;&#53944; &#51204; &#48177;&#50629;&#48512;&#53552; &#51652;&#54665;&#54633;&#45768;&#45796;.</p><pre><code><code>cd ~/dockers/vaultwarden

# &#50629;&#45936;&#51060;&#53944; &#51204; &#45936;&#51060;&#53552; &#48177;&#50629;
mkdir -p backups
docker compose stop vaultwarden
tar -czpf \
  "backups/vw-data-$(date +%Y%m%d-%H%M%S).tar.gz" \
  vw-data
docker compose start vaultwarden

# &#52572;&#49888; &#51060;&#48120;&#51648; &#45796;&#50868;&#47196;&#46300; &#48143; &#51201;&#50857;
docker compose pull
docker compose up -d

# &#50629;&#45936;&#51060;&#53944;&#46108; &#48260;&#51204;&#44284; &#49892;&#54665; &#49345;&#53468; &#54869;&#51064;
docker exec vaultwarden /vaultwarden --version
docker compose ps</code></code></pre><p>&#52968;&#53580;&#51060;&#45320;&#45716; &#49352; &#51060;&#48120;&#51648;&#47196; &#44368;&#52404;&#46112; &#49688; &#51080;&#51648;&#47564; &#45796;&#51020; &#48380;&#47464; &#50672;&#44208;&#51008; &#50976;&#51648;&#46121;&#45768;&#45796;.</p><pre><code><code>volumes:
  - ./vw-data:/data</code></code></pre><p>&#46384;&#46972;&#49436; &#54840;&#49828;&#53944;&#51032; <code>vw-data</code> &#54260;&#45908;&#47484; &#51649;&#51217; &#49325;&#51228;&#54616;&#51648; &#50506;&#45716; &#54620; &#50629;&#45936;&#51060;&#53944; &#44284;&#51221;&#50640;&#49436; &#44552;&#44256; &#45936;&#51060;&#53552;&#44032; &#52488;&#44592;&#54868;&#46104;&#51648; &#50506;&#49845;&#45768;&#45796;.</p><p>&#44284;&#44144; &#44544;&#50640;&#49436; &#49324;&#50857;&#54664;&#45912; &#45796;&#51020; &#48169;&#49885;&#51008; &#45908; &#51060;&#49345; &#44428;&#51109;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;.</p><pre><code><code>docker stop vaultwarden
docker rm vaultwarden
docker run ...</code></code></pre><p>&#48380;&#47464;&#44284; &#54872;&#44221;&#48320;&#49688;, &#45348;&#53944;&#50892;&#53356; &#46321;&#51012; &#47784;&#46160; &#51221;&#54869;&#55176; &#45796;&#49884; &#51648;&#51221;&#54616;&#47732; &#49324;&#50857;&#54624; &#49688; &#51080;&#51648;&#47564; &#49444;&#51221;&#51012; &#48736;&#46888;&#47540; &#50948;&#54744;&#51060; &#51080;&#49845;&#45768;&#45796;.</p><p>&#54788;&#51116;&#45716; &#49892;&#54665; &#49444;&#51221;&#51012; <code>docker-compose.yml</code>&#50640; &#44592;&#47197;&#54616;&#44256; &#45796;&#51020; &#46160; &#47749;&#47161;&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#54616;&#45716; &#54200;&#51060; &#44036;&#45800;&#54616;&#44256; &#50504;&#51204;&#54633;&#45768;&#45796;.</p><pre><code><code>docker compose pull
docker compose up -d</code></code></pre><div><hr></div><h3>Nginx Proxy Manager &#49688;&#46041; &#50629;&#45936;&#51060;&#53944;</h3><p>Nginx Proxy Manager&#46020; &#44057;&#51008; &#48169;&#49885;&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#54633;&#45768;&#45796;. &#44277;&#49885; &#50629;&#45936;&#51060;&#53944; &#50504;&#45236; &#50669;&#49884; <code>docker compose pull</code>&#44284; <code>docker compose up -d</code>&#47484; &#49324;&#50857;&#54633;&#45768;&#45796;.</p><p>&#50629;&#45936;&#51060;&#53944; &#51204;&#50640; Nginx Proxy Manager&#51032; <code>data</code>&#50752; <code>letsencrypt</code> &#54260;&#45908;&#47484; &#48177;&#50629;&#54633;&#45768;&#45796;.</p><pre><code><code>cd ~/dockers/nginxproxymanager

# &#48177;&#50629; &#54260;&#45908; &#49373;&#49457;
mkdir -p backups

# &#52968;&#53580;&#51060;&#45320; &#51104;&#49884; &#51473;&#51648;
docker compose down

# &#49444;&#51221;&#44284; &#51064;&#51613;&#49436;, &#45936;&#51060;&#53552;&#48288;&#51060;&#49828; &#51204;&#52404; &#48177;&#50629;
tar -czpf \
  "backups/nginxproxymanager-$(date +%Y%m%d-%H%M%S).tar.gz" \
  data letsencrypt .env docker-compose.yml

# &#52572;&#49888; &#51060;&#48120;&#51648; &#51201;&#50857;
docker compose pull
docker compose up -d

# &#49892;&#54665; &#49345;&#53468; &#54869;&#51064;
docker compose ps</code></code></pre><p><code>data</code> &#54260;&#45908;&#50640;&#45716; Nginx Proxy Manager &#49444;&#51221;&#44284; &#45936;&#51060;&#53552;&#48288;&#51060;&#49828;&#44032; &#54252;&#54632;&#46104;&#44256;, <code>letsencrypt</code>&#50640;&#45716; &#48156;&#44553;&#46108; &#51064;&#51613;&#49436;&#44032; &#51200;&#51109;&#46121;&#45768;&#45796;.</p><div><hr></div><h2>&#49440;&#53469; &#49324;&#54637;: &#51452;&#44036; &#51088;&#46041; &#50629;&#45936;&#51060;&#53944;</h2><blockquote><p>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944;&#45716; &#54596;&#49688; &#49444;&#51221;&#51060; &#50500;&#45785;&#45768;&#45796;.<br>&#49352; &#48260;&#51204;&#51012; &#51649;&#51217; &#54869;&#51064;&#54620; &#46244; &#50629;&#45936;&#51060;&#53944;&#54616;&#44256; &#49910;&#45796;&#47732; &#51060; &#48512;&#48516;&#51008; &#44148;&#45320;&#46832;&#47732; &#46121;&#45768;&#45796;.</p></blockquote><p>&#44284;&#44144;&#50640;&#45716; Watchtower&#47484; &#51060;&#50857;&#54644; Docker &#52968;&#53580;&#51060;&#45320;&#47484; &#51088;&#46041;&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#54616;&#45716; &#48169;&#48277;&#51060; &#45328;&#47532; &#49324;&#50857;&#46096;&#49845;&#45768;&#45796;.</p><p>&#54616;&#51648;&#47564; Watchtower &#44277;&#49885; &#51200;&#51109;&#49548;&#45716; 2025&#45380; 12&#50900; 17&#51068; &#51069;&#44592; &#51204;&#50857;&#51004;&#47196; &#51204;&#54872;&#46096;&#49845;&#45768;&#45796;.</p><p>&#51228; &#49436;&#48260;&#50640;&#49436;&#45716; Docker Engine&#51060; &#50629;&#45936;&#51060;&#53944;&#46108; &#46244; Watchtower&#44032; &#45796;&#51020; &#50724;&#47448;&#47484; &#48152;&#48373;&#54616;&#47728; &#45908; &#51060;&#49345; &#46041;&#51089;&#54616;&#51648; &#50506;&#50520;&#49845;&#45768;&#45796;.</p><pre><code><code>client version 1.25 is too old
Minimum supported API version is 1.44</code></code></pre><p>Watchtower &#52968;&#53580;&#51060;&#45320;&#45716; &#49892;&#54665; &#47785;&#47197;&#50640; &#51080;&#50632;&#51648;&#47564; &#49892;&#51228;&#47196;&#45716; Vaultwarden&#51012; &#50629;&#45936;&#51060;&#53944;&#54616;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;.</p><p>&#44536; &#44208;&#44284; Vaultwarden &#49436;&#48260;&#44032; &#50557; &#46160; &#45804;&#44036; &#44396;&#48260;&#51204;&#50640; &#47672;&#47932;&#47104;&#44256; Bitwarden &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#44284; &#54840;&#54872;&#49457; &#47928;&#51228;&#44032; &#49373;&#44220;&#49845;&#45768;&#45796;.</p><p>&#54788;&#51116;&#45716; &#48324;&#46020; &#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#52968;&#53580;&#51060;&#45320; &#45824;&#49888; Ubuntu&#51032; <code>systemd timer</code>&#47484; &#49324;&#50857;&#54644; &#47588;&#51452; &#54620; &#48264; &#45796;&#51020; &#51089;&#50629;&#51012; &#49688;&#54665;&#54616;&#46020;&#47197; &#44396;&#49457;&#54633;&#45768;&#45796;.</p><pre><code><code>Vaultwarden &#45936;&#51060;&#53552; &#48177;&#50629;
Vaultwarden &#50629;&#45936;&#51060;&#53944;
Nginx Proxy Manager &#50629;&#45936;&#51060;&#53944;
&#52572;&#44540; Vaultwarden &#48177;&#50629; 8&#44060; &#50976;&#51648;
&#49324;&#50857;&#54616;&#51648; &#50506;&#45716; Docker &#51060;&#48120;&#51648; &#51221;&#47532;</code></code></pre><h3>&#49444;&#52824; &#44221;&#47196; &#54869;&#51064;</h3><p>&#50500;&#47000; &#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#49444;&#51221;&#51008; Ubuntu &#49324;&#50857;&#51088; &#51060;&#47492;&#51060; <code>ubuntu</code>&#51060;&#44256; &#49444;&#52824; &#44221;&#47196;&#44032; &#45796;&#51020;&#44284; &#44057;&#45796;&#44256; &#44032;&#51221;&#54633;&#45768;&#45796;.</p><pre><code><code>/home/ubuntu/dockers/vaultwarden
/home/ubuntu/dockers/nginxproxymanager</code></code></pre><p>&#45796;&#47480; &#49324;&#50857;&#51088;&#45208; &#44221;&#47196;&#47484; &#49324;&#50857;&#54664;&#45796;&#47732; &#49828;&#53356;&#47549;&#53944; &#49345;&#45800;&#51032; &#44221;&#47196;&#47484; &#49892;&#51228; &#54872;&#44221;&#50640; &#47582;&#44172; &#48320;&#44221;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><h3>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#49828;&#53356;&#47549;&#53944; &#49373;&#49457;</h3><p>&#50500;&#47000; &#47749;&#47161; &#51204;&#52404;&#47484; &#48373;&#49324;&#54644; &#49892;&#54665;&#54633;&#45768;&#45796;.</p><pre><code><code>sudo tee /usr/local/sbin/update-vaultwarden-stack.sh &gt;/dev/null &lt;&lt;'EOF'
#!/usr/bin/env bash
set -Eeuo pipefail

VAULTWARDEN_DIR="/home/ubuntu/dockers/vaultwarden"
NPM_DIR="/home/ubuntu/dockers/nginxproxymanager"
BACKUP_DIR="$VAULTWARDEN_DIR/backups"
LOCK_FILE="/run/lock/vaultwarden-stack-update.lock"
VAULTWARDEN_STOPPED=0

log() {
  echo "[$(date --iso-8601=seconds)] $*"
}

# &#48177;&#50629; &#51473; &#50724;&#47448;&#44032; &#45208;&#45908;&#46972;&#46020; Vaultwarden&#51060; &#51221;&#51648; &#49345;&#53468;&#47196; &#45224;&#51648; &#50506;&#44172; &#54633;&#45768;&#45796;.
restart_vaultwarden() {
  if [[ "$VAULTWARDEN_STOPPED" -eq 1 ]]; then
    cd "$VAULTWARDEN_DIR"
    docker compose start vaultwarden || true
  fi
}

trap restart_vaultwarden EXIT

# &#51473;&#48373; &#49892;&#54665; &#48169;&#51648;
exec 9&gt;"$LOCK_FILE"
flock -n 9 || exit 0

mkdir -p "$BACKUP_DIR"
cd "$VAULTWARDEN_DIR"

log "Vaultwarden&#51012; &#51473;&#51648;&#54616;&#44256; &#45936;&#51060;&#53552;&#47484; &#48177;&#50629;&#54633;&#45768;&#45796;."
docker compose stop vaultwarden
VAULTWARDEN_STOPPED=1

tar -czpf \
  "$BACKUP_DIR/vw-data-$(date +%Y%m%d-%H%M%S).tar.gz" \
  vw-data

log "&#48177;&#50629; &#54980; Vaultwarden&#51012; &#45796;&#49884; &#49892;&#54665;&#54633;&#45768;&#45796;."
docker compose start vaultwarden
VAULTWARDEN_STOPPED=0

log "&#52572;&#44540; &#48177;&#50629; 8&#44060;&#47564; &#50976;&#51648;&#54633;&#45768;&#45796;."
find "$BACKUP_DIR" \
  -maxdepth 1 \
  -type f \
  -name 'vw-data-*.tar.gz' \
  -printf '%T@ %p\n' |
  sort -rn |
  tail -n +9 |
  cut -d' ' -f2- |
  xargs -r rm -f

log "Vaultwarden&#51012; &#50629;&#45936;&#51060;&#53944;&#54633;&#45768;&#45796;."
cd "$VAULTWARDEN_DIR"
docker compose pull
docker compose up -d

log "Nginx Proxy Manager&#47484; &#50629;&#45936;&#51060;&#53944;&#54633;&#45768;&#45796;."
cd "$NPM_DIR"
docker compose pull
docker compose up -d

log "&#52968;&#53580;&#51060;&#45320;&#44032; &#49884;&#51089;&#46112; &#46412;&#44620;&#51648; &#44592;&#45796;&#47549;&#45768;&#45796;."
sleep 15

log "Vaultwarden &#49345;&#53468;"
cd "$VAULTWARDEN_DIR"
docker compose ps

log "Nginx Proxy Manager &#49345;&#53468;"
cd "$NPM_DIR"
docker compose ps

# &#51452;&#50836; &#52968;&#53580;&#51060;&#45320;&#44032; &#49892;&#54665; &#51473;&#51064;&#51648; &#54869;&#51064;
docker ps --format '{{.Names}}' | grep -qx 'vaultwarden'
docker ps --format '{{.Names}}' | grep -qx 'nginx-proxy-manager'
docker ps --format '{{.Names}}' | grep -qx 'nginx-proxy-manager-db'

log "&#49324;&#50857;&#54616;&#51648; &#50506;&#45716; &#51060;&#51204; &#51060;&#48120;&#51648;&#47484; &#51221;&#47532;&#54633;&#45768;&#45796;."
docker image prune -f

log "&#51088;&#46041; &#48177;&#50629; &#48143; &#50629;&#45936;&#51060;&#53944;&#47484; &#50756;&#47308;&#54664;&#49845;&#45768;&#45796;."
EOF

sudo chmod 750 /usr/local/sbin/update-vaultwarden-stack.sh</code></code></pre><h3>systemd &#49436;&#48708;&#49828;&#50752; &#53440;&#51060;&#47672; &#46321;&#47197;</h3><p>&#47588;&#51452; &#51068;&#50836;&#51068; &#50724;&#51204; 4&#49884;&#50640; &#49892;&#54665;&#54616;&#46020;&#47197; &#49436;&#48708;&#49828;&#50752; &#53440;&#51060;&#47672;&#47484; &#54620; &#48264;&#50640; &#49373;&#49457;&#54633;&#45768;&#45796;.</p><pre><code><code>sudo tee /etc/systemd/system/vaultwarden-stack-update.service &gt;/dev/null &lt;&lt;'EOF'
[Unit]
Description=Back up and update Vaultwarden and Nginx Proxy Manager
Requires=docker.service
After=docker.service network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/update-vaultwarden-stack.sh
TimeoutStartSec=45min
EOF

sudo tee /etc/systemd/system/vaultwarden-stack-update.timer &gt;/dev/null &lt;&lt;'EOF'
[Unit]
Description=Weekly Vaultwarden stack backup and update

[Timer]
OnCalendar=Sun *-*-* 04:00:00 Asia/Seoul
Persistent=true
RandomizedDelaySec=10m
Unit=vaultwarden-stack-update.service

[Install]
WantedBy=timers.target
EOF

# &#49444;&#51221; &#51201;&#50857; &#48143; &#51088;&#46041; &#49892;&#54665; &#54876;&#49457;&#54868;
sudo systemctl daemon-reload
sudo systemctl enable --now vaultwarden-stack-update.timer

# &#45796;&#51020; &#49892;&#54665; &#51068;&#51221; &#54869;&#51064;
systemctl list-timers --all | grep vaultwarden</code></code></pre><p><code>RandomizedDelaySec=10m</code>&#51012; &#49324;&#50857;&#54664;&#51004;&#48064;&#47196; &#47588;&#51452; &#51068;&#50836;&#51068; &#50724;&#51204; 4&#49884;&#48512;&#53552; 4&#49884; 10&#48516; &#49324;&#51060;&#50640; &#49892;&#54665;&#46121;&#45768;&#45796;.</p><p>&#50696;&#50557; &#49884;&#44036;&#50640; &#49436;&#48260;&#44032; &#44732;&#51256; &#51080;&#50632;&#45796;&#47732; <code>Persistent=true</code> &#49444;&#51221;&#50640; &#46384;&#46972; &#45796;&#51020; &#48512;&#54021; &#54980; &#45459;&#52828; &#51089;&#50629;&#51012; &#49892;&#54665;&#54633;&#45768;&#45796;.</p><h3>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#49884;&#54744;</h3><p>&#50696;&#50557;&#51068;&#44620;&#51648; &#44592;&#45796;&#47532;&#51648; &#50506;&#44256; &#54620; &#48264; &#51649;&#51217; &#49892;&#54665;&#54644; &#48389;&#45768;&#45796;.</p><pre><code><code># &#51088;&#46041; &#48177;&#50629;&#44284; &#50629;&#45936;&#51060;&#53944; &#51593;&#49884; &#49892;&#54665;
sudo systemctl start vaultwarden-stack-update.service

# &#49892;&#54665; &#44208;&#44284;&#50752; &#47196;&#44536; &#54869;&#51064;
systemctl status vaultwarden-stack-update.service --no-pager
sudo journalctl \
  -u vaultwarden-stack-update.service \
  -n 100 \
  --no-pager

# &#49373;&#49457;&#46108; Vaultwarden &#48177;&#50629; &#54869;&#51064;
ls -lh ~/dockers/vaultwarden/backups</code></code></pre><p><code>Type=oneshot</code> &#49436;&#48708;&#49828;&#45716; &#51089;&#50629;&#51012; &#47560;&#52824;&#47732; <code>inactive (dead)</code>&#47196; &#54364;&#49884;&#46112; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#51060;&#45716; &#50724;&#47448;&#44032; &#50500;&#45768;&#47728; &#45796;&#51020;&#44284; &#44057;&#51060; &#49457;&#44277; &#50668;&#48512;&#44032; &#54364;&#49884;&#46104;&#47732; &#51221;&#49345;&#51077;&#45768;&#45796;.</p><pre><code><code>status=0/SUCCESS</code></code></pre><p>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944;&#44032; &#48512;&#45812;&#49828;&#47101;&#45796;&#47732; &#51060; &#49444;&#51221;&#51012; &#51201;&#50857;&#54616;&#51648; &#50506;&#44256; &#50526;&#50640;&#49436; &#49444;&#47749;&#54620; &#49688;&#46041; &#50629;&#45936;&#51060;&#53944; &#47749;&#47161;&#47564; &#51452;&#44592;&#51201;&#51004;&#47196; &#49892;&#54665;&#54644;&#46020; &#46121;&#45768;&#45796;.</p><div><hr></div><h3>&#47928;&#51228;&#44032; &#49373;&#44220;&#51012; &#46412; &#54869;&#51064;&#54624; &#47749;&#47161;</h3><p>Vaultwarden &#49892;&#54665; &#49345;&#53468;:</p><pre><code><code>cd ~/dockers/vaultwarden
docker compose ps</code></code></pre><p>Vaultwarden &#48260;&#51204;:</p><pre><code><code>docker exec vaultwarden /vaultwarden --version</code></code></pre><p>Vaultwarden &#52572;&#44540; &#47196;&#44536;:</p><pre><code><code>docker logs --tail 100 vaultwarden</code></code></pre><p>Nginx Proxy Manager &#49892;&#54665; &#49345;&#53468;:</p><pre><code><code>cd ~/dockers/nginxproxymanager
docker compose ps</code></code></pre><p>Nginx Proxy Manager &#52572;&#44540; &#47196;&#44536;:</p><pre><code><code>docker logs --tail 100 nginx-proxy-manager</code></code></pre><p>Vaultwarden&#44284; Nginx Proxy Manager&#44032; &#44277;&#50857; &#45348;&#53944;&#50892;&#53356;&#50640; &#50672;&#44208;&#46096;&#45716;&#51648; &#54869;&#51064;:</p><pre><code><code>docker network inspect proxy-network</code></code></pre><p>Vaultwarden &#48177;&#50629; &#54869;&#51064;:</p><pre><code><code>ls -lh ~/dockers/vaultwarden/backups</code></code></pre><p>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#51068;&#51221; &#54869;&#51064;:</p><pre><code><code>systemctl list-timers --all | grep vaultwarden</code></code></pre><p>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944; &#47196;&#44536; &#54869;&#51064;:</p><pre><code><code>sudo journalctl \
  -u vaultwarden-stack-update.service \
  -n 100 \
  --no-pager</code></code></pre><div><hr></div><h2>&#49324;&#50857; &#54980;&#44592;</h2><p>&#52376;&#51020; &#49444;&#52824;&#54664;&#51012; &#46412;&#45716; &#47532;&#48260;&#49828; &#54532;&#47197;&#49884; &#49444;&#51221;&#51060; &#49373;&#49548;&#54644; &#49884;&#54665;&#52265;&#50724;&#44032; &#47566;&#50520;&#49845;&#45768;&#45796;.</p><p>Docker&#46020; &#49436;&#48260; &#50644;&#51648;&#45768;&#50612; &#51648;&#51064;&#51060;&#45208; &#54924;&#49324;&#50640;&#49436; &#51088;&#51452; &#46307;&#44592;&#47564; &#54664;&#45912; &#45800;&#50612;&#46972; &#50612;&#47157;&#44172; &#45712;&#44788;&#51276;&#51648;&#47564;, &#49892;&#51228; &#49444;&#52824; &#44284;&#51221;&#51008; &#54260;&#45908;&#47484; &#47564;&#46308;&#44256; Compose &#54028;&#51068;&#51012; &#51089;&#49457;&#54620; &#46244; &#47751; &#44060;&#51032; &#47749;&#47161;&#51012; &#49892;&#54665;&#54616;&#45716; &#44163;&#51004;&#47196; &#45149;&#45228;&#49845;&#45768;&#45796;.</p><p>&#47751; &#45380; &#46041;&#50504; &#50868;&#50689;&#54644; &#48372;&#45768; &#49444;&#52824;&#48372;&#45796; &#51473;&#50836;&#54620; &#44163;&#51008; &#45796;&#51020; &#49464; &#44032;&#51648;&#50688;&#49845;&#45768;&#45796;.</p><ul><li><p>&#45936;&#51060;&#53552; &#48380;&#47464;</p></li><li><p>&#48177;&#50629;</p></li><li><p>&#50629;&#45936;&#51060;&#53944;</p></li></ul><p>&#52968;&#53580;&#51060;&#45320;&#45716; &#45796;&#49884; &#47564;&#46308; &#49688; &#51080;&#51648;&#47564; <code>vw-data</code>&#44032; &#49324;&#46972;&#51648;&#47732; &#44552;&#44256; &#45936;&#51060;&#53552;&#47484; &#48373;&#44396;&#54616;&#44592; &#50612;&#47157;&#49845;&#45768;&#45796;.</p><p>&#46608;&#54620; Compose &#54028;&#51068;&#50640; <code>latest</code>&#47484; &#49324;&#50857;&#54620;&#45796;&#44256; &#49436;&#48260;&#44032; &#51200;&#51208;&#47196; &#50629;&#45936;&#51060;&#53944;&#46104;&#45716; &#44163;&#46020; &#50500;&#45785;&#45768;&#45796;. &#52572;&#49888; &#51060;&#48120;&#51648;&#47484; &#45236;&#47140;&#48155;&#44256; &#52968;&#53580;&#51060;&#45320;&#47484; &#51116;&#49373;&#49457;&#54644;&#50556; &#49892;&#51228; &#48260;&#51204;&#51060; &#48320;&#44221;&#46121;&#45768;&#45796;.</p><p>Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#45716; &#48652;&#46972;&#50864;&#51200;&#45208; &#50545;&#49828;&#53664;&#50612;&#47484; &#53685;&#54644; &#51088;&#46041;&#51004;&#47196; &#50629;&#45936;&#51060;&#53944;&#46104;&#45716;&#45936; Vaultwarden &#49436;&#48260;&#47564; &#50724;&#47000;&#46108; &#49345;&#53468;&#47196; &#45224;&#51004;&#47732; &#54840;&#54872;&#49457; &#47928;&#51228;&#44032; &#49373;&#44600; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#51088;&#46041; &#50629;&#45936;&#51060;&#53944;&#44032; &#48512;&#45812;&#49828;&#47101;&#45796;&#47732; &#45796;&#51020; &#47749;&#47161;&#51012; &#51221;&#44592;&#51201;&#51004;&#47196; &#49892;&#54665;&#54616;&#45716; &#44163;&#47564;&#51004;&#47196;&#46020; &#52649;&#48516;&#54633;&#45768;&#45796;.</p><pre><code><code>cd ~/dockers/vaultwarden
docker compose pull
docker compose up -d
docker exec vaultwarden /vaultwarden --version</code></code></pre><p>&#45796;&#47564; &#50629;&#45936;&#51060;&#53944; &#51204;&#50640;&#45716; &#48152;&#46300;&#49884; <code>vw-data</code>&#47484; &#48177;&#50629;&#54616;&#45716; &#44163;&#51060; &#51339;&#49845;&#45768;&#45796;.</p><h2>&#51109;&#51216;</h2><ul><li><p><strong>&#45796;&#50577;&#54620; &#49436;&#48708;&#49828;&#51032; &#45936;&#51060;&#53552; &#44032;&#51256;&#50724;&#44592; &#51648;&#50896;</strong></p><p>&#50668;&#47084; &#48708;&#48128;&#48264;&#54840; &#44288;&#47532; &#49436;&#48708;&#49828;&#50640;&#49436; &#45236;&#48372;&#45240; &#45936;&#51060;&#53552;&#47484; Bitwarden &#54805;&#49885;&#51004;&#47196; &#44032;&#51256;&#50732; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#44277;&#49885; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944; &#49324;&#50857;</strong></p><p>Chrome, Edge, Firefox &#48652;&#46972;&#50864;&#51200; &#54869;&#51109; &#54532;&#47196;&#44536;&#47016;&#44284; Windows, macOS, Linux, iOS, Android&#50857; &#44277;&#49885; Bitwarden &#50545;&#51012; &#49324;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>URL &#47588;&#52845; &#48169;&#49885;</strong></p><p>&#44592;&#48376; &#46020;&#47700;&#51064;, &#54840;&#49828;&#53944;, &#51221;&#54869;&#54620; URL, &#51221;&#44508;&#49885; &#46321; &#45796;&#50577;&#54620; URL &#47588;&#52845; &#44508;&#52825;&#51012; &#51648;&#51221;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#51649;&#51217; &#44288;&#47532;&#54616;&#45716; &#51200;&#51109;&#49548;</strong></p><p>&#45936;&#51060;&#53552;&#47484; &#50808;&#48512; &#48708;&#48128;&#48264;&#54840; &#44288;&#47532; &#49436;&#48708;&#49828;&#44032; &#50500;&#45768;&#46972; &#51088;&#49888;&#51060; &#50868;&#50689;&#54616;&#45716; &#49436;&#48260;&#50640; &#51200;&#51109;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#48708;&#44368;&#51201; &#44032;&#48316;&#50868; &#49436;&#48260; &#44396;&#49457;</strong></p><p>&#44277;&#49885; Bitwarden &#49472;&#54532;&#54840;&#49828;&#54021; &#49436;&#48260;&#48372;&#45796; &#49345;&#45824;&#51201;&#51004;&#47196; &#44032;&#48333;&#44256; Docker &#44592;&#48152;&#51004;&#47196; &#49444;&#52824;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li></ul><div><hr></div><h2>&#45800;&#51216;</h2><ul><li><p><strong>&#49436;&#48260;&#47484; &#51649;&#51217; &#44288;&#47532;&#54644;&#50556; &#54632;</strong></p><p>&#49436;&#48260; &#51109;&#50528;&#50752; &#45936;&#51060;&#53552; &#48177;&#50629;, &#48372;&#50504; &#50629;&#45936;&#51060;&#53944;, &#46020;&#47700;&#51064;&#44284; SSL &#51064;&#51613;&#49436;, &#47532;&#48260;&#49828; &#54532;&#47197;&#49884;&#47484; &#51649;&#51217; &#44288;&#47532;&#54644;&#50556; &#54633;&#45768;&#45796;.</p></li><li><p><strong>&#44277;&#49885; &#49436;&#48260;&#50752;&#51032; &#54840;&#54872;&#49457; &#52264;&#51060;</strong></p><p>Vaultwarden&#51008; &#48708;&#44277;&#49885; &#54840;&#54872; &#49436;&#48260;&#51060;&#48064;&#47196; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944; &#50629;&#45936;&#51060;&#53944; &#51649;&#54980; &#51068;&#49884;&#51201;&#51064; &#54840;&#54872;&#49457; &#47928;&#51228;&#44032; &#48156;&#49373;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#51088;&#46041;&#50756;&#49457; &#49324;&#50857;&#49457; &#52264;&#51060;</strong></p><p>Enpass&#45716; &#51077;&#47141; &#50689;&#50669;&#51012; &#53364;&#47533;&#54664;&#51012; &#46412; &#44228;&#51221;&#51012; &#49440;&#53469;&#54616;&#45716; &#44284;&#51221;&#51060; &#51088;&#50672;&#49828;&#47101;&#44172; &#54364;&#49884;&#46104;&#45716; &#48152;&#47732; Bitwarden&#51008; &#51088;&#46041;&#50756;&#49457; &#49444;&#51221;&#51060;&#45208; &#51064;&#46972;&#51064; &#51088;&#46041;&#50756;&#49457; &#47700;&#45684;&#47484; &#48324;&#46020;&#47196; &#51312;&#51221;&#54644;&#50556; &#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#50668;&#47084; &#44228;&#51221;&#51012; &#49324;&#50857;&#54616;&#45716; &#49324;&#51060;&#53944;&#50640;&#49436;&#45716; Enpass&#51032; &#44228;&#51221; &#49440;&#53469; &#48169;&#49885;&#51060; &#45908; &#54200;&#54616;&#44172; &#45712;&#44788;&#51276;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#52392;&#48512; &#54028;&#51068; &#49324;&#50857;&#49457;</strong></p><p>&#49888;&#48516;&#51613; &#51060;&#48120;&#51648; &#46321;&#51032; &#54028;&#51068;&#51012; &#52392;&#48512;&#54624; &#49688; &#51080;&#51648;&#47564; &#54028;&#51068; &#51333;&#47448;&#50752; &#53364;&#46972;&#51060;&#50616;&#53944;&#50640; &#46384;&#46972; Enpass&#52376;&#47100; &#45236;&#48512;&#50640;&#49436; &#48148;&#47196; &#54869;&#51064;&#54616;&#44592;&#48372;&#45796; &#45796;&#50868;&#47196;&#46300;&#44032; &#54596;&#50836;&#54620; &#44221;&#50864;&#44032; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#44592;&#48376; &#54637;&#47785; &#50976;&#54805;</strong></p><p>Enpass&#51032; &#44552;&#50997;, &#50668;&#54665;, &#46972;&#51060;&#49440;&#49828; &#46321; &#49464;&#48516;&#54868;&#46108; &#53596;&#54540;&#47551;&#44284; &#48708;&#44368;&#54616;&#47732; &#44592;&#48376;&#51004;&#47196; &#51228;&#44277;&#54616;&#45716; &#54637;&#47785; &#50976;&#54805;&#51060; &#45800;&#49692;&#54616;&#44172; &#45712;&#44788;&#51656; &#49688; &#51080;&#49845;&#45768;&#45796;.</p></li><li><p><strong>&#51649;&#51217; &#47196;&#44256;&#47484; &#51648;&#51221;&#54616;&#44592; &#50612;&#47140;&#50880;</strong></p><p>Enpass&#50752; &#45804;&#47532; &#54637;&#47785;&#48324;&#47196; &#50896;&#54616;&#45716; &#47196;&#44256;&#45208; &#49900;&#48380; &#51060;&#48120;&#51648;&#47484; &#51649;&#51217; &#46321;&#47197;&#54616;&#45716; &#44592;&#45733;&#51008; &#51228;&#54620;&#51201;&#51077;&#45768;&#45796;.</p></li></ul><div><hr></div><h2>&#47560;&#47924;&#47532;</h2><p>&#49324;&#50857; &#54872;&#44221;&#50640;&#49436; Enpass&#51032; &#46041;&#44592;&#54868; &#49436;&#48708;&#49828;&#44032; &#52264;&#45800;&#46104;&#51648; &#50506;&#44256; &#54596;&#50836;&#54620; &#44592;&#45733;&#51012; &#54633;&#47532;&#51201;&#51064; &#48708;&#50857;&#51004;&#47196; &#51060;&#50857;&#54624; &#49688; &#51080;&#45796;&#47732; &#50756;&#49457;&#46020;&#50752; &#54200;&#51032;&#49457; &#52769;&#47732;&#50640;&#49436;&#45716; Enpass&#44032; &#45908; &#51096; &#47582;&#51012; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>Vaultwarden&#51008; &#47924;&#47308;&#46972;&#49436; &#47924;&#51312;&#44148; &#54200;&#54620; &#49436;&#48708;&#49828;&#44032; &#50500;&#45768;&#46972; &#48708;&#50857; &#45824;&#49888; &#49436;&#48260; &#50868;&#50689;&#44284; &#44288;&#47532; &#48512;&#45812;&#51012; &#51649;&#51217; &#44048;&#49688;&#54616;&#45716; &#48169;&#49885;&#50640; &#44032;&#44637;&#49845;&#45768;&#45796;.</p><p>&#45796;&#47564; &#45936;&#51060;&#53552;&#47484; &#51649;&#51217; &#44288;&#47532;&#54616;&#44256; &#50668;&#47084; &#54872;&#44221;&#50640;&#49436; &#44277;&#49885; Bitwarden &#53364;&#46972;&#51060;&#50616;&#53944;&#47484; &#49324;&#50857;&#54616;&#44256; &#49910;&#45796;&#47732; &#52649;&#48516;&#55176; &#47588;&#47141;&#51201;&#51064; &#45824;&#50504;&#51077;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[5분 만에 만드는 나만의 단축주소]]></title><description><![CDATA[Firebase&#47484; &#54876;&#50857;&#54644; &#44060;&#51064; &#46020;&#47700;&#51064; &#44592;&#48152; &#45800;&#52629;&#51452;&#49548;&#47484; &#47564;&#46300;&#45716; &#44284;&#51221;&#51012; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;. &#52964;&#49828;&#53568; &#46020;&#47700;&#51064; &#50672;&#44208;&#44284; URL &#47532;&#45796;&#51060;&#47113;&#53944; &#44396;&#49457;&#51012; &#48736;&#47476;&#44172; &#49892;&#54744;&#54644;&#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/custom-short-url-in-5-minutes</link><guid isPermaLink="false">https://lab.dongri.me/p/custom-short-url-in-5-minutes</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sun, 13 Feb 2022 10:10:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3LXv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3LXv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3LXv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!3LXv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!3LXv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!3LXv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3LXv!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:902301,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/145686310?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3LXv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!3LXv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!3LXv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!3LXv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02fd4a93-837e-42ce-8cde-a9dca1535c72_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.ajunews.com/view/20220124093700054" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fsAe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!fsAe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!fsAe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!fsAe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fsAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37224,&quot;alt&quot;:&quot;&#44396;&#44544;, &#50732;&#54644; G&#49828;&#50948;&#53944; &#50976;&#47308;&#54868; &#51116;&#52264; &#53685;&#48372;... 7&#50900; 1&#51068; &#47924;&#47308;&#54032; &#51333;&#47308; | &#50500;&#51452;&#44221;&#51228;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.ajunews.com/view/20220124093700054&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#44396;&#44544;, &#50732;&#54644; G&#49828;&#50948;&#53944; &#50976;&#47308;&#54868; &#51116;&#52264; &#53685;&#48372;... 7&#50900; 1&#51068; &#47924;&#47308;&#54032; &#51333;&#47308; | &#50500;&#51452;&#44221;&#51228;" title="&#44396;&#44544;, &#50732;&#54644; G&#49828;&#50948;&#53944; &#50976;&#47308;&#54868; &#51116;&#52264; &#53685;&#48372;... 7&#50900; 1&#51068; &#47924;&#47308;&#54032; &#51333;&#47308; | &#50500;&#51452;&#44221;&#51228;" srcset="https://substackcdn.com/image/fetch/$s_!fsAe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!fsAe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!fsAe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!fsAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06182dc2-1a0d-423a-a8a4-437fe834afa6_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#45824;&#54617;&#44368; &#47924;&#51228;&#54620; &#50857;&#47049; &#54224;&#51648;&#50640; &#51060;&#50612;&#49436; Google Workspace &#47924;&#47308; &#48260;&#51204; &#50976;&#47308;&#54868; &#48156;&#54364;&#47196; google &#49436;&#48708;&#49828;&#47484; &#53440; &#49436;&#48708;&#49828;&#47196; &#50734;&#44592;&#45716; &#51089;&#50629;&#51012; &#54616;&#44256; &#51080;&#49845;&#45768;&#45796;.</p><p>medium&#51012; &#53685;&#54644; &#44277;&#50976;&#54620; &#54028;&#51068;&#46308; &#46608;&#54620; google drive&#47484; &#53685;&#54644; &#44277;&#50976;&#54616;&#44260; &#54664;&#45716;&#45936;&#50836;, &#51060;&#47484; &#53440; &#49436;&#48708;&#49828;&#47196; &#50734;&#44592;&#47732;&#49436; &#51217;&#49549; &#53685;&#44228; &#48143; &#50976;&#51648;&#48372;&#49688; &#47785;&#51201;&#51004;&#47196; &#51228; &#46020;&#47700;&#51064;&#51060; &#51201;&#50857;&#46108; &#45800;&#52629; &#51452;&#49548;&#47484; &#51201;&#50857;&#54616;&#44592;&#47196; &#54664;&#49845;&#45768;&#45796;. </p><h3><strong>ushort.io&#51012; &#53685;&#54620; &#52964;&#49828;&#53568;&#46020;&#47700;&#51064; &#50672;&#44208; &#48169;&#48277; &#49548;&#44060; (&#50976;&#47308;)</strong> </h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://xeriars.com/246" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mBdT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!mBdT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!mBdT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!mBdT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mBdT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66006,&quot;alt&quot;:&quot;&#44060;&#51064;&#46020;&#47700;&#51064; &#51060;&#50857;&#54620; &#45800;&#52629;url &#47564;&#46308;&#44592;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://xeriars.com/246&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#44060;&#51064;&#46020;&#47700;&#51064; &#51060;&#50857;&#54620; &#45800;&#52629;url &#47564;&#46308;&#44592;" title="&#44060;&#51064;&#46020;&#47700;&#51064; &#51060;&#50857;&#54620; &#45800;&#52629;url &#47564;&#46308;&#44592;" srcset="https://substackcdn.com/image/fetch/$s_!mBdT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!mBdT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!mBdT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!mBdT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834ff4f-2475-4b76-a403-bcfeeae0d20a_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#50526;&#49436; &#51068;&#48512; &#45796;&#47480; &#49436;&#48708;&#49828;&#46308;&#46020; &#49332;&#54196;&#48372;&#50520;&#51648;&#47564;, &#44032;&#44553;&#51201; &#51064;&#51648;&#46020;&#50752; &#50724;&#47000; &#51060;&#50857; &#44032;&#45733;&#54620; &#51216;&#51012; &#44256;&#47140;&#54616;&#50668; google firebase&#47484; &#49440;&#53469;&#54664;&#49845;&#45768;&#45796;. (&#44536;&#47084;&#45796; &#50976;&#47308;&#54868;&#46104;&#47732;&#8230;&#128534;)</p><div><hr></div><p>&#47676;&#51200; google &#44228;&#51221;&#44284; Firebase &#54532;&#47196;&#51229;&#53944;&#44032; &#49373;&#49457;&#46104;&#50612; &#51080;&#50612;&#50556; &#54633;&#45768;&#45796;. &#51200;&#45716; Google Workspace &#50976;&#47308;&#54868; &#51221;&#52293;&#51004;&#47196; &#51064;&#54644; &#49352;&#47196;&#50868; google &#44060;&#51064;&#44228;&#51221;&#51012; &#49373;&#49457;&#54664;&#49845;&#45768;&#45796;.</p><h3>Fireboase &#44592;&#48376; &#54532;&#47196;&#51229;&#53944;&nbsp;&#49373;&#49457;</h3><p>&#51060;&#48120; &#51060;&#51204; &#44544;&#50640;&#49436; &#54532;&#47196;&#51229;&#53944; &#49444;&#47749;&#54616;&#50688;&#51004;&#48064;&#47196; &#44288;&#47144; &#44544;&#51012; &#52280;&#44256;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;. (&#54532;&#47196;&#51229;&#53944; &#52628;&#44032;&#44620;&#51648;&#47564; &#51652;&#54665;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.)</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d654c422-cece-4861-bb05-04bfcbc47874&quot;,&quot;caption&quot;:&quot;Firebase&#45716; &#51089;&#45380; Google GDG Incheon &#54665;&#49324; &#46412; &#44032;&#49436; &#52376;&#51020; &#51217;&#54664;&#49845;&#45768;&#45796;. &#47566;&#51060; &#46308;&#50612;&#48372;&#49512;&#51012;&#44144;&#46972; &#49373;&#44033;&#54616;&#45716; Google Webengine&#50752; &#48708;&#49847;&#54633;&#45768;&#45796;. Google&#50640;&#49436; &#49436;&#48708;&#49828;&#54616;&#45716;&#44163; &#44620;&#51648;&#46020;&#50836;&#8230; &#49892;&#49884;&#44036; &#45936;&#51060;&#53552; &#49436;&#48260;&#46972;&#45716;&#45936; &#48708;&#51204;&#44277;&#51088;&#51064; &#51200;&#47196;&#49436;&#45716; &#51096; &#47784;&#47476;&#44192;&#49845;&#45768;&#45796;. Telegram bot&#51012; &#51328;&#45908; &#45796;&#46316;&#50612; &#48372;&#44256;&#49910;&#50612;&#49436; Firebase&#47484; &#45796;&#49884; &#44732;&#45236;&#48372;&#45716; &#44608;&#50640; &#54252;&#49828;&#54021;&#51012; &#54616;&#44172; &#46104;&#50632;&#45348;&#50836;. Firebase&#45716; &#50864;&#47532;&#44032; &#51068;&#48152;&#51201;&#51004;&#47196; &#49373;&#44033;&#54616;&#45716; &#54840;&#49828;&#54021;&#44284;&#45716; &#45796;&#47476;&#47728; &#46608; AWS&#52376;&#47100; &#50500;&#50696; &#49436;&#48260;&#47484; &#48156;&#44553;&#48155;&#50500; &#51452;&#47932;&#47085; &#44144;&#47540; &#49688; &#51080;&#45716;&#44148; &#50500;&#45785;&#45768;&#45796;. AWS&#47484; &#49324;&#50857;&#54616;&#44256; &#49910;&#51004;&#45208;, 13&#45380;&#46020; &#49373;&#54876;&#53076;&#46377; &#49688;&#50629;&#46412; &#49324;&#50857;&#54620;&#51648;&#46972; &#45908; &#51060;&#49345; &#47924;&#47308;&#47196; &#49324;&#50857;&#54624; &#49688;&#44032; &#50630;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Firebase &#48156;&#44553; &#48143; &#46020;&#47700;&#51064; &#50672;&#44208;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a599190-071c-480d-85f9-f188e161e86d_750x1334.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2017-05-07T17:41:36.022Z&quot;,&quot;cover_image&quot;:&quot;https://cdn-images-1.medium.com/max/800/1*BOBC4BQ0QviZv00jA2M8jw.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/firebase-7ce48b3aabfe&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:145686434,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Dongri LAB&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><h3>&#45800;&#52629;URL &#49444;&#51221;&#54616;&#44592;</h3><h4>Dynamic Links</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ssJa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ssJa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 424w, https://substackcdn.com/image/fetch/$s_!ssJa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 848w, https://substackcdn.com/image/fetch/$s_!ssJa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 1272w, https://substackcdn.com/image/fetch/$s_!ssJa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ssJa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ssJa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 424w, https://substackcdn.com/image/fetch/$s_!ssJa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 848w, https://substackcdn.com/image/fetch/$s_!ssJa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 1272w, https://substackcdn.com/image/fetch/$s_!ssJa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1b8d90a-579a-4ae9-b72b-630979b20ce7_600x339.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YxUt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YxUt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 424w, https://substackcdn.com/image/fetch/$s_!YxUt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 848w, https://substackcdn.com/image/fetch/$s_!YxUt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 1272w, https://substackcdn.com/image/fetch/$s_!YxUt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YxUt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YxUt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 424w, https://substackcdn.com/image/fetch/$s_!YxUt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 848w, https://substackcdn.com/image/fetch/$s_!YxUt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 1272w, https://substackcdn.com/image/fetch/$s_!YxUt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd915a85-bf2a-449e-a95d-24a991c8d922_600x339.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#51340;&#52769;&#47700;&#45684;&#50640;&#49436; <strong>&#52280;&#50668;&#47484; &#45572;&#47476;&#47732; &#45208;&#50724;&#45716; Dynamic links&#51012; &#49440;&#53469;</strong> &#54980; <strong>&#49884;&#51089;&#54616;&#44592; &#48260;&#53948;</strong>&#51012;&nbsp;&#45580;&#47084;&#51452;&#49464;&#50836;.</figcaption></figure></div><h4>&#49324;&#50857;&#54616;&#44256;&#51088; &#54616;&#45716; &#46020;&#47700;&#51064;&#51012;&nbsp;&#51077;&#47141;&#54644; &#51452;&#49464;&#50836;.</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CiJY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CiJY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 424w, https://substackcdn.com/image/fetch/$s_!CiJY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 848w, https://substackcdn.com/image/fetch/$s_!CiJY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 1272w, https://substackcdn.com/image/fetch/$s_!CiJY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CiJY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CiJY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 424w, https://substackcdn.com/image/fetch/$s_!CiJY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 848w, https://substackcdn.com/image/fetch/$s_!CiJY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 1272w, https://substackcdn.com/image/fetch/$s_!CiJY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bea1e61-0db8-4da5-a3d9-015e9aae430a_800x452.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#45800;&#52629; URL&#47564;&#51012; &#50948;&#54620; &#46020;&#47700;&#51064;&#51012; &#44054;&#44256; &#51080;&#45716; &#44172; &#50500;&#45768;&#46972;&#47732; &#48372;&#53685; 2&#52264; &#46020;&#47700;&#51064;(&#49436;&#48652;&#46020;&#47700;&#51064;)&#51012; &#49324;&#50857;&#54633;&#45768;&#45796;. (short.domain.com/&#45800;&#52629; URL)</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iO4O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iO4O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 424w, https://substackcdn.com/image/fetch/$s_!iO4O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 848w, https://substackcdn.com/image/fetch/$s_!iO4O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 1272w, https://substackcdn.com/image/fetch/$s_!iO4O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iO4O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iO4O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 424w, https://substackcdn.com/image/fetch/$s_!iO4O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 848w, https://substackcdn.com/image/fetch/$s_!iO4O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 1272w, https://substackcdn.com/image/fetch/$s_!iO4O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe95af09b-1659-4fbb-bc6f-bfe1559a829a_800x452.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#44221;&#47196; &#54532;&#47532;&#54589;&#49828;&#45716; &#49444;&#51221;&#54620; &#46020;&#47700;&#51064;&#50640; &#51217;&#46160;&#50612; &#46321;&#51012; &#48537;&#51060;&#45716; &#48169;&#49885;&#51064;&#45936;&#50836;, <br>&#44403;&#51060; &#49324;&#50857;&#54616;&#51648; &#50506;&#51004;&#48064;&#47196; &#45336;&#50612;&#44049;&#45768;&#45796;. (&#50500;&#45768;&#46972;&#47732; &#45843;&#44544;&#47196; &#50508;&#47140;&#51452;&#49464;&#50836;.)</p><pre><code><em>https://example.com/&#51217;&#46160;&#50612;/link-suffix</em></code></pre><p></p><p></p><h4>&#46020;&#47700;&#51064; &#49548;&#50976;&#47484; &#54869;&#51064;&#54616;&#44256; &#50672;&#44208;&#54616;&#45716; &#44284;&#51221;&#51012;&nbsp;&#44144;&#52841;&#45768;&#45796;.</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r78m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r78m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 424w, https://substackcdn.com/image/fetch/$s_!r78m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 848w, https://substackcdn.com/image/fetch/$s_!r78m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 1272w, https://substackcdn.com/image/fetch/$s_!r78m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r78m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r78m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 424w, https://substackcdn.com/image/fetch/$s_!r78m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 848w, https://substackcdn.com/image/fetch/$s_!r78m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 1272w, https://substackcdn.com/image/fetch/$s_!r78m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b082a2b-f822-479d-992d-f518a42ee52e_800x452.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#46020;&#47700;&#51064; &#49548;&#50976;&#47484; &#54869;&#51064;&#54616;&#44256; &#50672;&#44208;&#54616;&#45716; &#44284;&#51221;&#51012; &#44144;&#52841;&#45768;&#45796;. &#49345;&#49464; &#49444;&#47749;&#51008; &#49373;&#47029;&#54616;&#47728; TEXT&#47484; &#53685;&#54644; &#51064;&#51613;&#54616;&#44256; A &#54840;&#49828;&#53944;&#50640; Firebase&#50640;&#49436; &#51228;&#44277;&#54616;&#45716; IP&#51452;&#49548;&#47484; &#50672;&#44208;&#54616;&#44256;&#51088; &#54616;&#45716; &#46020;&#47700;&#51064;&#50640; &#50672;&#44208;&#54644; &#51469;&#45768;&#45796;.</p><p>&#44288;&#47144;&#54644;&#49436;&#45716; &#44592;&#51316;&#50640; &#50416;&#51064; &#44544;&#51012; &#51060;&#50612;&#49436; &#52280;&#44256;&#54616;&#49884;&#47732; &#46020;&#50880;&#51060; &#46121;&#45768;&#45796;.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0f0281d3-ec04-4041-9a3d-91fb38e1d1ab&quot;,&quot;caption&quot;:&quot;Firebase&#45716; &#51089;&#45380; Google GDG Incheon &#54665;&#49324; &#46412; &#44032;&#49436; &#52376;&#51020; &#51217;&#54664;&#49845;&#45768;&#45796;. &#47566;&#51060; &#46308;&#50612;&#48372;&#49512;&#51012;&#44144;&#46972; &#49373;&#44033;&#54616;&#45716; Google Webengine&#50752; &#48708;&#49847;&#54633;&#45768;&#45796;. Google&#50640;&#49436; &#49436;&#48708;&#49828;&#54616;&#45716;&#44163; &#44620;&#51648;&#46020;&#50836;&#8230; &#49892;&#49884;&#44036; &#45936;&#51060;&#53552; &#49436;&#48260;&#46972;&#45716;&#45936; &#48708;&#51204;&#44277;&#51088;&#51064; &#51200;&#47196;&#49436;&#45716; &#51096; &#47784;&#47476;&#44192;&#49845;&#45768;&#45796;. Telegram bot&#51012; &#51328;&#45908; &#45796;&#46316;&#50612; &#48372;&#44256;&#49910;&#50612;&#49436; Firebase&#47484; &#45796;&#49884; &#44732;&#45236;&#48372;&#45716; &#44608;&#50640; &#54252;&#49828;&#54021;&#51012; &#54616;&#44172; &#46104;&#50632;&#45348;&#50836;. Firebase&#45716; &#50864;&#47532;&#44032; &#51068;&#48152;&#51201;&#51004;&#47196; &#49373;&#44033;&#54616;&#45716; &#54840;&#49828;&#54021;&#44284;&#45716; &#45796;&#47476;&#47728; &#46608; AWS&#52376;&#47100; &#50500;&#50696; &#49436;&#48260;&#47484; &#48156;&#44553;&#48155;&#50500; &#51452;&#47932;&#47085; &#44144;&#47540; &#49688; &#51080;&#45716;&#44148; &#50500;&#45785;&#45768;&#45796;. AWS&#47484; &#49324;&#50857;&#54616;&#44256; &#49910;&#51004;&#45208;, 13&#45380;&#46020; &#49373;&#54876;&#53076;&#46377; &#49688;&#50629;&#46412; &#49324;&#50857;&#54620;&#51648;&#46972; &#45908; &#51060;&#49345; &#47924;&#47308;&#47196; &#49324;&#50857;&#54624; &#49688;&#44032; &#50630;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Firebase &#48156;&#44553; &#48143; &#46020;&#47700;&#51064; &#50672;&#44208;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a599190-071c-480d-85f9-f188e161e86d_750x1334.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2017-05-07T17:41:36.022Z&quot;,&quot;cover_image&quot;:&quot;https://cdn-images-1.medium.com/max/800/1*BOBC4BQ0QviZv00jA2M8jw.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/firebase-7ce48b3aabfe&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:145686434,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Dongri LAB&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>&#46020;&#47700;&#51064; &#50672;&#44208;&#47564; &#49457;&#44277;&#54620;&#45796;&#47732; &#44144;&#51032; &#45796; &#50724;&#49888; &#44161;&#45768;&#45796;.</p><h3>&#45800;&#52629; URL &#52628;&#44032;&#54616;&#44592;</h3><p>&#47582;&#52644;&#48277; &#44160;&#49324;&#47484; &#50896;&#54616;&#45716; &#45800;&#50612;&#45208; &#47928;&#51109;&#51012; &#51077;&#47141;&#54644; &#51452;&#49464;&#50836;. &#50668;&#44592;&#49436;&#48512;&#53552;&#45716; &#44592;&#51316;&#50640; &#47564;&#46308;&#50612; &#46160;&#50632;&#45912; &#49892;&#51228; &#54872;&#44221;&#51012; &#44592;&#48152;&#51004;&#47196; &#49444;&#47749;&#54644; &#46300;&#47549;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ltQG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ltQG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!ltQG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!ltQG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!ltQG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ltQG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/edff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ltQG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!ltQG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!ltQG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!ltQG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedff0d5c-1f13-4de3-b340-898d01f2b566_800x491.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#52376;&#51020;&#50644; &#48708;&#50612;&#51080;&#45716; &#47785;&#47197;&#51060; &#45208;&#50741;&#45768;&#45796;. &#49828;&#53356;&#47536;&#49399;&#51008; &#47924;&#49884;&#54616;&#49884;&#44256; <strong>&#49352; &#46041;&#51201; &#47553;&#53356;</strong>&#47484;&nbsp;&#45580;&#47084;&#51452;&#49464;&#50836;.</figcaption></figure></div><h4>&#49373;&#49457;&#54616;&#44592;</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qEz1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qEz1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!qEz1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!qEz1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!qEz1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qEz1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51a737b9-e60a-491b-a5ff-48189a374001_800x491.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qEz1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!qEz1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!qEz1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!qEz1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a737b9-e60a-491b-a5ff-48189a374001_800x491.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">1. &#45800;&#52629; URL &#47553;&#53356;&nbsp;&#49444;&#51221;</figcaption></figure></div><p>&#49436;&#48652;&#46020;&#47700;&#51064; &#46244;&#50640; &#45800;&#52629; URL&#51060; &#51076;&#51032;&#47196; &#49373;&#49457;&#46121;&#45768;&#45796;. <br>&#50896;&#54616;&#49884;&#45716; &#47928;&#51088;&#47196; &#49688;&#51221; &#44032;&#45733;&#54616;&#47728;, &#51200;&#45716; &#44536;&#45824;&#47196; &#46160;&#50632;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jW58!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jW58!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!jW58!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!jW58!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!jW58!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jW58!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jW58!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!jW58!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!jW58!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!jW58!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef3aae-0352-4e6f-a412-a594df5ed75c_800x491.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">2. &#46041;&#51201; &#47553;&#53356;&nbsp;&#49444;&#51221;</figcaption></figure></div><p><strong>&#46373; &#47553;&#53356; URL</strong><br>&#54644;&#45817; &#45800;&#52629; URL&#51060; &#50612;&#45712; &#44163;&#51064;&#51648;&#47484; &#49444;&#47749;&#54616;&#45716; &#51060;&#47492;&#51077;&#45768;&#45796;.</p><p><strong>&#46041;&#51201; &#47553;&#53356; &#51060;&#47492;</strong><br>&#50808;&#48512;&#50640; &#45432;&#52636;&#46104;&#51648;&#45716; &#50506;&#51004;&#47728;, Firebase &#53080;&#49556;&#50640;&#49436; &#44288;&#47532;&#47484; &#54200;&#54616;&#44592; &#50948;&#54644; &#51077;&#47141;&#54616;&#45716; &#45236;&#50857;&#51060;&#44592;&#50640; &#47749;&#54869;&#54616;&#44172; &#54869;&#51064;&#54624; &#49688; &#51080;&#45716; &#51060;&#47492; &#54841;&#51008; &#49444;&#47749;&#51012; &#51077;&#47141;&#54644; &#51452;&#49464;&#50836;.</p><p>&#51060; &#44544;&#50640;&#49436;&#45716; &#51088;&#46041;&#54868; &#54841;&#51008; &#50545; &#44060;&#48156;&#50640; &#49324;&#50857;&#54616;&#44144;&#45208; UTM&#51012; &#49324;&#50857;&#54620; &#52628;&#51201;(?) &#46321;&#51012; &#54876;&#50857;&#54616;&#51648; &#50506;&#44592; &#46412;&#47928;&#50640; &#49373;&#47029;&#54616;&#44256; &#48148;&#47196; <strong>&#47564;&#46308;&#44592; &#48260;&#53948;</strong>&#51012; &#45580;&#47084;&#51469;&#45768;&#45796;.</p><h4>&#50756;&#47308;</h4><p>&#47784;&#46160; &#45796; &#45149;&#45228;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YIB0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YIB0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!YIB0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!YIB0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!YIB0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YIB0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:0,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YIB0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 424w, https://substackcdn.com/image/fetch/$s_!YIB0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 848w, https://substackcdn.com/image/fetch/$s_!YIB0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 1272w, https://substackcdn.com/image/fetch/$s_!YIB0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4deb9df7-ca8c-421d-89f9-be606dd2b165_800x491.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#47785;&#47197;&#50640;&#49436; &#44592;&#51316;&#50640; &#49373;&#49457;&#46108; &#45800;&#52629;&#50612; &#47553;&#53356; &#46321;&#51012; &#54869;&#51064;&#54624; &#49688; &#51080;&#51004;&#47728;, &#52628;&#54980; &#48376; &#47553;&#53356;&#44032; &#48320;&#44221;&#46104;&#50632;&#51012; &#44221;&#50864; &#49688;&#51221;&#46020; &#54624; &#49688; &#51080;&#49845;&#45768;&#45796;. &#44396;&#44544; &#50528;&#45328;&#47532;&#54001;&#49828;&#50752; &#50672;&#46041;&#54616;&#51648; &#50506;&#50520;&#51648;&#47564; &#44036;&#47029;&#54616;&#44172; &#47751; &#48264; &#53364;&#47533;&#54664;&#45716;&#51648;, &#51116;&#48169;&#47928; &#54943;&#49688; &#46321;&#46020; &#54869;&#51064;&#51060; &#44032;&#45733;&#54633;&#45768;&#45796;. </p><p>&#49436;&#48260;&#50640; &#46384;&#47196; &#49444;&#52824;&#54624; &#54596;&#50836; &#50630;&#51060;, Firebase&#50640;&#49436; &#52488;&#48152;&#51032; &#46020;&#47700;&#51064; &#49464;&#54021;&#47564; &#51096; &#45149;&#45240;&#45796;&#47732; &#51060;&#54980;&#50640; &#44057;&#51008; &#48169;&#48277;&#51004;&#47196; &#49789;&#44172; &#45208;&#47564;&#51032; &#45800;&#52629; URL&#51012; &#47564;&#46308;&#44256; &#44288;&#47532;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[Oracle Cloud에 code-server 설치하기]]></title><description><![CDATA[Oracle Cloud&#50640; code-server &#49444;&#52824;&#54616;&#44592; &#44284;&#51221;&#51012; &#51221;&#47532;&#54620; &#44060;&#48156; &#44592;&#47197;&#51077;&#45768;&#45796;. Oracle Cloud, code-server, Ubuntu &#54872;&#44221;&#50640;&#49436; &#54596;&#50836;&#54620; &#49444;&#52824; &#45800;&#44228;, &#49444;&#51221; &#54252;&#51064;&#53944;, &#49324;&#50857; &#51473; &#54869;&#51064;&#54624; &#45236;&#50857;&#51012; &#54632;&#44760; &#45796;&#47353;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/oracle-cloud-code-server-install</link><guid isPermaLink="false">https://lab.dongri.me/p/oracle-cloud-code-server-install</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Tue, 01 Feb 2022 12:38:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TGiC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TGiC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TGiC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!TGiC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!TGiC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!TGiC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TGiC!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1020843,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.dongri.me/i/145686325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TGiC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!TGiC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!TGiC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!TGiC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06293b8d-cb26-4ded-8fc4-27648e8ed19a_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#50528;&#54540;&#49828;&#53664;&#50612;&#50640; &#51068;&#49884;&#51201;&#51004;&#47196; VS-Code &#44592;&#48152;&#51032; Code App&#44032; &#47924;&#47308;&#47196; &#54400;&#47140;&#49436; &#49444;&#52824;&#54616;&#45716; &#44608;&#50640; &#51060;&#51204;&#50640; &#49884;&#46020;&#54616;&#45796; &#49892;&#54056;&#54620; code-sever&#51012; &#49444;&#52824;&#54644;&#48420;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://apps.apple.com/kr/app/code-app/id1512938504" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JTgu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!JTgu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!JTgu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!JTgu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JTgu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28158,&quot;alt&quot;:&quot;&#8206;Code App&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://apps.apple.com/kr/app/code-app/id1512938504&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#8206;Code App" title="&#8206;Code App" srcset="https://substackcdn.com/image/fetch/$s_!JTgu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!JTgu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!JTgu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!JTgu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0406d22-095a-40b2-aa17-6c01640ff9a5_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#51200;&#45716; Oracle Cloud&#47484; &#47924;&#47308;&#47196; &#49324;&#50857;&#54616;&#44256; &#51080;&#44592;&#50640; Oracle &#44592;&#48152;&#51060;&#46972;&#44256; &#47803; &#48149;&#50500; &#46160;&#50632;&#51648;&#47564; &#49324;&#49892; &#50612;&#51648;&#44036;&#54616;&#47732; &#50924;&#47564;&#54644;&#49436; &#47784;&#46304; &#53364;&#46972;&#50864;&#46300;/OS&#50640;&#49436; &#49444;&#52824;&#44032; &#44032;&#45733;&#54633;&#45768;&#45796;.</p><p>&#51060;&#48120; &#50668;&#47084; &#51339;&#51008; &#47112;&#54140;&#47088;&#49828;&#46308;&#51060; &#51080;&#44256;, &#51200;&#46020; &#44536; &#44544;&#46308;&#51012; &#52280;&#44256;&#54644;&#49436; &#49444;&#52824;&#54616;&#50688;&#44592;&#50640; &#50528;&#50024; &#51089;&#49457;&#54644; &#51452;&#49888; &#44277;&#50976; &#44544;&#46308;&#50640; &#54644;&#47484; &#45180;&#52824;&#51648; &#50506;&#44256;&#51088; &#47553;&#53356;&#47196; &#45824;&#49888;&#54616;&#47728; &#51652;&#54665; &#46020;&#51473; &#45804;&#46972;&#51652; &#48512;&#48516;&#51060;&#45208; &#52628;&#44032;&#47196; &#45927;&#48537;&#51068; &#48512;&#48516;&#47564; &#49436;&#49696;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.hakawati.co.kr/entry/Code-Server-%EA%B5%AC%EC%B6%95%ED%8E%B8" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9m3w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!9m3w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!9m3w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!9m3w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9m3w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b009b3ca-1116-484d-a219-a178995dd637_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45718,&quot;alt&quot;:&quot;Code Server - &#44396;&#52629;&#54200;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.hakawati.co.kr/entry/Code-Server-%EA%B5%AC%EC%B6%95%ED%8E%B8&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Code Server - &#44396;&#52629;&#54200;" title="Code Server - &#44396;&#52629;&#54200;" srcset="https://substackcdn.com/image/fetch/$s_!9m3w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!9m3w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!9m3w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!9m3w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb009b3ca-1116-484d-a219-a178995dd637_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://010000.github.io/post/20210307_install_code-server_linux/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KtC4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!KtC4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!KtC4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!KtC4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KtC4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49157,&quot;alt&quot;:&quot;Code-server &#49444;&#52824;&#50752; &#54876;&#50857; on Linux&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://010000.github.io/post/20210307_install_code-server_linux/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Code-server &#49444;&#52824;&#50752; &#54876;&#50857; on Linux" title="Code-server &#49444;&#52824;&#50752; &#54876;&#50857; on Linux" srcset="https://substackcdn.com/image/fetch/$s_!KtC4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!KtC4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!KtC4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!KtC4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1143c99a-9182-4cb5-9e32-c68f0858d655_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p></p><h4>&#49444;&#52824;&#54616;&#47732;&#49436; &#45712;&#45184;&nbsp;&#48512;&#48516;&#46308;</h4><ul><li><p>code-server / Nginx &#49444;&#52824;&#49692;&#49436;&#45716; &#48148;&#45068;&#50612;&#46020; &#49345;&#44288;&#50630;&#49845;&#45768;&#45796;.</p></li><li><p>&#51068;&#48512; &#47749;&#47161;&#50612; &#50724;&#47448;&#44032; &#45208;&#45716; &#48512;&#48516;&#51008; &#50500;&#47000;&#50752; &#44057;&#51060; &#51077;&#47141;&#54664;&#49845;&#45768;&#45796;.</p></li></ul><pre><code>NginX &#51116;&#49884;&#51089;
$ sudo systemctl reload nginx.service &#8594; 
$ sudo systemctl restart nginx</code></pre><pre><code>code-server &#49436;&#48708;&#49828; &#46321;&#47197;
$ systemctl &#8212; user enable &#8212; now code-server &#8594;
$ sudo systemctl enable &#8212; now code-server@$USER</code></pre><ul><li><p>htpasswd &#48708;&#48128;&#48264;&#54840; &#48320;&#44221;&#51008; &#49373;&#49457; &#47749;&#47161;&#50612; &#44536;&#45824;&#47196; &#50416;&#47732; &#45934;&#50612;&#50444;&#50892;&#51664;</p></li></ul><pre><code>&#48708;&#48128;&#48264;&#54840; &#49688;&#51221;
$ sudo htpasswd -c /etc/nginx/.htpasswd [&#50976;&#51200; &#50500;&#51060;&#46356;]</code></pre><pre><code>&#50976;&#51200; &#49325;&#51228;
$ sudo htpasswd -d /etc/nginx/.htpasswd [&#50976;&#51200; &#50500;&#51060;&#46356;]</code></pre><ul><li><p>Certbot &#49324;&#50857; &#49884; http-01 &#48169;&#49885;&#51060; &#50500;&#45768;&#46972;&#49436; &#45796;&#49884; &#48148;&#44992;&#44620; &#54664;&#51648;&#47564;,<br>Cloueflare&#47196; &#49436;&#48260; IP&#47484; &#49704;&#44592;&#45716; &#51200;&#51032; &#44221;&#50864; &#50896;&#44544;&#51032; DNS-01 &#48169;&#49885;&#51060; &#45908; &#51201;&#54633;&#54664;&#49845;&#45768;&#45796;.</p></li><li><p>&#50900;&#51032; &#47560;&#51648;&#47561; &#45216;&#50640; SSL &#51064;&#51613;&#49436; &#50629;&#45936;&#51060;&#53944; &#46041;&#51089;&#54616;&#45716; &#49828;&#52992;&#51460;&#47084; &#47749;&#47161;&#50612;&#45716;</p></li></ul><pre><code>$ crontab -e
0 0 28&#8211;31 * * /usr/bin/test $(date -d &#8216;+1 day&#8217; +%d) -eq 1 &amp;&amp; [&#49752; &#49828;&#53356;&#47549;&#53944; &#44221;&#47196;]</code></pre><pre><code>&#51064;&#53552;&#45367; &#44160;&#49353;&#54644;&#48372;&#45768; &#51200;&#51109;&#54624;&#45936; &#46385;&#55176; &#50630;&#51004;&#47732; /root&#50640; &#49828;&#53356;&#47549;&#53944; &#54028;&#51068; &#51200;&#51109;&#54632;.</code></pre><ul><li><p>&#47924;&#47308; &#51200;&#49324;&#50577; &#53364;&#46972;&#50864;&#46300;&#50668;&#49436; &#44536;&#47088;&#51648; cloudflare&#47484; &#44144;&#52432;&#49436; &#44536;&#47088;&#51648;&#45716; &#47784;&#47476;&#44192;&#51648;&#47564; &#47196;&#46377;&#49549;&#46020;&#44032; &#45712;&#47549;&#45768;&#45796;. iPad &#46321; &#50896;&#44201;&#51004;&#47196; IDE&#47484; &#49324;&#50857;&#54624; &#49688; &#51080;&#45796;&#45716; &#45936;&#50640; &#51032;&#51032;&#47484; &#46160;&#45716; &#44172; &#51339;&#44192;&#49845;&#45768;&#45796;.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Medium 커스텀 도메인 연결하기]]></title><description><![CDATA[expressinstantboom &#48143; Cloudflare proxy &#49324;&#50857;]]></description><link>https://lab.dongri.me/p/medium-custom-domain-setup</link><guid isPermaLink="false">https://lab.dongri.me/p/medium-custom-domain-setup</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sat, 02 May 2020 14:05:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4></h4><div class="pullquote"><p><strong>2020.11.01.<br></strong>&#51060; &#48169;&#48277;&#51008; &#45796;&#47480; medium &#49324;&#50857;&#51088; &#46608;&#54620; &#51088;&#49888;&#51032; &#46020;&#47700;&#51064;&#51004;&#47196; &#51217;&#49549;&#51060; &#44032;&#45733;&#54620; &#47928;&#51228;&#44032; &#51080;&#50612; &#52628;&#52380;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;. &#52572;&#44540; &#51060; &#47928;&#51228;&#47196; &#51200;&#51089;&#44428; &#44288;&#47144; medium&#51060; &#48660;&#47197; &#45817;&#54664;&#44592; &#46412;&#47928;&#50640; &#51312;&#47564;&#44036; &#44288;&#47144; &#44544;&#51012; &#51089;&#49457;&#54616;&#44192;&#49845;&#45768;&#45796;.</p></div><h4>&#52964;&#49828;&#53568; &#46020;&#47700;&#51064;&#51012; &#50672;&#44208;&#54616;&#44592;&nbsp;&#44620;&#51648;&#8230;</h4><p>&#52376;&#51020; Medium&#51012; &#51217;&#54664;&#51012; &#45817;&#49884; &#52964;&#49828;&#53568; &#46020;&#47700;&#51064; &#50672;&#44208;&#51060; &#51104;&#49884; &#51473;&#45800;&#46104;&#50632;&#45912; &#49345;&#53468;&#44256;, &#52628;&#54980; &#51068;&#54924;&#49457;&#51004;&#47196; 9&#47564; &#50896;&#51012; &#48155;&#45716; &#44163;&#51004;&#47196; &#48148;&#45068;&#45908;&#45768; 1&#45380; &#46244; &#50756;&#51204;&#55176; &#54224;&#51648;&#46104;&#50632;&#49845;&#45768;&#45796;. Medium&#51004;&#47196; &#51060;&#49324;&#54664;&#51012; &#45817;&#49884; &#44288;&#47144; &#45236;&#50857;&#51012; &#50416;&#44592;&#46020; &#54664;&#49845;&#45768;&#45796;.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3896df7d-8f7d-42da-9f62-cf3464dc139b&quot;,&quot;caption&quot;:&quot;&#44552;&#51068; &#44592;&#51316;&#50640; &#49324;&#50857;&#54616;&#45912; &#54000;&#49828;&#53664;&#47532;&#50640;&#49436; Medium(medium.com/guleum)&#51004;&#47196; &#48660;&#47196;&#44536;&#47484; &#51060;&#51204;&#54664;&#49845;&#45768;&#45796;. &#50668;&#44592;&#45716; &#52964;&#49828;&#53568; &#46020;&#47700;&#51064;&#50640;&#46020; SSL&#51012; &#51648;&#50896;&#54644; &#51452;&#47728;, &#48324;&#46020;&#47196; &#44256;&#44061;&#49468;&#53552;&#50640; &#46020;&#47700;&#51064; &#50672;&#44208;&#51012; &#50836;&#52397;&#54644;&#49436; CNAME &#49464;&#54021;&#51012; &#54616;&#47732; &#50672;&#44208;&#46121;&#45768;&#45796;. 2019.05.20 &#52628;&#44032; &#8212; &#50780; &#51060;&#44544;&#51060; &#51064;&#44592;&#44032; &#47566;&#51008;&#51648; &#47784;&#47476;&#44192;&#51648;&#47564;, &#54788;&#51116;&#45716; &#46020;&#47700;&#51064; &#50672;&#44208;&#51012; &#51648;&#50896;&#54616;&#51648; &#50506;&#49845;&#45768;&#45796;. &#45796;&#47564;, Cloudflare, DNS-Zi, DNSEVer &#46321;&#51012; &#49324;&#50857;&#54644; &#54252;&#50892;&#46377; &#54616;&#49892; &#49688; &#51080;&#49845;&#45768;&#45796;. 2020.05.02 &#52628;&#44032; &#8212; Medium &#52964;&#49828;&#53568; &#46020;&#47700;&#51064; &#50672;&#44208;&#48169;&#48277;&#50640; &#45824;&#54620; &#44544;&#51012; &#54252;&#49828;&#54021; &#54664;&#49845;&#45768;&#45796;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Medium&#51004;&#47196; &#51060;&#49324;&#54620; &#51060;&#50976;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:24149139,&quot;name&quot;:&quot;Dongri&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a599190-071c-480d-85f9-f188e161e86d_750x1334.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2017-02-12T15:00:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe26be4ff-3d76-468c-b332-8129e1b5b879_525x631.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lab.dongri.me/p/medium&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141566519,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;&#46041;&#44536;&#47532; &#50672;&#44396;&#49548;&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0199a38-56e5-432d-860f-ebca7c7fe2cc_2000x2000.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Cloudflare&#51032; Page rules&#47484; &#51060;&#50857;&#54644; &#54252;&#53944; &#54252;&#50892;&#46377; &#44060;&#45392;&#51004;&#47196; &#49324;&#50857;&#54616;&#45796;&#44032; &#52572;&#44540; Notion(&#45432;&#49496;)&#51012; Cloudflare workers&#47484; &#51060;&#50857;&#54644; &#50672;&#44208;&#54616;&#45716; &#44163;&#51012; &#48372;&#44256; &#44288;&#47144; &#53076;&#46300;&#47484; &#51676;&#44609;&#44592;&#54616;&#45796; &#48372;&#50504; &#47928;&#51228;&#47196; &#47561;&#55176;&#45716;(?) &#44163;&#51012; &#48372;&#44256; &#54252;&#44592;&#54664;&#50632;&#45716;&#45936; &#52572;&#44540;&#50640; Medium&#51012; &#50756;&#48317;&#54616;&#44172; &#50672;&#44208;&#54624; &#49688; &#51080;&#45716; &#49436;&#48708;&#49828;&#47484; &#48156;&#44204;&#54664;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zbXQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zbXQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 424w, https://substackcdn.com/image/fetch/$s_!zbXQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 848w, https://substackcdn.com/image/fetch/$s_!zbXQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 1272w, https://substackcdn.com/image/fetch/$s_!zbXQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zbXQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png" width="800" height="358" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:358,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zbXQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 424w, https://substackcdn.com/image/fetch/$s_!zbXQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 848w, https://substackcdn.com/image/fetch/$s_!zbXQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 1272w, https://substackcdn.com/image/fetch/$s_!zbXQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd8191b-f754-41a9-9a24-2ca37faa8945_800x358.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Cloudflare&#51032; Page Rules&#47484; &#53685;&#54644; &#54252;&#50892;&#46377;&#51012; &#49324;&#50857;&#54664;&#45912;&nbsp;&#47784;&#49845;</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y6qB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y6qB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 424w, https://substackcdn.com/image/fetch/$s_!y6qB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 848w, https://substackcdn.com/image/fetch/$s_!y6qB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 1272w, https://substackcdn.com/image/fetch/$s_!y6qB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y6qB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png" width="800" height="511" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:511,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y6qB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 424w, https://substackcdn.com/image/fetch/$s_!y6qB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 848w, https://substackcdn.com/image/fetch/$s_!y6qB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 1272w, https://substackcdn.com/image/fetch/$s_!y6qB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dae888-c3ed-45a4-a53a-a4896c71b90d_800x511.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Cloudflare&#51032; Workers&#50640;&#49436; &#47956;&#51648;&#46020; &#47784;&#47476;&#45716; Notion &#50672;&#44208; &#49828;&#53356;&#47549;&#53944; &#51676;&#44609;&#44592; &#54616;&#45796; &#47700;&#51064;&#44620;&#51652; &#49457;&#44277;&#54664;&#51004;&#45208;, &#50504;&#51032; &#47553;&#53356; &#53364;&#47533; &#49884; &#48372;&#50504; &#50724;&#47448;&#44032; &#46496;&#49436;&nbsp;&#49892;&#54056;</figcaption></figure></div><h3>&#51060;&#51228; &#49884;&#51089;&#54644; &#48380;&#44620;&#50836;?</h3><p>Medium&#50640; &#50672;&#44208;&#54616;&#44256;&#51088; &#54616;&#45716; &#46020;&#47700;&#51064;&#51060; Cloudflare&#50640; &#52628;&#44032;(&#50672;&#44208;)&#44032; &#46104;&#50612; &#51080;&#45716; &#44163;&#51012; &#44592;&#48152;&#51004;&#47196; &#49444;&#47749;&#51012; &#51652;&#54665;&#54616;&#44192;&#49845;&#45768;&#45796;. &#51221;&#47568; &#44284;&#51221;&#51060; &#45800;&#49692;&#54616;&#44256; &#49772;&#50864;&#48064;&#47196; 3&#48516;&#51060;&#47732; &#48148;&#47196; &#51201;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><h4>1. expressinstantboom &#51217;&#49549;&#54616;&#44592;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UbVv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UbVv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 424w, https://substackcdn.com/image/fetch/$s_!UbVv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 848w, https://substackcdn.com/image/fetch/$s_!UbVv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 1272w, https://substackcdn.com/image/fetch/$s_!UbVv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UbVv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png" width="800" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e45f63e2-872f-472c-af25-a399bd54ca14_800x504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UbVv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 424w, https://substackcdn.com/image/fetch/$s_!UbVv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 848w, https://substackcdn.com/image/fetch/$s_!UbVv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 1272w, https://substackcdn.com/image/fetch/$s_!UbVv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe45f63e2-872f-472c-af25-a399bd54ca14_800x504.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Do It&#51012; &#45572;&#47476;&#44144;&#45208;, &#50500;&#47000;&#47196; &#49828;&#53356;&#47204;&nbsp;&#54644;&#51452;&#49464;&#50836;.</figcaption></figure></div><p>&#50864;&#49440; <strong><a href="https://expressinstantboom.com/medium">expressinstantboom.com/medium</a></strong>&#50640; &#51217;&#49549;&#54633;&#45768;&#45796;. (&#44845; &#46244;&#50640; /medium&#51060; &#48537;&#50668;&#49436; &#51217;&#49549;&#54644;&#50556; &#54633;&#45768;&#45796;. &#47700;&#51064; &#46020;&#47700;&#51064;&#50640;&#49440; &#49444;&#51221;&#51012; &#50672;&#44208;&#54616;&#45716; &#47553;&#53356;&#45208; &#47700;&#45684;&#44032; &#50630;&#49845;&#45768;&#45796;.)</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.expressinstantboom.com/medium" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iQKQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!iQKQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!iQKQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!iQKQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iQKQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36173,&quot;alt&quot;:&quot;Custom Domains On Medium Generator | Express Instant Boom&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.expressinstantboom.com/medium&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Custom Domains On Medium Generator | Express Instant Boom" title="Custom Domains On Medium Generator | Express Instant Boom" srcset="https://substackcdn.com/image/fetch/$s_!iQKQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!iQKQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!iQKQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!iQKQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b4d343a-5217-4008-ae7e-58b5b072544b_1080x255.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>2. Medium Publication &#51452;&#49548;&nbsp;&#51077;&#47141;&#54616;&#44592;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NMaa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NMaa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 424w, https://substackcdn.com/image/fetch/$s_!NMaa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 848w, https://substackcdn.com/image/fetch/$s_!NMaa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 1272w, https://substackcdn.com/image/fetch/$s_!NMaa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NMaa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png" width="696" height="446" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:446,&quot;width&quot;:696,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NMaa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 424w, https://substackcdn.com/image/fetch/$s_!NMaa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 848w, https://substackcdn.com/image/fetch/$s_!NMaa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 1272w, https://substackcdn.com/image/fetch/$s_!NMaa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6697ff62-0743-41a8-bec9-a23e4980b3b5_696x446.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>1&#48264; &#54868;&#47732;&#50640;&#49436; <strong>DO IT</strong> &#48260;&#53948;&#51012; &#45572;&#47476;&#44144;&#45208; &#50500;&#47000;&#47196; &#49828;&#53356;&#47204; &#54616;&#47732; Medium Publication &#51452;&#49548;&#47484; &#51077;&#47141;&#54616;&#45716; input box&#44032; &#45208;&#53440;&#45225;&#45768;&#45796;. Publication&#51012; &#46321;&#47197;&#54616;&#51648; &#50506;&#50520;&#45796;&#47732; medium&#50640;&#49436; &#46321;&#47197;&#54644; &#51452;&#49884;&#44256; &#50696;&#49884;&#50640; &#46384;&#46972; &#51077;&#47141;&#54616;&#49888; &#54980; <strong>NEXT</strong>&#47484; &#45580;&#47084;&#51452;&#49464;&#50836;.</p><h4>3. &#50672;&#44208;&#54616;&#44256;&#51088; &#54624; Custom domain&nbsp;&#51077;&#47141;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2GG3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2GG3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 424w, https://substackcdn.com/image/fetch/$s_!2GG3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 848w, https://substackcdn.com/image/fetch/$s_!2GG3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 1272w, https://substackcdn.com/image/fetch/$s_!2GG3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2GG3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png" width="595" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:595,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2GG3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 424w, https://substackcdn.com/image/fetch/$s_!2GG3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 848w, https://substackcdn.com/image/fetch/$s_!2GG3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 1272w, https://substackcdn.com/image/fetch/$s_!2GG3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c13c059-25af-4764-94b0-61c0ef555f08_595x466.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Medium Publication&#51060; &#51316;&#51116;&#54620;&#45796;&#47732; &#54869;&#51064;&#46104;&#50632;&#45796;&#45716; &#53664;&#49828;&#53944; &#50508;&#47548;&#44284; &#54632;&#44760; &#50672;&#44208;&#54624; &#46020;&#47700;&#51064;&#51012; &#51077;&#47141;&#54616;&#45716; &#54268;&#51060; &#45208;&#50741;&#45768;&#45796;. &#50672;&#44208;&#54624; &#46020;&#47700;&#51064; &#51452;&#49548;&#47484; &#51077;&#47141;&#54644; &#51452;&#49464;&#50836;.</p><p>&#51200;&#45716; 2&#52264; &#46020;&#47700;&#51064;(&#49436;&#48652;&#46020;&#47700;&#51064;)&#51012; &#51077;&#47141;&#54664;&#51004;&#45208;, &#45800;&#51068; &#46020;&#47700;&#51064;&#51004;&#47196; &#49324;&#50857;&#54616;&#49892; &#48516;&#51008; 1&#52264; &#46020;&#47700;&#51064;(&#47700;&#51064; &#51452;&#49548;)&#51012; &#51077;&#47141;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><h4>4. CNAME&nbsp;&#46321;&#47197;&#54616;&#44592;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!preb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!preb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 424w, https://substackcdn.com/image/fetch/$s_!preb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 848w, https://substackcdn.com/image/fetch/$s_!preb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 1272w, https://substackcdn.com/image/fetch/$s_!preb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!preb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png" width="497" height="553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:553,&quot;width&quot;:497,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!preb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 424w, https://substackcdn.com/image/fetch/$s_!preb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 848w, https://substackcdn.com/image/fetch/$s_!preb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 1272w, https://substackcdn.com/image/fetch/$s_!preb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde21a7e-bc82-46d2-a36c-9c5ac3f13dae_497x553.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#50672;&#44208;&#54624; Custom domain&#51032; CNAME&#51012; <strong>expresshacks.com</strong>&#51004;&#47196; &#49444;&#51221;&#54644; &#51480;&#50556; &#54633;&#45768;&#45796;.</p><p>Cloudflare&#50640;&#49436; &#54644;&#45817; CNAME&#51012; &#51077;&#47141;&#54620; &#46244; <strong>&#44845; Proxied&#47484; &#49444;&#51221;</strong>&#54644; &#51469;&#45768;&#45796;. CNAME &#50672;&#44208;&#51008; &#53440; &#49436;&#48708;&#49828;&#50640;&#49436;&#46020; &#44032;&#45733;&#54616;&#45208; <strong>&#51060; &#44592;&#45733;&#51012; &#49324;&#50857;&#54616;&#44592; &#50948;&#54644; Cloudflare &#44592;&#51456;&#51004;&#47196; &#49444;&#47749;&#51012; &#54644;&#46300;&#47536; &#44163;</strong>&#51060;&#47728; &#48148;&#47196; &#46244;&#50640; &#44536; &#51060;&#50976;&#47484; &#50508; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qmu_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qmu_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 424w, https://substackcdn.com/image/fetch/$s_!Qmu_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 848w, https://substackcdn.com/image/fetch/$s_!Qmu_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 1272w, https://substackcdn.com/image/fetch/$s_!Qmu_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qmu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png" width="800" height="36" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:36,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qmu_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 424w, https://substackcdn.com/image/fetch/$s_!Qmu_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 848w, https://substackcdn.com/image/fetch/$s_!Qmu_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 1272w, https://substackcdn.com/image/fetch/$s_!Qmu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F535d6b6a-334e-430c-8374-ad8f7a44dcbd_800x36.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#44396;&#47492;&#50500;&#51060;&#53080;&#51012; &#49440;&#53469;&#54644; &#54876;&#49457;&#54868;&nbsp;&#54644;&#51452;&#49464;&#50836;.</figcaption></figure></div><h4>5. &#50672;&#44208;&nbsp;&#50756;&#47308;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sz8V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sz8V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 424w, https://substackcdn.com/image/fetch/$s_!sz8V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 848w, https://substackcdn.com/image/fetch/$s_!sz8V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 1272w, https://substackcdn.com/image/fetch/$s_!sz8V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sz8V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png" width="525" height="573" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:573,&quot;width&quot;:525,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sz8V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 424w, https://substackcdn.com/image/fetch/$s_!sz8V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 848w, https://substackcdn.com/image/fetch/$s_!sz8V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 1272w, https://substackcdn.com/image/fetch/$s_!sz8V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba5ee91-3fb2-47d8-9a29-a1a52db1cea4_525x573.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">CNAME &#44081;&#49888;&#51060; &#50504;&#46104;&#50612;&#46020; &#44145;&#51221;&#54616;&#51648;&nbsp;&#47560;&#49464;&#50836;.</figcaption></figure></div><p>CNAME &#54869;&#51064;&#51012; &#47803; &#54664;&#45796;&#45716; Alert&#44032; &#45208;&#53440;&#45208;&#51648;&#47564; &#47924;&#49884;&#54644;&#46020; &#46121;&#45768;&#45796;. &#50896;&#47000; DNS &#48320;&#44221; &#49884; &#54140;&#51648;&#45716; &#45936; &#49884;&#44036;&#51060; &#44152;&#47532;&#45768;&#44620;&#50836;. 1~2&#48516; &#51221;&#46020; &#54980; &#49352;&#47196; &#44256;&#52840; &#54616;&#44144;&#45208; &#49884;&#53356;&#47551; &#47784;&#46300;&#47484; &#53685;&#54644; &#50672;&#44208;&#54624; &#46020;&#47700;&#51064;&#51004;&#47196; &#51217;&#49549;&#54616;&#47732; &#51201;&#50857;&#46108; &#47784;&#49845;&#51012; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p>&#51328; &#45908; &#49828;&#53356;&#47204; &#54616;&#47732; &#50500;&#47000;&#50640; &#48148;&#47196; $19&#47484; &#45236;&#44256; SSL &#51201;&#50857;&#51012; &#54616;&#44192;&#45712;&#45264;&#45716; &#47700;&#49884;&#51648;&#44032; &#45208;&#50724;&#45716;&#45936;, &#50864;&#47532;&#45716; 4&#48264;&#50640;&#49436; &#44396;&#47492; &#47784;&#50577;&#51032; Proxied&#47484; &#54876;&#49457;&#54868;&#54664;&#51004;&#48064;&#47196; No, Thank you&#47484; &#45580;&#47084;&#51452;&#47732; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d3z6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d3z6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 424w, https://substackcdn.com/image/fetch/$s_!d3z6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 848w, https://substackcdn.com/image/fetch/$s_!d3z6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 1272w, https://substackcdn.com/image/fetch/$s_!d3z6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d3z6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png" width="546" height="366" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:366,&quot;width&quot;:546,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d3z6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 424w, https://substackcdn.com/image/fetch/$s_!d3z6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 848w, https://substackcdn.com/image/fetch/$s_!d3z6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 1272w, https://substackcdn.com/image/fetch/$s_!d3z6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb56623e-6aac-43fb-81e8-3fcd1be41b72_546x366.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#44032;&#48333;&#44172; No, Thank you&#47484;&nbsp;&#45580;&#47084;&#51469;&#45768;&#45796;.</figcaption></figure></div><p>Cloudflare Proxy&#47484; &#53685;&#54616;&#47732; &#51088;&#46041;&#51004;&#47196; SSL&#51060; &#51201;&#50857;&#46104;&#44592; &#46412;&#47928;&#50640; &#44403;&#51060; $19&#47484; &#45244; &#54596;&#50836;&#44032; &#50630;&#49845;&#45768;&#45796;.</p><p>SSL&#51060; &#51201;&#50857;&#46104;&#50612; &#51080;&#51648; &#50506;&#51004;&#47732; &#50500;&#47000;&#50752; &#44057;&#51008; &#54868;&#47732;&#51060; &#48372;&#51077;&#45768;&#45796;.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/webp&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b2d0136-8f8d-4769-a307-687a6486e1c6_961x794.webp&quot;},{&quot;type&quot;:&quot;image/webp&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35600163-8585-4987-99e6-e605ecc2c9c3_941x784.webp&quot;}],&quot;caption&quot;:&quot;&#51340;: https://&#47484; &#48537;&#50668; &#51217;&#49549;&#54664;&#51012; &#44221;&#50864; | &#50864;: http://&#47196; &#51217;&#49549;&#49884; &#51452;&#51032; &#50836;&#54632;&#51060;&nbsp;&#45208;&#53440;&#45224;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/573d09a7-8ee0-4eb5-91c7-2e3abda90be2_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><p>&#51200;&#45716; &#44592;&#51316;&#50640; &#54252;&#53944; &#54252;&#50892;&#46377;&#51012; &#49324;&#50857;&#54664;&#44256; &#51060;&#46412; https:// (&#48372;&#50504; &#51217;&#49549;)&#51012; &#51201;&#50857;&#54664;&#44592; &#46412;&#47928;&#50640; lab.dongri.me&#51012; &#51077;&#47141;&#54616;&#47732; &#51088;&#46041;&#51004;&#47196; https://&#44032; &#48537;&#51004;&#47728; &#50948;&#50752; &#44057;&#51008; &#50724;&#47448;&#44032; &#45208;&#53440;&#45225;&#45768;&#45796;.</p><p>&#48708;&#48372; &#50504;&#51004;&#47196; &#51217;&#49549;&#54624; &#46412;&#45716; &#51452;&#49548;&#52285; &#50812;&#51901;&#50640; <strong>&#51452;&#51032; &#50836;&#54632;</strong>&#51060;&#46972;&#44256; &#45208;&#53440;&#45208;&#47728; &#50864;&#47532;&#44032; &#51473;&#50836; &#45236;&#50857;&#51012; &#53685;&#49888;&#54616;&#45716; &#44163;&#51060; &#50500;&#45768;&#48064;&#47196; &#47928;&#51228;&#44032; &#46112; &#44163;&#51008; &#50630;&#51648;&#47564;, &#49324;&#51060;&#53944;&#47484; &#51060;&#50857;&#54616;&#45716; &#49324;&#46988;&#46308;&#50640;&#44172; &#50504; &#51339;&#44172; &#48372;&#51068; &#49688; &#51080;&#51004;&#48064;&#47196; Cloudflare&#51032; Proxy&#47484; &#53685;&#54644; SSL(&#49892;&#51228; &#48372;&#50504; &#54952;&#44284;&#45716; &#50630;&#45796; &#54616;&#45908;&#46972;&#46020;)&#51012; &#51201;&#50857;&#54644; &#51452;&#45716; &#44163;&#51060; &#51339;&#49845;&#45768;&#45796;.</p><p></p><h3>&#51201;&#50857;&#51060; &#51096; &#46104;&#45716;&#51648;&nbsp;&#54869;&#51064;&#54644; &#48372;&#44592;</h3><p>&#51060;&#51228; &#46020;&#47700;&#51064;&#51060; &#51096; &#50672;&#44208;&#46104;&#45716;&#51648; &#54869;&#51064;&#54644; &#48389;&#45768;&#45796;. &#54168;&#51060;&#51648; &#45236;&#51032; &#47553;&#53356;&#44032; <strong>*.medium.com/* &#51060; &#50500;&#45772; &#51228; &#46020;&#47700;&#51064;</strong>&#51004;&#47196; &#46104;&#50612; &#51080;&#44256;, &#53364;&#47533;&#183;&#51060;&#46041;&#54644;&#46020; &#52964;&#49828;&#53568; &#46020;&#47700;&#51064; &#44592;&#48152;&#51004;&#47196; &#51228;&#45824;&#47196; &#51089;&#46041;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_-LO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_-LO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 424w, https://substackcdn.com/image/fetch/$s_!_-LO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 848w, https://substackcdn.com/image/fetch/$s_!_-LO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 1272w, https://substackcdn.com/image/fetch/$s_!_-LO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_-LO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png" width="800" height="596" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7413068d-c425-4eab-b08b-22cc401019b1_800x596.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:596,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_-LO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 424w, https://substackcdn.com/image/fetch/$s_!_-LO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 848w, https://substackcdn.com/image/fetch/$s_!_-LO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 1272w, https://substackcdn.com/image/fetch/$s_!_-LO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413068d-c425-4eab-b08b-22cc401019b1_800x596.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#46020;&#47700;&#51064;&#51060; &#51228;&#45824;&#47196; &#50672;&#44208;&#46104;&#50632;&#45716;&#51648;&nbsp;&#54869;&#51064;&#54644;&#48389;&#45768;&#45796;.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jMhZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jMhZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 424w, https://substackcdn.com/image/fetch/$s_!jMhZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 848w, https://substackcdn.com/image/fetch/$s_!jMhZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 1272w, https://substackcdn.com/image/fetch/$s_!jMhZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jMhZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png" width="618" height="35" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6539661e-8708-43c7-8200-a0898323a1bd_618x35.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:35,&quot;width&quot;:618,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jMhZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 424w, https://substackcdn.com/image/fetch/$s_!jMhZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 848w, https://substackcdn.com/image/fetch/$s_!jMhZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 1272w, https://substackcdn.com/image/fetch/$s_!jMhZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6539661e-8708-43c7-8200-a0898323a1bd_618x35.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#45236;&#48512; &#47553;&#53356;&#46020; &#51096;&nbsp;&#48148;&#45068;&#50632;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>Cloudflare Business &#54540;&#47004; &#51060;&#49345; &#49324;&#50857;&#54644;&#50556; &#44397;&#45236; &#50659;&#51648;&#47484; &#44144;&#52824;&#44592; &#46412;&#47928;&#50640; &#49549;&#46020;&#44032; &#45712;&#47540;&#44620; &#48400; &#44145;&#51221;&#54664;&#51648;&#47564;, &#44316;&#52270;&#51008; &#49549;&#46020;&#47196; &#51096; &#45208;&#50752;&#51480;&#49436; &#47564;&#51313;&#54633;&#45768;&#45796;.</p><p>RSS Feed&#44620;&#51648; &#51201;&#50857;&#46104;&#51648; &#50506;&#45716; &#51216;&#51008; &#50500;&#49789;&#51648;&#47564;, &#44536;&#47000;&#46020; &#52964;&#49828;&#53568; &#46020;&#47700;&#51064; &#50672;&#44208;&#51012; &#53685;&#54644; &#51088;&#49888;&#47564;&#51032; &#48652;&#47004;&#46377;&#51012; &#54364;&#52636;&#54624; &#49688; &#51080;&#44172; &#46104;&#50612;&#49436; &#51339;&#51008; &#44163; &#44057;&#49845;&#45768;&#45796;.</p><p>&#49436;&#48708;&#49828;&#44032; &#49324;&#46972;&#51648;&#51648; &#50506;&#44256; &#50724;&#47000;&#50724;&#47000; &#51080;&#50612; &#51500;&#51004;&#47732; &#51339;&#44192;&#49845;&#45768;&#45796;. (Medium&#50640;&#49436; &#51088;&#52404; &#44592;&#45733;&#51012; &#44277;&#49885; &#51228;&#44277;&#54644; &#51452;&#45716; &#44172; &#44032;&#51109; &#51339;&#44192;&#51648;&#47564;&#50836;!)</p>]]></content:encoded></item><item><title><![CDATA[제주 코딩 베이스 캠프 후기]]></title><description><![CDATA[&#52852;&#52852;&#50724;&#50752; &#44396;&#47492;&#44284; &#54632;&#44760;, &#53076;&#50508;&#47803;&#50640;&#49436; &#50937;&#49436;&#48708;&#49828; &#47088;&#52845;&#44620;&#51648;!]]></description><link>https://lab.dongri.me/p/jeju-coding-basecamp-review</link><guid isPermaLink="false">https://lab.dongri.me/p/jeju-coding-basecamp-review</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Tue, 20 Aug 2019 01:01:01 GMT</pubDate><enclosure url="https://cdn-images-1.medium.com/max/2560/1*0VCWQRJwmKn0ffA-HEAdbQ.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qms5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset image2-full-screen"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qms5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qms5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qms5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qms5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qms5!,w_5760,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;full&quot;,&quot;height&quot;:514,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-fullscreen" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qms5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qms5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qms5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qms5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3690b34a-1071-43bb-9df0-8b82581e470c_1920x678.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>&#52852;&#52852;&#50724;&#50752; &#44396;&#47492;&#44284; &#54632;&#44760;, &#53076;&#50508;&#47803;&#50640;&#49436; &#50937;&#49436;&#48708;&#49828;&nbsp;&#47088;&#52845;&#44620;&#51648;!</h4><p>&#50557; &#51068;&#51452;&#51068;&#44036; &#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532;&#50640; &#52280;&#44032;&#54664;&#49845;&#45768;&#45796;. &#54253;&#50684;&#51004;&#47196; &#44032;&#46301; &#52268; &#45236;&#47449;&#51012; &#54588;&#54644; &#51228;&#51452;&#46020;&#50640;&#49436; &#46356;&#51648;&#53560; &#45432;&#47560;&#46300;&#47484; &#54616;&#47728; &#44277;&#48512;&#54624; &#49688; &#51080;&#45796;&#45716; &#49444;&#47128;&#51004;&#47196; &#44032;&#46301; &#52284;&#44256;, &#49892;&#51228; &#44592;&#45824; &#51060;&#49345;&#51004;&#47196; &#47566;&#51008; &#48176;&#50880;&#51012; &#48155;&#50520;&#45716;&#45936;&#50836;,</p><p><a href="https://jejucodingcamp.com/">&#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828; &#52896;&#54532;(&#51060;&#54616; &#51228;&#53076;&#48176;)</a>&#47484; &#52280;&#50668;&#54616;&#44256; &#49910;&#51008;&#45936;, &#50612;&#46500;&#51648; &#44417;&#44552;&#54616;&#44144;&#45208; &#49332;&#51677; &#47581;&#49444;&#50668; &#51648;&#49884;&#45716; &#48516;&#46308;&#51060; &#44228;&#49888;&#45796;&#47732; &#51228; &#44544;&#51012; &#48372;&#49884;&#44256; &#44208;&#51221;&#54616;&#49884;&#45716; &#45936; &#51312;&#44552;&#51060;&#45208;&#47560; &#46020;&#50880;&#51060; &#46104;&#50632;&#51004;&#47732; &#54633;&#45768;&#45796;.</p><p>&#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828; &#52896;&#54532;&#50640; &#52280;&#50668;&#54616;&#44592;&#44032; &#50612;&#47157;&#45796;&#47732;, &#50728;&#46972;&#51064;&#51004;&#47196; &#49688;&#44053;&#54616;&#45716; &#48169;&#48277; &#46608;&#54620; &#51080;&#49845;&#45768;&#45796;. &#44032;&#44201;&#46020; &#50724;&#54532;&#46972;&#51064; &#52280;&#44032;&#50640; &#48708;&#54644; &#51200;&#47156;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://edu.goorm.io/lecture/10983/%EC%97%B0%EC%9E%AC-%EC%A0%9C%EC%A3%BC-%EC%BD%94%EB%94%A9-%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%BA%A0%ED%94%84-%EC%BD%94%EC%95%8C%EB%AA%BB%EC%97%90%EC%84%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%9F%B0%EC%B9%AD%EA%B9%8C%EC%A7%80" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w-Ke!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!w-Ke!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!w-Ke!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!w-Ke!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w-Ke!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82778,&quot;alt&quot;:&quot;&#53076;&#50508;&#47803;&#50640;&#49436; &#50937;&#49436;&#48708;&#49828; &#47088;&#52845;&#44620;&#51648;: &#50728;&#46972;&#51064; &#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532; - &#44396;&#47492;EDU&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://edu.goorm.io/lecture/10983/%EC%97%B0%EC%9E%AC-%EC%A0%9C%EC%A3%BC-%EC%BD%94%EB%94%A9-%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%BA%A0%ED%94%84-%EC%BD%94%EC%95%8C%EB%AA%BB%EC%97%90%EC%84%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%9F%B0%EC%B9%AD%EA%B9%8C%EC%A7%80&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#53076;&#50508;&#47803;&#50640;&#49436; &#50937;&#49436;&#48708;&#49828; &#47088;&#52845;&#44620;&#51648;: &#50728;&#46972;&#51064; &#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532; - &#44396;&#47492;EDU" title="&#53076;&#50508;&#47803;&#50640;&#49436; &#50937;&#49436;&#48708;&#49828; &#47088;&#52845;&#44620;&#51648;: &#50728;&#46972;&#51064; &#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532; - &#44396;&#47492;EDU" srcset="https://substackcdn.com/image/fetch/$s_!w-Ke!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!w-Ke!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!w-Ke!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!w-Ke!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88946297-6e79-40e9-9c26-3f6ab042ce0e_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><div><hr></div><p>&#51228;&#53076;&#48288;&#45716; 5&#51068;&#44036; front-end(html, css, JS)&#50752; back-end(django, python) &#46321;&#51012; &#48176;&#50864;&#44256; &#54644;&#52964;&#53668;&#51012; &#53685;&#54644; &#48176;&#50868; &#44163;&#46308;&#51012; &#54876;&#50857;&#54644; &#44036;&#45800;&#54620; &#49436;&#48708;&#49828;&#46020; &#47564;&#46308;&#44256; &#45236; &#49892;&#47141;&#51012; &#44160;&#51613;&#54644; &#48380; &#49688; &#51080;&#45716; &#52896;&#54532;&#51077;&#45768;&#45796;.</p><p>&#51228;&#53076;&#48176;&#50640; &#52280;&#50668;&#54616;&#44592;&#50640; &#50526;&#49436;, &#51200;&#45716; front-end&#48372;&#45796;&#45716; back-end&#47484; &#44221;&#54744;&#54644; &#48372;&#44256; &#50612;&#46523;&#44172; &#46028;&#50500;&#44032;&#45716;&#51648; &#51312;&#44552;&#51060;&#45208;&#47560; &#48176;&#50892;&#48372;&#44256; &#49910;&#51008; &#47560;&#51020;&#51060; &#52984;&#49845;&#45768;&#45796;. &#51200;&#51032; &#48324; &#48372;&#51096; &#44163; &#50630;&#45716; &#44060;&#48156; &#51648;&#49885;&#51008; &#44284;&#44144; &#51228;&#47196;&#48372;&#46300;4&#47484; &#44592;&#48152;&#51004;&#47196; PHP&#44032; &#44061;&#52404;&#51648;&#54693;&#51012; &#51648;&#50896;&#54616;&#44592; &#46385; &#51649;&#51204;&#50640; &#47688;&#52656;&#51080;&#44592; &#46412;&#47928;&#51077;&#45768;&#45796;. (&#44536; &#51060;&#49345;&#51008;&#8230; Never&#8230;)</p><p>front-end&#50640;&#49436; markup&#47564; &#54644;&#46020; &#46356;&#51088;&#51060;&#45320;&#50752; &#44060;&#48156;&#51088; &#49324;&#51060;&#50640;&#49436; &#44033;&#51088;&#51032; &#51204;&#44277;&#51648;&#49885; &#48512;&#51116;&#50752; &#51032;&#49324;&#49548;&#53685; &#47928;&#51228;&#47196; &#51648;&#51109;&#51060; &#49373;&#44592;&#45716; &#52992;&#51060;&#49828;&#47484; &#47566;&#51060; &#48372;&#45716;&#45936;, &#44060;&#48156;&#51088; &#49688;&#51456;&#51032; &#45733;&#47141;&#51008; &#50630;&#50612;&#46020; <strong>&#45236;&#44032; &#46356;&#51088;&#51064;&#54616;&#45716; &#49436;&#48708;&#49828;&#44032; &#51204;&#52404;&#51201;&#51064; &#52769;&#47732;&#50640;&#49436; &#50612;&#46523;&#44172; &#44396;&#52629;&#46104;&#44256; &#50976;&#51648;&#46104;&#45716;&#51648;&#47484; &#50508;&#50500;&#50556; &#46356;&#51088;&#51064;&#54616;&#45716; &#45824;&#49345;&#50640; &#45824;&#54644; &#51096; &#51060;&#54644;&#54624; &#49688; &#51080;&#44256; &#44417;&#44537;&#51201;&#51004;&#47196; &#46356;&#51088;&#51064;&#44284; &#49436;&#48708;&#49828;&#51032; &#53252;&#47532;&#54000;&#44032; &#45804;&#46972;&#51652;&#45796;&#44256; &#49373;&#44033;</strong>&#54616;&#48064;&#47196; &#51228;&#53076;&#48288;&#50640; &#52280;&#44032;&#54616;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;.</p><h3>DAY 1&amp;2&#8202;&#8212;&#8202;html, css, javascript, bootstrap</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hg7y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hg7y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hg7y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hg7y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hg7y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hg7y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hg7y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hg7y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hg7y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hg7y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d4e148-22e3-4bdb-aa09-59b8f43b82dc_1200x675.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51228;&#51452; &#52852;&#52852;&#50724; &#48376;&#49324;&#50640;&#49436; &#51228;&#53076;&#48176;&nbsp;&#51652;&#54665;</figcaption></figure></div><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/webp&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5e2772a-2f58-49b5-8b19-4134621e6810_1195x896.webp&quot;},{&quot;type&quot;:&quot;image/webp&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e5d7597-8102-4007-b500-35be15c266a9_812x457.webp&quot;},{&quot;type&quot;:&quot;image/webp&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/693dbb7c-1278-4af2-9b7e-ef510e1d3ec0_3999x2250.webp&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b119f2a-5cc5-4828-b78c-c92a5bbb20a3_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p></p><p>&#44480;&#50668;&#50868; &#51228;&#53076;&#48176; &#44368;&#51116;&#50752; &#54632;&#44760; &#51228;&#51452; &#52852;&#52852;&#50724; &#48376;&#49324;&#50640;&#49436; &#49688;&#50629;&#54664;&#49845;&#45768;&#45796;. &#51221;&#54869;&#55176;&#45716; &#50724;&#54980; &#49688;&#50629;&#44620;&#51648;&#45716; &#51228;&#51452; &#52852;&#52852;&#50724;&#50640;&#49436;, &#51200;&#45377; &#49688;&#50629;&#51008; &#44540;&#52376; &#49828;&#47560;&#53944; &#48716;&#46377;&#50640;&#49436; &#51652;&#54665;&#54664;&#49845;&#45768;&#45796;.</p><p>&#48148;&#50872;&#47017; &#51060;&#54840;&#51456; &#45824;&#54364;&#45784;&#44760;&#49436; &#51228;&#53076;&#48176;&#50640; &#45824;&#54620; &#49444;&#47749;&#44284;, &#50937;&#54168;&#51060;&#51648;&#44032; &#50676;&#47532;&#44592;&#44620;&#51648;&#51032; &#45824;&#47029;&#51201;&#51064; &#44284;&#51221;&#51012; &#49444;&#47749;&#54644; &#51452;&#49512;&#49845;&#45768;&#45796;.</p><p>Atom &#50640;&#46356;&#53552;&#47484; &#44592;&#48152;&#51004;&#47196; &#44036;&#45800;&#54620; HTML &#49892;&#49845;&#46020; &#54664;&#45716;&#45936;&#50836;, Emmet&#51012; &#54876;&#50857;&#54644; &#49789;&#44172; &#47560;&#53356;&#50629;&#51060; &#44032;&#45733;&#54620; &#51216;&#51060; &#51064;&#49345; &#44618;&#50632;&#49845;&#45768;&#45796;. &#45796;&#47564; &#54980;&#48152; &#44368;&#50977;&#50640;&#49436;&#45716; goorm ide&#47196; &#44060;&#48156;&#51012; &#51652;&#54665;&#54616;&#45716;&#45936; &#52488;&#48152;&#48512;&#53552; goorm ide&#51012; &#49324;&#50857;&#54664;&#51004;&#47732; &#54616;&#45716; &#50500;&#49772;&#50880;&#51060; &#45224;&#50520;&#49845;&#45768;&#45796;. (goorm ide&#50640;&#49436;&#46020; Emmet&#51012; &#51648;&#50896;&#54616;&#44256;, &#49892;&#49884;&#44036; &#46972;&#51060;&#48652; &#53076;&#46377; &#44032;&#45733;)</p><p>&#51060;&#54840;&#51456; &#45824;&#54364;&#45784;&#44760;&#49436; &#49688;&#50629; &#52488;&#48152;&#50640;</p><blockquote><p>&#51656;&#47928;&#46020; &#49688;&#50629;&#51032; &#51068;&#54872;&#51060;&#44256;,<br>&#51656;&#47928;&#44284; &#45813;&#48320;&#51012; &#54616;&#47732;&#49436; &#51652;&#46020;&#47484; &#45796; &#47560;&#52824;&#51648; &#47803;&#54644;&#46020; &#44284;&#51221;&#51060;&#48064;&#47196; &#49345;&#44288;&#50630;&#45796;.</p></blockquote><p>&#51060;&#47111;&#44172; &#47568;&#50432;&#54616;&#49512;&#45716;&#45936; &#45320;&#47924; &#51339;&#50520;&#49845;&#45768;&#45796;. &#54617;&#48512;&#49373; &#46412;&#45208; &#50808;&#48512;&#44368;&#50977;&#51012; &#44032;&#47732; &#49884;&#44036;&#49345; &#51228;&#50557;&#44284; &#49688;&#50629;&#50640; &#48169;&#54644;&#44032; &#46104;&#51648; &#50506;&#44592; &#50948;&#54644; &#51656;&#47928;&#54616;&#44592;&#44032; &#47566;&#51060; &#50612;&#47157;&#44592; &#46412;&#47928;&#51064;&#45936;&#50836;, &#51060; &#47568;&#50432; &#45909;&#48516;&#50640; &#49688;&#50629;&#54616;&#47732;&#49436; &#44417;&#44552;&#54620; &#51216;&#51060; &#49373;&#44592;&#47732; &#44144;&#52840;&#50630;&#51060; &#51656;&#47928;&#54616;&#44256; &#47566;&#51060; &#48176;&#50912;&#49845;&#45768;&#45796;.</p><p>1&#48516; &#53076;&#46377;&#51004;&#47196; &#50976;&#47749;&#54620; &#49828;&#53916;&#46356;&#50724;&#48128; &#50976;&#51456;&#47784; &#45824;&#54364;&#45784;&#44760;&#49436; &#48148;&#53668;&#51012; &#51060;&#50612;&#48155;&#50500; &#44618;&#51060; &#51080;&#44172; html&#44284; CSS &#49688;&#50629;&#51012; &#47585;&#50500;&#51452;&#49512;&#49845;&#45768;&#45796;. <em>(&#46384;&#47196; Canvas &#44368;&#50977;&#46020; &#54616;&#49884;&#45716; &#44163; &#44057;&#51008;&#45936;, &#45208;&#51473;&#50640; &#44592;&#54924;&#44032; &#46108;&#45796;&#47732; &#46308;&#50612;&#48372;&#44256; &#49910;&#49845;&#45768;&#45796;. google &#44608;&#51333;&#48124; &#45784;&#51060; canvas &#50416;&#49884;&#45716; &#44144; &#48372;&#47732; &#45320;&#47924;&#45320;&#47924; &#48176;&#50864;&#44256; &#49910;&#49845;&#45768;&#45796;)</em> &#44284;&#44144;&#51032; &#51200;&#45716; &#49884;&#47704;&#54001;&#51012; &#51473;&#50836;&#49884;&#54616;&#44256; &#50836;&#49548;&#51032; &#49324;&#50857;&#51012; &#52572;&#49548;&#54868;(class &#51648;&#50577;, &#54596;&#50836; &#50630;&#45716; &#50648;&#47532;&#53944;&#47676;&#53944; &#50630;&#51060; &#52572;&#49548;&#54620;&#51004;&#47196; &#50976;&#51648;) &#54616;&#45716; &#49885;&#51004;&#47196; &#51652;&#54665;&#54664;&#50632;&#45716;&#45936; &#44396;&#49885;&#48169;&#48277;&#51060;&#46972;&#45716; &#44163;&#51012; &#50508;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;. &#51656;&#45813;&#49884;&#44036;&#50640; &#48176;&#50868; BEM&#48169;&#48277;&#47200;&#51012; &#53685;&#54644; &#50526;&#51004;&#47196; &#47560;&#53356;&#50629;&#51012; &#54952;&#50984;&#51201;&#51004;&#47196; &#51652;&#54665;&#54624; &#49688; &#51080;&#51004;&#47532;&#46976; &#44592;&#45824;&#47484; &#54644;&#48389;&#45768;&#45796;.</p><p>&#45908;&#48520;&#50612; &#49692;&#49688; Javascript&#47484; &#50416;&#44592;&#44032; &#50612;&#47140;&#50892;(ex_ getElementByID) jquery&#47564; &#49324;&#50857;&#54644; &#50772;&#45716;&#45936; &#49688;&#50629;&#51012; &#46308;&#51004;&#47728; Javascript&#44032; jQuery&#50752; &#47566;&#51060; &#50976;&#49324;&#54644;&#51648;&#44256; &#50416;&#44592;&#46020; &#54200;&#47532;&#54644;&#51256; jQuery&#47484; &#51648;&#50577;&#54616;&#44256; &#49692;&#49688; Javascript&#47196; &#45824;&#52404;&#54644;&#50556;&#44192;&#45796;&#45716; &#45796;&#51664;&#46020; &#54644;&#48389;&#45768;&#45796;.</p><p>boostrap&#45716; &#51228;&#51452; &#49828;&#53272;&#50612; &#44060;&#48156;&#51088;&#51060;&#49888; &#48276;&#51116;&#45784;&#44760;&#49436; &#51652;&#54665;&#54644; &#51452;&#49512;&#49845;&#45768;&#45796;. &#50780; boostrap&#51012; &#49324;&#50857;&#54616;&#45716;&#51648;, &#44592;&#48376;&#51201;&#51004;&#47196; &#49324;&#50857;&#54616;&#45716; &#50836;&#49548;&#46308;&#51032; &#49444;&#47749;&#44284; &#49892;&#49845;&#51012; &#51652;&#54665;&#54664;&#49845;&#45768;&#45796;. &#53945;&#55176; &#45208;&#51473;&#50640; &#48373;&#49845;&#51060; &#44032;&#45733;&#54616;&#46020;&#47197; &#48324;&#46020;&#51032; &#45432;&#49496;&#51004;&#47196; &#51221;&#47532;&#54644; &#49324;&#51204;&#50640; &#48176;&#54252;&#54644; &#51452;&#49888; &#51216;&#51060; &#51339;&#50520;&#49845;&#45768;&#45796;..</p><h3>DAY 3&amp;4&#8202;&#8212;&#8202;python, django,&nbsp;git</h3><p>&#51649;&#44036;&#51217;&#51201;&#51004;&#47196; C, C#, Arduino, Processing(java &#44592;&#48152;), PHP, Javascript&#47484; &#50024;&#48372;&#47732;&#49436; &#50612;&#51724;&#46304; &#50500;&#51452; &#48708;&#49847;&#48708;&#49847;&#54664;&#45716;&#45936; Python&#51008; &#48176;&#50864;&#47732;&#49436; &#51221;&#47568; &#44256;&#49373;&#54664;&#49845;&#45768;&#45796;.</p><blockquote><p>&#50416;&#44592; &#54200;&#54616;&#45796;&#44256; &#54616;&#45716;&#45936;&#8230; &#51200;&#45716;&nbsp;&#50500;&#45772; &#44144;&#47196;&#8230;</p></blockquote><p>&#48324;&#46020;&#47196; &#52980;&#54504;&#53552;&#50640; &#49444;&#52824;&#54616;&#44256; &#49464;&#54021;&#54664;&#45796;&#47732; &#51652;&#51089; &#54252;&#44592;&#54664;&#51012; &#53584;&#45936;, goorm ide&#47564; &#44032;&#51648;&#44256; &#52968;&#53580;&#51060;&#45320; &#49373;&#49457;&#51012; &#54616;&#47732; &#50508;&#50500;&#49436; &#45796; &#49444;&#52824;&#46108; &#49345;&#53468;&#50640;&#49436; &#53076;&#46377;&#47564; &#54616;&#47732; &#46096;&#44592;&#50640; &#51339;&#50520;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j_Xe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j_Xe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j_Xe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j_Xe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j_Xe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j_Xe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j_Xe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j_Xe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j_Xe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j_Xe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae347844-ecac-49e6-880c-0d6a05428a6c_800x450.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#49352; &#50616;&#50612;&#47484; &#48176;&#50868;&#45796;&#47732; &#49692;&#52264;&#51201;&#51004;&#47196; &#52376;&#47532;? &#54616;&#45716; &#44284;&#51221;&#51012; &#47672;&#47532;&#47196; &#49373;&#44033;&#54616;&#44592; &#50612;&#47140;&#50892; &#51649;&#51217; &#54616;&#45208;&#54616;&#45208; &#50024;&#48372;&#47728; &#51652;&#54665;&#54616;&#44592;&#46020; &#54616;&#45716;&#45936; &#51649;&#51217; &#54028;&#51060;&#50028; &#49688;&#50629;&#51012; &#51652;&#54665;&#54616;&#49884;&#47732;&#49436; &#50612;&#46523;&#44172; &#46041;&#51089; &#54616;&#45716;&#51648;&#50640; &#45824;&#54620; &#44284;&#51221;&#51012; &#54616;&#45208;&#54616;&#45208; &#48372;&#50668;&#51452;&#49888; &#51216;&#51060; &#51064;&#49345; &#44618;&#50632;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IyEb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IyEb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 424w, https://substackcdn.com/image/fetch/$s_!IyEb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 848w, https://substackcdn.com/image/fetch/$s_!IyEb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 1272w, https://substackcdn.com/image/fetch/$s_!IyEb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IyEb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png" width="800" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1075f384-62ec-4eed-8784-63546da9208e_800x373.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IyEb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 424w, https://substackcdn.com/image/fetch/$s_!IyEb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 848w, https://substackcdn.com/image/fetch/$s_!IyEb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 1272w, https://substackcdn.com/image/fetch/$s_!IyEb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1075f384-62ec-4eed-8784-63546da9208e_800x373.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#49688;&#50629; &#50696;&#49884;&#47196; &#51652;&#54665;&#54616;&#45716;, &#8220;&#51228;&#51452; &#52852;&#54168;&nbsp;&#52286;&#44592;&#8221;</figcaption></figure></div><p>python&#44284; django &#50672;&#46041;&#51012; &#53685;&#54644; &#50937;&#49436;&#48708;&#49828;&#47484; &#44396;&#52629;&#54616;&#45716; &#49688;&#50629;&#50640;&#49436;&#45716; &#49324;&#51204;&#50640; &#51452;&#50612;&#51652; &#53596;&#54540;&#47551;&#51012; &#44396;&#52629;&#54616;&#47728; &#49892;&#49845;&#54644; &#48372;&#45716; &#49885;&#51004;&#47196; &#51652;&#54665;&#46104;&#50632;&#49845;&#45768;&#45796;. 4&#51068; &#52264;&#48512;&#53552;&#45716; &#48264;&#50500;&#50883;&#51004;&#47196; &#49688;&#50629;&#51012; &#51060;&#54644;&#54616;&#44592;&#48372;&#45796; &#49444;&#47749;&#54616;&#45716; &#47749;&#47161;&#50612;&#47484; &#51077;&#47141;&#54616;&#47728; &#46384;&#46972;&#54616;&#44592; &#48148;&#48756;&#49845;&#45768;&#45796;..</p><p>&#44284;&#44144;&#50644; &#44060;&#48156;&#51088;&#46308;&#51060; &#48120;&#47532; &#49464;&#54021;&#46108; &#54872;&#44221;&#50640;&#49436; &#44060;&#48156;&#47564; &#54664;&#45796;&#47732;, &#50836;&#51608;&#50644; Docker&#51032; &#52968;&#53580;&#51060;&#45320;&#45208; Xen &#49436;&#48260;&#47484; &#44396;&#52629;&#54644;&#49436; &#51649;&#51217; &#44060;&#48156;&#51088;&#44032; &#51089;&#50629;&#54872;&#44221;&#51012; &#49464;&#54021;&#54616;&#44256; &#49436;&#48708;&#49828;&#47484; &#44060;&#48156;&#54616;&#45716; &#52628;&#49464;&#51064; &#44163; &#44057;&#49845;&#45768;&#45796;.</p><p>apt-get&#44284; &#44057;&#51008; &#47749;&#47161;&#50612;&#51064; pip&#51012; &#49324;&#50857;&#54616;&#45716;&#45936;, &#44284;&#44144; firebase&#47484; &#49444;&#52824;&#54616;&#44592; &#50948;&#54644; &#47749;&#47161; &#54532;&#47212;&#54532;&#53944; &#52285;&#50640; npm&#51012; &#50416;&#45716; &#44163;&#44284; &#48708;&#49847;&#54644; &#49888;&#44592;&#54664;&#49845;&#45768;&#45796;. (&#50500; &#50836;&#51608;&#51008; &#51060;&#47111;&#44172; &#54616;&#45716;&#44396;&#45208;&#8230;)</p><p>&#51221;&#51201;&#51064; &#50836;&#49548;&#47484; &#48324;&#46020;&#47196; &#48516;&#47532;&#54616;&#44256;, &#53581;&#49828;&#53944;&#53328;&#48652;&#45208; &#53568;&#48660;&#47084; &#53580;&#47560;&#52376;&#47100; {}&#47196; &#51060;&#47336;&#50612;&#51652; &#52824;&#54872;&#51088;&#47484; &#53685;&#54644; &#44060;&#48156;&#54616;&#45716; &#51216;&#51060; &#51064;&#49345; &#44618;&#50632;&#49845;&#45768;&#45796;.</p><p>git&#51008; sourcetree&#47484; &#44032;&#51648;&#44256; &#51652;&#54665;&#54616;&#45716; &#44163; &#44057;&#51004;&#45208;, &#54644;&#45817; &#49688;&#50629; &#46412; &#51088;&#47532;&#44032; &#50630;&#50612;&#49436; &#52280;&#50668;&#54616;&#51648; &#47803;&#54620; &#51216;&#51008; &#50500;&#49772;&#50912;&#49845;&#45768;&#45796;. &#45796;&#47564;, &#48276;&#51116; &#45784;&#44760;&#49436; &#51060; &#50669;&#49884; &#49324;&#51204;&#50640; &#45432;&#49496;&#50640; &#51221;&#47532;&#54644; PDF&#50752; &#54632;&#44760; &#44277;&#50976;&#54644;&#51452;&#49512;&#51004;&#48064;&#47196; &#51452;&#47568;&#50640; &#52268;&#52268;&#55176; &#44277;&#48512;&#54644; &#48372;&#47140;&#44256; &#54633;&#45768;&#45796;.</p><p>&#51228;&#53076;&#48176; &#52280;&#44032;&#51088; &#45824;&#48512;&#48516;&#51060; &#44060;&#48156; &#51204;&#44277; &#54841;&#51008; &#49324;&#51204;&#50640; &#45796;&#50577;&#54620; &#51648;&#49885;&#51012; &#44032;&#51648;&#49888; &#48516;&#46308;&#51060;&#46972; &#49688;&#50629;&#51012; &#51652;&#54665;&#54616;&#45716; &#45936; &#47924;&#47532;&#44032; &#50630;&#44192;&#51648;&#47564;, &#51200;&#50752; &#44057;&#51008; &#48708;&#51204;&#44277;&#51088;&#46308;&#51008; python&#44284; django &#51012; &#51060;&#50857;&#54620; &#49436;&#48708;&#49828; &#44396;&#52629; &#48512;&#48516;&#51012; &#51060;&#54644;&#54616;&#47140;&#47732; <strong>&#49324;&#51204;&#50640; &#49436;&#48260;&#50752; &#54644;&#45817; &#50616;&#50612;(?)&#50640; &#45824;&#54620; &#49324;&#51204;&#51648;&#49885; &#48143; &#44277;&#48512;&#44032; &#46076; &#51080;&#50612;&#50556; &#51060;&#54644;&#54616;&#47728; &#50896;&#54876;&#54620; &#49688;&#50629;&#51060; &#44032;&#45733;</strong>&#54624; &#44163;&#51004;&#47196; &#49373;&#44033;&#46121;&#45768;&#45796;. (&#45320;&#47924;&#45320;&#47924; &#50612;&#47157;&#49845;&#45768;&#45796;. &#128546;)</p><h3>DAY4.5, 5&#8202;&#8212;&#8202;hackathon</h3><p>&#52280;&#44288;&#51088;&#44201;&#51060;&#46972; &#52280;&#50668;&#54616;&#51648;&#45716; &#47803;&#54664;&#51648;&#47564;, &#54644;&#52964;&#53668;&#50640; &#54620; &#48264;&#46020; &#52280;&#44032;&#54644; &#48376; &#51201;&#51060; &#50630;&#50612; &#52280;&#44032;&#54016;&#46308;&#51032; &#44208;&#44284;&#47932;&#51060; &#47588;&#50864; &#44417;&#44552;&#54664;&#49845;&#45768;&#45796;.</p><p>&#49688;&#50629; &#46168;&#51704; &#45216;&#48512;&#53552; &#54016;&#51012; &#44984;&#47140; &#48120;&#47532; &#44060;&#48156;&#51012; &#49884;&#51089;&#54620; &#54016;&#46020; &#51080;&#50632;&#44256;, &#50676;&#44592;&#44032; &#46888;&#44144;&#50912;&#49845;&#45768;&#45796;. &#45367;&#51704; &#45216; &#49688;&#50629; &#51473;&#44036; 7&#44060;&#51032; &#54016;&#51012; &#44277;&#49885;&#51004;&#47196; &#44984;&#47140; 1&#48149;2&#51068;(?) &#54644;&#52964;&#53668;&#51060; &#51652;&#54665;&#46104;&#50632;&#49845;&#45768;&#45796;.</p><p>&#52488;&#49345;&#44428; &#47928;&#51228;&#47196; &#49324;&#51652;&#51012; &#52392;&#48512;&#54616;&#51652; &#47803;&#54664;&#51648;&#47564;, &#54217;&#44032; &#51204;&#45216; 24&#49884; &#52852;&#54168;&#50640;&#49436; &#44033;&#44033;&#51032; &#54016;&#46308;&#51060; &#50676;&#51221; &#44032;&#46301; &#46888;&#44161;&#44172; &#54644;&#52964;&#53668;&#51012; &#51652;&#54665;&#54616;&#45716; &#47784;&#49845;&#51012; &#48372;&#47728; &#47566;&#51008; &#44163;&#51012; &#45712;&#44808;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LLXR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LLXR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LLXR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LLXR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LLXR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LLXR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LLXR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LLXR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LLXR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LLXR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff138fff2-7f80-4cdc-9dda-95e410a4b851_800x450.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#54644;&#52964;&#53668; &#44208;&#44284;&#47932;&#51012; &#49900;&#49324;&#54616;&#49884;&#45716;&nbsp;&#49900;&#49324;&#50948;&#50896;&#46308;</figcaption></figure></div><p>&#49900;&#49324; &#51649;&#51204;&#44620;&#51648;&#46020; &#45796;&#46308; &#44208;&#44284;&#47932;&#51012; &#45796;&#46316;&#45712;&#46972; &#48516;&#51452;&#54664;&#44256;, &#48156;&#54364; &#47785;&#49548;&#47532;&#51032; &#48120;&#49464;&#54620; &#46504;&#47548;&#50640; &#51200; &#46608;&#54620; &#44596;&#51109;&#44048;&#51012; &#44032;&#51648;&#44256; &#48156;&#54364; &#49836;&#46972;&#51060;&#46300; &#51109;&#47732; &#54616;&#45208;&#54616;&#45208; &#51452;&#51032; &#44618;&#44172; &#48372;&#50520;&#49845;&#45768;&#45796;. &#54616;&#47336; &#47564;&#50640; &#44208;&#44284;&#47932;&#51012; &#47564;&#46308;&#50612; &#45256;&#45796;&#45716; &#51216;&#50640; &#45440;&#46972;&#44592;&#46020; &#54664;&#44256;&#50836;&#8230;</p><p>&#49688;&#49345;&#51088;&#44032; &#48156;&#54364;&#46104;&#44256;, &#49436;&#47196; &#48149;&#49688;&#52824;&#47728; &#44201;&#47140;&#54616;&#47728; &#51228;&#53076;&#48288;&#44032; &#47560;&#47924;&#47532;&#46104;&#50632;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kBev!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kBev!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kBev!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kBev!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kBev!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kBev!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg" width="1195" height="672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:1195,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kBev!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kBev!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kBev!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kBev!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5dc2883-61bb-411c-98fd-409771ab2ecc_1195x672.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#44053;&#47148;&#54620; &#51228;&#51452;&#46020;&#51032; &#45432;&#51012;&#44284; &#54632;&#44760; &#51228;&#51452; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532;&#51032;&nbsp;&#47560;&#47924;&#47532;</figcaption></figure></div><h3>&#50668;&#45812; &#48143;&nbsp;&#47560;&#47924;&#47532;</h3><p>&#51473;&#44036;&#50640; &#52852;&#52852;&#50724; &#44060;&#48156;&#51088; &#46160; &#48516;&#51032; &#44053;&#51032;&#44032; &#51080;&#50632;&#49845;&#45768;&#45796;. &#51088;&#49324; API &#48143; &#54924;&#49324; &#49548;&#44060;&#50640; &#45824;&#54620; &#45236;&#50857;&#51060;&#50632;&#51004;&#47728;, &#48376;&#49324; &#53804;&#50612;&#46020; &#54664;&#49845;&#45768;&#45796;. (&#48376;&#49324;&#45716; &#50808;&#48512;&#47564; &#46168;&#47084;&#48372;&#45716; &#44172; &#50500;&#49772;&#50912;&#51020;)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oU5M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oU5M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oU5M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oU5M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oU5M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oU5M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg" width="1200" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oU5M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oU5M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oU5M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oU5M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf76871-ca87-4eaf-8157-8d5d880658b9_1200x900.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#49688;&#50629; &#51473;&#44036; &#54840;&#51456; &#45784;&#44760;&#49436; &#51228;&#53076;&#48176; &#52280;&#44032;&#51088;&#46308;&#50640;&#44172; &#52964;&#54588;&#47484; &#49324;&#51452;&#49512;&#45716;&#45936;, &#46021;&#53945;&#54616;&#44256; &#47588;&#50864; &#47579;&#51080;&#49845;&#45768;&#45796;. &#52852;&#54168; &#51060;&#47492;&#51008; &#47784;&#47476;&#51648;&#47564;, &#50976;&#51088;&#44032; &#46308;&#50612;&#44036; &#50500;&#47700;&#47532;&#52852;&#48372;&#45796;&#45716; &#51200;&#44172; &#51339;&#50520;&#49845;&#45768;&#45796;. &#46608; &#48148;&#47196; &#50694;&#50640; &#51312;&#44536;&#47560;&#54620; &#51204;&#49884;&#44288;&#51060; &#51080;&#51004;&#45768; &#46168;&#47084;&#48372;&#49884;&#45716; &#44163;&#46020; &#51339;&#49845;&#45768;&#45796;.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tbj5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tbj5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tbj5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tbj5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tbj5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tbj5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg" width="1200" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Tbj5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tbj5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tbj5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tbj5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ea60d9f-9916-48d0-acf3-b5cfc6332567_1200x900.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51228;&#53076;&#48176; &#54980;&#50896; goorm&nbsp;&#47672;&#44536;&#52981;</figcaption></figure></div><p>&#51228;&#53076;&#48176;&#50640;&#49436; &#48155;&#51008; goorm.io &#51228;&#51452; &#47672;&#44536;&#52981;. &#51656;&#46020; &#51339;&#44256;, &#51665;&#50640; &#44032;&#51256;&#44032;&#49436; &#51096; &#50416;&#44256; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gsAT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gsAT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gsAT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gsAT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gsAT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gsAT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gsAT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gsAT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gsAT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gsAT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d96f6d-5a5c-43c4-9eb8-c6fc7f2f059f_1200x675.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A&#8217;BOUT&#46972;&#45716; &#51228;&#51452;&#50640;&#47564; &#51080;&#45716; &#52852;&#54168;&#52404;&#51064;&#51216;&#51064;&#45936; &#50724;&#51204; 10&#49884;&#44620;&#51648; &#47784;&#46304; &#51020;&#47308; 1,400&#50896;&#50640; &#48652;&#47004;&#46377;&#46020; &#51096;&#46076; &#51080;&#44256; &#52964;&#54588;&#46020; &#47579;&#51080;&#49845;&#45768;&#45796;. &#50500;&#52840; &#49688;&#50629; &#49884;&#51089;&#54624; &#46412; &#51452;&#50948;&#47484; &#46168;&#47084;&#48372;&#47732; &#45796;&#46308; A&#8217;BOUT &#52964;&#54588;&#47484; &#49552;&#50640;&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WfiI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WfiI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WfiI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WfiI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WfiI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WfiI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WfiI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WfiI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WfiI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WfiI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F670f2874-084d-4de1-9a38-c63d48b53393_1200x675.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#44032;&#51109; &#44592;&#50613;&#50640; &#45224;&#45716;&nbsp;&#51109;&#47732;</figcaption></figure></div><p>&#51228;&#53076;&#48288; &#49688;&#50629;&#51060; &#45149;&#45212; &#54980;, &#52852;&#54168;&#50640;&#49436; &#48324;&#46020;&#47196; &#49688;&#50629; &#45236;&#50857;&#51012; &#48373;&#49845;&#54616;&#44592;&#46020; &#54664;&#49845;&#45768;&#45796;.</p><p>&#51204;&#44277;&#51060; &#50500;&#45768;&#46972; &#44618;&#51060; &#51080;&#45716; &#51060;&#54644; &#50630;&#51060; &#51064;&#53552;&#45367;&#50640; &#51080;&#45716; &#51312;&#44033;&#46308;&#47196; &#44277;&#48512;&#54644; &#50772;&#45716;&#45936; &#54016;&#51012; &#44984;&#47140; &#49688;&#50629; &#45236;&#50857;&#51012; &#48373;&#49845;&#54616;&#44256; &#44417;&#44552;&#54620; &#51216;&#51008; &#51656;&#47928;&#51012; &#53685;&#54644; &#54644;&#49548;&#54624; &#49688; &#51080;&#50632;&#45912; &#51216;&#51060; &#44032;&#51109; &#51339;&#50520;&#49845;&#45768;&#45796;. (&#51060;&#45216; &#47751; &#45380; &#52824; &#47925;&#51008; &#44060;&#48156; &#44288;&#47144; &#51656;&#47928;&#51012; &#47784;&#46160; &#54644;&#49548;&#54664;&#49845;&#45768;&#45796;.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8vsP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8vsP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8vsP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8vsP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8vsP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8vsP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg" width="320" height="541" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:541,&quot;width&quot;:320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8vsP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8vsP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8vsP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8vsP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ecafcb3-d1d1-4638-8c8c-d72e192798be_320x541.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#50689;&#54868; &#46972;&#46384;&#46748;&#51060;&nbsp;<strong>&#47112;&#48120;</strong></figcaption></figure></div><p>&#50689;&#54868; &#46972;&#46384;&#46748;&#51060;&#50640;&#49436; &#47112;&#48120;&#44032; &#46041;&#44221;&#54616;&#45716; &#44396;&#49828;&#53664;&#44032; TV&#50640;&#49436; &#54616;&#45716; &#47568;&#51060; &#51080;&#49845;&#45768;&#45796;.</p><blockquote><p>&#45000;&#51012; &#44984;&#49464;&#50836;.<br>&#51116;&#45733;&#51060; &#51080;&#45796;&#47732;, &#45733;&#47141;&#51060; &#51080;&#45796;&#47732;,<br>&#45817;&#49888;&#51060; &#50612;&#46500; &#49324;&#46988;&#51060;&#50612;&#46020; &#54624; &#49688;&nbsp;&#51080;&#51012; &#44144;&#50696;&#50836;!</p></blockquote><p>&#45817;&#50672;&#55176; &#53440; &#51204;&#44277;&#183;&#50629;&#47924;&#47484; &#47585;&#44256; &#51080;&#50612; &#49892;&#47924; &#44060;&#48156;&#51088;&#52376;&#47100; &#46112; &#49688;&#45716; &#50630;&#51648;&#47564;, &#51060;&#48264; &#51228;&#51452;&#46020; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532;&#47484; &#53685;&#54644; &#44060;&#48156;&#51012; &#45824;&#54616;&#45716; &#50612;&#47140;&#50880;&#44284; &#46160;&#47140;&#50880;&#51012; &#46504;&#52432;&#45244; &#49688; &#51080;&#50632;&#49845;&#45768;&#45796;. &#46608; (&#50696;&#51228;&#47484; &#46384;&#46972; &#54616;&#45716; &#49688;&#51456;&#51060;&#51648;&#47564;) &#49688;&#50629;&#51012; &#53685;&#54644; &#51649;&#51217; &#50937; &#49436;&#48708;&#49828;&#47484; &#48156;&#47588;&#54616;&#44592;&#46020; &#54664;&#44256;&#50836;&#8230;</p><p>&#44172;&#51076;&#50629;&#44228;&#50640;&#49436;&#45716; &#46356;&#51088;&#51060;&#45320; &#46608;&#54620; &#44060;&#48156;&#51088;&#46972;&#44256; &#48512;&#47493;&#45768;&#45796;. &#54616;&#45716; &#51068;&#51008; &#45796;&#47476;&#51648;&#47564;, &#48128;&#51217;&#55176; &#50672;&#44288;&#46104;&#50612; &#51080;&#44256; &#46160; &#44032;&#51648; &#47784;&#46160; &#54633;&#52432;&#49436; &#54616;&#45208;&#51032; &#49436;&#48708;&#49828;&#47484; &#47564;&#46308;&#50612; &#45236;&#44592; &#46412;&#47928;&#51077;&#45768;&#45796;. &#44060;&#48156;&#51088;&#44032; &#46104;&#51648; &#50506;&#45908;&#46972;&#46020;, &#51228;&#53076;&#48176;&#50640;&#49436; &#48176;&#50868; &#44221;&#54744;&#51012; &#53685;&#54644; &#44060;&#48156;&#51088;&#50752; &#49548;&#53685;&#54624; &#49688; &#51080;&#45716; &#46356;&#51088;&#51060;&#45320;&#44032; &#46104;&#44256;&#51088; &#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IoK5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IoK5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IoK5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IoK5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IoK5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IoK5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg" width="1200" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IoK5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IoK5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IoK5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IoK5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fc37f04-4f3e-4bad-901a-254c3b55341b_1200x900.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>5&#51068;&#44036;&#51032; &#50668;&#51221;&#51012; &#45149;&#45236;&#44256;, &#45796;&#49884; &#54788;&#49892;&#47196;&#8230; &#128555;</p>]]></content:encoded></item><item><title><![CDATA[jQuery 지양하기]]></title><description><![CDATA[You (Might) Don&#8217;t Need jQuery]]></description><link>https://lab.dongri.me/p/avoid-jquery</link><guid isPermaLink="false">https://lab.dongri.me/p/avoid-jquery</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Mon, 19 Aug 2019 01:01:01 GMT</pubDate><enclosure url="https://cdn-images-1.medium.com/max/800/1*cZ4wDEgPnh2GtD6DNS_hsw.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4>You (Might) Don&#8217;t Need&nbsp;jQuery</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P5Iz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P5Iz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 424w, https://substackcdn.com/image/fetch/$s_!P5Iz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 848w, https://substackcdn.com/image/fetch/$s_!P5Iz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 1272w, https://substackcdn.com/image/fetch/$s_!P5Iz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P5Iz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png" width="728" height="428.61" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:471,&quot;width&quot;:800,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P5Iz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 424w, https://substackcdn.com/image/fetch/$s_!P5Iz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 848w, https://substackcdn.com/image/fetch/$s_!P5Iz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 1272w, https://substackcdn.com/image/fetch/$s_!P5Iz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1ffc67-4b81-4d2d-bd8e-7464c5670b0d_800x471.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#50937;&#50640;&#51060;&#51204;&#49884;&#50640;&#49436; &#51089;&#50629;&#54620; &#49324;&#51060;&#53944;&#46308;&#51012; &#49332;&#54196;&#48372;&#47732; jQuery &#44592;&#48152;&#51077;&#45768;&#45796;. &#49900;&#51648;&#50612; 1.x &#45824;&#47484; &#50500;&#51649; &#49324;&#50857;&#54616;&#45716; &#44275;&#46020; &#51080;&#44256;&#50836;&#8230; (IE 6 &#51648;&#50896; &#46412;&#47928;&#51060;&#46972;&#44592;&#50644; &#49324;&#50857;&#54620; CSS&#44032; &#51648;&#50896; &#50504; &#54632;)&#44600;&#44256; &#50612;&#47140;&#50868; Javascript &#46412;&#47928;&#50640; &#54540;&#47084;&#44536;&#51064;&#46020; &#47566;&#44256; &#49345;&#45824;&#51201;&#51004;&#47196; &#50416;&#44592; &#49772;&#50868; jQuery&#47484; &#47566;&#51060; &#49324;&#50857;&#54644; &#50772;&#51004;&#45208; &#50836;&#51608; &#52628;&#49464;&#44032; &#53448; jQuery&#51060;&#48064;&#47196; &#51200; &#46608;&#54620; jQuery &#45824;&#49888; &#49692;&#49688; Javascript(ES &#49707;&#51088;&#47196; &#48260;&#51204;&#51012; &#45208;&#45572;&#45716; &#44163; &#44057;&#51648;&#47564; &#51096; &#47784;&#47476;&#48064;&#47196;)&#47484; &#49324;&#50857;&#54616;&#45716; &#49884;&#46020;&#47484; &#54616;&#44256; &#51080;&#49845;&#45768;&#45796;.</p><p>&#54869;&#49892;&#55176; &#44284;&#44144;&#50640; &#48708;&#54644; &#54788;&#51116; Javascript&#45716; jQuery&#50752; &#48708;&#49847;&#54644;&#51652; &#48512;&#48516;&#51060; &#47566;&#44256; &#50416;&#44592;&#46020; &#49772;&#50892;&#51276;&#49845;&#45768;&#45796;.</p><p>&#54617;&#49845;&#51012; &#50948;&#54616;&#44144;&#45208; &#54252;&#53944;&#54260;&#47532;&#50724; &#46321; &#49884;&#44036;&#50640; &#44396;&#50528;&#48155;&#51648; &#50506;&#45716; &#54532;&#47196;&#51229;&#53944;&#46972;&#47732; &#48512;&#45812;&#51060; &#45916;&#54624; &#53584;&#45936;, &#49892;&#47924;&#50640; &#51060;&#47484; &#51201;&#50857;&#54616;&#47140; &#54616;&#45768; &#50668;&#47084; &#51088;&#47308;&#46020; &#49332;&#54196;&#48400;&#50556; &#54616;&#44256; &#50724;&#47448; &#45228;&#51012; &#46412;&#51032; &#49548;&#50836; &#49884;&#44036;&#51060;&#47728; &#50668;&#47084;&#47784;&#47196; &#48512;&#45812;&#46104;&#45716; &#51216;&#51060; &#47566;&#49845;&#45768;&#45796;.</p><p>&#44536;&#47084;&#45796;&#44032; &#44316;&#52270;&#51008; &#49436;&#48708;&#49828;(&#54841;&#51008; &#54532;&#47196;&#51229;&#53944;?)&#47484; &#52286;&#50500; &#45796;&#47480; &#48516;&#46308;&#44284; &#54632;&#44760; &#45208;&#45572;&#44256;&#51088; &#54633;&#45768;&#45796;.</p><h3>You Dont Need&nbsp;jQuery</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://youmightnotneedjquery.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vf-h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!Vf-h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!Vf-h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!Vf-h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vf-h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52092,&quot;alt&quot;:&quot;You Might Not Need jQuery&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://youmightnotneedjquery.com/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="You Might Not Need jQuery" title="You Might Not Need jQuery" srcset="https://substackcdn.com/image/fetch/$s_!Vf-h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!Vf-h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!Vf-h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!Vf-h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b9a4415-6cc6-4554-b22c-62ccc24aaffc_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><blockquote><p>&#50724;&#45720;&#45216; &#54532;&#47200;&#53944;&#50644;&#46300; &#44060;&#48156; &#54872;&#44221;&#51008; &#44553;&#44201;&#55176; &#51652;&#54868;&#54616;&#44256; &#51080;&#44256;, &#47784;&#45912; &#48652;&#46972;&#50864;&#51200;&#46308;&#51008; &#51060;&#48120; &#52649;&#48516;&#55176; &#47566;&#51008; DOM/BOM API&#46308;&#51012; &#44396;&#54788;&#54664;&#49845;&#45768;&#45796;. &#50864;&#47532;&#45716; jQuery&#47484; DOM &#52376;&#47532;&#45208; &#51060;&#48292;&#53944;&#47484; &#50948;&#54644; &#52376;&#51020;&#48512;&#53552; &#48176;&#50872; &#54596;&#50836;&#44032; &#50630;&#49845;&#45768;&#45796;. React, Angular, Vue&#44057;&#51008; &#54532;&#47200;&#53944;&#50644;&#46300; &#46972;&#51060;&#48652;&#47084;&#47532;&#46308;&#51060; &#51452;&#46020;&#44428;&#51012; &#52264;&#51648;&#54616;&#45716; &#46041;&#50504; DOM&#51012; &#48148;&#47196; &#52376;&#47532;&#54616;&#45716; &#44163;&#51008; &#50504;&#54000; &#54056;&#53556;&#51060; &#46104;&#50632;&#44256;, jQuery&#51032; &#51473;&#50836;&#49457;&#51008; &#51460;&#50612;&#46308;&#50632;&#49845;&#45768;&#45796;. &#51060; &#54532;&#47196;&#51229;&#53944;&#45716; &#45824;&#48512;&#48516;&#51032; jQuery &#47700;&#49548;&#46300;&#51032; &#45824;&#50504;&#51012; IE 10 &#51060;&#49345;&#51012; &#51648;&#50896;&#54616;&#45716; &#45348;&#51060;&#54000;&#48652; &#44396;&#54788;&#51004;&#47196; &#49548;&#44060;&#54633;&#45768;&#45796;.</p><p>&#45432;&#53944;: jQuery&#45716; &#50668;&#51204;&#55176; &#54988;&#47469;&#54620; &#46972;&#51060;&#48652;&#47084;&#47532;&#51060;&#47728; &#47566;&#51008; &#50976;&#51592; &#52992;&#51060;&#49828;&#47484; &#44054;&#44256; &#51080;&#49845;&#45768;&#45796;. &#50896;&#54616;&#51648; &#50506;&#51004;&#49888;&#45796;&#47732; &#47560;&#51060;&#44536;&#47112;&#51060;&#53944;&#54616;&#51648; &#50506;&#51004;&#49492;&#46020; &#46121;&#45768;&#45796;.</p></blockquote><p>&#50808;&#44397;&#50640;&#49436;&#46020; jQuery&#47484; &#53448;&#54588;&#44032; &#45824;&#49464;&#51064;&#44032; &#48389;&#45768;&#45796;. &#51648;&#44552;&#46020; &#50668;&#51204;&#55176; jQuery&#44032; &#54988;&#47469;&#54620; &#46972;&#51060;&#48652;&#47084;&#47532;&#51648;&#47564;, &#44536; &#51473;&#50836;&#49457;&#51060; &#47566;&#51060; &#53748;&#49353;&#54664;&#51004;&#48064;&#47196; &#45348;&#51060;&#54000;&#48652;&#47196; &#44396;&#54788;&#54616;&#51088;&#45716; &#44172; &#52712;&#51648; &#44057;&#49845;&#45768;&#45796;.</p><p>&#54620;&#44397;&#50612; &#47928;&#49436; &#46608;&#54620; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://github.com/camsong/You-Dont-Need-jQuery/blob/master/README.ko-KR.md" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qVLa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!qVLa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!qVLa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!qVLa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qVLa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25118,&quot;alt&quot;:&quot;nefe/You-Dont-Need-jQuery&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/camsong/You-Dont-Need-jQuery/blob/master/README.ko-KR.md&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="nefe/You-Dont-Need-jQuery" title="nefe/You-Dont-Need-jQuery" srcset="https://substackcdn.com/image/fetch/$s_!qVLa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!qVLa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!qVLa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!qVLa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff873284-74a5-4afe-8393-cbeb0473001d_1080x255.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#49324;&#50857;&#48277;&#51008; &#47588;&#50864; &#44036;&#45800;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ca4V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ca4V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 424w, https://substackcdn.com/image/fetch/$s_!ca4V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 848w, https://substackcdn.com/image/fetch/$s_!ca4V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 1272w, https://substackcdn.com/image/fetch/$s_!ca4V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ca4V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png" width="650" height="193" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:193,&quot;width&quot;:650,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ca4V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 424w, https://substackcdn.com/image/fetch/$s_!ca4V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 848w, https://substackcdn.com/image/fetch/$s_!ca4V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 1272w, https://substackcdn.com/image/fetch/$s_!ca4V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a3a6142-0729-4b89-a4aa-455f276e03d5_650x193.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>input box&#50640; jQuery&#50640;&#49436; &#49324;&#50857;&#54616;&#45912; &#54632;&#49688;(?)&#47484; &#51201;&#44144;&#45208; &#45348;&#51060;&#54000;&#48652; &#54632;&#49688;&#47484; &#51077;&#47141;&#54616;&#44256; &#54616;&#45800;&#51032; IE&#51648;&#50896; &#50668;&#48512;&#47484; &#49440;&#53469;&#54616;&#44592;&#47564; &#54616;&#47732; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0UZa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0UZa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 424w, https://substackcdn.com/image/fetch/$s_!0UZa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 848w, https://substackcdn.com/image/fetch/$s_!0UZa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 1272w, https://substackcdn.com/image/fetch/$s_!0UZa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0UZa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png" width="800" height="304" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:304,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0UZa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 424w, https://substackcdn.com/image/fetch/$s_!0UZa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 848w, https://substackcdn.com/image/fetch/$s_!0UZa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 1272w, https://substackcdn.com/image/fetch/$s_!0UZa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6ffff55-11b7-4d43-8577-a39f53df3bc2_800x304.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#44536;&#47084;&#47732; &#50948;&#50752; &#44057;&#51060; 1:1&#47196; &#48708;&#44368;&#54644; &#45824;&#52404;&#54624; &#49688; &#51080;&#45716; &#54632;&#49688;&#47484; &#49789;&#44172; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>jQuery&#44032; &#44536;&#47532;&#50872;&nbsp;&#46412;</h3><p>jQuery&#50640;&#49436;&#45716; class&#50640; &#45824;&#54644; $(&#8220;.class&#8221;) &#54616;&#45208;&#47564;&#51004;&#47196; &#54644;&#45817;&#54616;&#45716; &#50648;&#47532;&#53944;&#47676;&#53944;&#50640; &#51060;&#48292;&#53944;&#47484; &#51201;&#50857;&#54616;&#44144;&#45208; &#54952;&#44284;&#47484; &#51460; &#49688; &#51080;&#49845;&#45768;&#45796;. &#48152;&#47732; &#45348;&#51060;&#54000;&#48652;&#50640;&#49436;&#45716;</p><pre><code>querySelectorAll</code></pre><p>&#51060; &#45376;&#49437;&#51012; &#49324;&#50857;&#54644;&#50556; &#54633;&#45768;&#45796;. &#44536;&#45285; querySelector &#47484; &#49324;&#50857;&#54616;&#47732; &#52572;&#49345;&#45800;&#50640; &#51201;&#50857;&#46108; &#50836;&#49548;&#47564; &#51648;&#51221;&#46104;&#44592; &#46412;&#47928;&#51077;&#45768;&#45796;.</p><p>&#45908; &#48520;&#54200;&#54620; &#44163;&#51008; querySelectorAll&#51012; &#49324;&#50857;&#54664;&#45796; &#54644;&#49436; &#51060;&#48292;&#53944;&#47484; &#47673;&#51064;&#45796;&#44256; &#47784;&#46304; &#50836;&#49548;&#50640; &#51060;&#48292;&#53944;&#44032; &#51201;&#50857;&#46104;&#45716; &#44163;&#51060; &#50500;&#45768;&#46972; for &#47928;&#51004;&#47196; &#48176;&#50676; &#54616;&#45208;&#54616;&#45208;&#50640; &#51060;&#48292;&#53944;&#47484; &#51648;&#51221;&#54644;&#50556; &#54620;&#45796;&#45716; &#51216;&#51077;&#45768;&#45796;.</p><pre><code><strong>const</strong> imgSliderNext = document.querySelectorAll("ul.sliderControl button.next");

<strong>for</strong> (let i = 0; i &lt; imgSliderPrev.length; i++) {
  imgSliderPrev[i].onclick = (() =&gt; {
    imgSlider.goTo("prev");
  });
}</code></pre><p>&#51060;&#44172; &#50500;&#45776; &#49688;&#46020; &#51080;&#51648;&#47564;, &#51064;&#53552;&#45367; &#52286;&#50500;&#48372;&#45768; &#51060;&#47111;&#44172; &#49324;&#50857;&#54616;&#45716; &#44163; &#44057;&#49845;&#45768;&#45796;.</p><p>&#46608;, &#50896;&#54616;&#45716; &#54952;&#44284;&#45208; &#48169;&#49885;&#51012; &#44160;&#49353;&#54644; &#45208;&#50724;&#45716; stack overflow &#45813;&#48320;&#51032; &#53076;&#46300;&#44032; jQuery&#44032; &#50517;&#46020;&#51201;&#51004;&#47196; &#47566;&#49845;&#45768;&#45796;. jQuery&#50640; &#54644;&#45817;&#54616;&#45716; &#48512;&#48516;&#51012; &#51068;&#51068;&#51060; &#48148;&#45012;&#51460; &#49688;&#45716; &#51080;&#51648;&#47564;, &#53076;&#46300;&#44032; &#48373;&#51105;&#54616;&#44144;&#45208; &#50612;&#47140;&#50872; &#46416; Copy &amp; Paste&#44032; &#48520;&#44032;&#45733;&#54633;&#45768;&#45796;.</p><p>&#46608; plugin&#51004;&#47196; &#54620; &#48264;&#50640; &#44396;&#54788;&#51060; &#44032;&#45733;&#54620;&#45936;, &#44536;&#47084;&#51656; &#47803;&#54644; &#45824;&#50504;&#51012; &#52286;&#50500;&#50556; &#54624; &#46412; jQuery&#44032; &#44536;&#47549;&#49845;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[CSS Position Sticky]]></title><description><![CDATA[sticky&#47196; &#54413;&#48512;&#54620; &#51064;&#53552;&#47001;&#49496;(&#44396;&#46041; &#54952;&#44284;) &#51452;&#44592;]]></description><link>https://lab.dongri.me/p/css-position-sticky-guide</link><guid isPermaLink="false">https://lab.dongri.me/p/css-position-sticky-guide</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sat, 17 Aug 2019 14:55:57 GMT</pubDate><enclosure url="https://cdn-images-1.medium.com/max/800/1*IKPPE4tDqZDmL4LW45quvg.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4>Sticky&#47196; &#46021;&#53945;&#54620; &#51064;&#53552;&#47001;&#49496;(&#44396;&#46041; &#54952;&#44284;) &#51452;&#44592;</h4><p>&#50836;&#51608; &#49352;&#47196; &#51652;&#54665;&#54616;&#44256; &#51080;&#45716; &#54532;&#47196;&#51229;&#53944;&#51032; &#47560;&#53356;&#50629;&#51012; &#45812;&#45817;&#54616;&#47732;&#49436;, &#47004;&#46377; &#44396;&#46041; &#54952;&#44284; &#44396;&#54788;&#51012; &#50948;&#54644; position&#51032; Sticky &#49549;&#49457;&#51012; &#49324;&#50857;&#54616;&#44256; &#51080;&#49845;&#45768;&#45796;. Sticky&#46972;&#45716; &#49549;&#49457;&#51060; &#51080;&#45796;&#45716; &#44163;&#51008; &#50508;&#50520;&#51648;&#47564; &#50612;&#46523;&#44172; &#46041;&#51089;&#54616;&#45716;&#51648;, &#46608; &#50612;&#46356;&#45796; &#49324;&#50857;&#54624; &#49688; &#51080;&#45716;&#51648; &#47792;&#46992;&#50632;&#45716;&#45936; &#51060;&#48264;&#50640; &#54876;&#50857;&#54616;&#47732;&#49436; &#45796;&#50577;&#54620; &#51064;&#53552;&#47113;&#49496;&#50640; &#54876;&#50857;&#54624; &#49688; &#51080;&#51020;&#51012; &#50508;&#44172; &#46104;&#50632;&#44256; &#51060;&#50640; &#45824;&#54620; &#44221;&#54744;&#51012; &#45796;&#47480; &#48516;&#46308;&#44284; &#54632;&#44760; &#45208;&#45572;&#44256;&#51088; &#54633;&#45768;&#45796;.</p><h3>Sticky&#45716; &#47952;&#54616;&#45716;&nbsp;&#49549;&#49457;&#51068;&#44620;?</h3><p>&#50937;&#54168;&#51060;&#51648; &#49828;&#53356;&#47204; &#49884;, Sticky&#44032; &#51201;&#50857;&#46108; &#50648;&#47532;&#53944;&#47676;&#53944;&#51032; &#48512;&#47784; &#50836;&#49548;&#51032; height &#48276;&#50948; &#45236;&#50640;&#49436;&#45716; fixed(&#44256;&#51221;)&#47196; &#51089;&#46041;&#46104;&#51648;&#47564;, &#44536; &#50808;&#51032; &#44221;&#50864;&#50640;&#45716;static&#51004;&#47196; &#46041;&#51089;&#54616;&#44172; &#54616;&#45716; &#49549;&#49457;&#51077;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4FAZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4FAZ!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!4FAZ!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!4FAZ!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!4FAZ!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4FAZ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4FAZ!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!4FAZ!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!4FAZ!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!4FAZ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49b40802-620e-4c14-a48d-22affb8b4112_800x450.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#49828;&#53356;&#47204; &#49884;&#50640;, &#48512;&#47784; &#48276;&#50948; &#50504;&#50640;&#49436;&#45716; fixed&#44032; &#46104;&#44256; &#44536; &#48150;&#51032; &#48276;&#50948;&#50640;&#49436;&#45716; fixed&#44032; &#46104;&#51648;&nbsp;&#50506;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>&#51060;&#48120;&#51648;&#47564;&#51004;&#47196; &#51060;&#54644;&#54616;&#44592; &#50612;&#47157;&#45796;&#47732;, CODEPEN&#50640; &#51080;&#45716; &#50696;&#51228;&#47196; &#51649;&#51217; &#52404;&#54744;&#54644; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://codepen.io/elad2412/pen/QYLEdK" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p9jc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 424w, https://substackcdn.com/image/fetch/$s_!p9jc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 848w, https://substackcdn.com/image/fetch/$s_!p9jc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 1272w, https://substackcdn.com/image/fetch/$s_!p9jc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p9jc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png" width="680" height="510" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:510,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17549,&quot;alt&quot;:&quot;Positon Sticky&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://codepen.io/elad2412/pen/QYLEdK&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Positon Sticky" title="Positon Sticky" srcset="https://substackcdn.com/image/fetch/$s_!p9jc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 424w, https://substackcdn.com/image/fetch/$s_!p9jc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 848w, https://substackcdn.com/image/fetch/$s_!p9jc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 1272w, https://substackcdn.com/image/fetch/$s_!p9jc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7267ad6b-3b17-48f6-b81f-67cefc1cfac9_680x510.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://medium.com/@elad/css-position-sticky-how-it-really-works-54cd01dc2d46">CSS Position Sticky &#8212; How It Really Works!, Elad Shechter</a></figcaption></figure></div><p>Sticky&#47484; &#49324;&#50857;&#54624; &#46412;&#51032; &#53360; &#50612;&#47140;&#50880;&#51008; &#50630;&#49845;&#45768;&#45796;. &#44256;&#51221;&#54616;&#44256; &#49910;&#51008; &#50836;&#49548;&#50640; &#45796;&#51020;&#44284; &#44057;&#51060; &#49440;&#50616;&#54644; &#51452;&#44592;&#47564; &#54616;&#47732; &#46121;&#45768;&#45796;.</p><pre><code>position: -webkit-sticky; 
position: sticky;</code></pre><p>&#54788;&#49884;&#51216;&#50640;&#49436; &#47784;&#46304; &#48652;&#46972;&#50864;&#51200;(IE &#48120;&#51648;&#50896;, edge 16 &#51060;&#49345;)&#50640;&#49436; &#51648;&#50896;&#54616;&#45208;, safari&#50640;&#49436; &#44536;&#45285; Sticky&#47196;&#45716; &#51201;&#50857;&#51060; &#48520;&#44032;&#45733;&#54616;&#44592; &#46412;&#47928;&#50640; -webkit- prefix&#47484; &#52628;&#44032;&#47196; &#48537;&#50688;&#49845;&#45768;&#45796;. &#52280;&#44256;&#47196; &#48512;&#47784; &#50836;&#49548;&#51032; height &#48276;&#50948; &#45236;&#50640;&#49436;&#47564; Sticky&#44032; &#46041;&#51089;&#54616;&#44592; &#46412;&#47928;&#50640; scroll&#51060; &#44032;&#45733;&#54624; &#47564;&#54620; &#52649;&#48516;&#54620; &#45458;&#51060;&#44032; &#51080;&#50612;&#50556; &#54633;&#45768;&#45796;.</p><h3>&#50612;&#46523;&#44172; &#54876;&#50857; &#44032;&#45733;&#54620;&#44032;&#50836;?</h3><p>&#50689;&#47928;&#44428;&#50669; &#49324;&#51060;&#53944;&#51032; &#50696;&#51228;&#45716; &#44284;&#44144; iOS&#50640;&#49436; &#47566;&#51060; &#49324;&#50857;&#54616;&#45912; &#50508;&#54028;&#48307;(&#54841;&#51008; &#44032;&#45208;&#45796;) &#52852;&#53580;&#44256;&#47532; &#54841;&#51008; GNB&amp;LNB&#47196; &#44032;&#47532;&#53429;&#45768;&#45796;. &#51060;&#47111;&#44172;&#47564; &#48372;&#47732; &#49324;&#50857;&#54624; &#51068;&#51060; &#49373;&#44033;&#48372;&#45796; &#51201;&#44192;&#44396;&#45208; &#54624; &#49688; &#51080;&#44192;&#51648;&#47564; &#44536;&#47111;&#51648; &#50506;&#49845;&#45768;&#45796;. Javascript&#47196;&#47564; &#54364;&#54788;&#54624; &#49688; &#51080;&#51012; &#44163; &#44057;&#51008; &#49345;&#54840;&#51089;&#50857;&#51012; sticky&#47196; &#49789;&#44172; &#44396;&#54788;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E-2p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E-2p!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 424w, https://substackcdn.com/image/fetch/$s_!E-2p!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 848w, https://substackcdn.com/image/fetch/$s_!E-2p!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 1272w, https://substackcdn.com/image/fetch/$s_!E-2p!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E-2p!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif" width="640" height="405.76" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:317,&quot;width&quot;:500,&quot;resizeWidth&quot;:640,&quot;bytes&quot;:16606042,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E-2p!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 424w, https://substackcdn.com/image/fetch/$s_!E-2p!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 848w, https://substackcdn.com/image/fetch/$s_!E-2p!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 1272w, https://substackcdn.com/image/fetch/$s_!E-2p!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f8720d-cf89-4e0e-826b-8df4109846c5_500x317.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">kwangmyung.org</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Floq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Floq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 424w, https://substackcdn.com/image/fetch/$s_!Floq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 848w, https://substackcdn.com/image/fetch/$s_!Floq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 1272w, https://substackcdn.com/image/fetch/$s_!Floq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Floq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif" width="640" height="357" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:357,&quot;width&quot;:640,&quot;resizeWidth&quot;:640,&quot;bytes&quot;:3313738,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Floq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 424w, https://substackcdn.com/image/fetch/$s_!Floq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 848w, https://substackcdn.com/image/fetch/$s_!Floq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 1272w, https://substackcdn.com/image/fetch/$s_!Floq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9118efe-4e5c-4017-8df3-92c032ffbaf0_640x357.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">plus-x lpoint</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hJ17!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hJ17!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 424w, https://substackcdn.com/image/fetch/$s_!hJ17!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 848w, https://substackcdn.com/image/fetch/$s_!hJ17!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 1272w, https://substackcdn.com/image/fetch/$s_!hJ17!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hJ17!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif" width="640" height="507" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:507,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13692754,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hJ17!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 424w, https://substackcdn.com/image/fetch/$s_!hJ17!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 848w, https://substackcdn.com/image/fetch/$s_!hJ17!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 1272w, https://substackcdn.com/image/fetch/$s_!hJ17!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F992a470c-47aa-4b76-a6cb-7034cbcec9b3_640x507.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">vinylc</figcaption></figure></div><p></p><p>&#50948; 3&#44060; &#50696;&#49884; &#51064;&#53552;&#47113;&#49496; &#47784;&#46160; CSS Sticky&#47196; &#45824;&#52404; &#44032;&#45733;&#54616;&#51648;&#47564;, &#50500;&#49789;&#44172;&#46020; Javascript&#47484; &#49324;&#50857;&#54644; &#44396;&#54788;&#46104;&#50612; &#51080;&#49845;&#45768;&#45796;. (&#47932;&#47200; fade in-out, &#45236;&#50857;&#51060; &#48148;&#45068;&#45716; &#46321;&#51032; &#44396;&#46041;&#51008; Javascript&#47484; &#49324;&#50857;&#54644;&#50556; &#54633;&#45768;&#45796;.)&#53945;&#55176; l.Point&#51032; &#44221;&#50864; &#49828;&#53356;&#47204;&#51012; &#50948;&#50500;&#47000;&#47196; &#48148;&#44992; &#46412; &#53909;&#44592;&#45716; &#48260;&#44536;&#44032; &#51080;&#45716;&#45936; CSS Sticky&#47484; &#54876;&#50857;&#54620;&#45796;&#47732; &#49789;&#44172; &#54644;&#44208;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LT3a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LT3a!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 424w, https://substackcdn.com/image/fetch/$s_!LT3a!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 848w, https://substackcdn.com/image/fetch/$s_!LT3a!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 1272w, https://substackcdn.com/image/fetch/$s_!LT3a!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LT3a!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif" width="500" height="356" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:356,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LT3a!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 424w, https://substackcdn.com/image/fetch/$s_!LT3a!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 848w, https://substackcdn.com/image/fetch/$s_!LT3a!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 1272w, https://substackcdn.com/image/fetch/$s_!LT3a!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d033a71-6e17-4bc6-9402-44c66f3242b4_500x356.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">apple iPhone XS&nbsp;&#54532;&#47196;&#47784;&#49496;</figcaption></figure></div><p>apple iPhone XS &#54532;&#47196;&#47784;&#49496; &#49324;&#51060;&#53944;&#51032; &#51068;&#48512;&#48516;&#51064;&#45936;, &#49892;&#51228;&#47196; &#51200; &#48512;&#48516;&#51012;, &#44060;&#48156;&#51088;&#46020;&#44396;&#47484; &#49324;&#50857;&#54644; &#49332;&#54196;&#48372;&#47732; Sticky&#47484; &#49324;&#50857;&#54644; &#44396;&#54788;&#54620; &#44163;&#51012; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>Sticky&#47484; &#54876;&#50857;&#54620;&nbsp;&#50696;&#49884;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H2Fh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H2Fh!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 424w, https://substackcdn.com/image/fetch/$s_!H2Fh!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 848w, https://substackcdn.com/image/fetch/$s_!H2Fh!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 1272w, https://substackcdn.com/image/fetch/$s_!H2Fh!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H2Fh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif" width="800" height="394" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:394,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H2Fh!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 424w, https://substackcdn.com/image/fetch/$s_!H2Fh!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 848w, https://substackcdn.com/image/fetch/$s_!H2Fh!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 1272w, https://substackcdn.com/image/fetch/$s_!H2Fh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ab43f2-50b6-490e-9c67-4e2b5f61652e_800x394.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://git.dongri.me/example/sticky/">git.dongri.me/example/sticky/</a></figcaption></figure></div><p>Sticky&#47484; &#51060;&#50857;&#54620; &#50696;&#49884;&#47484; &#51228;&#51089;&#54664;&#49845;&#45768;&#45796;. &#49828;&#53356;&#47204; &#50948;&#52824; (&#48624;&#54252;&#53944; &#48276;&#50948;&#45236;&#50640; &#53945;&#51221; &#50648;&#47532;&#53944;&#47676;&#53944;&#44032; &#51316;&#51116;&#54616;&#45716;&#51648; &#50668;&#48512;)&#50752; &#51060;&#48120;&#51648; &#48320;&#44221; &#48143; &#49836;&#46972;&#51060;&#46300;&#47484; &#50948;&#54620; Javascript&#47564; &#49324;&#50857;&#46104;&#50632;&#51012; &#49104;, &#54868;&#47732;&#50640; &#44256;&#51221;&#46104;&#45716; &#54952;&#44284;&#45716; Sticky&#47564; &#51060;&#50857;&#54664;&#49845;&#45768;&#45796;.</p><h4>css</h4><pre><code>@charset "UTF-8";
html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:""}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}input,textarea,select{*font-size:100%}legend{color:#000}

html { min-width: 1400px; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; scroll-behavior: smooth; }
body { font-family: "Spoqa Han Sans", "Roboto", sans-serif; color: #1a1d33; }
div.wrap { width: 1400px; padding: 0 50px; margin: 0 auto; position: relative; box-sizing: border-box; }

section#intro { background: #f5f7fa url("../images/bg_intro.png") 50% 50%; width: 100%; height: 100vh; overflow: hidden; }
section#intro div.wrap { position: relative; top: 50%; transform: translateY(-50%); z-index: 1; }
section#intro header { padding-left: 268px; }
section#intro header:after { width: 100%; height: 2px; background: #1a1d33; position: absolute; left: -1060px; top: 157px; content: ""; display: block; }
section#intro header h1 { font-size: 93px; font-weight: 900; line-height: 80px;  }
section#intro header h1 span { display: block; color: transparent; text-stroke: 2px #1a1d33; -webkit-text-stroke: 2px #1a1d33; }
section#intro header p { font-size: 15px; position: absolute; top: 56px; left: 695px; }
section#intro h2 { font-size: 28px; font-family: "NanumSquare", sans-serif; font-weight: 700; letter-spacing: 10px; line-height: 41px; position: absolute; top: 6px; left: 50px; }
section#intro h2 span { font-size: 15px; font-weight: 400; letter-spacing: 0; vertical-align: top; line-height: 30px; }
section#intro ul { margin-top: 50px; }
section#intro li { margin-top: 16px; }
section#intro li:first-child { margin: 0; }
section#intro dt { font-size: 15px; font-weight: 500; line-height: 20px; }
section#intro dd { font-size: 14px; font-weight: 400; color: #6d6d6d; line-height: 20px; }
section#intro a.scroll { text-indent: -999999px; display: block; position: relative; bottom: -145px; border-radius: 9px; border: 1px solid #1a1d33; width: 18px; height: 32px;  }
section#intro a.scroll:after { background: #1a1d33; width: 2px; height: 5px; border-radius: 2px; position: absolute; top: 7px; left: 50%; transform: translateX(-50%); display: block; content: ""; animation: scrollAni 1.3s infinite .2s;  }

@keyframes scrollAni { 0% { transform: translateY(0); } 100% { transform: translateY(5px); opacity: 0; } }

section#contents { background: #fff; background-size: contain !important; width: 100%; margin-top: 50vh; min-width: 1400px; }
section#contents hr { display: none; }
section#contents div.wrap { position: relative; margin: 0 auto; min-width: 1400px; padding-bottom: 5vh; }

section#contents div.imgSlider { width: 796px; height: 467px; box-shadow: 0 0 54px 0 rgba(0, 0, 0, .2); position: sticky; top: 50%; transform: translateY(-50%); background: #fff; }
section#contents div.imgSlider div.nav { position: absolute; z-index: 99; right: -78px; bottom: 77px; background: #fff; height: 70px; width: 225px; transform: rotate(-90deg); }
section#contents div.imgSlider p.title { color: #313131; font-size: 12px; line-height: 70px; position: absolute; top: 0; left: 25px; text-align: left; }
section#contents div.imgSlider p.num { color: #b3b3b3; font-size: 11px; line-height: 70px; position: absolute; top: 0; right: 25px; text-align: left; letter-spacing: 1px; }

section#contents div.imgSlider button { display: none; }
section#contents div.imgSlider div.slider div.tns-item { width: 796px; height: 467px; }

section#contents div.title { padding: 50px 0 0 860px; width: 1400px; margin: 0 auto 80vh auto; box-sizing: border-box; position: relative; z-index: 0; }
section#contents div.title:nth-of-type(2) { margin-top: -17vh; }
section#contents div.title:last-child { margin: 0 auto 25vh auto; }
section#contents div.title:after { position: absolute; content: ""; font-size: 65px; font-weight: 800; color: #f1f1f1; display: block; top: 0; margin-left: -3px; z-index: -1; }
section#contents div.title.ideafestival:after { content: "MICRO WEB"; }
section#contents div.title.at:after { content: "UI WEB"; }
section#contents div.title.mobile:after { content: "MOBILE UIX"; }
section#contents div.title h2 { font-size: 35px; font-family: "NanumSquare", sans-serif; line-height: 44px; font-weight: 300; }
section#contents div.title h2 strong { font-weight: 800; display: block; }
section#contents div.title p { margin-top: 20px; font-size: 16px; line-height: 24px; color: #3e3e3e; font-weight: 400; }
section#contents div.title a { display: inline-block; margin-top: 35px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 400; padding: 13px 18px 13px 72px; background: #121e54 url("../images/bg_arrow.svg") 18px 50% no-repeat; background-size: 41px; transition: background-color .3s; }
section#contents div.title a:hover, section#contents div.title a:focus { background: #1b2b72 url("../images/bg_arrow.svg") 18px 50% no-repeat; background-size: 41px; }

section#contents div.title ul.sliderControl { list-style: none; margin-top: 80px; text-align: right; padding-right: 120px; box-sizing: border-box; }
section#contents div.title ul.sliderControl li { display: inline-block; margin-right: 15px; }
section#contents div.title ul.sliderControl li:last-child { margin: 0; }
section#contents div.title ul.sliderControl li button { outline: 0; cursor: pointer; display: block; width: 12px; height: 20px; text-indent: -999999px; padding: 16px 10px; border: 0 none; background: none; opacity: .4; transition: opacity .2s; }
section#contents div.title ul.sliderControl li button:hover, section#contents div.title ul.sliderControl li button:active { opacity: 1; }
section#contents div.title ul.sliderControl li button:active { transform: translateY(1px); }
section#contents div.title ul.sliderControl li button.prev { background: url("../images/bg_leftArrow.svg") 50% 50% no-repeat; background-size: 11px; }
section#contents div.title ul.sliderControl li button.next { background: url("../images/bg_rightArrow.svg") 50% 50% no-repeat; background-size: 11px; }

footer { padding: 20px 10px; border-top: 1px solid #eee; font-size: 12px; color: #4d4d4d;  }
footer address { width: 1400px; margin: 0 auto; display: block; box-sizing: border-box; padding: 0 50px;  }</code></pre><h4>HTML</h4><pre><code>&lt;!doctype html&gt;
&lt;html lang="ko"&gt;
&lt;head&gt;
  &lt;meta charset="utf-8"&gt;
  &lt;title&gt;Dong-gri Handicraft&lt;/title&gt;
  &lt;meta name="author" content="dongri.me" /&gt;
  &lt;link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,500,600,700,900&amp;display=swap" /&gt;
  &lt;link rel="stylesheet" href="https://spoqa.github.io/spoqa-han-sans/css/SpoqaHanSans-kr.css" /&gt;
  &lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/moonspam/NanumSquare@1.0/nanumsquare.css" /&gt;
  &lt;link rel="stylesheet" href="./common/css/style.css" /&gt;
  &lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.1/tiny-slider.css" /&gt;
  &lt;script src="common/js/common.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;section id="intro"&gt;
    &lt;div class="wrap"&gt;
      &lt;header&gt;
        &lt;h1&gt;&lt;span&gt;DONGRI&lt;/span&gt;HANDICRAFT&lt;/h1&gt;
         &lt;p&gt;&#8212; 2019.08.10&lt;/p&gt;
      &lt;/header&gt;
      &lt;h2&gt;&#51452;&#45768;&#50612;&lt;br /&gt;&#46356;&#51088;&#51060;&#45320;,&lt;br /&gt;&#46041;&#44536;&#47532;&lt;span&gt;dongri&lt;/span&gt;&lt;/h2&gt;
      &lt;ul&gt;
        &lt;li&gt;
          &lt;dl&gt;&lt;dt&gt;MICRO WEB.&lt;/dt&gt;&lt;dd&gt;Ideafestival&lt;/dd&gt;&lt;/dl&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;dl&gt;&lt;dt&gt;PC WEB.&lt;/dt&gt;&lt;dd&gt;Audio-technica&lt;/dd&gt;&lt;/dl&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;dl&gt;&lt;dt&gt;MOBILE UI.&lt;/dt&gt;&lt;dd&gt;Shopick&lt;/dd&gt;&lt;/dl&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;dl&gt;&lt;dt&gt;MOBILE UI.&lt;/dt&gt;&lt;dd&gt;Brothumb&lt;i&gt;!&lt;/i&gt;&lt;/dd&gt;&lt;/dl&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
      &lt;a href="#contents" class="scroll"&gt;scroll&lt;/a&gt;
    &lt;/div&gt;
  &lt;/section&gt;
  &lt;section id="contents"&gt;
    &lt;div class="wrap"&gt;
      &lt;div class="imgSlider"&gt;
        &lt;div class="nav"&gt;&lt;p class="title"&gt;&#51204;&#44221;&#51060;&#48120;&#51648;&lt;/p&gt;&lt;p class="num"&gt;&lt;span class="current"&gt;1&lt;/span&gt;/&lt;span class="total"&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
        &lt;div class="slider"&gt;
          &lt;div&gt;&lt;img src="./common/images/img_ideafestival01.jpg" alt="" /&gt;&lt;/div&gt;
          &lt;div&gt;&lt;img src="./common/images/img_ideafestival02.jpg" alt="" /&gt;&lt;/div&gt;
          &lt;div&gt;&lt;img src="./common/images/img_ideafestival03.jpg" alt="" /&gt;&lt;/div&gt;
          &lt;div&gt;&lt;img src="./common/images/img_ideafestival04.jpg" alt="" /&gt;&lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
      &lt;div class="title ideafestival"&gt;
        &lt;h2&gt;&#45908; &#45208;&#51008; &#48120;&#47000;&#47484; &#50948;&#54620; &lt;strong&gt;IDEAFESTIVAL&lt;/strong&gt;&lt;/h2&gt;
        &lt;p&gt;SK &#51060;&#45432;&#48288;&#51060;&#49496;&#51060; &#44592;&#50629;&#51012; &#45824;&#54364;&#54616;&#45716; &#49324;&#54924;&#44277;&#54732; &#54532;&#47196;&#44536;&#47016; &lt;br /&gt;Ideafestival&#44284; &#51088;&#49324; &#54861;&#48372;&#47484; &#50948;&#54620; &lt;br /&gt;&#47560;&#51060;&#53356;&#47196; &#50937; &#49324;&#51060;&#53944; &#54532;&#47196;&#51229;&#53944;&#47484; &#51652;&#54665;&#54664;&#49845;&#45768;&#45796;.&lt;/p&gt;
        &lt;a href="https://ideafestival.dongri.me/" target="_blank" rel="noopener"&gt;LAUNCH PROJECT&lt;/a&gt;
        &lt;ul class="sliderControl"&gt;
          &lt;li&gt;&lt;button class="prev"&gt;prev&lt;/button&gt;&lt;/li&gt;
          &lt;li&gt;&lt;button class="next"&gt;next&lt;/button&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/div&gt;
      &lt;hr /&gt;
      &lt;div class="title at"&gt;
        &lt;h2&gt;&#51020;&#50501;&#50640; &#45824;&#54620; &#49324;&#46993;&#44284; &#50676;&#51221;&#51004;&#47196; &lt;strong&gt;AUDIO-TECHNICA&lt;/strong&gt;&lt;/h2&gt;
        &lt;p&gt;&#51068;&#48376;&#51012; &#45824;&#54364;&#54616;&#45716; &#51221;&#53685; &#50724;&#46356;&#50724; &#47749;&#44032;&#51064; audio-technica&#51032; &lt;br /&gt;&#54620;&#44397;&#50612; PC&#183;MOBILE UI WEB &#52968;&#49481; &#46356;&#51088;&#51064; &#54532;&#47196;&#51229;&#53944;&#47484; &#51652;&#54665;&#54664;&#49845;&#45768;&#45796;.&lt;/p&gt;
        &lt;a href="https://at.dongri.me/" target="_blank" rel="noopener"&gt;LAUNCH PROJECT&lt;/a&gt;
        &lt;ul class="sliderControl"&gt;
          &lt;li&gt;&lt;button class="prev"&gt;prev&lt;/button&gt;&lt;/li&gt;
          &lt;li&gt;&lt;button class="next"&gt;next&lt;/button&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/div&gt;
      &lt;hr /&gt;
      &lt;div class="title mobile shopick"&gt;
        &lt;h2&gt;V COMMERCE SERVICE &lt;strong&gt;SHOPICK&lt;/strong&gt;&lt;/h2&gt;
        &lt;p&gt;SHOPICK&#51008; SNS&#51012; &#54876;&#50857;&#54620; &#51064;&#54540;&#47336;&#50616;&#49828; &#47560;&#52992;&#54021;&#50640; &lt;br /&gt;&#52265;&#50504;&#54644; &#48708;&#46356;&#50724;&#47484; &#44208;&#54633;&#54620; &#49888;&#44060;&#45392; &#47784;&#48148;&#51068; V &#52964;&#47672;&#49828; &lt;br /&gt;&#49660;&#54609; &#54540;&#47019;&#54268;&#51077;&#45768;&#45796;.&lt;/p&gt;
        &lt;a href="https://portfolio.dongri.me/uix/shopick/" target="_blank" rel="noopener"&gt;LAUNCH PROJECT&lt;/a&gt;
        &lt;ul class="sliderControl"&gt;
          &lt;li&gt;&lt;button class="prev"&gt;prev&lt;/button&gt;&lt;/li&gt;
          &lt;li&gt;&lt;button class="next"&gt;next&lt;/button&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/div&gt;
      &lt;hr /&gt;
      &lt;div class="title mobile brothumb"&gt;
        &lt;h2&gt;V COMMERCE SERVICE &lt;strong&gt;Brothumb&lt;i&gt;!&lt;/i&gt;&lt;/strong&gt;&lt;/h2&gt;
        &lt;p&gt;SHOPICK&#51008; SNS&#51012; &#54876;&#50857;&#54620; &#51064;&#54540;&#47336;&#50616;&#49828; &#47560;&#52992;&#54021;&#50640; &lt;br /&gt;&#52265;&#50504;&#54644; &#48708;&#46356;&#50724;&#47484; &#44208;&#54633;&#54620; &#49888;&#44060;&#45392; &#47784;&#48148;&#51068; V &#52964;&#47672;&#49828; &lt;br /&gt;&#49660;&#54609; &#54540;&#47019;&#54268;&#51077;&#45768;&#45796;.&lt;/p&gt;
        &lt;a href="https://portfolio.dongri.me/uix/shopick/" target="_blank" rel="noopener"&gt;LAUNCH PROJECT&lt;/a&gt;
        &lt;ul class="sliderControl"&gt;
          &lt;li&gt;&lt;button class="prev"&gt;prev&lt;/button&gt;&lt;/li&gt;
          &lt;li&gt;&lt;button class="next"&gt;next&lt;/button&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/section&gt;
  &lt;footer&gt;
    &lt;address&gt;&#169; Dong-gri All rights reserved.&lt;/address&gt;
  &lt;/footer&gt;
&lt;/body&gt;
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.1/min/tiny-slider.js"&gt;&lt;/script&gt;
&lt;script src="./common/js/scrollMonitor.js"&gt;&lt;/script&gt;
&lt;script src="./common/js/common.js"&gt;&lt;/script&gt;
&lt;/html&gt;</code></pre><p>&#50896;&#47000; jQuery&#47484; &#49324;&#50857;&#54616;&#45796;&#44032;, &#51228;&#51452;&#46020; &#53076;&#46377; &#48288;&#51060;&#49828;&#52896;&#54532;(&#51228;&#53076;&#48176;) &#51060;&#54980; DOM&#47564;&#51012; &#51060;&#50857;&#54616;&#47140;&#44256; &#54616;&#45796; &#48372;&#45768; &#47566;&#51060; &#50612;&#47157;&#44592;&#46020; &#54616;&#44256;, &#51201;&#51025;&#51060; &#50504; &#46104;&#50612; &#51060;&#48120;&#51648; &#49836;&#46972;&#51060;&#46300; &#48512;&#48516;&#50640; &#50557;&#44036;&#51032; &#48260;&#44536;&#44032; &#51316;&#51116;&#54633;&#45768;&#45796;. &#44536; &#51216;&#51008; &#44048;&#50504;&#54616;&#44256; &#48400;&#51452;&#49884;&#47732; &#44048;&#49324;&#54616;&#44192;&#49845;&#45768;&#45796;.</p><h4>CSS&#47564;&#51004;&#47196;&#46020; &#54952;&#44284;&#51201;&#51064; &#44396;&#46041; &#54952;&#44284;(&#51064;&#53552;&#47001;&#49496;)&#51060; &#44032;&#45733;</h4><p>&#51060;&#51204;&#50640;&#45716; Javascript&#47564;&#51012; &#49324;&#50857;&#54644; &#54616;&#45208;&#54616;&#45208; &#44396;&#54788;&#54644;&#50556; &#54664;&#45796;&#47732;, &#45216;&#51060; &#44040;&#49688;&#47197; CSS&#51032; &#49457;&#45733;&#44284; &#45796;&#50577;&#54620; &#49549;&#49457;&#46308;&#51060; &#52628;&#44032;&#46120;&#50640; &#46384;&#46972; CSS&#47564;&#51004;&#47196; &#54952;&#44284;&#51201;&#51064; &#44396;&#46041; &#51064;&#53552;&#47001;&#49496;&#51012; &#51460; &#49688; &#51080;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;.</p><p>&#50756;&#51204;&#55176; Javascript&#47484; &#48176;&#51228;&#54616;&#44596; &#50612;&#47157;&#44256;, &#48652;&#46972;&#50864;&#51200; &#54616;&#50948; &#54840;&#54872;&#49457;&#46020; &#44256;&#47140;&#54644;&#50556; &#54616;&#51648;&#47564; &#44397;&#45236; &#50640;&#51060;&#51204;&#49884;&#50640;&#49436; &#44396;&#52629;&#54620; &#49324;&#51060;&#53944;&#50752; &#54644;&#50808; &#50937; &#49324;&#51060;&#53944;&#46308;&#51032; &#54868;&#47140;&#54620; &#51064;&#53552;&#47001;&#49496;&#51012; &#49332;&#54196;&#48372;&#47728; CSS&#47196; &#45824;&#52404;&#54624; &#49688; &#51080;&#45716; &#48512;&#48516;&#51012; &#50672;&#44396;&#54616;&#47732;&#49436; &#51312;&#44552;&#50473; &#54876;&#50857;&#54620;&#45796;&#47732; &#51339;&#51012; &#44163; &#44057;&#49845;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[구름 IDE(goorm IDE) git 연동하기]]></title><description><![CDATA[goorm IDE &#50672;&#46041; &#44284;&#51221;&#44284; &#49444;&#51221; &#54252;&#51064;&#53944; &#51221;&#47532;]]></description><link>https://lab.dongri.me/p/goorm-ide-git-setup</link><guid isPermaLink="false">https://lab.dongri.me/p/goorm-ide-git-setup</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Mon, 15 Jul 2019 15:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GTxS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#44592;&#51316;&#51032; InteliJ&#47484; &#49324;&#50857;&#54616;&#45796;&#44032; (&#53360; &#51089;&#50629;&#51008; InteliJ / &#44036;&#45800;&#54620; &#45800;&#51068; &#54028;&#51068; &#49688;&#51221;&#51008; VS Code &#54841;&#51008; Brakect) &#44396;&#47492; IDE&#47484; &#49324;&#50857;&#54616;&#44256; &#51080;&#49845;&#45768;&#45796;.</p><p>&#44032;&#51109; &#53360; &#51109;&#51216;&#51008;, &#51089;&#50629;&#47932;&#51060; &#53364;&#46972;&#50864;&#46300;&#50640; &#50732;&#46972;&#44032; &#51080;&#50612; &#51068;&#48512; javascript (jQuery&#44592;&#51456; .<strong>load</strong>) &#54632;&#49688;&#47484; &#49324;&#50857;&#54616;&#47732; &#47196;&#52972; &#53356;&#47196;&#49828;&#50640; &#47561;&#54784; &#48324;&#46020;&#51032; &#47749;&#47161;&#50612;&#47196; &#54400;&#50612;&#49436; &#49892;&#54665;&#54644;&#50556; &#54616;&#45716; &#48520;&#54200;&#54632;&#51060; &#44048;&#49548;&#54620;&#45796;&#45716; &#44163;&#51060;&#44256;, &#46608; &#54620;&#44544;&#51012; &#50756;&#48317;&#54616;&#44172; &#51648;&#50896;&#54620;&#45796;&#45716; &#51216;&#51077;&#45768;&#45796;.</p><p>&#51204;&#47928;&#44032;&#46308;&#51008; &#44592;&#48376;&#44592;&#44032; &#51080;&#50612;&#49436; &#53356;&#44172; &#48520;&#54200;&#51008; &#50630;&#44192;&#51648;&#47564;, &#51648;&#49885;&#51060; &#50557;&#54620; &#51200; &#44057;&#51008; &#52488;&#48372;&#46308;&#51008; &#46020;&#50880;&#47568;&#51060; &#51080;&#50612;&#46020; &#51217;&#44540;&#54616;&#44592;&#44032; &#45212;&#54644;&#54644; &#51060;&#48264;&#50640; git&#51012; &#50672;&#46041;&#54620; &#44221;&#54744;&#44284; &#51221;&#48372;&#47484; &#44544;&#47196; &#45224;&#44200; &#45796;&#51020;&#50640; &#45796;&#47480; &#48516;&#46308;&#50640;&#44172; &#46020;&#50880;&#51060; &#46104;&#50632;&#51004;&#47732; &#54633;&#45768;&#45796;.</p><div><hr></div><h3><strong>git &#50672;&#46041; &#52968;&#53580;&#51060;&#45320; &#49373;&#49457;&#54616;&#44592;</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GTxS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GTxS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 424w, https://substackcdn.com/image/fetch/$s_!GTxS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 848w, https://substackcdn.com/image/fetch/$s_!GTxS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 1272w, https://substackcdn.com/image/fetch/$s_!GTxS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GTxS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png" width="1399" height="872" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1399,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:197146,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GTxS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 424w, https://substackcdn.com/image/fetch/$s_!GTxS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 848w, https://substackcdn.com/image/fetch/$s_!GTxS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 1272w, https://substackcdn.com/image/fetch/$s_!GTxS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9c8bb5-f5c0-4393-956f-a033ee4d0648_1399x872.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#47196;&#44536;&#51064; &#54980; <strong>MY &#44396;&#47492; IDE</strong>&#47196; &#51060;&#46041;&#54633;&#45768;&#45796;.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tkC9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tkC9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 424w, https://substackcdn.com/image/fetch/$s_!tkC9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 848w, https://substackcdn.com/image/fetch/$s_!tkC9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 1272w, https://substackcdn.com/image/fetch/$s_!tkC9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tkC9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png" width="1390" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1390,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239210,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tkC9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 424w, https://substackcdn.com/image/fetch/$s_!tkC9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 848w, https://substackcdn.com/image/fetch/$s_!tkC9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 1272w, https://substackcdn.com/image/fetch/$s_!tkC9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea20bd6-ef58-404f-8b2a-00442acabe32_1390x870.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>&#49352; &#52968;&#53580;&#51060;&#45320;&#47484; &#49373;&#49457;</strong>&#54633;&#45768;&#45796;.</figcaption></figure></div><p>goorm IDE&#45716; &#52488;&#48152; &#52968;&#53580;&#51060;&#45320; &#49373;&#49457; &#49884;&#50640; git&#44284; &#50672;&#44208;&#51060; &#46104;&#50612;&#51080;&#51648; &#50506;&#51004;&#47732; &#45796;&#51020;&#50640; &#50672;&#44208;&#51060; &#48520;&#44032;&#45733;&#54633;&#45768;&#45796;. &#46384;&#46972;&#49436; &#51060;&#48120; &#52968;&#53580;&#51060;&#45320; &#49373;&#49457;&#51060; &#46076; &#51080;&#51004;&#49884;&#45796;&#47732; &#49352;&#47196; &#49373;&#49457;&#54644; &#51452;&#49492;&#50556; &#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6sYr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6sYr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 424w, https://substackcdn.com/image/fetch/$s_!6sYr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 848w, https://substackcdn.com/image/fetch/$s_!6sYr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 1272w, https://substackcdn.com/image/fetch/$s_!6sYr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6sYr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png" width="1280" height="1068" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1068,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:227314,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6sYr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 424w, https://substackcdn.com/image/fetch/$s_!6sYr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 848w, https://substackcdn.com/image/fetch/$s_!6sYr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 1272w, https://substackcdn.com/image/fetch/$s_!6sYr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7c2cc60-eb9e-4e77-aad0-7b6dc10c5166_1280x1068.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#49548;&#49828;&#50640;&#49436; <strong>Github&#51012; &#49440;&#53469;</strong>&#54616;&#49884;&#44256;, Github&#51032; &#50500;&#51060;&#46356;&#50752; &#48708;&#48128;&#48264;&#54840;&#47484; &#51077;&#47141;&#54620; &#46244; &#47785;&#47197; &#44032;&#51256;&#50724;&#44592;&#47484; &#53685;&#54644; <strong>&#54532;&#47196;&#51229;&#53944;&#47484; &#49440;&#53469;</strong>&#54633;&#45768;&#45796;.</figcaption></figure></div><p>gitLab &#46321;&#51032; &#53440; &#49436;&#48708;&#49828;&#45716; &#51060;&#50857;&#54644; &#48372;&#51648; &#50506;&#50500;&#49436; &#47784;&#47476;&#44192;&#51648;&#47564;, &#44536;&#47088; &#44221;&#50864;&#50640;&#45716; 3&#48264;&#51704; Git/SVN &#46972;&#46356;&#50724;&#48260;&#53948;&#51012; &#52404;&#53356;&#54616;&#49888; &#46244; &#51652;&#54665;&#54616;&#49884;&#47732; &#46104;&#51648; &#50506;&#51012;&#44620; &#49910;&#49845;&#45768;&#45796;.</p><p>&#46608;&#54620; &#51060;&#46412; git &#47196;&#44536;&#51064; &#51221;&#48372;&#44032; &#45236;&#48512; &#54532;&#47196;&#51229;&#53944;&#50640; &#54217;&#47928;&#51004;&#47196; &#51200;&#51109;&#46104;&#48064;&#47196;, &#54844;&#51088;&#49436; &#44060;&#48156;&#54616;&#45716; &#44163;&#51060; &#50500;&#45772; &#45796;&#47480; &#49324;&#46988;&#46308;&#44284; &#54632;&#44760; &#51089;&#50629;&#54620;&#45796;&#47732; &#48324;&#46020;&#51032; git &#44228;&#51221;&#51012; &#49373;&#49457;&#54616;&#45716; &#44163;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lr3g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lr3g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 424w, https://substackcdn.com/image/fetch/$s_!lr3g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 848w, https://substackcdn.com/image/fetch/$s_!lr3g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 1272w, https://substackcdn.com/image/fetch/$s_!lr3g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lr3g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png" width="680" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52614,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lr3g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 424w, https://substackcdn.com/image/fetch/$s_!lr3g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 848w, https://substackcdn.com/image/fetch/$s_!lr3g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 1272w, https://substackcdn.com/image/fetch/$s_!lr3g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cc9b395-2262-40cd-8a16-fdd49c756bf6_680x342.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#51077;&#47141; &#51221;&#48372;&#47484; &#45796; &#51089;&#49457;&#54616;&#49888; &#46244; &#49373;&#49457;&#51012; &#45572;&#47476;&#47732; &#51068;&#47749; &#46749;&#46385;&#51060;&#44032; &#45208;&#53440;&#45208;&#44256; &#51104;&#49884; &#44592;&#45796;&#47532;&#47732; &#52968;&#53580;&#51060;&#45320; &#49373;&#49457;&#51060; &#50756;&#47308;&#46121;&#45768;&#45796;.</p><div><hr></div><h3><strong>git commit</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bR-a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bR-a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 424w, https://substackcdn.com/image/fetch/$s_!bR-a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 848w, https://substackcdn.com/image/fetch/$s_!bR-a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 1272w, https://substackcdn.com/image/fetch/$s_!bR-a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bR-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png" width="1413" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1413,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:603893,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bR-a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 424w, https://substackcdn.com/image/fetch/$s_!bR-a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 848w, https://substackcdn.com/image/fetch/$s_!bR-a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 1272w, https://substackcdn.com/image/fetch/$s_!bR-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F173b47c2-1883-4743-a2dc-34bb3697f5e6_1413x639.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#51089;&#50629;&#54616;&#49888; &#54980;, &#53485; &#47700;&#45684;&#51032; <strong>&#49548;&#49828;&#53076;&#46300; &#44288;&#47532; &gt; git &gt; Commit</strong>&#51012; &#53685;&#54616;&#44144;&#45208;,<br><strong>&#53301; &#47700;&#45684;&#51032; COMMIT</strong>&#47484; &#53685;&#54644; &#49548;&#49828;&#53076;&#46300;&#47484; commit &#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ppIN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ppIN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 424w, https://substackcdn.com/image/fetch/$s_!ppIN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 848w, https://substackcdn.com/image/fetch/$s_!ppIN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 1272w, https://substackcdn.com/image/fetch/$s_!ppIN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ppIN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png" width="1065" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1065,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102117,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ppIN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 424w, https://substackcdn.com/image/fetch/$s_!ppIN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 848w, https://substackcdn.com/image/fetch/$s_!ppIN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 1272w, https://substackcdn.com/image/fetch/$s_!ppIN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a9b343-dd1d-4581-80df-49c21fffe329_1065x639.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ki0i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ki0i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 424w, https://substackcdn.com/image/fetch/$s_!ki0i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 848w, https://substackcdn.com/image/fetch/$s_!ki0i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 1272w, https://substackcdn.com/image/fetch/$s_!ki0i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ki0i!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png" width="1200" height="362.6373626373626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:440,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:319373,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ki0i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 424w, https://substackcdn.com/image/fetch/$s_!ki0i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 848w, https://substackcdn.com/image/fetch/$s_!ki0i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 1272w, https://substackcdn.com/image/fetch/$s_!ki0i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c684ba6-1dc4-4c2c-8171-1d32fbd2494e_2100x635.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#48320;&#44221; &#49324;&#54637;&#51060; &#51080;&#45796;&#47732;, &#47532;&#49828;&#53944;&#50640; &#45208;&#53440;&#45208;&#44256; commit &#54616;&#44256;&#51088; &#54616;&#45716; &#54028;&#51068;&#51012; &#49440;&#53469;&#54620; &#46244;, &#50864;&#52769; &#54616;&#45800;&#51032; <strong>&#51452;&#54889;&#49353; commit &#48260;&#53948;&#51012; &#53364;&#47533;</strong>&#54633;&#45768;&#45796;.</p><p>&#48320;&#44221; &#49324;&#54637;&#51012; textarea&#50640; &#51077;&#47141;&#54620; &#46244; &#54869;&#51064;&#51012; &#45572;&#47476;&#49884;&#47732; github&#50640; &#48152;&#50689;&#51060; &#46121;&#45768;&#45796;. &#46608;&#54620; Log tab&#51012; &#53685;&#54644; &#48152;&#50689; &#49324;&#54637;&#51012; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>&#52968;&#53580;&#51060;&#45320;&#47484; &#49373;&#49457;&#54664;&#45716;&#45936;, git&#51060; &#48708;&#54876;&#49457;&#54868; &#46104;&#50612;&#51080;&#50612;&#50836;!</h3><p>&#51228;&#44032; &#52376;&#51020;&#50640; &#48708;&#54876;&#49457;&#54868;&#47196; &#45208;&#53440;&#45208;&#49436; &#45817;&#54889;&#54664;&#50632;&#49845;&#45768;&#45796;.<br>&#51648;&#44552;&#51008; &#51060;&#50752; &#44288;&#47144;&#46108; &#54644;&#44208;&#52293;&#51012; &#52286;&#50500; &#50896;&#54876;&#54616;&#44172; &#50672;&#46041;&#54644; &#49324;&#50857; &#51473;&#51077;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TQOL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TQOL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 424w, https://substackcdn.com/image/fetch/$s_!TQOL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 848w, https://substackcdn.com/image/fetch/$s_!TQOL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 1272w, https://substackcdn.com/image/fetch/$s_!TQOL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TQOL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png" width="583" height="481" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1778365d-716d-4572-a1b9-1109367b0020_583x481.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:481,&quot;width&quot;:583,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62316,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TQOL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 424w, https://substackcdn.com/image/fetch/$s_!TQOL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 848w, https://substackcdn.com/image/fetch/$s_!TQOL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 1272w, https://substackcdn.com/image/fetch/$s_!TQOL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1778365d-716d-4572-a1b9-1109367b0020_583x481.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>&#54532;&#47196;&#51229;&#53944;</strong> &#53485;&#50640;&#49436; <strong>&#49549;&#49457;</strong>&#51004;&#47196; &#51060;&#46041;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J1GJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J1GJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 424w, https://substackcdn.com/image/fetch/$s_!J1GJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 848w, https://substackcdn.com/image/fetch/$s_!J1GJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 1272w, https://substackcdn.com/image/fetch/$s_!J1GJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J1GJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png" width="841" height="602" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:602,&quot;width&quot;:841,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90591,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!J1GJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 424w, https://substackcdn.com/image/fetch/$s_!J1GJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 848w, https://substackcdn.com/image/fetch/$s_!J1GJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 1272w, https://substackcdn.com/image/fetch/$s_!J1GJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2133bf-9508-41df-8452-30d31184b8ee_841x602.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>&#49548;&#49828; &#53076;&#46300; &#44288;&#47532;</strong>&#47196; &#51060;&#46041;&#54644; <strong>SCM &#49444;&#51221;</strong>&#50640;&#49436; &#50976;&#54805; <strong>Git</strong> &#49440;&#53469;, &#50976;&#51200;&#51060;&#47492;&#44284; &#54056;&#49828;&#50892;&#46300; &#46976;&#50640; github &#44228;&#51221;&#51221;&#48372;&#47484; &#51077;&#47141;&#54616;&#44256; &#51064;&#51613;&#54616;&#49884;&#47732; &#51060;&#50857;&#51060; &#44032;&#45733;&#54633;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[Windows 10 이미지 미리보기 오류 해결하기: 원인과 해결 방법]]></title><description><![CDATA[Windows 10 &#51060;&#48120;&#51648; &#48120;&#47532;&#48372;&#44592; &#50724;&#47448; &#54644;&#44208;&#54616;&#44592; &#47928;&#51228;&#47484; &#54644;&#44208;&#54616;&#44592; &#50948;&#54644; &#54869;&#51064;&#54620; &#50896;&#51064;&#44284; &#51312;&#52824; &#48169;&#48277;&#51012; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;. &#44057;&#51008; &#51613;&#49345;&#51012; &#47564;&#45228;&#51012; &#46412; &#48736;&#47476;&#44172; &#51216;&#44160;&#54624; &#49688; &#51080;&#45716; &#53944;&#47084;&#48660;&#49800;&#54021; &#44592;&#47197;&#51077;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/windows-10-thumbnail-preview-fix</link><guid isPermaLink="false">https://lab.dongri.me/p/windows-10-thumbnail-preview-fix</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sat, 24 Feb 2018 09:35:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7fc8d911-c083-47ae-b893-dbf414ede8a3_800x641.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sos6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sos6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 424w, https://substackcdn.com/image/fetch/$s_!sos6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 848w, https://substackcdn.com/image/fetch/$s_!sos6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 1272w, https://substackcdn.com/image/fetch/$s_!sos6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sos6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sos6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 424w, https://substackcdn.com/image/fetch/$s_!sos6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 848w, https://substackcdn.com/image/fetch/$s_!sos6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 1272w, https://substackcdn.com/image/fetch/$s_!sos6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546ffa0-e004-4b40-9ebf-ed57eaf8e24f_800x641.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">&#54028;&#51068; &#54869;&#51109;&#51088;&#50640; &#46384;&#46972; (&#54841;&#51008; &#48373;&#48520;&#48373;&#51004;&#47196;) &#50504; &#45208;&#50724;&#45716; &#51060;&#48120;&#51648;&nbsp;&#48120;&#47532;&#48372;&#44592;</figcaption></figure></div><h3>&#50612;&#45712; &#49692;&#44036;&#48512;&#53552; &#45208;&#53440;&#45208;&#51648; &#50506;&#45716; &#51060;&#48120;&#51648;&nbsp;&#48120;&#47532;&#48372;&#44592;</h3><p>Photoshop&#51060;&#45208; Illustrator&#47196; &#51089;&#50629;&#51012; &#54616;&#45796; &#48372;&#47732;, &#48292;&#52824;&#47560;&#53433; &#54841;&#51008; &#49324;&#50857;&#54616;&#47140;&#44256; &#46160;&#50632;&#45912; &#51060;&#48120;&#51648;&#47484; Drag &amp; Drop&#51004;&#47196; &#44032;&#51256;&#50752;&#50556; &#54624; &#44221;&#50864;&#44032; &#47566;&#49845;&#45768;&#45796;. &#51452;&#47196; &#51064;&#53552;&#45367;&#50640;&#49436; &#45796;&#50868;&#47196;&#46300; &#54620; &#54028;&#51068;&#51060;&#46972; &#54028;&#51068;&#51060;&#47492;&#51060; &#48373;&#51105;(&#54644;&#49884;&#44050;)&#54620;&#51648;&#46972; &#51452;&#47196; &#50952;&#46020;&#50864; &#53456;&#49353;&#44592;&#50640;&#49436; &#51060;&#48120;&#51648;&#47484; &#48120;&#47532; &#48372;&#47732;&#49436; &#44032;&#51256;&#50741;&#45768;&#45796;.</p><p>&#44536;&#47088;&#45936; &#50612;&#45712; &#49692;&#44036;&#48512;&#53552; &#51060;&#48120;&#51648; &#48120;&#47532;&#48372;&#44592;&#44032; &#45208;&#53440;&#45208;&#51648; &#50506;&#44592; &#49884;&#51089;&#54664;&#49845;&#45768;&#45796;. &#51060;&#45716; &#53456;&#49353;&#44592;&#49104;&#47564; &#50500;&#45768;&#46972;, &#44536;&#47000;&#54589; &#53812;&#51032; <strong>&#8216;&#50676;&#44592;(&#54841;&#51008; &#44032;&#51256;&#50724;&#44592;) &#50741;&#49496;&#8217;</strong>&#50640;&#49436;&#46020; &#46041;&#51068;&#54620;&#45936;&#50836;, &#47749;&#47161; &#54532;&#47212;&#54532;&#53944; &#52285;&#50640;&#49436; <strong>sfc /scannow</strong> &#47749;&#47161;&#50612;&#47484; &#45216;&#47140;&#46020; &#51221;&#49345;&#51060;&#46972;&#44256;&#47564; &#45208;&#53440;&#45225;&#45768;&#45796;.</p><p>&#54616;&#51648;&#47564;, &#50864;&#47532;&#45716; &#50952;&#46020;&#50864; &#50612;&#45712; &#48512;&#48516;&#51060; &#44844;&#50668;&#49436; &#50504; &#45208;&#50728;&#45796;&#45716; &#44163;&#51012; &#51060;&#48120; &#51096; &#50508;&#44256; &#51080;&#51424;. &#44536;&#51200; &#54252;&#47607;&#54644;&#50556; &#54620;&#45796;&#45716; &#54788;&#49892;&#51012; &#48512;&#51221;&#54616;&#44256; &#49910;&#51012; &#49104;&#8230;</p><h4>Windows &#54252;&#47607;&#51012; &#54644;&#46020; &#46608;&#45796;&#49884; &#50504; &#48372;&#51060;&#44592; &#49884;&#51089;&#54620;&nbsp;&#48120;&#47532;&#48372;&#44592;</h4><p>&#54620;&#52285; &#51116;&#54617; &#51473;&#51060;&#46972; &#50668;&#47084; &#51089;&#50629;&#51012; &#51652;&#54665;&#54616;&#47728; &#46041;&#49884;&#50640; &#54252;&#53944;&#54260;&#47532;&#50724;&#44620;&#51648; &#51456;&#48708;&#51473; &#51060;&#50612;&#49436; &#50612;&#51796; &#49688; &#50630;&#51060; &#54252;&#47607;&#51012; &#47803; &#54616;&#45796;&#44032; &#51060;&#48264;&#50640; &#54252;&#47607;&#54664;&#49845;&#45768;&#45796;.</p><p>&#45796;&#49884; &#50896;&#49345;&#53468;&#47196; &#48120;&#47532;&#48372;&#44592;&#44032; &#51096; &#45208;&#50724;&#45716;&#44032; &#49910;&#45908;&#45768; &#44552;&#51068; &#51089;&#50629;&#54616;&#47140; &#53456;&#49353;&#44592;&#47484; &#50676;&#50612;&#48372;&#45768; &#46608;&#45796;&#49884; &#48120;&#47532;&#48372;&#44592;&#44032; &#45208;&#50724;&#51648; &#50506;&#49845;&#45768;&#45796;. &#54252;&#47607;&#51012; &#54620;&#51648; &#51068;&#51452;&#51068;&#46020; &#52292; &#46104;&#51648; &#50506;&#51008;&#51648;&#46972; &#44618;&#51008; &#48737;&#52840;&#51060; &#47792;&#47140;&#50724;&#45716; &#49692;&#44036;, &#44396;&#44544;&#47553;&#51012; &#53685;&#54644; &#47928;&#51228; &#54644;&#44208; &#48169;&#48277;&#51012; &#52286;&#50520;&#44256; &#49457;&#44277;&#54664;&#49845;&#45768;&#45796;.</p><div><hr></div><h3>&#50864;&#47532;&#45716; &#45813;&#51012; &#52286;&#51012;&#44163;&#51060;&#45796; &#50616;&#51228;&#45208;&nbsp;&#44536;&#47020;&#46319;&#51060;</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qG10!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qG10!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qG10!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qG10!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qG10!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qG10!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qG10!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qG10!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qG10!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qG10!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F572b3867-c2d4-4847-b7d7-94bb96f5d73e_600x351.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#50689;&#54868; &#8216;&#51064;&#53552;&#49828;&#53588;&#46972;&#8217;&nbsp;&#47749;&#45824;&#49324;</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://rgy0409.tistory.com/2175" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5ZMg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 424w, https://substackcdn.com/image/fetch/$s_!5ZMg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 848w, https://substackcdn.com/image/fetch/$s_!5ZMg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 1272w, https://substackcdn.com/image/fetch/$s_!5ZMg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5ZMg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png" width="720" height="170" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69dde1c5-d946-43bd-9604-ec019135765b_720x170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:170,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19304,&quot;alt&quot;:&quot;&#50952;&#46020;&#50864;10 &#54260;&#45908; &#49324;&#51652; &#48120;&#47532;&#48372;&#44592; &#51060;&#48120;&#51648; &#50724;&#47448; &#54644;&#44208;&#54616;&#44592;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://rgy0409.tistory.com/2175&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#50952;&#46020;&#50864;10 &#54260;&#45908; &#49324;&#51652; &#48120;&#47532;&#48372;&#44592; &#51060;&#48120;&#51648; &#50724;&#47448; &#54644;&#44208;&#54616;&#44592;" title="&#50952;&#46020;&#50864;10 &#54260;&#45908; &#49324;&#51652; &#48120;&#47532;&#48372;&#44592; &#51060;&#48120;&#51648; &#50724;&#47448; &#54644;&#44208;&#54616;&#44592;" srcset="https://substackcdn.com/image/fetch/$s_!5ZMg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 424w, https://substackcdn.com/image/fetch/$s_!5ZMg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 848w, https://substackcdn.com/image/fetch/$s_!5ZMg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 1272w, https://substackcdn.com/image/fetch/$s_!5ZMg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dde1c5-d946-43bd-9604-ec019135765b_720x170.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#52828;&#51208;&#54620;&#54952;&#51088;&#49552; &#45784;&#51060; &#51089;&#49457;&#54616;&#49888; &#44544;&#51012; &#53685;&#54644; &#47928;&#51228;&#47484; &#51096; &#54644;&#44208;&#54624; &#49688; &#51080;&#50632;&#49845;&#45768;&#45796;. &#47112;&#51648;&#49828;&#53552;&#47532; &#47928;&#51228;&#50688;&#44256;, &#51068;&#48512; &#49325;&#51228; &#48143; &#44050;&#51012; &#52628;&#44032;&#54620; &#46244; &#51116;&#48512;&#54021;&#54616;&#45716; &#48169;&#48277;&#51077;&#45768;&#45796;. &#44288;&#47144;&#46108; &#45236;&#50857;&#51008; <a href="http://rgy0409.tistory.com/2175">&#50896;&#44544; (rgy0409.tistory.com/2175)</a>&#47484; &#52280;&#44256;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><div><hr></div><h3>Windows 10 &#51060;&#48120;&#51648; &#48120;&#47532;&#48372;&#44592; &#50724;&#47448; &#54644;&#44208; &#47112;&#51648;&#49828;&#53552;&#47532; &#54028;&#51068;</h3><p>&#54532;&#47196;&#44536;&#47016;&#51012; &#51060;&#44163;&#51200;&#44163; &#49444;&#52824;&#54616;&#47728; &#50952;&#46020;&#50864;&#47484; &#49324;&#50857;&#54616;&#45796; &#48372;&#47732;, &#50504; &#44536;&#47000;&#46020; &#48373;&#51105;&#54620; &#47112;&#51648;&#49828;&#53552;&#47532;&#50640; &#50668;&#47084; &#44050;&#51060; &#49939;&#50668; &#45908; &#48373;&#51105;&#54644;&#51648;&#44256; &#44221;&#47196;&#47484; &#52286;&#50500;&#45796;&#45768;&#44592;&#44032; &#55192;&#46308;&#50612;&#51665;&#45768;&#45796;. &#46608;&#54620; &#52980;&#54504;&#53552; &#51025;&#50857; &#45733;&#47141;&#51060; &#48512;&#51313;&#54616;&#49888; &#48516;&#46308;&#51008; &#51096;&#47803; &#44148;&#46308;&#51060;&#45796;&#44032; &#44256;&#51109; &#45216;&#44620; &#48400; &#44161;&#45236;&#49884;&#45716; &#44221;&#50864;&#46020; &#47566;&#44256;&#50836;&#8230;</p><p>&#45796;&#51020; &#46041;&#51068;&#54620; &#47928;&#51228; &#48156;&#49373; &#49884; &#49789;&#44172; &#54644;&#44208;&#54616;&#44592; &#50948;&#54644;&#49436; &#47112;&#51648;&#49828;&#53552;&#47532; &#54028;&#51068;(.reg)&#51012; &#44036;&#45800;&#54616;&#44172; &#47564;&#46308;&#50612;&#48420;&#49845;&#45768;&#45796;. &#44536;&#45285; <strong>&#45796;&#50868;&#48155;&#50500;&#49436; &#49892;&#54665;&#54616;&#50668; &#51201;&#50857;&#54616;&#49888; &#54980; &#51116;&#48512;&#54021;</strong>&#54616;&#44592;&#47564; &#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><p><strong>&#45796;&#50868;&#47196;&#46300;</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://share.dongri.me/63fF&quot;,&quot;text&quot;:&quot;&#50952;&#46020;&#50864; &#53456;&#49353;&#44592; &#51060;&#48120;&#51648; &#48120;&#47532;&#48372;&#44592; &#50724;&#47448; &#54644;&#44208; &#47112;&#51648;&#49828;&#53552;&#47532; &#45796;&#50868;&#47196;&#46300;&#54616;&#44592;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://share.dongri.me/63fF"><span>&#50952;&#46020;&#50864; &#53456;&#49353;&#44592; &#51060;&#48120;&#51648; &#48120;&#47532;&#48372;&#44592; &#50724;&#47448; &#54644;&#44208; &#47112;&#51648;&#49828;&#53552;&#47532; &#45796;&#50868;&#47196;&#46300;&#54616;&#44592;</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LIoS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LIoS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 424w, https://substackcdn.com/image/fetch/$s_!LIoS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 848w, https://substackcdn.com/image/fetch/$s_!LIoS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 1272w, https://substackcdn.com/image/fetch/$s_!LIoS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LIoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LIoS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 424w, https://substackcdn.com/image/fetch/$s_!LIoS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 848w, https://substackcdn.com/image/fetch/$s_!LIoS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 1272w, https://substackcdn.com/image/fetch/$s_!LIoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5826cca1-fe48-4c90-a4b4-b43723245302_800x311.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#51340;: &#47112;&#51648;&#49828;&#53552;&#47532; &#54056;&#52824; &#51201;&#50857;&#54616;&#44592; &#51204; / &#50864;: &#51201;&#50857;&#54620; &#54980; &#51221;&#49345;&#51201;&#51004;&#47196; &#45208;&#50724;&#45716;&nbsp;&#54868;&#47732;</figcaption></figure></div><p>&#51200;&#45716; &#51068;&#48152; PC&#50640; &#51061;&#49689;&#54644;&#51256; &#51080;&#44256; &#54200;&#54644;&#54616;&#45716;&#51648;&#46972; Windows&#47484; &#49324;&#50857;&#54616;&#44256;&#45716; &#51080;&#51648;&#47564;,<br>&#51060;&#47088; &#51088;&#51096;&#54620; &#47928;&#51228;&#47484; &#48372;&#47732; OSX&#47484; &#50416;&#44256; &#49910;&#45796;&#45716; &#49373;&#44033;&#51060; &#48520;&#45128;&#48520;&#45128; &#49567;&#45348;&#50836;.</p>]]></content:encoded></item><item><title><![CDATA[KT WiFi 보안망 접속불가 프로파일: 원인과 해결 방법]]></title><description><![CDATA[KT WiFi &#48372;&#50504;&#47581; &#51217;&#49549;&#48520;&#44032; &#54532;&#47196;&#54028;&#51068; &#47928;&#51228;&#47484; &#54644;&#44208;&#54616;&#44592; &#50948;&#54644; &#54869;&#51064;&#54620; &#50896;&#51064;&#44284; &#51312;&#52824; &#48169;&#48277;&#51012; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;. &#44057;&#51008; &#51613;&#49345;&#51012; &#47564;&#45228;&#51012; &#46412; &#48736;&#47476;&#44172; &#51216;&#44160;&#54624; &#49688; &#51080;&#45716; &#53944;&#47084;&#48660;&#49800;&#54021; &#44592;&#47197;&#51077;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/kt-wifi-secure-profile-fix</link><guid isPermaLink="false">https://lab.dongri.me/p/kt-wifi-secure-profile-fix</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Fri, 24 Nov 2017 17:21:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b9c5c8d8-7d92-4163-97ab-bbfde4ff5280_480x720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#50620;&#47560; &#51204; &#44592;&#51316;&#50640; &#49324;&#50857;&#54616;&#45912; iPhone 6&#51012; &#46496;&#45208;&#48372;&#45236;&#44256;, KT &#44277;&#49885; &#50728;&#46972;&#51064; &#49397;&#51012; &#53685;&#54644; iPhone7&#51012; &#44396;&#47588;&#54664;&#49845;&#45768;&#45796;.</p><p>&#51228;&#54408;&#46020; &#50896;&#54616;&#45912; &#45824;&#47196; &#51096; &#50772;&#44256; &#44060;&#53685;&#46020; &#51096; &#46104;&#50632;&#49845;&#45768;&#45796;. &#44536;&#47084;&#45208; &#47928;&#51228;&#44032; &#49373;&#44220;&#45716;&#45936; &#48148;&#47196; <strong>KT&#50640;&#49436; &#51228;&#44277;&#54616;&#45716; WiFi &#48372;&#50504;&#47581; &#51217;&#49549;&#51060; &#50504; &#46104;&#45716; &#44163;</strong>&#51060;&#50632;&#49845;&#45768;&#45796;.</p><h3>KT WiFi &#48372;&#50504;&#47581; &#51217;&#49549; &#49884; ID&#50752; PW&nbsp;&#50836;&#44396;</h3><p>&#48372;&#50504;&#47581; &#51217;&#49549; &#49884;&#50640; &#50500;&#51060;&#46356;&#50752; &#48708;&#48128;&#48264;&#54840;&#47484; &#50836;&#44396;&#54616;&#45716; &#52285;&#51060; &#46905;&#45768;&#45796;. &#50500;&#49789;&#44172;&#46020; &#47928;&#51228; &#46104;&#45716; &#54868;&#47732;&#51032; &#49828;&#53356;&#47536;&#49399;&#51012; &#52237;&#51648; &#47803;&#54644; Google &#44160;&#49353;&#51012; &#53685;&#54644; &#48708;&#49847;&#54620; &#49345;&#54889;&#51064; &#49828;&#53356;&#47536;&#49399;&#51012; &#54140;&#50772;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bVzL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bVzL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 424w, https://substackcdn.com/image/fetch/$s_!bVzL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 848w, https://substackcdn.com/image/fetch/$s_!bVzL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 1272w, https://substackcdn.com/image/fetch/$s_!bVzL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bVzL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png" width="936" height="770" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:770,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:376555,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bVzL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 424w, https://substackcdn.com/image/fetch/$s_!bVzL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 848w, https://substackcdn.com/image/fetch/$s_!bVzL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 1272w, https://substackcdn.com/image/fetch/$s_!bVzL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F561fec95-f50a-4c6f-a7d4-8c0da3e76dfa_936x770.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51340;: &#44396; iOS&#50640;&#49436;&#51032; &#54868;&#47732; / &#50864;: &#49888; iOS&#50640;&#49436;&#51032; &#54868;&#47732;</figcaption></figure></div><p>&#47932;&#47200;, &#44277;&#44060;&#47564;&#51004;&#47196;&#45716; &#51064;&#51613; &#50630;&#51060; &#51217;&#49549;&#51060; &#51096; &#46104;&#51648;&#47564; &#48708; &#48372;&#50504;&#47581;&#51012; &#49324;&#50857;&#54624; &#44221;&#50864; &#48372;&#50504;&#50640; &#51339;&#51648; &#47803;&#54616;&#44592; &#46412;&#47928;&#50640; &#46104;&#46020;&#47197; &#51648;&#50577;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><h4>&#50948;&#50752; &#44057;&#51008; &#47928;&#51228;&#45716; &#46160; &#44032;&#51648;&#47196; &#45208;&#45572;&#50612; &#48380; &#49688;&nbsp;&#51080;&#49845;&#45768;&#45796;.</h4><ol><li><p>&#44277;&#49885; &#45824;&#47532;&#51216;&#51012; &#53685;&#54620; &#44163;&#51060; &#50500;&#45772;, &#51649;&#51217; &#44396;&#47588;&#54620; &#45800;&#47568;&#44592;&#47484; &#44060;&#53685;&#54620; &#44221;&#50864;</p></li><li><p>USIM &#52841; &#47928;&#51228;</p></li></ol><p>1&#48264;&#51008;, &#51060; &#54252;&#49828;&#53944;&#50640;&#49436; &#49444;&#47749;&#54616;&#45716; &#54532;&#47196;&#54028;&#51068;&#51012; &#51201;&#50857;&#54620;&#45796;&#44256; &#54644;&#49436; &#54644;&#44208;&#46104;&#45716; &#44163;&#51060; &#50500;&#45768;&#46972; KT &#44256;&#44061;&#49468;&#53552;&#47484; &#53685;&#54644; iPhone&#51032; MAC Address&#47484; &#46321;&#47197;&#54644;&#50556; &#54633;&#45768;&#45796;.</p><p>2&#48264;&#51008; USIM&#52841;&#51032; &#47928;&#51228;&#47196; &#49324;&#47308;&#46104;&#45716;&#45936;, 1&#45380; &#51060;&#45236; &#44396;&#47588;&#54620; USIM&#51008; &#47924;&#49345; &#44368;&#54872;&#51060; &#44032;&#45733;&#54616;&#45208; 1&#45380;&#51060; &#45336;&#51008; &#44221;&#50864;&#50640;&#45716; &#50557; 8,800&#50896;&#51012; &#51452;&#44256; &#49352;&#47196; &#44396;&#51077;&#54644;&#50556; &#54633;&#45768;&#45796;. USIM &#51088;&#52404;&#51032; &#44256;&#51109;&#48372;&#45800; &#44592;&#51316;&#50640; &#49324;&#50857;&#54616;&#45912; USIM&#51008; &#44536;&#45824;&#47196;, &#49352;&#47196;&#50868; &#45800;&#47568;&#44592;(KT&#47484; &#53685;&#54644; &#44396;&#51077;&#54620; &#45800;&#47568;&#44592;)&#47196; &#50734;&#44600; &#46412;&#50640; &#48156;&#49373;&#54633;&#45768;&#45796;. &#51060; &#44221;&#50864;&#45716; &#44060;&#53685; &#49884; &#51088;&#46041;&#51004;&#47196; KT &#51204;&#49328;&#50640; MAC Address&#44032; &#46321;&#47197;&#46104;&#51648;&#47564;, USIM&#50640;&#45716; &#51201;&#50857;&#51060; &#50504; &#46104;&#45716;&#51648; &#48372;&#50504; &#51217;&#49549;&#51060; &#46104;&#51648; &#50506;&#49845;&#45768;&#45796;.</p><p>&#51200;&#45716; 2&#48264;&#51032; &#44221;&#50864;&#50688;&#44256;, USIM&#51012; &#49352;&#47196; &#44396;&#51077;&#54616;&#45716; &#44163;&#51008; &#50500;&#45772; &#44163; &#44057;&#50500; &#54644;&#44208; &#48169;&#48277;&#51012; &#52286;&#50500;&#48372;&#50520;&#49845;&#45768;&#45796;.</p><h3>KT&#50640;&#49436; &#48176;&#54252;&#54620; WiFi &#54532;&#47196;&#54028;&#51068;&nbsp;&#49444;&#52824;</h3><p>&#44032;&#51109; &#49552;&#49772;&#50868; &#48169;&#48277;&#51008; &#44256;&#44061;&#49468;&#53552;&#47484; &#53685;&#54644; &#54644;&#45817; &#48124;&#50896;&#51012; &#51228;&#44592;&#54616;&#44256; &#54532;&#47196;&#54028;&#51068;&#47564; &#48155;&#51004;&#47732; &#46104;&#45716;&#45936;, &#49345;&#45812;&#50896;&#51060; &#46384;&#46972;&#49436; &#45796;&#47476;&#44596; &#54616;&#51648;&#47564; &#45824;&#45796;&#49688;&#44032; &#51096; &#47784;&#47476;&#44256; &#51060;&#50976;&#45716; &#47784;&#47476;&#44192;&#51648;&#47564; &#51096; &#50504; &#54644;&#51452;&#47140;&#44256; &#54633;&#45768;&#45796;. &#47932;&#47200; &#51064;&#53552;&#45367;&#50640; &#44057;&#51008; &#51613;&#49345;&#51012; &#44202;&#51008; &#51060;&#50857;&#51088;&#46308;&#51060; &#50732;&#47536; &#54644;&#44208;&#52293;&#51060; &#51080;&#51648;&#47564; &#51201;&#50857;&#54624; &#49688;&#44032; &#50630;&#49845;&#45768;&#45796;.</p><h4>&#51064;&#53552;&#45367;&#50640; &#44277;&#50976;&#46104;&#44256; &#51080;&#45716; &#54532;&#47196;&#54028;&#51068;&#51008; &#51217;&#49549;&nbsp;&#48520;&#44032;&#45733;</h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kLkK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kLkK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 424w, https://substackcdn.com/image/fetch/$s_!kLkK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 848w, https://substackcdn.com/image/fetch/$s_!kLkK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 1272w, https://substackcdn.com/image/fetch/$s_!kLkK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kLkK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kLkK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 424w, https://substackcdn.com/image/fetch/$s_!kLkK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 848w, https://substackcdn.com/image/fetch/$s_!kLkK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 1272w, https://substackcdn.com/image/fetch/$s_!kLkK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0895b-3aa1-483c-869c-b34f7100d684_800x264.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#52636;&#52376;&#8202;&#8212;&#8202;<a href="https://www.clien.net/service/board/lecture/3190578">https://www.clien.net/service/board/lecture/3190578</a></figcaption></figure></div><p>&#46041;&#51068;&#54620; &#47928;&#51228;&#47484; &#44032;&#51652; &#51060;&#50857;&#51088;&#46308;&#51060; &#44284;&#44144; KT&#50640;&#49436; &#48155;&#51008; &#54532;&#47196;&#54028;&#51068;&#51012; &#44277;&#50976;&#54620; &#44544;&#51012; &#47566;&#51060; &#48380; &#49688; &#51080;&#45716;&#45936;, &#46020;&#47700;&#51064; &#51452;&#49548;&#44032; &#47564;&#47308;&#46076;&#49436; &#45908; &#51060;&#49345; &#51217;&#49549;&#51012; &#54624; &#49688;&#44032; &#50630;&#49845;&#45768;&#45796;.</p><h4>&#44256;&#44061;&#49468;&#53552;&#47484; &#53685;&#54644; &#54532;&#47196;&#54028;&#51068;&#51012; &#51228;&#44277;&#48155;&#50500;&#46020;, 17&#45380; 11&#50900;&#48512;&#53552;&#45716; &#49324;&#50857;&nbsp;&#47803;&#54644;</h4><p>&#54788;&#51116;, &#51648;&#54616;&#52384; &#46321; &#44277;&#44277;&#51109;&#49548;&#50640; &#44032;&#47732; &#44592;&#51316;&#51032; Olleh WiFi &#50808;&#50640;&#46020; KT Wifi, KT GiGA WiFi &#46972;&#45716; &#51060;&#47492;&#51032; SSID&#47484; &#48380; &#49688;&#44032; &#51080;&#45716;&#45936;&#50836;, KT&#44032; Olleh &#48652;&#47004;&#46300;&#47484; &#48260;&#47532;&#47732;&#49436; &#51060;&#50640; &#46384;&#46972; SSID&#46020; &#48320;&#44221;&#54616;&#47728; &#49373;&#44596; &#49352;&#47196;&#50868; SSID&#51077;&#45768;&#45796;.</p><blockquote><p>2017&#45380; 11&#50900;&#51012; &#44592;&#51456;&#51004;&#47196; <strong>KT &#50752;&#51060;&#54028;&#51060;</strong>&#45716;</p><ul><li><p><strong>ollehWiFi</strong>, <strong>olleh GiGA WiFi</strong> (KT &#44256;&#44061; &#51204;&#50857;, 2017&#45380; 11&#50900;&#48512;&#53552; &#49692;&#52264;&#51201;&#51004;&#47196; &#49569;&#52636; &#51333;&#47308; &#50696;&#51221;)</p></li><li><p><strong>KT_Free_WiFi</strong> (&#44060;&#48169;&#54805;, &#44277;&#44277;&#51109;&#49548; &#48143; &#45824;&#51473;&#44368;&#53685; &#44061;&#49892;&#50640;&#49436; &#49569;&#52636;)</p></li><li><p><strong>KT</strong>, <strong>KT WiFi</strong>, <strong>KT GiGA WiFi</strong> (KT &#44256;&#44061; &#51204;&#50857;, 2017&#45380; 11&#50900;&#48512;&#53552; &#49569;&#52636;)</p></li><li><p><strong>KT_starbucks</strong>, <strong>KT-starbucks</strong> (&#44060;&#48169;&#54805;, &#44397;&#45236; <a href="https://namu.wiki/w/%EC%8A%A4%ED%83%80%EB%B2%85%EC%8A%A4">&#49828;&#53440;&#48261;&#49828;</a> &#47588;&#51109;&#50640;&#49436; &#49569;&#52636;)</p></li></ul></blockquote><p>&#50669;&#49884;&#45208; &#45208;&#47924;&#50948;&#53412;&#50640; &#46384;&#47476;&#47732;, &#44592;&#51316;&#51032; OllehWiFi&#47484; 11&#50900;&#48512;&#53552; &#49692;&#52264;&#51201;&#51004;&#47196; &#51333;&#47308;&#54624; &#50696;&#51221;&#51060;&#46972;&#44256; &#54633;&#45768;&#45796;.</p><p>&#54616;&#51648;&#47564;, &#50668;&#51204;&#55176; KT &#44256;&#44061;&#49468;&#53552;&#50640;&#49436;&#45716; &#51060;&#47484; &#48152;&#50689;&#54616;&#51648; &#50506;&#51008; &#44592;&#51316; OllehWiFi &#54532;&#47196;&#54028;&#51068;&#47564; &#48176;&#54252;&#54633;&#45768;&#45796;.</p><h3>KT WiFi, KT GIGA WiFi &#54532;&#47196;&#54028;&#51068;&nbsp;&#48176;&#54252;</h3><p>&#44536;&#47000;&#49436; &#51228;&#44032; &#44256;&#44061;&#49468;&#53552;&#47484; &#53685;&#54644; &#48155;&#51008; &#54532;&#47196;&#54028;&#51068;&#51012; &#44592;&#48152;&#51004;&#47196; KT WiFi&#50752; KT GIGA WiFi&#50640; &#51217;&#49549;&#54624; &#49688; &#51080;&#46020;&#47197; &#49688;&#51221;&#54616;&#50688;&#49845;&#45768;&#45796;. &#45908;&#48520;&#50612; &#44592;&#51316; KT&#50640;&#49436; &#48155;&#51008; Olleh WiFi &#54532;&#47196;&#54028;&#51068; &#46608;&#54620; &#44277;&#50976;&#54616;&#47140;&#44256; &#54633;&#45768;&#45796;.</p><p>&#45796;&#51020;&#51032; &#51452;&#49548;&#47484; iPhone Safari&#47484; &#53685;&#54644; &#54532;&#47196;&#54028;&#51068;&#51012; &#49444;&#52824;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;. &#48152;&#46300;&#49884; Safari&#47484; &#53685;&#54644; &#51217;&#49549;&#54616;&#49492;&#50556; &#54532;&#47196;&#54028;&#51068;&#51012; &#49444;&#52824;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://share.dongri.me/zXbp&quot;,&quot;text&quot;:&quot;KT WiFi PROFILE &#45796;&#50868;&#47196;&#46300;&#54616;&#44592;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://share.dongri.me/zXbp"><span>KT WiFi PROFILE &#45796;&#50868;&#47196;&#46300;&#54616;&#44592;</span></a></p><h4>&#49444;&#52824; &#48169;&#48277;</h4><p>&#54841;&#49884;&#46972;&#46020; &#51217;&#49549;&#51060; &#50504; &#46104;&#45716; &#49324;&#53468;&#47484; &#48169;&#51648;&#54616;&#44592; &#50948;&#54644;, OllehWiFi (&#44256;&#44061;&#49468;&#53552;&#50640;&#49436; &#51228;&#44277;&#48155;&#51008; &#54028;&#51068; &#44536;&#45824;&#47196;)&#47484; &#54252;&#54632; &#52509; 3&#44060;&#51032; &#54532;&#47196;&#54028;&#51068;&#51012; &#49444;&#52824;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><ol><li><p>olleWiFiSetting.mobileconfig &#8212;&#44592;&#51316; KT&#50640;&#49436; &#48176;&#54252;&#54620; Olleh WiFi&#50857; &#54532;&#47196;&#54028;&#51068;</p></li><li><p>ktWiFiSetting.mobileconfig&#8202;&#8212;&#8202;KT WiFi&#50857; &#54532;&#47196;&#54028;&#51068;</p></li><li><p>ktGIGAWiFiSetting.mobileconfig&#8202;&#8212;&#8202;KT GIGA WiFi&#50857; &#54532;&#47196;&#54028;&#51068;</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4esm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4esm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 424w, https://substackcdn.com/image/fetch/$s_!4esm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 848w, https://substackcdn.com/image/fetch/$s_!4esm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!4esm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4esm!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png" width="1200" height="718.6813186813187" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:872,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:430099,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4esm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 424w, https://substackcdn.com/image/fetch/$s_!4esm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 848w, https://substackcdn.com/image/fetch/$s_!4esm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!4esm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fd12d4f-9911-4095-8208-fc7011045841_2310x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#49444;&#52824;&#47484; &#45572;&#47476;&#49884;&#44256;, &#51088;&#49888;&#51032; iPhone &#48708;&#48128;&#48264;&#54840;&#47484; &#51077;&#47141;&#54633;&#45768;&#45796;.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5taJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5taJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 424w, https://substackcdn.com/image/fetch/$s_!5taJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 848w, https://substackcdn.com/image/fetch/$s_!5taJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!5taJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5taJ!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png" width="1200" height="718.6813186813187" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:872,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:310063,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5taJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 424w, https://substackcdn.com/image/fetch/$s_!5taJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 848w, https://substackcdn.com/image/fetch/$s_!5taJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!5taJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65a605-8793-46f6-9d62-e0ccdaa72414_2310x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51060;&#50612;&#49436; &#49444;&#52824; &#48260;&#53948;&#51012; &#45580;&#47084; &#54532;&#47196;&#54028;&#51068; &#49444;&#52824;&#47484; &#50756;&#47308;&#54633;&#45768;&#45796;.</figcaption></figure></div><p></p><p>&#49444;&#52824;&#54616;&#49888; &#54980; &#54872;&#44221;&#49444;&#51221;&#50640;&#49436; &#45348;&#53944;&#50892;&#53356; &#52488;&#44592;&#54868;&#47484; &#54620;&#48264; &#51652;&#54665;&#54644; &#51452;&#49492;&#50556; &#54633;&#45768;&#45796;. &#45800;, &#51060;&#46412; &#51200;&#51109;&#46108; WiFi &#49444;&#51221;&#46308;&#51060; &#52488;&#44592;&#54868;&#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YGyd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YGyd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 424w, https://substackcdn.com/image/fetch/$s_!YGyd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 848w, https://substackcdn.com/image/fetch/$s_!YGyd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!YGyd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YGyd!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png" width="1200" height="718.6813186813187" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:872,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:488841,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YGyd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 424w, https://substackcdn.com/image/fetch/$s_!YGyd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 848w, https://substackcdn.com/image/fetch/$s_!YGyd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!YGyd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03565a3d-22a2-4012-9fc3-004dd9b0f3b6_2310x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51068;&#48152; &gt; &#51116;&#49444;&#51221; &gt; &#45348;&#53944;&#50892;&#53356; &#49444;&#51221; &#51116;&#49444;&#51221;</figcaption></figure></div><p></p><h4>&#54532;&#47196;&#54028;&#51068; &#49444;&#52824;&nbsp;&#50756;&#47308;</h4><p>3&#44060;&#51032; &#54532;&#47196;&#54028;&#51068;&#51012; &#47784;&#46160; &#51221;&#49345;&#51201;&#51004;&#47196; &#49444;&#52824;&#54664;&#45796;&#47732; &#45796;&#51020;&#44284; &#44057;&#51060; &#45208;&#53440;&#45225;&#45768;&#45796;. &#51060;&#51228;&#48512;&#53552; &#51648;&#54616;&#52384; &#46321; &#44277;&#44277;&#51109;&#49548;&#50640;&#49436; &#51228;&#44277;&#54616;&#45716; KT WiFi &#48372;&#50504;&#47581; &#51217;&#49549;&#51060; &#44032;&#45733;&#54644;&#51665;&#45768;&#45796;!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!53mZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!53mZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 424w, https://substackcdn.com/image/fetch/$s_!53mZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 848w, https://substackcdn.com/image/fetch/$s_!53mZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!53mZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!53mZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png" width="790" height="1384" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1384,&quot;width&quot;:790,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:139963,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!53mZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 424w, https://substackcdn.com/image/fetch/$s_!53mZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 848w, https://substackcdn.com/image/fetch/$s_!53mZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!53mZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e5ff58d-b8d2-4279-970f-cfedebff08f1_790x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>&#51228;&#44032; &#49688;&#51221;&#54620; &#54532;&#47196;&#54028;&#51068;&#51008; &#48320;&#44221;&#46108; SSID &#48512;&#48516;&#51012; &#48152;&#50689;&#54616;&#44256;, &#54532;&#47196;&#54028;&#51068; ID&#47564; &#48320;&#44221;&#54664;&#49845;&#45768;&#45796;. &#46384;&#46972;&#49436; (&#51060; &#54252;&#49828;&#53944;&#47484; &#53685;&#54644; &#48155;&#51004;&#49512;&#45796;&#47732;) &#51060;&#49345;&#54620; &#48148;&#51060;&#47084;&#49828;&#45208; &#50501;&#49457;&#53076;&#46300;&#45716; &#51204;&#54784; &#50630;&#44256;, &#54841;&#49884;&#46972;&#46020; &#49444;&#52824; &#54980;&#50640;&#46020; &#51217;&#49549;&#51060; &#50504; &#46108;&#45796;&#47732;  &#44536;&#45285; &#54532;&#47196;&#54028;&#51068;&#47564; &#49325;&#51228;&#54644; &#51452;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eQaH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eQaH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 424w, https://substackcdn.com/image/fetch/$s_!eQaH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 848w, https://substackcdn.com/image/fetch/$s_!eQaH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!eQaH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eQaH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png" width="790" height="1384" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1384,&quot;width&quot;:790,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:278626,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eQaH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 424w, https://substackcdn.com/image/fetch/$s_!eQaH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 848w, https://substackcdn.com/image/fetch/$s_!eQaH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!eQaH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F547cfb74-74c6-465e-8d41-c7f3753d5c4f_790x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#54532;&#47196;&#54028;&#51068; &#49444;&#52824; &#54980; &#51221;&#49345; &#51217;&#49549;&nbsp;&#44032;&#45733;</figcaption></figure></div><p></p><p>&#51200;&#45716; &#51096; &#51201;&#50857;&#54616;&#50668; &#51221;&#49345;&#51201;&#51004;&#47196; &#51060;&#50857;&#54616;&#44256; &#51080;&#49845;&#45768;&#45796;. &#54532;&#47196;&#54028;&#51068;&#51012; &#53685;&#54644; WiFi &#48372;&#50504;&#47581;&#51012; &#51060;&#50857;&#54624; &#44221;&#50864;&#50640; <strong>&#8216;&#44060;&#51064; &#51221;&#48372; &#48372;&#54840; &#44221;&#44256;&#8217;</strong>&#46972;&#45716; &#47700;&#49884;&#51648;&#44032; &#46888;&#45716;&#45936;, &#51060;&#45716; &#51217;&#49549; &#51221;&#48372;&#47484; &#48120;&#47532; &#51200;&#51109;&#54644;&#45480;&#44592; &#46412;&#47928;&#50640; &#48156;&#49373;&#54616;&#45716; &#44163;&#51004;&#47196; &#50696;&#49345;&#54644; &#48389;&#45768;&#45796;.</p><p><strong>KT &#44256;&#44061;&#49468;&#53552;&#50640;&#49436; &#48176;&#54252;&#54620; &#54532;&#47196;&#54028;&#51068;&#51012; &#49444;&#52824;&#54644;&#46020; &#46041;&#51068;&#54620; &#47700;&#49884;&#51648;&#44032; &#45208;&#53440;&#45225;&#45768;&#45796;.</strong></p><p>&#51221; &#48520;&#50504;&#54616;&#49884;&#45796;&#47732;, &#51228;&#44032; &#44256;&#44061;&#49468;&#53552;&#47484; &#53685;&#54644; &#44277;&#49885;&#51004;&#47196; &#48155;&#51008; &#54532;&#47196;&#54028;&#51068;&#51012; &#49444;&#52824;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;. (&#45800;, Olleh WiFi&#47564; &#51217;&#49549;&#46104;&#47728; &#49352;&#47213;&#44172; &#48320;&#44221;&#46104;&#45716; SSID&#45716; &#48152;&#50689;&#46104;&#50612; &#51080;&#51648; &#50506;&#49845;&#45768;&#45796;.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lE-n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lE-n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 424w, https://substackcdn.com/image/fetch/$s_!lE-n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 848w, https://substackcdn.com/image/fetch/$s_!lE-n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!lE-n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lE-n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png" width="790" height="1384" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1384,&quot;width&quot;:790,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:378219,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lE-n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 424w, https://substackcdn.com/image/fetch/$s_!lE-n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 848w, https://substackcdn.com/image/fetch/$s_!lE-n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!lE-n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff370f33c-63fa-4e02-82df-07f4ac1af811_790x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51649;&#51217; &#44256;&#44061;&#49468;&#53552;&#47484; &#53685;&#54644; &#54532;&#47196;&#54028;&#51068; &#49444;&#52824; &#51452;&#49548;&#47484;&nbsp;&#50619;&#50632;&#49845;&#45768;&#45796;.</figcaption></figure></div><p></p><blockquote><p><em><strong>2018.10.06&#51068; &#44592;&#51456;,</strong></em> <br><a href="http://zone.wifi.kt.com/wprofile/olleWiFiSetting.mobileconfig">http://zone.wifi.kt.com/wprofile/olleWiFiSetting.mobileconfig</a><br><em>KT&#52769;&#50640;&#49436; &#50948; &#47553;&#53356;&#47484; &#49325;&#51228;&#54664;&#49845;&#45768;&#45796;.<br>&#44396;&#44544; &#46300;&#46972;&#51060;&#48652;&#47484; &#53685;&#54644; &#45796;&#50868;&#47196;&#46300; &#48143; &#49444;&#52824; &#54616;&#49492;&#50556; &#54633;&#45768;&#45796;</em>.</p></blockquote><blockquote><p><strong>2018.11.14&#51068; &#44592;&#51456;,</strong> <br>&#49352;&#47196; &#50629;&#45936;&#51060;&#53944; &#46108; &#44277;&#49885; &#51452;&#49548; &#51077;&#45768;&#45796;.<br><a href="http://wifi.kt.com/wprofile/olleWiFiSetting.mobileconfig">http://wifi.kt.com/wprofile/olleWiFiSetting.mobileconfig</a></p></blockquote><p>&#45796;&#49884; &#50616;&#51228; &#47561;&#55184;&#51648; &#47784;&#47476;&#45768;, &#48120;&#47532; &#48155;&#50500;&#46160;&#49884;&#45716; &#44163;&#51012; &#44428;&#51109;&#54633;&#45768;&#45796;.</p><blockquote><p><strong>2019.05.24 &#44592;&#51456;,<br></strong>3&#44060;&#51032; &#54532;&#47196;&#54028;&#51068;&#51012; &#54620;&#44032;&#51648;&#47196; &#54633;&#52452;&#49845;&#45768;&#45796;. &#50948; Google Drive &#47553;&#53356;&#50640;&#49436; 2019.05.24 &#46356;&#47113;&#53552;&#47532; &#50504;&#51032; KT_WiFi_PROFILE.mobileconfig &#54028;&#51068; &#45236;&#47140;&#48155;&#51004;&#49492;&#49436; &#49444;&#52824;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.</p></blockquote><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zxAQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zxAQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 424w, https://substackcdn.com/image/fetch/$s_!zxAQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 848w, https://substackcdn.com/image/fetch/$s_!zxAQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!zxAQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zxAQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png" width="1456" height="1300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1300,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:297866,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zxAQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 424w, https://substackcdn.com/image/fetch/$s_!zxAQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 848w, https://substackcdn.com/image/fetch/$s_!zxAQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!zxAQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7788b41c-8fc6-4314-8ba2-616fc37f08a6_1550x1384.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#50948;&#50752; &#44057;&#51060; 3&#44060;&#51032; WiFi &#54532;&#47196;&#54028;&#51068;&#51012; &#53685;&#54633;&#54664;&#49845;&#45768;&#45796;. (2019.05.24)</figcaption></figure></div><p>&#51200;&#52376;&#47100; KT&#50640;&#49436; iPhone&#51012; &#49324;&#50857;&#54616;&#44256; &#44228;&#49884;&#44256; &#46041;&#51068;&#54620; &#47928;&#51228;&#47484; &#44202;&#51004;&#49884;&#45716; &#48516;&#46308;&#44760; &#46020;&#50880;&#51060; &#46104;&#50632;&#51004;&#47732; &#54633;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[Google Maps Style 적용하기]]></title><description><![CDATA[&#54620;&#44397;&#50640;&#49436;&#45716; &#51201;&#50857; &#48520;&#44032;&#45733; (&#54644;&#50808; &#51648;&#46020; &#51204;&#50857;)]]></description><link>https://lab.dongri.me/p/google-maps-style-guide</link><guid isPermaLink="false">https://lab.dongri.me/p/google-maps-style-guide</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sat, 12 Aug 2017 11:36:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8c274827-a99c-4133-928c-c09aba23b773_1200x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#51200;&#45716; &#51648;&#44552;&#44620;&#51648; &#50808;&#48512; &#51648;&#46020; API&#47484; &#49341;&#51077;&#54624; &#46412; &#49828;&#53440;&#51068; &#48320;&#44221;&#51060; &#44032;&#45733;&#54624; &#44163;&#51008; OpenStreetMap&#47564; &#51080;&#45716; &#51460; &#50508;&#50520;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="http://typojanchi.org/2015/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bN5L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 424w, https://substackcdn.com/image/fetch/$s_!bN5L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 848w, https://substackcdn.com/image/fetch/$s_!bN5L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 1272w, https://substackcdn.com/image/fetch/$s_!bN5L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bN5L!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png" width="1200" height="618.1318681318681" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:750,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:878550,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://typojanchi.org/2015/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bN5L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 424w, https://substackcdn.com/image/fetch/$s_!bN5L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 848w, https://substackcdn.com/image/fetch/$s_!bN5L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 1272w, https://substackcdn.com/image/fetch/$s_!bN5L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ba0ce5-fc5a-473e-97ed-4b5a41245b6a_1960x1010.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#54620;&#44397; &#53440;&#51060;&#54252;&#51092;&#52824; 2015&#50640; &#51201;&#50857;&#46108; OpenStreet API <a href="http://typojanchi.org/2015/">(typojanchi.org/2015)</a></figcaption></figure></div><p>&#54620;&#44397; &#53440;&#51060;&#54252;&#51092;&#52824; 2015&#45380;&#46020; &#49324;&#51060;&#53944;&#50640; OpenStreetMap&#51060; &#50416;&#50688;&#44592; &#46412;&#47928;&#51077;&#45768;&#45796;.<br>&#50724;&#45720; Google&#50640;&#49436;&#46020; &#51648;&#46020;&#51032; &#49828;&#53440;&#51068;&#51012; &#48320;&#44221;&#54624; &#49688; &#51080;&#45796;&#45716; &#44163;&#51012; &#50508;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ESM7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ESM7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 424w, https://substackcdn.com/image/fetch/$s_!ESM7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 848w, https://substackcdn.com/image/fetch/$s_!ESM7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 1272w, https://substackcdn.com/image/fetch/$s_!ESM7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ESM7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png" width="1456" height="939" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de95b69f-06d9-4868-8656-be6790339e19_1463x944.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:939,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:944866,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ESM7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 424w, https://substackcdn.com/image/fetch/$s_!ESM7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 848w, https://substackcdn.com/image/fetch/$s_!ESM7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 1272w, https://substackcdn.com/image/fetch/$s_!ESM7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde95b69f-06d9-4868-8656-be6790339e19_1463x944.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Google map&#51032; &#45796;&#50577;&#54620; &#49828;&#53440;&#51068; &#48320;&#44221;&#51012; &#44277;&#50976;&#54624; &#49688; &#51080;&#45716; snazzymaps</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://snazzymaps.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t_40!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!t_40!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!t_40!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!t_40!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t_40!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:135312,&quot;alt&quot;:&quot;Snazzy Maps - Free Styles for Google Maps&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://snazzymaps.com/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Snazzy Maps - Free Styles for Google Maps" title="Snazzy Maps - Free Styles for Google Maps" srcset="https://substackcdn.com/image/fetch/$s_!t_40!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!t_40!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!t_40!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!t_40!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03c3700e-2cfe-48f3-b33e-df84c41e9ab3_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>JSON &#53440;&#51077;&#51032; &#49828;&#53356;&#47549;&#53944;&#47484; Google Maps &#49341;&#51077; &#49828;&#53356;&#47549;&#53944;&#50752; &#54632;&#44760; &#45347;&#50612;&#51452;&#49884;&#47732; &#46104;&#45716; &#44148;&#45936;&#50836;,</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://developers.google.com/maps/documentation/javascript/styling?hl=ko" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RCSr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!RCSr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!RCSr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!RCSr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RCSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48456,&quot;alt&quot;:&quot;&#51648;&#46020; &#49828;&#53440;&#51068; &#51648;&#51221; &#49884;&#51089; | Google Maps JavaScript API | Google Developers&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://developers.google.com/maps/documentation/javascript/styling?hl=ko&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#51648;&#46020; &#49828;&#53440;&#51068; &#51648;&#51221; &#49884;&#51089; | Google Maps JavaScript API | Google Developers" title="&#51648;&#46020; &#49828;&#53440;&#51068; &#51648;&#51221; &#49884;&#51089; | Google Maps JavaScript API | Google Developers" srcset="https://substackcdn.com/image/fetch/$s_!RCSr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!RCSr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!RCSr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!RCSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9681bc45-6450-4328-b6a7-bd00fac203bd_1080x255.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#50668;&#44592;&#50640; &#51088;&#49464;&#55176; &#49444;&#47749;&#46104;&#50612; &#51080;&#49845;&#45768;&#45796;.</p><div><hr></div><p>&#50500;&#47924;&#47532; &#50948; &#48169;&#48277;&#51012; &#51201;&#50857;&#54644;&#46020; Google Maps&#45716; &#48148;&#45068;&#51648; &#50506;&#49845;&#45768;&#45796;. &#51060;&#50976;&#45716; &#44397;&#45236; &#48277;&#49345; &#52769;&#47049; &#51648;&#46020;&#47484; &#54644;&#50808;&#47196; &#48152;&#52636;&#54624; &#49688; &#50630;&#44592; &#46412;&#47928;&#51077;&#45768;&#45796;. &#51060;&#50752; &#44288;&#47144;&#54616;&#50668; &#44592;&#45733;&#49345;&#51032; &#51228;&#50557;&#51060; &#46384;&#47480; &#44163;&#51004;&#47196; &#48372;&#51077;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Km_Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Km_Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 424w, https://substackcdn.com/image/fetch/$s_!Km_Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 848w, https://substackcdn.com/image/fetch/$s_!Km_Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 1272w, https://substackcdn.com/image/fetch/$s_!Km_Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Km_Z!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png" width="1200" height="322.55834053586864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:311,&quot;width&quot;:1157,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:146907,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Km_Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 424w, https://substackcdn.com/image/fetch/$s_!Km_Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 848w, https://substackcdn.com/image/fetch/$s_!Km_Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 1272w, https://substackcdn.com/image/fetch/$s_!Km_Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c191cd7-e73a-4e5f-9725-63d62d58912d_1157x311.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#46104;&#46020;&#47197;, &#44397;&#45236; &#51648;&#46020;&#45716; OpenStreetMap&#51012; &#54644;&#50808; &#51648;&#46020;&#45716; Google Maps&#47484; &#51060;&#50857;&#54616;&#45716; &#44163;&#51060; &#51339;&#44192;&#49845;&#45768;&#45796;. (&#45800;, OpenStreetMap&#51008; &#49324;&#50857;&#51088;&#46308;&#51060; &#51649;&#51217; &#47564;&#46300;&#45716; &#44163;&#51060;&#46972; &#44397;&#45236; &#48264;&#54868;&#44032;&#45208; &#50976;&#47749;&#51109;&#49548; &#51060;&#50808;&#50640;&#45716; &#51096;&#47803;&#46108; &#45936;&#51060;&#53552;&#44032; &#47566;&#44144;&#45208; &#51221;&#48372;&#44032; &#48512;&#51313;&#54633;&#45768;&#45796;.)</p>]]></content:encoded></item><item><title><![CDATA[배치 파일(batch file)로 Host 차단 스크립트 만들기]]></title><description><![CDATA[&#48176;&#52824; &#54028;&#51068;(batch file)&#47196; Host &#52264;&#45800; &#49828;&#53356;&#47549;&#53944; &#47564;&#46308;&#44592;&#47484; &#51649;&#51217; &#44396;&#54788;&#54616;&#47728; &#54596;&#50836;&#54620; &#44060;&#45392;&#44284; &#51089;&#50629; &#55120;&#47492;&#51012; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;. Batch File, Hosts, Windows&#47484; &#54876;&#50857;&#54620; &#50696;&#51228;&#50752; &#51201;&#50857; &#54252;&#51064;&#53944;&#47484; &#54869;&#51064;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/batch-file-hosts-block-script</link><guid isPermaLink="false">https://lab.dongri.me/p/batch-file-hosts-block-script</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sat, 15 Jul 2017 13:26:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3811d9da-de5f-4c1e-a7d0-e06d08fd73be_800x357.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://noopy.tistory.com/entry/%EB%B0%B0%EC%B9%98%ED%8C%8C%EC%9D%BCbat%EB%A1%9C-HOSTS-%EC%9D%BC%EA%B4%84-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y5-M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!y5-M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!y5-M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!y5-M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y5-M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31799,&quot;alt&quot;:&quot;&#46020;&#49828; &#47749;&#47161;&#50612;&#47196; HOSTS &#51068;&#44292; &#49688;&#51221;&#54616;&#44592;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://noopy.tistory.com/entry/%EB%B0%B0%EC%B9%98%ED%8C%8C%EC%9D%BCbat%EB%A1%9C-HOSTS-%EC%9D%BC%EA%B4%84-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#46020;&#49828; &#47749;&#47161;&#50612;&#47196; HOSTS &#51068;&#44292; &#49688;&#51221;&#54616;&#44592;" title="&#46020;&#49828; &#47749;&#47161;&#50612;&#47196; HOSTS &#51068;&#44292; &#49688;&#51221;&#54616;&#44592;" srcset="https://substackcdn.com/image/fetch/$s_!y5-M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!y5-M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!y5-M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!y5-M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e6f51b-87f1-48cd-aeda-697042359105_1080x255.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>&#50948;&#51032; &#54252;&#49828;&#54021;&#51012; &#52280;&#44256;&#54616;&#50668; &#51328; &#45908; &#45796;&#46316;&#50612; &#48420;&#49845;&#45768;&#45796;. &#49548;&#54532;&#53944;&#50920;&#50612;&#47484; &#49324;&#50857;&#54624; &#46412; &#46104;&#46020;&#47197; &#51221;&#45817;&#54620; &#45824;&#44032;&#47484; &#51452;&#44256; &#44396;&#47588;&#54644;&#49436; &#49324;&#50857;&#54616;&#44256; &#51080;&#49845;&#45768;&#45796;&#47564; &#44536;&#47111;&#51648; &#47803;&#54624; &#51221;&#46020;&#47196; &#48708;&#49916; &#47751;&#47751; &#54532;&#47196;&#44536;&#47016;&#46308;&#51060; &#51080;&#49845;&#45768;&#45796;. &#47932;&#47200;, &#50612;&#46500; &#51060;&#50976;&#50640;&#49436;&#46304; &#48520;&#48277;&#51064; &#44163;&#51008; &#47582;&#49845;&#45768;&#45796;.</p><p>&#48520;&#48277;&#51004;&#47196; &#44284;&#51088;&#47484; &#44396;&#54644; &#51201;&#50857;&#54624; &#46412; &#45824;&#45796;&#49688;&#44032; &#51064;&#53552;&#45367;&#51012; &#51060;&#50857;&#54620; &#51064;&#51613;&#51012; &#49324;&#50857;&#54616;&#48064;&#47196; &#51060;&#47484; HOST &#54028;&#51068;&#51012; &#51060;&#50857;&#54644; &#52264;&#45800;&#54644;&#50556; &#54633;&#45768;&#45796;. &#52828;&#51208;&#54620; &#44221;&#50864; &#47112;&#51648;&#49828;&#53944;&#47532; &#54028;&#51068;&#51060;&#45208; BAT &#54028;&#51068;&#47196; &#51228;&#44277;&#54616;&#45208;, &#44536;&#47111;&#51648; &#50506;&#51008; &#44221;&#50864; &#51068;&#51068;&#51060; &#52628;&#44032;&#54644;&#50556; &#54616;&#44256; &#44288;&#47532;&#51088; &#44428;&#54620;&#51004;&#47196; &#51217;&#44540;&#54644;&#50556; &#54616;&#45716; &#46321; &#49789;&#51648;&#47564; &#48264;&#44144;&#47196;&#50868; &#51089;&#50629;&#51012; &#47566;&#51060; &#44144;&#52432;&#50556; &#54633;&#45768;&#45796;.</p><p>&#51060;&#50640; &#46384;&#46972;, &#44288;&#47532;&#51088; &#44428;&#54620;&#51012; &#54869;&#51064;&#44284; &#44592;&#51316; HOST&#50640; &#46321;&#47197;&#46108; &#44163;&#44284; &#51473;&#48373; &#50668;&#48512;&#47484; &#54869;&#51064;&#54616;&#45716; &#44396;&#47928;&#51012; &#45908; &#52628;&#44032;&#54664;&#49845;&#45768;&#45796;.</p><pre><code>@echo off
color 1F
title HOST Edit Script
bcdedit &gt; nul || (echo &#50724;&#47480;&#51901; &#47560;&#50864;&#49828; &#53364;&#47533; &#54980;, &#44288;&#47532;&#51088; &#44428;&#54620;&#51004;&#47196; &#45796;&#49884; &#49892;&#54665;&#54644;&#51452;&#49464;&#50836;. &amp; pause &amp; exit)

SET NEWLINE=^&amp; echo.

FIND /C /I "&#52264;&#45800;&#54616;&#44256;&#51088; &#54624; &#51452;&#49548;" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^127.0.0.1                   &#52264;&#45800;&#54616;&#44256;&#51088; &#54624; &#51452;&#49548;&gt;&gt;%WINDIR%\system32\drivers\etc\hosts</code></pre><p>&#47592; &#47560;&#51648;&#47561; &#51460;&#51012; &#48373;&#49324;&#183;&#48537;&#50668; &#45347;&#44592; &#54616;&#49492;&#49436; &#52264;&#45800;&#54616;&#44256;&#51088; &#54624; &#51452;&#49548;&#47484; &#45347;&#50612; &#49324;&#50857;&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ceBS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ceBS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 424w, https://substackcdn.com/image/fetch/$s_!ceBS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 848w, https://substackcdn.com/image/fetch/$s_!ceBS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 1272w, https://substackcdn.com/image/fetch/$s_!ceBS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ceBS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ceBS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 424w, https://substackcdn.com/image/fetch/$s_!ceBS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 848w, https://substackcdn.com/image/fetch/$s_!ceBS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 1272w, https://substackcdn.com/image/fetch/$s_!ceBS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F369f324c-c2cd-46df-9076-21eaab8b9b8d_800x357.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#47700;&#47784;&#51109;&#50640;&#49436; &#54644;&#45817; &#53076;&#46300;&#47484; &#49341;&#51077; &#54980;,<br><strong>&#45796;&#47480; &#51060;&#47492;&#51004;&#47196; &#51200;&#51109; &#8594; &#54028;&#51068; &#54805;&#49885; &#8216;&#47784;&#46304; &#54028;&#51068;&#8217; &#8594; &#54869;&#51109;&#51088; &#8216;.bat&#8217;</strong></p><p></p>]]></content:encoded></item><item><title><![CDATA[Firebase 발급 및 도메인 연결]]></title><description><![CDATA[Firebase &#48156;&#44553; &#48143; &#46020;&#47700;&#51064; &#50672;&#44208;&#50640; &#45824;&#54620; &#44060;&#48156; &#44592;&#47197;&#51077;&#45768;&#45796;. Firebase, Hosting, Custom Domain &#44288;&#47144; &#49444;&#51221;, &#49324;&#50857;&#48277;, &#44396;&#54788; &#44284;&#51221;&#50640;&#49436; &#54869;&#51064;&#54620; &#54645;&#49900; &#54252;&#51064;&#53944;&#47484; &#44036;&#45800;&#55176; &#51221;&#47532;&#54664;&#49845;&#45768;&#45796;.]]></description><link>https://lab.dongri.me/p/firebase-hosting-custom-domain-setup</link><guid isPermaLink="false">https://lab.dongri.me/p/firebase-hosting-custom-domain-setup</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Sun, 07 May 2017 17:41:36 GMT</pubDate><enclosure url="https://cdn-images-1.medium.com/max/800/1*BOBC4BQ0QviZv00jA2M8jw.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Firebase&#45716; &#51089;&#45380; Google GDG Incheon &#54665;&#49324; &#46412; &#44032;&#49436; &#52376;&#51020; &#51217;&#54664;&#49845;&#45768;&#45796;. &#47566;&#51060; &#46308;&#50612;&#48372;&#49512;&#51012; &#44144;&#47196; &#49373;&#44033;&#54616;&#45716; Google Web engine&#44284; &#48708;&#49847;&#54633;&#45768;&#45796;. Google&#50640;&#49436; &#49436;&#48708;&#49828;&#54616;&#45716; &#44163;&#44620;&#51648;&#46020;&#50836;&#8230; &#49892;&#49884;&#44036; &#45936;&#51060;&#53552; &#49436;&#48260;&#46972;&#45716;&#45936; &#48708;&#51204;&#44277;&#51088;&#51064; &#51200;&#47196;&#49436;&#45716; &#51096; &#47784;&#47476;&#44192;&#49845;&#45768;&#45796;.</p><p>Telegram bot&#51012; &#51328; &#45908; &#45796;&#46316;&#50612; &#48372;&#44256; &#49910;&#50612;&#49436; Firebase&#47484; &#45796;&#49884; &#44732;&#45236;&#48372;&#45716; &#44608;&#50640; &#54252;&#49828;&#54021;&#54616;&#44172; &#46104;&#50632;&#45348;&#50836;.</p><p>Firebase&#45716; &#50864;&#47532;&#44032; &#51068;&#48152;&#51201;&#51004;&#47196; &#49373;&#44033;&#54616;&#45716; &#54840;&#49828;&#54021;&#44284;&#45716; &#45796;&#47476;&#47728; &#46608; AWS&#52376;&#47100; &#50500;&#50696; &#49436;&#48260;&#47484; &#48156;&#44553;&#48155;&#50500; &#51452;&#47932;&#47085;&#44144;&#47540; &#49688; &#51080;&#45716; &#44148; &#50500;&#45785;&#45768;&#45796;. AWS&#47484; &#49324;&#50857;&#54616;&#44256; &#49910;&#51004;&#45208;, 13&#45380;&#46020; &#49373;&#54876;&#53076;&#46377; &#49688;&#50629; &#46412; &#49324;&#50857;&#54620;&#51648;&#46972; &#45908; &#51060;&#49345; &#47924;&#47308;&#47196; &#49324;&#50857;&#54624; &#49688;&#44032; &#50630;&#49845;&#45768;&#45796;.</p><p>&#51200; &#44057;&#51008; &#52980;&#50508;&#47803;&#46308;&#50640;&#44176; GitHub&#51032; &#50937;&#54840;&#49828;&#54021;&#44284; &#44057;&#45796;&#44256; &#49373;&#44033;&#54616;&#47732; &#54200;&#54624; &#44163; &#44057;&#49845;&#45768;&#45796;. &#47952; &#45796;&#50577;&#54620; &#48391;&#46020; &#50732;&#47532;&#44256; &#50528;&#54540;&#47532;&#52992;&#51060;&#49496;/&#44172;&#51076; &#51228;&#51089;&#54624; &#46412; &#54876;&#50857;&#54620;&#45796;&#44256; &#54616;&#51648;&#47564; &#50500;&#51649; &#44536; &#51221;&#46020;&#44620;&#51648;&#51032; &#49892;&#47141;&#44284; &#51060;&#54644;&#46020;&#44032; &#51080;&#45716; &#44163;&#51008; &#50500;&#45768;&#45768;&#44620;&#50836;&#8230; &#54616;&#51648;&#47564; <strong>&#47924;&#47308; SSL &#51201;&#50857;&#44284; &#51088;&#52404; &#46020;&#47700;&#51064; &#50672;&#44208;</strong>&#51060; &#46104;&#47728;, &#51221;&#51201; &#54168;&#51060;&#51648;&#47484; &#50868;&#50689;&#54616;&#44592;&#50640;&#45716; &#51339;&#51008; &#44163; &#44057;&#49845;&#45768;&#45796;. &#50584; &#46608;&#54620; Github &#52376;&#47100; Jekyll&#51012; &#50732;&#47540; &#49688;&#46020; &#51080;&#44192;&#51424;?</p><div><hr></div><h3>Firebase &#54532;&#47196;&#51229;&#53944;&nbsp;&#49373;&#49457;&#54616;&#44592;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bTEa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bTEa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 424w, https://substackcdn.com/image/fetch/$s_!bTEa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 848w, https://substackcdn.com/image/fetch/$s_!bTEa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 1272w, https://substackcdn.com/image/fetch/$s_!bTEa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bTEa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png" width="1107" height="839" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:839,&quot;width&quot;:1107,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:345610,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bTEa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 424w, https://substackcdn.com/image/fetch/$s_!bTEa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 848w, https://substackcdn.com/image/fetch/$s_!bTEa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 1272w, https://substackcdn.com/image/fetch/$s_!bTEa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f43f31a-aabc-426c-a3d3-7e4d7f58ad22_1107x839.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#47676;&#51200; <a href="http://firebase.google.com">Google Firebase(firebase.google.com)</a>&#50640; &#51217;&#49549;&#54633;&#45768;&#45796;. Google &#44228;&#51221;&#51004;&#47196; &#47196;&#44536;&#51064;&#54620; &#46244; <strong>&#49884;&#51089;&#54616;&#44592;</strong> &#48260;&#53948;&#51012; &#45580;&#47084;&#51469;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EfbB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EfbB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 424w, https://substackcdn.com/image/fetch/$s_!EfbB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 848w, https://substackcdn.com/image/fetch/$s_!EfbB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 1272w, https://substackcdn.com/image/fetch/$s_!EfbB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EfbB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png" width="1107" height="837" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:837,&quot;width&quot;:1107,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:222068,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EfbB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 424w, https://substackcdn.com/image/fetch/$s_!EfbB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 848w, https://substackcdn.com/image/fetch/$s_!EfbB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 1272w, https://substackcdn.com/image/fetch/$s_!EfbB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa54515c-e56c-4a33-ab11-bce087d1bfcb_1107x837.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#44263;&#51060;&#50612; &#45208;&#53440;&#45208;&#45716; &#54868;&#47732;&#50640;&#49436;<strong> &#8216;&#54532;&#47196;&#51229;&#53944; &#52628;&#44032;&#8217;</strong>&#47484; &#45580;&#47084;&#51469;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RZKE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RZKE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 424w, https://substackcdn.com/image/fetch/$s_!RZKE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 848w, https://substackcdn.com/image/fetch/$s_!RZKE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 1272w, https://substackcdn.com/image/fetch/$s_!RZKE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RZKE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png" width="554" height="493" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:493,&quot;width&quot;:554,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114387,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RZKE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 424w, https://substackcdn.com/image/fetch/$s_!RZKE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 848w, https://substackcdn.com/image/fetch/$s_!RZKE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 1272w, https://substackcdn.com/image/fetch/$s_!RZKE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F027acb9f-94e7-40d1-9ee9-e81f7614f656_554x493.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#46104;&#46020;&#47197; &#49436;&#48708;&#49828;&#54616;&#45716; &#44397;&#44032; &#44540;&#52376;&#51032; &#51648;&#50669;&#51012; &#49440;&#53469;&#54616;&#45716; &#44163;&#51060; &#51339;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>&#49373;&#49457;&#54616;&#44256;&#51088; &#54616;&#45716; &#54532;&#47196;&#51229;&#53944;&#51032; &#51060;&#47492;&#51012; &#51648;&#51221;&#54616;&#44256;, &#44397;&#44032;&#47484; &#49440;&#53469;&#54633;&#45768;&#45796;. &#50612;&#45712; &#44397;&#44032;&#47484; &#49440;&#53469;&#54616;&#45712;&#45264;&#50640; &#46384;&#46972; &#49436;&#48260; &#50948;&#52824;&#44032; &#45804;&#46972;&#51648;&#44192;&#51424;? &#51217;&#49549; &#51648;&#50672;&#50984;(Ping) &#46321;&#51012; &#44256;&#47140;&#54664;&#51012; &#46412; &#44032;&#44620;&#50868; <strong>&#51068;&#48376;</strong>&#51004;&#47196; &#49440;&#53469;&#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q5x5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q5x5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 424w, https://substackcdn.com/image/fetch/$s_!q5x5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 848w, https://substackcdn.com/image/fetch/$s_!q5x5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 1272w, https://substackcdn.com/image/fetch/$s_!q5x5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q5x5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png" width="1105" height="838" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:838,&quot;width&quot;:1105,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:313530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q5x5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 424w, https://substackcdn.com/image/fetch/$s_!q5x5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 848w, https://substackcdn.com/image/fetch/$s_!q5x5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 1272w, https://substackcdn.com/image/fetch/$s_!q5x5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dafa75d-7ea6-4d94-a05e-1f1db5a61930_1105x838.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51340;&#52769; &#54056;&#45328;&#50640;&#49436; <strong>Hosting</strong>&#51012; &#45580;&#47084;&#51469;&#45768;&#45796;.</figcaption></figure></div><p>&#47196;&#46377; &#54868;&#47732;&#51060; &#51104;&#44624; &#46888;&#44256; &#45208;&#49436;, &#45796;&#51020;&#51032; &#54532;&#47196;&#51229;&#53944; &#44288;&#47532; &#54168;&#51060;&#51648;&#47196; &#51060;&#46041;&#54633;&#45768;&#45796;. &#51340;&#52769; &#47700;&#45684;&#50640;&#49436; Hosting&#51012; &#49440;&#53469;&#54644; &#51469;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mY37!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mY37!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 424w, https://substackcdn.com/image/fetch/$s_!mY37!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 848w, https://substackcdn.com/image/fetch/$s_!mY37!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 1272w, https://substackcdn.com/image/fetch/$s_!mY37!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mY37!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png" width="1122" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1122,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mY37!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 424w, https://substackcdn.com/image/fetch/$s_!mY37!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 848w, https://substackcdn.com/image/fetch/$s_!mY37!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 1272w, https://substackcdn.com/image/fetch/$s_!mY37!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dfa18ce-d503-4858-aacf-b7f2f6624ea7_1122x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#54840;&#49828;&#54021; &#54056;&#45328;&#50640;&#49436; <strong>&#49884;&#51089;&#54616;&#44592;</strong>&#47484; &#45580;&#47084;&#51469;&#45768;&#45796;.</figcaption></figure></div><p></p><p>&#49884;&#51089;&#54616;&#44592;&#47484; &#45580;&#47084;&#51452;&#49884;&#47732;, &#52488;&#48152;&#50640; &#54840;&#49828;&#54021; &#49444;&#51221; &#47112;&#51060;&#50612; &#52285;&#51060; &#45208;&#53440;&#45225;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-8Rh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-8Rh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 424w, https://substackcdn.com/image/fetch/$s_!-8Rh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 848w, https://substackcdn.com/image/fetch/$s_!-8Rh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 1272w, https://substackcdn.com/image/fetch/$s_!-8Rh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-8Rh!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png" width="1200" height="534.065934065934" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:648,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:259329,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-8Rh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 424w, https://substackcdn.com/image/fetch/$s_!-8Rh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 848w, https://substackcdn.com/image/fetch/$s_!-8Rh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 1272w, https://substackcdn.com/image/fetch/$s_!-8Rh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3494a83e-0bab-4dfb-85e2-08df3d09f02d_1870x832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Firebase &#51060;&#50857;&#44284; &#48176;&#54252;&#47484; &#50948;&#54620; &#49464;&#54021; &#50504;&#45236;, &#44228;&#49549;&#51012; &#45580;&#47084; &#47560;&#52828; &#54980; <strong>&#46020;&#47700;&#51064; &#50672;&#44208;</strong>&#51012; &#45580;&#47084;&#51469;&#45768;&#45796;.</figcaption></figure></div><p>Firebase&#45716; FTP&#44032; &#50500;&#45772;, NodeJS &#44592;&#48152;&#51032; CLI&#47484; &#51060;&#50857;&#54616;&#50668; &#48176;&#54252;&#54616;&#44592; &#46412;&#47928;&#50640; &#48152;&#46300;&#49884; NodeJS&#47484; &#49444;&#52824;&#54616;&#49888; &#54980; &#49464;&#54021; &#51089;&#50629;&#51060; &#54596;&#50836;&#54633;&#45768;&#45796;. &#49464;&#54021; &#54980;&#50640;&#46020; &#51648;&#51221;&#54620; &#46356;&#47113;&#53552;&#47532; &#50504;&#50640;&#49436; &#51089;&#50629; &#54620; &#54980; CLI&#47196; &#48176;&#54252;&#54644;&#50556; &#54616;&#44256;&#50836;&#8230; &#50948; &#48169;&#48277;&#44620;&#51648; &#49444;&#47749;&#54616;&#44592;&#50644; &#54252;&#49828;&#54021;&#51060; &#44600;&#50612;&#51648;&#48064;&#47196; &#54056;&#49828;&#54616;&#44192;&#49845;&#45768;&#45796;. &#49324;&#49892; &#54616;&#46972;&#45716; &#45824;&#47196; &#46384;&#46972; &#54616;&#47732; &#46104;&#44592; &#46412;&#47928;&#50640; &#44536;&#47532; &#50612;&#47157;&#51648;&#45716; &#50506;&#49845;&#45768;&#45796;.</p><p>&#44228;&#49549;&#51012; &#45580;&#47084;&#51452;&#49884;&#44256;, &#46020;&#47700;&#51064; &#44263;&#51060;&#50612; &#45208;&#53440;&#45208;&#45716; &#54868;&#47732;&#51032; &#8216;<strong>&#46020;&#47700;&#51064; &#50672;&#44208;</strong>&#8217;&#51012; &#45580;&#47084;&#51469;&#45768;&#45796;.</p><div><hr></div><p></p><h4>&#46020;&#47700;&#51064; &#50672;&#44208;&#54616;&#44592;</h4><p>&#52376;&#51020; &#54840;&#49828;&#54021;&#51012; &#44060;&#49444;&#54616;&#47732; &#51452;&#50612;&#51648;&#45716; &#46020;&#47700;&#51064;&#51008; &#45796;&#51020;&#44284; &#44057;&#49845;&#45768;&#45796;.</p><div class="pullquote"><p><strong>&#54532;&#47196;&#51229;&#53944; &#51060;&#47492;-&#47004;&#45924;&#50689;&#49707;&#51088;</strong>.firebaseapp.com</p></div><p>&#44592;&#48376; &#51228;&#44277;&#54616;&#45716; &#46020;&#47700;&#51064; &#51452;&#49548;&#44032; &#48373;&#51105;&#54616;&#47728; &#50545; &#44060;&#48156;&#44284; &#44057;&#51060; &#48708;&#44277;&#44060;&#51201;&#51004;&#47196; API&#47484; &#49324;&#50857;&#54620;&#45796;&#47732; &#49345;&#44288;&#50630;&#44192;&#51648;&#47564;, &#50864;&#47532;&#45716; &#51221;&#51201;&#51064; &#54168;&#51060;&#51648;&#47484; &#54840;&#49828;&#54021;&#54624; &#44163;&#51060;&#44592; &#46412;&#47928;&#50640; &#48324;&#46020; &#44396;&#47588;&#54620; &#46020;&#47700;&#51064;&#51004;&#47196; &#50672;&#44208;&#54616;&#44256;&#51088; &#54633;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!79AD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!79AD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 424w, https://substackcdn.com/image/fetch/$s_!79AD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 848w, https://substackcdn.com/image/fetch/$s_!79AD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 1272w, https://substackcdn.com/image/fetch/$s_!79AD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!79AD!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png" width="1200" height="392.3076923076923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19f3db44-babf-42db-b59e-a31850b45540_1482x485.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:476,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:169264,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!79AD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 424w, https://substackcdn.com/image/fetch/$s_!79AD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 848w, https://substackcdn.com/image/fetch/$s_!79AD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 1272w, https://substackcdn.com/image/fetch/$s_!79AD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19f3db44-babf-42db-b59e-a31850b45540_1482x485.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#50672;&#44208;&#54616;&#44256;&#51088; &#54616;&#45716; &#46020;&#47700;&#51064;&#51012; &#51077;&#47141;&#54616;&#44256;, TXT &#47112;&#53076;&#46300;&#47196; &#51064;&#51613;&#54633;&#45768;&#45796;.</figcaption></figure></div><p></p><p>&#46020;&#47700;&#51064;&#51008; &#52897;&#52432; &#49345; &#49892;&#49688;&#54664;&#45716;&#45936; <strong>&#49436;&#48652;&#46020;&#47700;&#51064;&#51004;&#47196; &#50672;&#44208;&#54616;&#44256;&#51088; &#54616;&#47732;  &#49436;&#48652;&#46020;&#47700;&#51064;&#51012; &#51077;&#47141;</strong>&#54616;&#49884;&#47732; &#46121;&#45768;&#45796;. (test.catgarret.net &#50672;&#44208;&#54616;&#44256; &#49910;&#51008; &#44221;&#50864;, &#44536;&#45824;&#47196; &#51077;&#47141;)</p><p>&#47532;&#46356;&#47113;&#49496; &#50668;&#48512;&#47484; &#54869;&#51064;&#54616;&#49888; &#46244;, &#44228;&#49549;&#51012; &#45572;&#47476;&#47732; &#46020;&#47700;&#51064; &#49548;&#50976;&#51452;&#47484; &#54869;&#51064;&#54616;&#45716; &#45800;&#44228;&#47196; &#45336;&#50612;&#44049;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XoPz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XoPz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 424w, https://substackcdn.com/image/fetch/$s_!XoPz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 848w, https://substackcdn.com/image/fetch/$s_!XoPz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 1272w, https://substackcdn.com/image/fetch/$s_!XoPz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XoPz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png" width="1073" height="412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:1073,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:139977,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XoPz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 424w, https://substackcdn.com/image/fetch/$s_!XoPz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 848w, https://substackcdn.com/image/fetch/$s_!XoPz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 1272w, https://substackcdn.com/image/fetch/$s_!XoPz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a9cc9-7ad3-4148-baa6-2b748207a03c_1073x412.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51200;&#45716; CloudFlare&#47484; &#51060;&#50857;&#54616;&#48064;&#47196;, &#54644;&#45817; &#49436;&#48708;&#49828;&#50640;&#49436; &#52628;&#44032; &#54664;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>&#51060;&#46412; &#50948;&#51032; &#44050;&#51012; &#48373;&#49324;&#54616;&#49888; &#54980;, &#51088;&#49888;&#51060; &#44396;&#51077;&#54620; &#46020;&#47700;&#51064; &#54924;&#49324;&#45208; &#54841;&#51008; &#48324;&#46020;&#51032; DNS &#49436;&#48708;&#49828;&#47484; &#51060;&#50857;&#54620;&#45796;&#47732; &#54644;&#45817; &#49436;&#48708;&#49828;&#47196; &#51060;&#46041;&#54616;&#49492;&#49436; &#51064;&#51613;&#44050;&#51012; &#52628;&#44032;&#54644; &#51452;&#49884;&#47732; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZYew!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZYew!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 424w, https://substackcdn.com/image/fetch/$s_!ZYew!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 848w, https://substackcdn.com/image/fetch/$s_!ZYew!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 1272w, https://substackcdn.com/image/fetch/$s_!ZYew!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZYew!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png" width="758" height="658" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d568e1ae-daee-4135-b086-88dd48173c6d_758x658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:658,&quot;width&quot;:758,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154326,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZYew!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 424w, https://substackcdn.com/image/fetch/$s_!ZYew!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 848w, https://substackcdn.com/image/fetch/$s_!ZYew!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 1272w, https://substackcdn.com/image/fetch/$s_!ZYew!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd568e1ae-daee-4135-b086-88dd48173c6d_758x658.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#49548;&#50976;&#51452; &#54869;&#51064;&#51060; &#46096;&#45796;&#47732;, &#50948;&#50752; &#44057;&#51008; &#52285;&#51060; &#45208;&#53440;&#45208;&#44172; &#46121;&#45768;&#45796;.<br>&#50669;&#49884; DNS &#44288;&#47532; &#49436;&#48708;&#49828;&#50640;&#49436; <strong>A &#47112;&#53076;&#46300;&#50640; &#51452;&#50612;&#51652; IP&#51452;&#49548;&#47484; &#52628;&#44032;</strong>&#54616;&#47732; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4LcD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4LcD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 424w, https://substackcdn.com/image/fetch/$s_!4LcD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 848w, https://substackcdn.com/image/fetch/$s_!4LcD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 1272w, https://substackcdn.com/image/fetch/$s_!4LcD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4LcD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png" width="997" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/421884d2-790e-4199-ab69-cea00c53d594_997x436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:997,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:145469,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4LcD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 424w, https://substackcdn.com/image/fetch/$s_!4LcD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 848w, https://substackcdn.com/image/fetch/$s_!4LcD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 1272w, https://substackcdn.com/image/fetch/$s_!4LcD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F421884d2-790e-4199-ab69-cea00c53d594_997x436.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A &#47112;&#53076;&#46300;&#47484; &#52628;&#44032;&#54620;&nbsp;&#47784;&#49845;</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rTTS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rTTS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 424w, https://substackcdn.com/image/fetch/$s_!rTTS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 848w, https://substackcdn.com/image/fetch/$s_!rTTS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 1272w, https://substackcdn.com/image/fetch/$s_!rTTS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rTTS!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png" width="1200" height="402.1978021978022" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:488,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:346900,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rTTS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 424w, https://substackcdn.com/image/fetch/$s_!rTTS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 848w, https://substackcdn.com/image/fetch/$s_!rTTS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 1272w, https://substackcdn.com/image/fetch/$s_!rTTS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22fd153a-1f9e-43ba-bc7b-c730b2c27bec_2222x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#46020;&#47700;&#51064; &#50672;&#44208; &#54980; &#48148;&#47196; &#51217;&#49549;&#54616;&#47732; SSL &#50724;&#47448;&#44032; &#46905;&#45768;&#45796;.</figcaption></figure></div><p>Firebase&#50640;&#49436; SSL&#51012; &#48156;&#44553; &#48143; &#51201;&#50857;&#54616;&#45716; &#45936; &#49884;&#44036;&#51060; &#44152;&#47532;&#44592; &#46412;&#47928;&#50640;, &#46020;&#47700;&#51064; &#50672;&#44208; &#54980; &#48148;&#47196; &#51217;&#49549;&#54616;&#49884;&#47732; &#50948;&#50752; &#44057;&#51008; &#50724;&#47448;&#44032; &#45208;&#53440;&#45225;&#45768;&#45796;.</p><p>&#54620; 5&#48516;&#50640;&#49436; 10&#48516; &#54980;&#50640; &#51217;&#49549;&#54616;&#49884;&#47732; SSL&#51060; &#51096; &#51201;&#50857;&#46108; &#47784;&#49845;&#51012; &#48380; &#49688; &#51080;&#51012; &#44161;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q2Q3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 424w, https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 848w, https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 1272w, https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png" width="1200" height="471.42857142857144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:572,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:494274,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 424w, https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 848w, https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 1272w, https://substackcdn.com/image/fetch/$s_!Q2Q3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F206357ea-dc5e-4864-92f5-d590d2f3d6c3_2226x874.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>GDG Incheon &#54665;&#49324; &#46412;, &#45817;&#49884; &#46384;&#47196; &#47564;&#46304; &#54168;&#51060;&#51648;&#47484; &#46020;&#47700;&#51064; &#50672;&#44208;&#54644; &#48420;&#49845;&#45768;&#45796;. &#45908;&#48520;&#50612;, &#44592;&#51316;&#50640;&#45716; &#51064;&#51613;&#49436; &#48156;&#44553;&#51012; Comodo &#47484; &#49324;&#50857;&#54664;&#45912; &#44163; &#44057;&#51008;&#45936;, Let&#8217;s Encrypt&#47196; &#44040;&#50500;&#53444; &#44163; &#44057;&#49845;&#45768;&#45796;.</p><p>&#44060;&#48156;&#51088;&#46308;&#51060;&#50556; Firebase&#50640;&#49436; &#47588;&#50864; &#51096; &#50508;&#44256; &#51080;&#44256; &#44536; &#54876;&#50857;&#46020;&#44032; &#45458;&#50500;, &#51060; &#54252;&#49828;&#54021;&#51060; &#46020;&#50880;&#51060; &#46104;&#51648;&#45716; &#50506;&#49845;&#45768;&#45796;. &#49324;&#49892; &#51060; &#54252;&#49828;&#54021;&#51008; &#51200; &#44057;&#51008; &#48708;&#51204;&#44277;&#51088;, &#46356;&#51088;&#51064;&#44228;&#50676; &#51204;&#44277;&#51088;&#47484; &#50948;&#54644;&#49436; &#51089;&#49457;&#54664;&#49845;&#45768;&#45796;.</p><p>&#53945;&#55176; &#54617;&#44368;&#50640;&#49436;&#45716;, &#51320;&#50629;&#51089;&#54408;&#51060;&#45208; &#54252;&#53944;&#54260;&#47532;&#50724;&#47196; Wordpress&#47484; &#44361;&#51109;&#55176; &#44053;&#50836;&#54616;&#45716;&#45936;&#50836;&#8230; (&#51060; &#48512;&#48516;&#50640; &#51080;&#50612;&#49436;&#45716; &#51200;&#45716; &#48512;&#51221;&#51201;&#51077;&#45768;&#45796;) &#51068;&#45800; &#51320;&#50629;&#54616;&#47140;&#47732; &#49884;&#53412;&#45716; &#45824;&#47196; &#54644;&#50556; &#54616;&#45768;&#44620;&#50836;&#8230;</p><p>&#47924;&#47308; &#50937;&#54840;&#49828;&#54021;&#51008; &#50732;&#54644; &#44592;&#51456;&#51004;&#47196; &#49324;&#46972;&#51256;&#44032;&#45716; &#52628;&#49464;&#51060;&#44256;, &#45224;&#50500; &#51080;&#45716; &#47924;&#47308; &#54840;&#49828;&#54021;&#51060; &#51080;&#45796;&#44256; &#54616;&#45908;&#46972;&#46020; &#54616;&#46300; 50MB, &#53944;&#47000;&#54589;&#51060; 100MB &#51221;&#46020;&#47196; &#51693;&#45768;&#45796;. Firebase&#45716; DB 10GB, &#54028;&#51068; 5GB, &#54840;&#49828;&#54021; 1GB&#44620;&#51648; &#46104;&#45768;&#44620; &#55016;&#50476; &#51339;&#44192;&#51424;~</p><p>&#48376;&#51064;&#51060; HTML, CSS, &#44592;&#52488;&#51201;&#51064; JS &#45733;&#47141;&#47564; &#46108;&#45796;&#47732;, &#51221;&#51201;&#51064; &#54168;&#51060;&#51648;&#47196; &#51060;&#47484; &#44396;&#49457;&#54616;&#45716; &#44163;&#46020; &#45208;&#49240;&#51648; &#50506;&#45796;&#44256; &#49373;&#44033;&#54633;&#45768;&#45796;.</p><p>&#49324;&#49892;, &#44536;&#47092;&#48148;&#50640; Behance&#45208; Tistory &#53580;&#47560;&#49688;&#51221;&#54644;&#49436; &#50416;&#45716;&#44172; &#48177;&#48264;&#52380;&#48264; &#45227;&#49845;&#45768;&#45796;.</p>]]></content:encoded></item><item><title><![CDATA[온라인 폰트 서비스 (Cloud & Web) 분석 ]]></title><description><![CDATA[&#49328;&#46028;&#44396;&#47492;&#44284; typesquare&#51012; &#51473;&#49900;&#51004;&#47196;&#8230;]]></description><link>https://lab.dongri.me/p/cloud-web-font-services-analysis</link><guid isPermaLink="false">https://lab.dongri.me/p/cloud-web-font-services-analysis</guid><dc:creator><![CDATA[Dongri]]></dc:creator><pubDate>Thu, 16 Mar 2017 15:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XbU_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#49328;&#46028;&#44396;&#47492;&#44284; Typesquare &#46160; &#44060;&#51032; &#49436;&#48708;&#49828;&#45716; &#49457;&#54693;&#51060; &#45796;&#47493;&#45768;&#45796;. (&#49328;&#46028;&#44396;&#47492;&#51008; &#53364;&#46972;&#50864;&#46300; &#48169;&#49885;&#51032; &#54256;&#53944; &#49436;&#48708;&#49828;, Typesquare&#51008; &#50937; &#54256;&#53944; &#49436;&#48708;&#49828;) &#49457;&#54693;&#51008; &#45796;&#47476;&#51648;&#47564; &#46168; &#45796; &#54256;&#53944;&#47484; &#50516;&#54840;&#54868;&#54644;&#49436; &#51228;&#44277;&#54620;&#45796;&#45716; &#51216;&#51060; &#44277;&#53685;&#46104;&#50632;&#44256; &#46160; &#49436;&#48708;&#49828;&#47484; &#48516;&#49437;&#54644; &#48372;&#50520;&#49845;&#45768;&#45796;.</p><div><hr></div><h2>&#49328;&#46028;&#44396;&#47492; </h2><p>&#44592;&#51316; &#54256;&#53944;&#45716; ttf &#54841;&#51008; otf&#54805;&#49885;&#51032; &#54028;&#51068;&#47196; &#51228;&#44277;&#46104;&#45208; &#48324;&#46020;&#51032; DRM&#51060; &#44152;&#47140;&#51080;&#51648; &#50506;&#44592; &#46412;&#47928;&#50640; &#54028;&#51068;&#51060; &#50976;&#52636;&#46104;&#47732; &#54256;&#53944;&#51228;&#51089;&#49324;&#51032; &#49552;&#49892;&#51060; &#52964;&#51665;&#45768;&#45796;. &#46384;&#46972;&#49436; &#47751;&#47751; &#45824;&#50504;&#51004;&#47196; &#50868;&#50689;&#52404;&#51228;&#50640; &#54532;&#47196;&#44536;&#47016;&#51012; &#49444;&#52824;&#54616;&#44256; <strong>&#51064;&#51613;&#48155;&#50500; &#54256;&#53944;&#47484; &#51064;&#49885;&#49884;&#53412;&#45716; &#48169;&#49885;&#51060; &#50416;&#50688;&#51004;&#45208; &#51110;&#51008; &#54532;&#47196;&#44536;&#47016; &#44844;&#51076;&#44284; &#54256;&#53944;&#51032; &#50629;&#45936;&#51060;&#53944;&#44032; &#51080;&#51012; &#49884; &#48152;&#50689;&#54616;&#44592; &#50612;&#47157;&#45796;&#45716; &#47928;&#51228;</strong>&#44032; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XbU_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XbU_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 424w, https://substackcdn.com/image/fetch/$s_!XbU_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 848w, https://substackcdn.com/image/fetch/$s_!XbU_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!XbU_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XbU_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png" width="702" height="1184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:702,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:332053,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XbU_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 424w, https://substackcdn.com/image/fetch/$s_!XbU_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 848w, https://substackcdn.com/image/fetch/$s_!XbU_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!XbU_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16cb29e7-f78e-402f-a526-bd450eb6b2f6_702x1184.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#49328;&#46028;&#44396;&#47492; &#47588;&#45768;&#51200; &#54532;&#47196;&#44536;&#47016;</figcaption></figure></div><p>&#44536;&#47000;&#49436; &#51060;&#47484; &#48372;&#50756;&#54644;&#49436; &#45208;&#50728; &#44163;&#51060; <strong>&#53364;&#46972;&#50864;&#46300; &#48169;&#49885;&#51032; &#54256;&#53944; &#49436;&#48708;&#49828;</strong>&#51077;&#45768;&#45796;. &#47588;&#45768;&#51200; &#54532;&#47196;&#44536;&#47016;&#51012; &#49444;&#52824;&#54616;&#44256; &#47196;&#44536;&#51064;&#51012; &#54616;&#47732; &#51088;&#49888;&#51060; &#44396;&#47588;&#54620; &#54256;&#53944;&#47532;&#49828;&#53944;&#44032; &#46888;&#47728; &#49440;&#53469;&#51201;&#51004;&#47196; &#51201;&#50857; &#48143; &#51060;&#50857;&#54616;&#47732; &#46121;&#45768;&#45796;. &#53364;&#46972;&#50864;&#46300; &#48169;&#49885;&#51032; &#51109;&#51216;&#51004;&#47196;&#45716; <strong>&#54256;&#53944;&#51032; &#50629;&#45936;&#51060;&#53944;&#44032; &#51080;&#51012; &#49884;&#50640; &#49888;&#49549;&#54616;&#44172; &#48152;&#50689;&#51060; &#44032;&#45733;&#54616;&#44256; &#51200;&#47156;&#54616;&#44256; &#54633;&#47532;&#51201;&#51064; &#50836;&#44552;&#51228;&#47196; &#45796;&#50577;&#54620; &#54256;&#53944;&#46308;&#51012; &#49324;&#50857;&#54624; &#49688; &#51080;&#45796;&#45716;</strong> <strong>&#51216;</strong>&#51060; &#51080;&#49845;&#45768;&#45796;.</p><h3>&#49328;&#46028;&#44396;&#47492;&#51008; &#54256;&#53944;&#47484; &#50612;&#46523;&#44172; &#51228;&#44277;&#54624;&#44620;? </h3><p>&#50668;&#44592;&#49436; &#49328;&#46028;&#50640;&#49436;&#45716; &#49328;&#46028;&#44396;&#47492;&#51012; &#53685;&#54644; &#54256;&#53944;&#47484; &#50612;&#46523;&#44172; &#51228;&#44277;&#54616;&#45716;&#51648; &#44417;&#44552;&#54664;&#49845;&#45768;&#45796;. &#53364;&#46972;&#50864;&#46300;&#46972;&#51648;&#47564; &#54256;&#53944;&#47484; &#53364;&#46972;&#51060;&#50616;&#53944;&#50640; &#45796;&#50868;&#47196;&#46300;&#54616;&#50668;&#50556; &#54616;&#45716;&#45936; &#51060; &#44284;&#51221;&#51060; &#50612;&#46523;&#44172; &#51060;&#47336;&#50612;&#51648;&#45716;&#51648;&#50836;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GcmB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GcmB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 424w, https://substackcdn.com/image/fetch/$s_!GcmB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 848w, https://substackcdn.com/image/fetch/$s_!GcmB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 1272w, https://substackcdn.com/image/fetch/$s_!GcmB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GcmB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png" width="549" height="133" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:133,&quot;width&quot;:549,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14344,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GcmB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 424w, https://substackcdn.com/image/fetch/$s_!GcmB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 848w, https://substackcdn.com/image/fetch/$s_!GcmB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 1272w, https://substackcdn.com/image/fetch/$s_!GcmB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51df3cb8-836a-401e-a639-63b31dc0963d_549x133.png 1456w" sizes="100vw"></picture><div></div></div></a><figcaption class="image-caption">&#54056;&#53431;&#45236;&#50669;&#51012; &#51312;&#54924;&#54620; &#54868;&#47732;</figcaption></figure></div><p>&#54256;&#53944;&#47484; &#49440;&#53469;&#54616;&#44256; &#51201;&#50857; &#48260;&#53948;&#51012; &#45572;&#47476;&#47732; &#47676;&#51200; &#49328;&#46028; &#44396;&#47492;&#51032; CDN &#49436;&#48260;&#50640;&#49436; &#53364;&#46972;&#51060;&#50616;&#53944;&#47196; &#54256;&#53944;&#44032; &#45812;&#44596; ZIP&#51012; &#45796;&#50868;&#47196;&#46300;&#54616;&#44256; &#50517;&#52629;&#51012; &#54409;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zgsl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zgsl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 424w, https://substackcdn.com/image/fetch/$s_!zgsl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 848w, https://substackcdn.com/image/fetch/$s_!zgsl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 1272w, https://substackcdn.com/image/fetch/$s_!zgsl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zgsl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png" width="634" height="120" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:120,&quot;width&quot;:634,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36329,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zgsl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 424w, https://substackcdn.com/image/fetch/$s_!zgsl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 848w, https://substackcdn.com/image/fetch/$s_!zgsl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 1272w, https://substackcdn.com/image/fetch/$s_!zgsl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9389c90-c2f3-40c8-90e2-abf323b83663_634x120.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#54869;&#51109;&#51088; &#46244;&#50640; s&#44032; &#48537;&#51008; &#44163;&#51004;&#47196; &#48372;&#50500; &#47924;&#50616;&#44032; &#50516;&#54840;&#54868;&#44032; &#46104;&#50612;&#51080;&#45716; &#44163; &#44057;&#45796;.</figcaption></figure></div><p>&#50517;&#52629;&#51012; &#54400;&#47732; otf&#44148; ttf&#44148; &#46244;&#50640; s&#51088;&#44032; &#48537;&#51008; &#54869;&#51109;&#51088;&#51032; &#54256;&#53944; &#54028;&#51068;&#51060; &#45208;&#50741;&#45768;&#45796;. &#54869;&#51109;&#51088;&#47484; ttf &#54841;&#51008; otf&#47196; &#48320;&#44221;&#54644;&#46020; &#51221;&#49345;&#51201;&#51064; &#44544;&#44852;&#51060; &#50500;&#45768;&#46972;&#47728; &#49444;&#52824;&#44032; &#46104;&#51648; &#50506;&#49845;&#45768;&#45796;. <strong>&#50516;&#54840;&#54868;&#44032; &#46108; &#44163;&#51012; &#54869;&#51064;</strong>&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-In4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-In4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 424w, https://substackcdn.com/image/fetch/$s_!-In4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 848w, https://substackcdn.com/image/fetch/$s_!-In4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 1272w, https://substackcdn.com/image/fetch/$s_!-In4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-In4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png" width="837" height="547" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:547,&quot;width&quot;:837,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57949,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-In4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 424w, https://substackcdn.com/image/fetch/$s_!-In4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 848w, https://substackcdn.com/image/fetch/$s_!-In4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 1272w, https://substackcdn.com/image/fetch/$s_!-In4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9f08e9a-01be-4ec2-a951-81ec98cbf7e5_837x547.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#50516;&#54840;&#54868;&#46108; &#54256;&#53944;&#47484; &#50728;&#46972;&#51064; &#54256;&#53944; &#48320;&#54872; &#49324;&#51060;&#53944;&#50640;&#49436; &#48320;&#54872;&#54616;&#45716; &#47784;&#49845;</figcaption></figure></div><p>&#49888;&#44592;&#54616;&#44172;&#46020; &#54644;&#45817; &#50516;&#54840;&#54868;&#46108; &#54028;&#51068;&#51012; &#50728;&#46972;&#51064; &#54256;&#53944; &#48320;&#54872; &#49324;&#51060;&#53944;&#47484; &#53685;&#54644; &#48320;&#54872;&#51012; &#49884;&#53412;&#47732; &#48320;&#54872;&#51060; &#46121;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UIQO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UIQO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 424w, https://substackcdn.com/image/fetch/$s_!UIQO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 848w, https://substackcdn.com/image/fetch/$s_!UIQO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 1272w, https://substackcdn.com/image/fetch/$s_!UIQO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UIQO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png" width="1456" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:403106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UIQO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 424w, https://substackcdn.com/image/fetch/$s_!UIQO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 848w, https://substackcdn.com/image/fetch/$s_!UIQO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 1272w, https://substackcdn.com/image/fetch/$s_!UIQO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb064314d-605c-45b4-ab92-257b4fe16b36_1464x808.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#51221;&#49345;&#51201;&#51004;&#47196; &#54256;&#53944;&#44032; &#45208;&#50724;&#51648; &#50506;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>&#48320;&#54872;&#46108; &#54256;&#53944;&#47484; &#50676;&#50612;&#48372;&#47732; &#51221;&#49345;&#51201;&#51004;&#47196; &#45208;&#50724;&#51648; &#50506;&#49845;&#45768;&#45796;. &#54616;&#51648;&#47564; Windows&#50640;&#49436; &#51228;&#44277;&#54616;&#45716; &#44592;&#48376; &#54256;&#53944; &#48624;&#50612;&#50640;&#49436;&#45716; &#48324; &#50724;&#47448; &#50630;&#51060; &#45208;&#53440;&#45208;&#44596; &#54633;&#45768;&#45796;. (&#50696;&#49884;&#44032; &#45824;&#52404; &#44544;&#44852;&#47196; &#45208;&#53440;&#45208;&#44592;&#45716; &#54616;&#51648;&#47564;&#50836;)</p><p>&#50516;&#54840;&#54868;&#44032; &#46104;&#50612;&#49436; &#54028;&#51068;&#51060; &#44648;&#51648;&#44144;&#45208; &#49552;&#49345;&#46104;&#50632;&#45796;&#47732; &#50732;&#48148;&#47476;&#51648; &#50506;&#51008; &#44544;&#44852;&#51060;&#46972;&#45716; &#50724;&#47448;&#44032; &#45208;&#53440;&#45208;&#50556; &#51221;&#49345;&#51068; &#44163; &#44057;&#51008;&#45936; &#47568;&#51060;&#51424;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LNFQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LNFQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 424w, https://substackcdn.com/image/fetch/$s_!LNFQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 848w, https://substackcdn.com/image/fetch/$s_!LNFQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 1272w, https://substackcdn.com/image/fetch/$s_!LNFQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LNFQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png" width="1330" height="755" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:1330,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:546831,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LNFQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 424w, https://substackcdn.com/image/fetch/$s_!LNFQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 848w, https://substackcdn.com/image/fetch/$s_!LNFQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 1272w, https://substackcdn.com/image/fetch/$s_!LNFQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c73328-d468-4668-af09-0a4ac4588b87_1330x755.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Fontlab&#51004;&#47196; &#50676;&#50612;&#48376; &#50516;&#54840;&#54868;&#46108; &#54256;&#53944;&#54028;&#51068;</figcaption></figure></div><p>Fontlab&#51004;&#47196; &#50676;&#50612;&#48372;&#50520;&#45908;&#45768; &#44536; &#51060;&#50976;&#47484; &#50508; &#49688; &#51080;&#50632;&#49845;&#45768;&#45796;.</p><p>&#48148;&#47196; &#54256;&#53944;&#50640; &#54644;&#45817;&#54616;&#45716; &#48169; &#48264;&#54840;(&#50976;&#45768;&#53076;&#46300;)&#44032; &#51648;&#51221;&#46104;&#51648; &#50506;&#50520;&#45912; &#44163;&#51077;&#45768;&#45796;. &#44600; &#51075;&#51008; &#44544;&#47532;&#54532;&#46308;&#50640; &#50732;&#48148;&#47480; &#48169; &#48264;&#54840;&#47484; &#51648;&#51221;&#54616;&#47732; &#51221;&#49345;&#51201;&#51064; &#54256;&#53944;&#47196; &#49324;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;. (&#47932;&#47200; &#48520;&#48277;&#51077;&#45768;&#45796;. &#54633;&#48277;&#51201;&#51064; &#48169;&#48277;&#51004;&#47196; &#44396;&#47588;&#54616;&#49492;&#49436; &#51060;&#50857;&#54616;&#49884;&#45716; &#44172; &#51339;&#44192;&#51648;&#50836;?) </p><h3>&#44208;&#47200; </h3><p>&#49328;&#46028;&#44396;&#47492;&#51032; &#50516;&#54840;&#54868; &#48169;&#49885;&#51008; &#44544;&#47532;&#54532;&#45716; &#44536;&#45824;&#47196; &#46160;&#44256; <strong>&#44544;&#47532;&#54532;&#50640; &#54644;&#45817;&#54616;&#45716; &#48169; &#48264;&#54840;&#46308;&#51012; &#50630;&#50528;&#44144;&#45208; &#53945;&#51221; &#47196;&#51649;&#51012; &#51060;&#50857;&#54616;&#50668; &#52824;&#54872;&#54644;&#49436; &#51201;&#50857;&#49884;&#53412;&#45716; &#44163; &#44057;&#45796;&#45716; &#50976;&#52628;</strong>&#47484; &#54644;&#48389;&#45768;&#45796;.</p><p></p><div><hr></div><h1>Typesquare</h1><p>Typesquare&#45716; &#47784;&#47532;&#49324;&#50752;&#51032; &#50937; &#54256;&#53944; &#54840;&#49828;&#54021; &#49436;&#48708;&#49828;&#51077;&#45768;&#45796;. &#48372;&#53685; &#50937; &#54256;&#53944;&#45716; &#50857;&#47049;&#51060; &#53360; otf&#50752; ttf&#47484; &#48288;&#51060;&#49828;&#47196; &#50517;&#52629;&#46108; woff, woff2, eof(IE &#51204;&#50857;)&#47484; &#51228;&#44277;&#54633;&#45768;&#45796;.<br>&#54616;&#51648;&#47564;&#51060; &#48169;&#49885;&#51008; &#50857;&#47049;&#51060; &#50500;&#47924;&#47532; &#51201;&#50612;&#46020; <strong>DRM&#51060; &#51201;&#50857;&#46104;&#51648; &#50506;&#45716; RAW &#54252;&#47607;&#51060;&#44592; &#46412;&#47928;&#50640; &#48372;&#54840;&#54624; &#49688; &#50630;&#45716; &#45800;&#51216;</strong>&#51060; &#51080;&#49845;&#45768;&#45796;.</p><p>&#50937; &#54256;&#53944;&#50640; &#44288;&#54620; &#44592;&#48376; &#44060;&#45392;&#44284; &#47928;&#51228;&#51216;&#51008; <strong><a href="http://agfont.com/?p=380">&#171;&#49352;&#47196;&#50868; &#50937;&#54256;&#53944;&#49436;&#48708;&#49828; - ag &#53440;&#51060;&#54252;&#44536;&#46972;&#54588;&#50672;&#44396;&#49548;&#187;</a></strong>&#47484; &#52280;&#44256;&#54644; &#48372;&#49464;&#50836;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://agfont.com/?p=380" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dpQS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!dpQS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!dpQS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!dpQS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dpQS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png" width="1080" height="255" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:255,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37158,&quot;alt&quot;:&quot;&#49352;&#47196;&#50868; &#50937;&#54256;&#53944;&#49436;&#48708;&#49828; | ag &#53440;&#51060;&#54252;&#44536;&#46972;&#54588;&#50672;&#44396;&#49548;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://agfont.com/?p=380&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#49352;&#47196;&#50868; &#50937;&#54256;&#53944;&#49436;&#48708;&#49828; | ag &#53440;&#51060;&#54252;&#44536;&#46972;&#54588;&#50672;&#44396;&#49548;" title="&#49352;&#47196;&#50868; &#50937;&#54256;&#53944;&#49436;&#48708;&#49828; | ag &#53440;&#51060;&#54252;&#44536;&#46972;&#54588;&#50672;&#44396;&#49548;" srcset="https://substackcdn.com/image/fetch/$s_!dpQS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 424w, https://substackcdn.com/image/fetch/$s_!dpQS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 848w, https://substackcdn.com/image/fetch/$s_!dpQS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 1272w, https://substackcdn.com/image/fetch/$s_!dpQS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9929426b-f594-42aa-9884-3223ab5ed7ad_1080x255.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Google Webfont&#50640;&#49436; &#44592;&#48376;&#51004;&#47196; &#51228;&#44277;&#54616;&#45716; &#48169;&#49885;&#51008; &#50948;&#50640;&#49436; &#50508;&#47140;&#46300;&#47536; ttf, otf, woff, woff2 &#46321;&#51012; &#49324;&#50857;&#54633;&#45768;&#45796;. Typesquare&#50640;&#49436;&#45716; &#48324;&#46020;&#51032; API&#47484; &#53685;&#54644; &#50937; &#54256;&#53944;&#47484; &#51228;&#44277;&#54616;&#44256; &#51080;&#50632;&#44256; &#48516;&#49437;&#54644; &#48372;&#50520;&#49845;&#45768;&#45796;.</p><h3><strong>&#47784;&#46304; &#54256;&#53944;&#47484; &#51076;&#48288;&#46300;&#54616;&#51648; &#50506;&#44256;, &#54596;&#50836;&#54620; &#44544;&#51088;&#47564; &#49440;&#53469;&#51201;&#51004;&#47196; &#51076;&#48288;&#46377;</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pab8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pab8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 424w, https://substackcdn.com/image/fetch/$s_!pab8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 848w, https://substackcdn.com/image/fetch/$s_!pab8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 1272w, https://substackcdn.com/image/fetch/$s_!pab8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pab8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png" width="620" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:620,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:362241,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pab8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 424w, https://substackcdn.com/image/fetch/$s_!pab8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 848w, https://substackcdn.com/image/fetch/$s_!pab8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 1272w, https://substackcdn.com/image/fetch/$s_!pab8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032b4076-e0ec-43b0-8332-01af76e0525d_620x590.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Base64 &#51064;&#53076;&#46377;&#51004;&#47196; &#48155;&#50500;&#50724;&#45716; &#48169;&#49885;</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DZXV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DZXV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 424w, https://substackcdn.com/image/fetch/$s_!DZXV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 848w, https://substackcdn.com/image/fetch/$s_!DZXV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 1272w, https://substackcdn.com/image/fetch/$s_!DZXV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DZXV!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png" width="1200" height="308.24175824175825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:374,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:244078,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DZXV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 424w, https://substackcdn.com/image/fetch/$s_!DZXV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 848w, https://substackcdn.com/image/fetch/$s_!DZXV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 1272w, https://substackcdn.com/image/fetch/$s_!DZXV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5575f43-6ed6-42cf-a9b3-0f81d38c2d9f_1735x446.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#47928;&#49436;&#50640; &#54252;&#54632;&#46108; &#54256;&#53944;&#47564; &#48155;&#50500;&#50724;&#44592; &#46412;&#47928;&#50640; Base64&#44032; &#50500;&#45772; woff &#54028;&#51068;&#51068;&#51648;&#46972;&#46020; &#50676;&#50612;&#48372;&#47732; &#53945;&#51221; &#47928;&#51088;&#47564; &#54256;&#53944; &#51201;&#50857;&#51060; &#46108; &#44163;&#51012; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>Typesquare&#50640;&#49436;&#45716; &#49440;&#53469;&#54620; &#54256;&#53944;&#51032; &#54256;&#53944; &#54028;&#51068; &#51088;&#52404;&#47484; &#44032;&#51256;&#50724;&#45716; &#44163;&#51060; &#50500;&#45772;, Javascript&#47484; &#51060;&#50857;&#54616;&#50668; &#54644;&#45817; &#50937; &#47928;&#49436;&#50640; &#46308;&#50612;&#51080;&#45716; &#44544;&#51088; &#49688;&#47484; &#51064;&#49885;&#54616;&#44256; &#44536; &#44544;&#51088; &#49688;&#50640; &#54644;&#45817;&#54616;&#45716; &#54256;&#53944;&#47564; Base64 &#54805;&#49885;&#51004;&#47196; &#44032;&#51256;&#50741;&#45768;&#45796;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5aY6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5aY6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 424w, https://substackcdn.com/image/fetch/$s_!5aY6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 848w, https://substackcdn.com/image/fetch/$s_!5aY6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 1272w, https://substackcdn.com/image/fetch/$s_!5aY6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5aY6!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png" width="1200" height="98.53068280034572" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:95,&quot;width&quot;:1157,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:99786,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5aY6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 424w, https://substackcdn.com/image/fetch/$s_!5aY6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 848w, https://substackcdn.com/image/fetch/$s_!5aY6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 1272w, https://substackcdn.com/image/fetch/$s_!5aY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3c6a91-1d52-4ab6-af6a-45dac7ee785b_1157x95.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">&#51088;&#49464;&#55176; &#48372;&#47732; API&#47196; &#45336;&#44592;&#45716; &#48512;&#48516;&#50640; &#51064;&#51613;&#53076;&#46300;&#45208; &#53581;&#49828;&#53944;&#50752; &#44057;&#51008; &#54028;&#46972;&#48120;&#53552;&#44050;&#51012; &#48380; &#49688; &#51080;&#49845;&#45768;&#45796;.</figcaption></figure></div><p>&#47932;&#47200; &#50500;&#47924; &#44275;&#50640;&#49436;&#45208; &#54256;&#53944;&#47484; &#51201;&#50857;&#54624; &#49688; &#50630;&#44172; API&#47484; &#51060;&#50857;&#54644; &#46020;&#47700;&#51064;&#51012; &#51064;&#49885;&#54616;&#50668; &#49436;&#48260;&#50640; &#46321;&#47197;&#46108; URL&#51064;&#51648;&#47484; &#54869;&#51064;&#54616;&#50668; &#51228;&#44277;&#54633;&#45768;&#45796;.</p><p>API&#50640; &#45336;&#44600; &#49688; &#51080;&#45716; &#44544;&#51088; &#49688; &#51228;&#54620;&#46020; &#51080;&#49845;&#45768;&#45796;. &#54841;&#49884;&#45208; &#54644;&#49436; &#54620;&#44544; 2,350&#51088;&#47564;&#51012; &#52628;&#47140;&#49436; &#51076;&#51032;&#47196; &#45347;&#50632;&#51648;&#47564; &#44032;&#51256;&#50724;&#51648; &#47803;&#54664;&#49845;&#45768;&#45796;. &#44544;&#51088; &#49688;&#47484; &#51460;&#51060;&#47732; &#51221;&#49345;&#51201;&#51004;&#47196; &#44032;&#51256;&#50772;&#44256;&#50836;&#8230;</p><h3>&#44208;&#47200; </h3><p>&#50612;&#46523;&#44172; &#48372;&#47732;, &#54596;&#50836;&#54620; &#44544;&#51088;&#47564; &#44032;&#51256;&#50752;&#49436; &#49440;&#53469;&#51201;&#51004;&#47196; &#51201;&#50857;&#54616;&#45716; &#45936; &#51080;&#50612; &#45348;&#53944;&#50892;&#53356;&#51032; &#51088;&#50896;&#51012; &#50500;&#45188; &#49688; &#51080;&#45796;&#45716; &#51216; (&#48169;&#47928;&#51088; &#49688;&#44032; &#47566;&#51008; &#49324;&#51060;&#53944;&#46972;&#47732; &#53944;&#47000;&#54589;&#46020; &#44256;&#47140;&#54644;&#50556;&#44192;&#51648;&#50836;.), ttf&#45208; otf&#50752; &#45804;&#47532; &#50612;&#45712; &#51221;&#46020; &#48372;&#54840;&#54624; &#49688; &#51080;&#45796;&#45716; &#51109;&#51216;&#51060; &#51080;&#49845;&#45768;&#45796;. </p><p>&#54616;&#51648;&#47564; Javascript&#50640; &#51032;&#51316;&#54620;&#45796;&#45716; &#51216;&#44284; Base64&#47196; &#44032;&#51256;&#50724;&#45716; &#47564;&#53372; &#50500;&#47924;&#47532; &#49440;&#53469;&#51201;&#51004;&#47196; &#54256;&#53944;&#47484; &#44032;&#51256;&#50728;&#45796; &#54620;&#46308; &#50896;&#47000;&#51032; &#54252;&#47607;&#48372;&#45796; &#50857;&#47049;&#51060; &#53356;&#45796;&#45716; &#45800;&#51216;&#51060; &#51080;&#44192;&#49845;&#45768;&#45796;.</p><p></p><div><hr></div><h2>&#47560;&#47924;&#47532; </h2><p>&#44060;&#51064;&#51201;&#51004;&#47196; Typesquare&#51032; &#48169;&#49885;&#51060; &#45132;&#47532;&#45716;&#45936;&#50836;, &#47784;&#48148;&#51068; &#50937;&#50640;&#49440; &#49549;&#46020;&#44032; &#49373;&#47749;&#51060;&#46972; &#54256;&#53944; &#54616;&#45208;&#47564; &#45347;&#50612;&#46020; &#44536; &#52264;&#51060;&#44032; &#53373;&#45768;&#45796;. &#54788;&#51116;&#44620;&#51648; &#53685;&#50857;&#46104;&#45716; &#48169;&#49885;&#51060;&#46972;&#44260; &#54256;&#53944; &#54028;&#51068;&#50640;&#49436; &#44032;&#51109; &#49324;&#50857; &#48712;&#46020;&#44032; &#45458;&#51008; &#51068;&#48512; &#44544;&#47532;&#54532;&#47564; &#45224;&#44200;&#46160;&#44256; &#49325;&#51228;&#54616;&#45716; &#49885;&#51004;&#47196; &#50857;&#47049;&#51012; &#51460;&#51060;&#51648;&#47564; &#44536;&#47000;&#46020; &#54620;&#44228;&#44032; &#51316;&#51116;&#54633;&#45768;&#45796;.</p><p>&#52264;&#46972;&#47532; Typesquare&#52376;&#47100; &#47928;&#49436;&#50640; &#51316;&#51116;&#54616;&#45716; &#44544;&#47532;&#54532;&#47564; &#52628;&#47140;&#49436; &#49440;&#53469;&#51201;&#51004;&#47196; &#44032;&#51256;&#50728;&#45796;&#47732; &#53944;&#47000;&#54589; &#51208;&#44048;&#50640; &#53360; &#46020;&#50880;&#51060; &#46104;&#51648; &#50506;&#51012;&#44620; &#49373;&#44033;&#54644; &#48389;&#45768;&#45796;.</p><p></p>]]></content:encoded></item></channel></rss>