<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>문발자</title>
    <link>https://thgus13.tistory.com/</link>
    <description>문과 출신 개발자 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Thu, 16 Apr 2026 19:24:54 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>장구치는 개발자</managingEditor>
    <item>
      <title>[Compose] stateful vs stateless</title>
      <link>https://thgus13.tistory.com/28</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Composable function을 만들때, 2가지 방식으로 만들 수 있다. 모든 상태값은 관리하는 것과 외부에서 데이터를 주입받아 사용하는 방식이 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;stateful&amp;nbsp;vs&amp;nbsp;stateless&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 UI 상에서 관리해야 하는 상태 정보들을 모두 관리할 수 있다. 이렇게 만들었을 때, 해당 UI에서만 상태값을 관리하면 된다는 점에서 편하다. 간단한 UI 혹은 최상단의 컴포저블 함수일 때, 아래와 같이 구성할 것이다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1705060750930&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Composable
fun switch() {
	val activated by remember { mutableState(false) }
    
    Switch(
	    activated = activated,
        onChange = { activated = it } 
    )
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 화면을 구성하다보면 복잡해진다. 데이터에 따라서 UI가 변경되야 하는 상황이 많다. 그래서 많은 경우에 Stateless하게 만들게 된다. 아래와 같이, 외부에서 값을 관리하고, 컨트롤하는 일이 많이 발생한다. 혹은 각 뷰별로 State를 만들어서 관리한다. 예를 들어, LazyColumn 같은 경우, &lt;span style=&quot;background-color: #e3e6e8; color: #0c0d0e; text-align: left;&quot;&gt;rememberLazyListState()&lt;/span&gt; 라는 것을 통해서 상위 컴포저블에서 뷰를 컨트롤한다. 특히 재사용을 염두한 뷰라면 아래와 같이 관리하는 것이 재사용에 좋다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1705060950212&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Composable
fun (isActivated: Boolean, onChange: (boolean) -&amp;gt; Unit) {
	Switch(
    	isActivated = isActivated,
        onChange = onChange,
    )
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Value vs Lambda&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;parent function에서 child function으로 데이터를 전달할 때는 value로 넘기며, 반대의 경우에는 lambda를 통해서 데이터를 아래에서 위로 올린다. 이 방식을 모두 사용하게 되면 Stateless한 function을 만들 수 있다. 이런 함수에서 데이터를 변경시키는 패턴을 호이스팅이라고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Android/Compose</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/28</guid>
      <comments>https://thgus13.tistory.com/28#entry28comment</comments>
      <pubDate>Fri, 12 Jan 2024 21:16:47 +0900</pubDate>
    </item>
    <item>
      <title>[java] string과 char의 차이점</title>
      <link>https://thgus13.tistory.com/27</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;String은 &quot;가나다라&quot;와 같은 문자열, Reference Type을 말하고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Char은 '가', '나', '다'와 같은 문자만 담을 수 있는 Primitive Type 말한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Char&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 2 byte 정수&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 아스키코드 혹은 유니코드로 치환되어 저장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Character이라는 Reference type으로 변환 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Primitive type은 null 불가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;String&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하나의 객체를 생성하여, 문자를 붙여서 만드는 불변 객체 (Immutable Object)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 객체, 값 비교시의 주의할 필요 있음 (equals, ==)&lt;/p&gt;</description>
      <category>IT 정보/개발공부</category>
      <category>char</category>
      <category>charAt</category>
      <category>codingtest</category>
      <category>java</category>
      <category>string</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/27</guid>
      <comments>https://thgus13.tistory.com/27#entry27comment</comments>
      <pubDate>Sun, 11 Jun 2023 10:05:53 +0900</pubDate>
    </item>
    <item>
      <title>[안드로이드/Android] Kotlin - 날짜를  밀리세컨(millisecond) 변환하기</title>
      <link>https://thgus13.tistory.com/26</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;현재 날짜를 밀리세컨초로 변환하는 메서드 입니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;주의점&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;- month 의 경우 -1을 해 주어야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;import &lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;java.util.*&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;val &lt;/span&gt;calendar = Calendar.getInstance()&lt;br /&gt;&lt;br /&gt;calendar.set(year&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;month - &lt;span style=&quot;color:#6897bb;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;day, minute, second)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;return &lt;/span&gt;calendar.timeInMillis&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Android</category>
      <category>날짜</category>
      <category>밀리세컨</category>
      <category>안드로이드</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/26</guid>
      <comments>https://thgus13.tistory.com/26#entry26comment</comments>
      <pubDate>Sun, 15 Nov 2020 16:43:18 +0900</pubDate>
    </item>
    <item>
      <title>[안드로이드/Android] Coroutine, Thread - 차이와 특징</title>
      <link>https://thgus13.tistory.com/25</link>
      <description>&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; padding: 0px;&quot;&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;간결하고 직관적인 코드로 비동기 처리 및 스레드 전환이 가능한&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;Coroutine 을 즐겨 사용하고 있습니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;Coroutine 은 이런&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;간결성, 편의성 외에도&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;경량 Thread 라고도 불리며 적은 기존 Thread 사용 방식에 비해 적은 OverHead 를 발생시키는 것으로 소개됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; padding: 0px;&quot;&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;그런데 늘 표현이 &quot;경량&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;Thread&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&amp;nbsp;이다&quot; 가 아니라&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&quot;경량&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;Thread 라고도 불린다&quot; 라고 설명되더군요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; padding: 0px;&quot;&gt;&lt;font color=&quot;#4a4a4a&quot; face=&quot;Ubuntu, Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;strike&gt;그래서&amp;nbsp;&lt;/strike&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;strike&gt;Thread 라는건지, 아닌건지...&lt;/strike&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; padding: 0px;&quot;&gt;&lt;font color=&quot;#4a4a4a&quot; face=&quot;Ubuntu, Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;그래서 오늘은 이 둘의 차이와 특성을 정리해 보고자 합니다.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;h1 id=&quot;Process-amp-Thread&quot; style=&quot;box-sizing: inherit; margin: 1em 0px 0.5em; padding: 0px; font-size: 1.75em; font-weight: 400; color: rgb(54, 54, 54); line-height: 1.125; font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif;&quot;&gt;Process &amp;amp; Thread&lt;/h1&gt;&lt;blockquote style=&quot;box-sizing: inherit; margin: 0px 0px 1em; padding: 1.25em 1.5em; background-color: whitesmoke; border-left-color: rgb(219, 219, 219); color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Process&lt;/span&gt;: Program 이 메모리에 적재되어 실행되는 인스턴스&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Thread&lt;/span&gt;: Process 내 실행되는 여러 흐름의 단위&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;먼저 Thread 는 Process 보다 작은 단위의 실행 인스턴스로만 알고 있는데, 메모리 영역도 조금 다릅니다.&lt;/p&gt;&lt;center style=&quot;box-sizing: inherit; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;a class=&quot;gallery-item&quot; href=&quot;https://aaronryu.github.io/2019/05/27/coroutine-and-thread/process-and-thread.png&quot; style=&quot;box-sizing: inherit; color: rgb(50, 115, 220); cursor: pointer;&quot;&gt;&lt;img src=&quot;https://aaronryu.github.io/2019/05/27/coroutine-and-thread/process-and-thread.png&quot; style=&quot;box-sizing: inherit; height: auto; max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/center&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Process&lt;/span&gt;&amp;nbsp;는 독립된 메모리 영역&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;(Heap)&lt;/span&gt;을 할당받고 각&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Thread&lt;/span&gt;도 독립된 메모리 영역&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;(Stack)&lt;/span&gt;을 할당받습니다. Thread 는 본질적으로 Process 내에 속해있기 때문에 Head 메모리 영역은 해당 Process 에 속한 모든 Thread 들이 공유할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;프로그램 에 대한 Process 가 생성되면 Heap 영역과 하나의 Thread 와 하나의 Stack 영역을 갖게되고,&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Thread 가 추가될때마다 그 수만큼의 Stack 이 추가됩니다.&lt;/span&gt;&amp;nbsp;Thread 가 100 개라면 전체 메모리에 100 개의 Stask 이 생성되는 것입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1 id=&quot;Thread-amp-Coroutine&quot; style=&quot;box-sizing: inherit; margin: 1em 0px 0.5em; padding: 0px; font-size: 1.75em; font-weight: 400; color: rgb(54, 54, 54); line-height: 1.125; font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif;&quot;&gt;Thread &amp;amp; Coroutine&lt;/h1&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;Thread, Coroutine 모두 Concurrency 동시성 (Interleaving) 를 보장하기 위한 기술입니다. 여러개의 작업을 동시에 수행할 때 Thread 는 각 작업에 해당하는 메모리 영역을 할당하는데, 여러 작업을 동시에 수행해야하기 때문에 OS 레벨에서 각 작업들을 얼만큼씩 분배하여 수행해야지 효율적일지 Preempting Scheduling 을 필요로 합니다. A 작업 조금 B 작업 조금을 통해 최종적으로 A 작업과 B 작업 모두를 이뤄내는 것입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;Thread는 각 작업에 대해&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;Thread 를 할당합니다. 하지만&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;Coroutine 을 사용하면 각 작업에 &lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;대해 Thread 를 할당하는 것이 아니라 작은 Object 만을 할당해주고 이 Object 들을 자유자재로 스위칭함으로써 Switching 비용을 최대한 줄였습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;Thread&quot; style=&quot;box-sizing: inherit; margin: 1.1428em 0px 0.5714em; padding: 0px; font-weight: 400; color: rgb(54, 54, 54); line-height: 1.125; font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif;&quot;&gt;Thread&lt;/h2&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 1em 0px 1em 2em; padding: 0px; list-style-position: outside; list-style-image: initial; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;Task 단위 =&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Thread&lt;/span&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 0.5em 0px 0px 2em; padding: 0px; list-style: outside circle;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;다수의 작업 각각에&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Thread&lt;/span&gt;&amp;nbsp;를 할당합니다.&lt;br style=&quot;box-sizing: inherit;&quot;&gt;각 Thread 는 위에 설명했듯 자체 Stack 메모리 영역을 가지며&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;JVM Stack 영역을 차지&lt;/span&gt;합니다.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 1em 0px 1em 2em; padding: 0px; list-style-position: outside; list-style-image: initial; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Context Switching&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 0.5em 0px 0px 2em; padding: 0px; list-style: outside circle;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;OS Kernel&lt;/span&gt;&amp;nbsp;에 의한&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Context Switching&lt;/span&gt;&amp;nbsp;을 통해 Concurrency 를 보장합니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0.25em 0px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Blocking&lt;/span&gt;: 작업 1(Thread) 이 작업 2(Thread) 의 결과가 나오기까지 기다려야한다면&lt;br style=&quot;box-sizing: inherit;&quot;&gt;작업 1 Thread 는 Blocking 되어 그 시간동안 해당 자원을 사용하지 못합니다.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;center style=&quot;box-sizing: inherit; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;a class=&quot;gallery-item&quot; href=&quot;https://aaronryu.github.io/2019/05/27/coroutine-and-thread/context-switch-between-threads.png&quot; style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); cursor: pointer;&quot;&gt;&lt;img src=&quot;https://aaronryu.github.io/2019/05/27/coroutine-and-thread/context-switch-between-threads.png&quot; style=&quot;box-sizing: inherit; height: auto; max-width: 100%;&quot;&gt;&lt;/a&gt;* 쉬운 설명을 위해 CPU 는 Single Core 로 가정합니다.&lt;/center&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;위 그림에서 작업들은 모두 Thread 단위인것을 알 수 있습니다. Thread A 에서 작업 1을 수행중에 작업 2가 필요할때 이를 비동기로 호출하게 됩니다. 작업 1은 진행중이던 작업을 멈추고(Blocked) 작업 2는 Thread B 에서 수행되며 이때 CPU 가 연산을 위해 바라보는 메모리 영역을 Thread A 에서 Thread B 로 전환하는 Context Switching 이 일어납니다. 작업 2가 완료되었을때 해당 결과값을 작업 1에 반환하게 되고, 동시에 수행할 작업 3과 작업 4는 각각 Thread C 와 Thread D 에 할당됩니다. 싱글 코어 CPU 는 동시 연산이 불가능하므로 이때에도 OS Kernel 의 Preempting Scheduling 에 의해 각 작업 1, 3, 4 각각을 얼만큼 수행하고 멈추고 다음 작업을 수행할지 결정하여 그에 맞게 세 작업을 돌아가며 실행함으로써 Concurrency 를 보장합니다.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#4a4a4a&quot; face=&quot;Ubuntu, Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#4a4a4a&quot; face=&quot;Ubuntu, Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#4a4a4a&quot; face=&quot;Ubuntu, Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 id=&quot;Coroutine&quot; style=&quot;box-sizing: inherit; margin: 1.1428em 0px 0.5714em; padding: 0px; font-weight: 400; color: rgb(54, 54, 54); line-height: 1.125; font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif;&quot;&gt;Coroutine&lt;/h2&gt;&lt;h2 id=&quot;Coroutine&quot; style=&quot;box-sizing: inherit; margin: 1.1428em 0px 0.5714em; padding: 0px; font-weight: 400; color: rgb(54, 54, 54); line-height: 1.125; font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif;&quot;&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 1em 0px 1em 2em; padding: 0px; list-style-position: outside; list-style-image: initial; color: rgb(74, 74, 74); font-size: 15.4px;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;Task 단위 =&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Object (Coroutine)&lt;/span&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 0.5em 0px 0px 2em; padding: 0px; list-style: outside circle;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;다수의 작업 각각에&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Object&lt;/span&gt;&amp;nbsp;를 할당합니다.&lt;br style=&quot;box-sizing: inherit;&quot;&gt;이 Coroutine Object 는 객체를 담는&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;JVM Heap 에 적재&lt;/span&gt;됩니다.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 1em 0px 1em 2em; padding: 0px; list-style-position: outside; list-style-image: initial; color: rgb(74, 74, 74); font-size: 15.4px;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Programmer Switching&lt;/span&gt;&amp;nbsp;= No Context Switching&lt;ul style=&quot;box-sizing: inherit; margin: 0.5em 0px 0px 2em; padding: 0px; list-style: outside circle;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;프로그래머의 코딩&lt;/span&gt;을 통해&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Switching 시점을 마음대로 정함으로&lt;/span&gt;써 Concurrency 를 보장합니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0.25em 0px 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Suspend (Non-Blocking)&lt;/span&gt;: 작업 1(Object) 이 작업 2(Object) 의 결과가 나오기까지 기다려야한다면&lt;br style=&quot;box-sizing: inherit;&quot;&gt;작업 1 Object 는 Suspend 되지만 작업 1 을 수행하던 Thread 는 그대로 유효하기 때문에 작업 2 도 작업 1 과 동일한 Thread 에서 실행될 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;center style=&quot;box-sizing: inherit; color: rgb(74, 74, 74); font-size: 15.4px;&quot;&gt;&lt;a class=&quot;gallery-item&quot; href=&quot;https://aaronryu.github.io/2019/05/27/coroutine-and-thread/no-context-switch-between-coroutines.png&quot; style=&quot;box-sizing: inherit; color: rgb(50, 115, 220); cursor: pointer;&quot;&gt;&lt;img src=&quot;https://aaronryu.github.io/2019/05/27/coroutine-and-thread/no-context-switch-between-coroutines.png&quot; style=&quot;box-sizing: inherit; height: auto; max-width: 100%;&quot;&gt;&lt;/a&gt;* 쉬운 설명을 위해 CPU 는 Single Core 로 가정합니다.&lt;/center&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;작업의 단위는 Coroutine Object 이므로 작업 1 수행중에 비동기 작업 2가 발생하더라도 작업 1을 수행하던 같은 Thread 에서 작업 2를 수행할 수 있으며, 하나의 Thread 에서 다수의 Coroutine Object 들을 수행할 수도 있습니다. 위 그림에 따라&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;작업 1과 작업 2의 전환에 있어 단일 Thread A 위에서 Coroutine Object 객체들만 교체함으로써 이뤄지기 때문에 OS 레벨의 Context Switching 은 필요없습니다.(동일 Coroutine Scope 내에 작업 1과 2를 선언했을 경우 입니다. 별도의 스코프를 발생시켜 작업1, 작업2 를 실행시킨다면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(54, 54, 54); font-size: 15.4px; font-weight: 700;&quot;&gt;단일 Thread A는 보장되지 않습니다)&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;한 Thread 에 다수의 Coroutine 을 수행할 수 있음과 Context Switching 이 필요없기 떄문에 Coroutine 을&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px; box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;경량 Thread&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 15.4px;&quot;&gt;로도 부릅니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;다만 위 그림의 Thread A 와 Thread C 의 예처럼 다수의 스레드가 동시에 수행된다면 Concurrency 보장을 위해 두 Threads 간 Context Switching 은 수행되어야합니다. 따라서 Coroutine 을 사용할때에는 No Context Switching 이라는 장점을 최대한 활용하기 위해 다수의 Thread 를 사용하는 것보다&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;단일 Thread 에서 여러 Coroutine Object 들을 실행하는 것이 좋습니다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: inherit; margin: 0px 0px 1em; padding: 1.25em 1.5em; background-color: whitesmoke; border-left-color: rgb(219, 219, 219); color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; padding: 0px;&quot;&gt;결국&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Coroutine&lt;/span&gt;&amp;nbsp;으로&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;‘작업’의 단위를 Thread 가 아닌 Object 로 축소&lt;/span&gt;하면서&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;작업의 전환 및 다수 작업 수행에 굳이 다수의 Thread 를 필요로 하지 않게됩니다.&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: inherit; margin: 0px 0px 1em; padding: 1.25em 1.5em; background-color: whitesmoke; border-left-color: rgb(219, 219, 219); color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; color: rgb(54, 54, 54); font-weight: 700;&quot;&gt;Coroutine 은 Thread 의 대안이 아니라 기존의 Thread 를 더 잘게 쪼개어 사용하기위한 개념이다.&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot;&gt;하나의 Thread 가 다수의 코루틴을 수행할 수 있기 때문에 더 이상 작업의 수만큼 Thread 를 양산하며 메모리를 소비할 필요가 없다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: inherit; margin: 1em 0px 0px 2em; padding: 0px; list-style-position: outside; list-style-image: initial;&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px;&quot;&gt;각 스레드마다 갖는 Stack 메모리 영역을 갖지 않기때문에, 스레드 사용시 스레드 개수만큼 Stack 메모리에 따른 메모리 사용공간이 증가하지 않아도 된다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0.25em 0px 0px; padding: 0px;&quot;&gt;같은 프로세스내에 ‘공유 데이터 구조’(Heap)에 대한 locking 걱정도 없다.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px; color: rgb(74, 74, 74); font-family: Ubuntu, &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 15.4px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Android</category>
      <category>Coroutine</category>
      <category>Thread</category>
      <category>스레드</category>
      <category>안드로이드</category>
      <category>코루틴</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/25</guid>
      <comments>https://thgus13.tistory.com/25#entry25comment</comments>
      <pubDate>Sun, 15 Nov 2020 16:21:47 +0900</pubDate>
    </item>
    <item>
      <title>[안드로이드/Android] TextInputLayout - 속성변경(밑줄 색, 커서 색,  메세지 등)</title>
      <link>https://thgus13.tistory.com/24</link>
      <description>&lt;p&gt;&lt;span class=&quot;gj cm&quot; style=&quot;box-sizing: inherit; font-weight: 700; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(41, 41, 41); font-size: 21px; letter-spacing: -0.063px;&quot;&gt;TextInputLayout &amp;amp; TextInputEditText 설정 및 기본 커스텀(밑줄, 커서색, 메세지)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;gj cm&quot; style=&quot;box-sizing: inherit; font-weight: 700; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(41, 41, 41); font-size: 21px; letter-spacing: -0.063px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;TextInPutLayout은 TextInputEditText 에 입력된 텍스트에 반응하는 레이아웃 입니다. EditText 의 상위 버전이라 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;기본 사용법&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;1. 라이브러리 설정&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;build.gradle 의 dependedncies 에 material 라이브러리를 넣어줍니다.&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;implementation &lt;span style=&quot;color:#6a8759;&quot;&gt;'com.google.android.material:material:1.2.0'&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;style&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;AppTheme 의 parent 를 AppCpmpat =&amp;gt; &lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;MaterailComponents&lt;/span&gt;&lt;/b&gt; 로 변경해 줍니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;변경하지 않아도 사용할 순 있지만, 몇몇 속성이 적용되지 않습니다. (밑줄 색이라던가.. 터치 시 라밸 색이라던가...)&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#808080;&quot;&gt;&amp;lt;!--&amp;lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.AppCompat.Light.DarkActionBar&quot;&amp;gt;--&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;style &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;AppTheme&quot; &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;Theme.MaterialComponents.Light.NoActionBar&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;colorPrimary&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;        &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;colorPrimaryDark&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimaryDark&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;        &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;colorAccent&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorAccent&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &amp;lt;/style&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;3. xml 선언&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;이제 원하는 xml에 태그를 추가해주면 준비는 끝납니다. TextInputEdittext 가 아닌 EditTextView 를 넣어도 동작은 합니다. 다만 모든 커스텀 속성들이 다 적용되는진 모르겠습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;com.google.android.material.textfield.TextInputLayout&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:id&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@+id/inputSmsCode&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@style/EditTextGreyStyle&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:layout_width&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;match_parent&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:layout_height&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;wrap_content&quot;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:theme&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@style/EditTextGreyStyle&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &amp;lt;com.google.android.material.textfield.TextInputEditText&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:id&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@+id/etSmsCode&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:layout_width&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;match_parent&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:layout_height&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;wrap_content&quot;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:textColor&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@color/colorPrimary&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:textSize&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;13sp&quot; &lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/com.google.android.material.textfield.TextInputLayout&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;주의점&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 특별한 이유가 없다면 layout_height 는 둘다 wrap_content 로 해주세요. 텍스트 사이즈에 맞게 조정됩니다. 임의 설정시 잘못 조절하면 TextinputLayout 의 힌트 라벨과 TextInputEditText 의 텍스트가 겹치게 나올 수 있습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;T&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;extInputLayout : 말 그대로 layout 속성 적용( 에러/헬퍼/힌트 메세지 설정, 라벨/힌트/밑줄 색 설정 등&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;TextInputEditText : textSize, textColor, font 등&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;커스텀 설정&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;com.google.android.material.textfield.TextInputLayout&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(152, 118, 170);&quot;&gt;    app&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(186, 186, 186);&quot;&gt;:helperTextEnabled&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(106, 135, 89);&quot;&gt;=&quot;true&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;app&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:helperText&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@string/app_name&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#9876aa;&quot;&gt;app&lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;:helperTextTextColor&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;@color/colorPrimary&quot; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;기본 설정은 위와 같이 TextInputLayout 에서 설정 할 수 있습니다. 에러/헬퍼/힌트 모드 enalbe = true 가 디폴트 입니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;하지만 밑줄 색, 커서 색은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;TextInputLayout 에서 &lt;strike&gt;때려죽여도&lt;/strike&gt; 커스텀이 안됩니다. 제가 이 글을 쓰게 된 이유죠.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;별도의 style 적용을 해줘야 합니다. 왜 공홈에 설명이 없는지..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;색은 귀찮아서 통일했습니다.&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;background-color: rgb(43, 43, 43); font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;p style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;&amp;lt;style &lt;/span&gt;&lt;span style=&quot;color: rgb(186, 186, 186);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;=&quot;EditTextGreyStyle&quot; &lt;/span&gt;&lt;span style=&quot;color: rgb(186, 186, 186);&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;=&quot;Widget.Design.TextInputLayout&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;&amp;gt; // important : &lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&lt;font color=&quot;#a9b7c6&quot;&gt;parent 를 이것으로.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(169, 183, 198);&quot;&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;colorControlNormal&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;  &lt;/span&gt;// unFocus 상태일때 밑줄 색.&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;&amp;lt;item &lt;/span&gt;&lt;span style=&quot;color: rgb(186, 186, 186);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;=&quot;boxStrokeColor&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;&amp;lt;/item&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt; &lt;/span&gt;// Focus 상태일때 밑줄 색.&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;android:textCursorDrawable&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;  &lt;/span&gt;// cursor 색.&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(169, 183, 198);&quot;&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;android:textColorHint&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;  &lt;/span&gt;// hint 색&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;    &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;hintTextColor&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;  &lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;// floating hint 색&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'Menlo';font-size:9.0pt;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt; &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;helperText&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt; &lt;/span&gt;// xml 에서 한 속성을 여기서도 할 수 있습니다.&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt; &amp;lt;item &lt;/span&gt;&lt;span style=&quot;color:#bababa;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;=&quot;helperTextTextColor&quot;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;gt;&lt;/span&gt;@color/colorPrimary&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/item&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(232, 191, 106);&quot;&gt; &amp;lt;item &lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(186, 186, 186);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(106, 135, 89);&quot;&gt;=&quot;errorTextColor&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(232, 191, 106);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;@color/colorPrimary&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(232, 191, 106);&quot;&gt;&amp;lt;/item&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p style=&quot;color: rgb(169, 183, 198);&quot;&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;parent 를 &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;Widget.Design.TextInputLayout&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;로 설정해 주어야 합니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;colorControlNomal : unFocus 상태시 밑줄 색&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;colorControlActivated :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;Focus 상태시 밑줄 색. =&amp;gt; material 공홈에선 클릭시 밑줄 색상은&amp;nbsp;boxStrokeColor 라 명시되어 있습니다. 그러나&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;colorControlNomal 를 사용하게 되면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;boxStrokeColor 가 적용되지 않기에,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;boxStrokeColor 를 썻다면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;colorControlActivated 를 써줘야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;마지막으로 중요한 건 &lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;tyle 과 theme 두개 설정&lt;/span&gt;&lt;/b&gt;을 모두 걸어줘야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;밑눌을 제외하면 style 만 적용해도 되지만, 밑줄의 경우 두가지를 모두 설정해 줘야 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;그렇지 않으면 AppTheme 의 colorAccent 값이 적용됩니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre style=&quot;background-color: rgb(43, 43, 43); font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;p style=&quot;&quot;&gt;&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;&amp;lt;com.google.android.material.textfield.TextInputLayout&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(232, 191, 106);&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: rgb(186, 186, 186);&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;=&quot;@style/EditTextGreyStyle&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: rgb(152, 118, 170);&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: rgb(186, 186, 186);&quot;&gt;:theme&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;=&quot;@style/EditTextGreyStyle&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 135, 89);&quot;&gt;    &lt;/span&gt;&lt;font color=&quot;#9876aa&quot;&gt;...&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;이러면 밑줄 색, 커서 색을 포함한 기본적은 커스텀을 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Nanum Gothic&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Nanum Gothic, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;helper, error, endIcon 설정 등은&amp;nbsp;마테리얼 공홈을 가면 보다 자세히 보실 수 있습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Android</category>
      <category>EditText</category>
      <category>TextInputEditText</category>
      <category>TextInputLayout</category>
      <category>underline color</category>
      <category>밑줄색</category>
      <category>안드로이드</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/24</guid>
      <comments>https://thgus13.tistory.com/24#entry24comment</comments>
      <pubDate>Sat, 7 Nov 2020 01:56:04 +0900</pubDate>
    </item>
    <item>
      <title>TCP/IP 통신 간단한 정리 - 개발자 필수 개념</title>
      <link>https://thgus13.tistory.com/23</link>
      <description>&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;오늘은 TCP/IP 정의와 플래그(Flag) 정리 해보려고 합니다. 모바일나 웹에서 서버와 데이터를 주고 받기 위해서는 정해진 프로토콜에 기반하여 데이터를 주고 받습니다. 오늘은 통신 프로토콜 중 하나인 TCP/IP를 다뤄보려고 합니다.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;TCP이란?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;TCP = &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Transmission Control Protocol&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;TCP/IP 통신은 안정적이고, 순서대로, 에러없이 통신하기 위해 만들어진 프로토콜 입니다.&amp;nbsp;통신 프로토콜에 있어서 기본적으로 꼭 알아두어야 하는 통신 방법입니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;TCP/IP는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;HTTP와 달리서버와 클라이언트가 한번 연결이 되면 다른 한쪽에서 끊기 전까지 계속 통신할 수 있습니다.&amp;nbsp;(HTTP는 단방향이여서 한번의 통신은 데이터 한번 전송한다는 방식입니다.) 주로 채팅이나 실시간 방송 등 계속 통신이 이루어져야 하는 상황에서 사용 됩니다.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;TCP 안정적인 통신이라고 하는 이유&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;1. 통신 시작과 종료 과정 :&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; TCP는 통신을 시작하기 위해서 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;3-handshake&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;와 통신을 끝내기 위해 &lt;/span&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;4-handshake&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt; 과정을 거쳐야합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;패킷 전송 확인 :&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; ACK(확인 응답 패킷)을 통해 전송한 패킷을 다른 곳에서 잘 받았는지 알 수 있습니다. ACK 패킷이 오지 않으면 패킷이 잘 전달되지 않았다는 것을 알고 해당 패킷을 재전송 합니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;연결 성립 과정 (= 3-handshake 과정)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;클리아언트가 서버에 접속 요청 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;SYN(a)&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;패킷 전송&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;서버가 클라이언트 요청을 받고 수락한다는 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;ACK(a+1)&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;와 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;SYN(b)&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;전송&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;클라이언트가 서버 수락 응답 패킷을 받고 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;ACK(b+1)&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; 서버로 보내면 연결 성립&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;연결 해제 과정 (= 4-handshake 과정)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;클라이언트가 연결 종료를 위한 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;FIN 플래그&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; 전송&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;서버가 요청을 받고 확인 메시지 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;ACK&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; 보낸다. 데이터 모두 보낼때까지 TIME_OUT 된다.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;데이터 모두 보내고 연결 종료되었다고 클라이언트에게 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;FIN 플래그&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; 전송&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;클라이언트는 FIN 확인 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;ACK&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; 보낸다.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;서버는 ACK 받고 &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;소켓 연결을 close&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt; 한다.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;클라이언트는 서버로부터 못받은 데이터가 있을 경우를 대비해 일정 시간 세션을 남겨 놓고 잉여 패킷을 기다리는 과정을 거진다. &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;TIME_WAIT&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;TCP 단점&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(0, 0, 0);&quot;&gt;1. UDP에 비해 느리다 :&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(0, 0, 0);&quot;&gt; TCP 는 패킷을 매번 보내고 확인하는 형식입니다. 이런 방식은 실시간 영상이나 빠르게 많은 데이터를 보내야 하는 상황에서 느릴 수 있습니다. 물론 해당 데이터가 안전하게 가야하는 경우에는 조금 느려도 사용해야 하지만요.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;2. 패킷 재전송&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;문제 :&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt; 상대방에서 응답 패킷이 오지 않는다고 해서 계속 같은 패킷을 전송하면 서버에 문제가 생길 수&amp;nbsp; 있다. 왜냐면 데이터를 받을 수 있는 버퍼의 양은 한정되어 있기 때문이다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: rgb(132, 132, 132); color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#202122&quot; face=&quot;sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>IT 정보/개발공부</category>
      <category>flag</category>
      <category>Protocol</category>
      <category>tcp</category>
      <category>TCP/IP</category>
      <category>프로토콜</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/23</guid>
      <comments>https://thgus13.tistory.com/23#entry23comment</comments>
      <pubDate>Mon, 18 May 2020 06:52:39 +0900</pubDate>
    </item>
    <item>
      <title>[Android] 안드로이드 이미지 효율적 처리를 위한 방법 정리</title>
      <link>https://thgus13.tistory.com/18</link>
      <description>&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;이미지 효율적 처리를 위한 방법 정리합니다. 기본적으로 이미지를 불러오려면, imageView.setDrawable() 혹은 imageView.setBitmap() 이러한 방식으로&amp;nbsp; jpeg, png 파일들을 불러와서 사용할 수&amp;nbsp; 있습니다. 하지만 이런 방식들을 사용하다보면 이미지가 너무 큰 경우, 혹은 이미지가 너무 고화질인 경우에 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;o&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;ut of Memory 문제&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;가 발생할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;그래서 이미지 효율적으로 처리하기 위한 방식 3가지를 정리하려고 합&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;&lt;b&gt;1. 이미지 해상도별 별도의 폴더로 관리하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8; text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 450px; width: 450px; height: 282px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991D1A465E8490CD28&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991D1A465E8490CD28&quot; width=&quot;450&quot; height=&quot;282&quot; alt=&quot;안드로이드 이미지 처리&quot; filename=&quot;스크린샷 2020-04-01 오후 10.01.17.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 450px; height: 282px;&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;위의 폴더와 같이 hdpi, mhdpi, xhdpi, xxhdpi 와 같이 같은 이미지라도 해상도를 분류하여 저장할 수 있습니다. 위와 같은 방법이 효율적인 이유를 설명드리겠습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;안드로이드에서 이미지를 찾을 때, drawable 폴더에 가서 우선 이미지를 찾은 후에 화질별 폴더에서 이미지를 찾으로 가는 방식입니다. 그렇기 때문에 사양이 좋지 않은 기기에서 큰 이미지를 불러 와야 하는 경우, 저화질 이미지 폴더에 이미지를 넣으면 좀더 작은 크기의 이미지를 가져올 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;2. 이미지 처리 라이브러리 사용하기&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;요즘에는 이미지 처리에 유용한 라이브러리가 많습니다. Glide, Picasso 등 찾아보시면 많이 있습니다. 각각 라이브러리마다 지원하는 기능들이 조금씩 다르니 원하는 기능을 지원하는 라이브러리를 사용하면 좋을 거 같습니다. (참고 : &lt;/span&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;a href=&quot;https://thgus13.tistory.com/17?category=852864&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;Glide 라이브러리 정리한 글이 있으니 참고해주세요&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;제가 라이브러리를 추천하는 이유는 많은 시간을 직접 쓸 필요가 없이 빠른 시간내의 메모리 문제나 이미지 변형 문제등을 해결해 줍니다. 그렇기 때문에 개발 생산성을 높일 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;3. Manifest의 LargeHeap 설정 변경하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8; text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 600px; width: 600px; height: 250px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/994104415E8493B70C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F994104415E8493B70C&quot; width=&quot;600&quot; height=&quot;250&quot; filename=&quot;스크린샷 2020-04-01 오후 10.13.51.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 600px; height: 250px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;안드로이드 Manifest 파일에서 해당 설정(largeHeap)을 true로 설정하면, 해당 앱이 휴대폰에서 좀더 많은 메모리를 사용할 수 있습니다. 하지만 엄청 추천하지 않습니다. 왠만하면 저 설정을 사용하지 않고 메모리를 효율적으로 사용하게 코드를 짜는 것이 중요합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;그리고 안드로이드 공식문서에서도 이렇게 설명하고 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: double; border-width: 3px; border-color: rgb(159, 211, 49); background-color: rgb(231, 253, 181); padding: 10px;&quot;&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;대부분의 앱에서는 이 속성이 필요하지 않으며 대신 성능 개선을 위해 전체 메모리 사용량을 줄이는 데 초점을 맞춰야 합니다. 또한 이 속성을 사용 설정하는 경우 가용 메모리가 고정적으로 증가될 것이 보장되지 않습니다. 왜냐하면 일부 기기는 총 가용 메모리의 제약을 받기 때문입니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;그러니 해당 옵션을 사용할 때에는 이런 점을 숙지해야 합니다.&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;감사합니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Android</category>
      <category>Android</category>
      <category>drawable</category>
      <category>Glide</category>
      <category>hdpi</category>
      <category>image</category>
      <category>mdpi</category>
      <category>Memory</category>
      <category>OutOfMemory</category>
      <category>xhdpi</category>
      <category>xxhdpi</category>
      <category>안드로이드</category>
      <category>이미지처리</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/18</guid>
      <comments>https://thgus13.tistory.com/18#entry18comment</comments>
      <pubDate>Wed, 1 Apr 2020 22:19:18 +0900</pubDate>
    </item>
    <item>
      <title>[Android] 안드로이드 이미지 처리를 위한 Glide 라이브러리 정리</title>
      <link>https://thgus13.tistory.com/17</link>
      <description>&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;안녕하세요, 오늘은 안드로이드 개발할 때 이미지 처리를 위한 방법 중 하나인 glide 라이브러리를 소개 및 정리해보려고 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;글 작성에 앞서,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;1. Glide 라이브러리 소개&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;2. Glide SDK 요구사항&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;3. 라이브러리 사용을 위한 선언 방법&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;4. 라이브러리 기본 사용법&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;Glide 소개&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Glide는 google에서 공개한 라이브러리입니다. Glide는&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; white-space: pre-wrap;&quot;&gt;&amp;nbsp;미디어 디코딩, 메모리 및 디스크 캐싱 및 리소스 풀링을 간단하고 사용하기 쉬운 &lt;/span&gt;&lt;span style=&quot;font-size: 14pt; white-space: pre-wrap; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Android&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; white-space: pre-wrap; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;용 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; white-space: pre-wrap;&quot;&gt;인터페이스입니다. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; white-space: pre-wrap;&quot;&gt;빠르고 효율적인 오픈 소스 미디어 관리 및 이미지 로딩을 도와주는 프레임 워크라고 설명할 수 있습니다. &lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;개인적으로&amp;nbsp;glide 장점은 이미지를 썸네일 방식으로 불러올 수 있다는 것, GIF도 띄울 수 있다는 것입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;Glide 사용을 위한 SDK 요구사항&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;1. Min SDK Version : 14 (ice cream sandwitch) 이상&amp;nbsp;(해당 라이브러리를 사용하기 위한 최소 sdk 버전입니다)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;2. Complie SDK Version : 27 (Oreo MR1) 이상&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;사용 방법 - 라이브러리 선언 방식&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;1) build.gradle&amp;nbsp;파일에 라이브러리 선언&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;build.gradle(Project) 파일&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: double; border-width: 3px; border-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;padding: 9.5px; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(51, 51, 51); border-radius: 0px; margin-top: 0px; margin-bottom: 10px; line-height: 20px; word-break: break-all; overflow-wrap: break-word; white-space: pre-wrap; background: rgb(255, 255, 255); border: none;&quot;&gt;&lt;code style=&quot;padding: 0px; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.85em; color: inherit; border-radius: 0px; background-color: transparent; border: 0px;&quot;&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;repositories&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-size: 12pt;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;font-size: 12pt;&quot;&gt;mavenCentral&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-size: 12pt;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;
  google()
&lt;/span&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;build.gradle(Module : app) 파일&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: double; border-width: 3px; border-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;padding: 9.5px; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(51, 51, 51); border-radius: 0px; margin-top: 0px; margin-bottom: 10px; line-height: 20px; word-break: break-all; overflow-wrap: break-word; white-space: pre-wrap; background: rgb(255, 255, 255); border: none;&quot;&gt;&lt;code style=&quot;padding: 0px; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.85em; color: inherit; border-radius: 0px; background-color: transparent; border: 0px;&quot;&gt;&lt;span class=&quot;n&quot; style=&quot;font-size: 12pt;&quot;&gt;dependencies&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-size: 12pt;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;
    implementation &lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;font-size: 12pt; color: rgb(221, 34, 0); background-color: rgb(255, 240, 240);&quot;&gt;'com.github.bumptech.glide:glide:4.11.0'&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;font-size: 12pt;&quot;&gt;annotationProcessor&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); font-size: 12pt;&quot;&gt;'com.github.bumptech.glide:compiler:4.11.0'&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-size: 12pt;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;2) Maven 선언&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;Maven :&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal; color: rgb(36, 41, 46);&quot;&gt;&amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;dependency&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;groupId&lt;/span&gt;&amp;gt;com.github.bumptech.glide&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;groupId&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;artifactId&lt;/span&gt;&amp;gt;glide&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;artifactId&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;version&lt;/span&gt;&amp;gt;4.11.0&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;version&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;dependency&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;dependency&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;groupId&lt;/span&gt;&amp;gt;com.github.bumptech.glide&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;groupId&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;artifactId&lt;/span&gt;&amp;gt;compiler&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;artifactId&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;version&lt;/span&gt;&amp;gt;4.11.0&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;version&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;optional&lt;/span&gt;&amp;gt;true&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;optional&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=&quot;pl-ent&quot; style=&quot;box-sizing: border-box; color: rgb(34, 134, 58);&quot;&gt;dependency&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;2가지 방법중 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;한가지를 선택&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;해서 선언해주시면 이제 glide 라이브러리를 사용하실 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;이미지 처리 기능 상세설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal; color: rgb(36, 41, 46);&quot;&gt;&lt;span class=&quot;pl-smi&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;Glide&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    .with(myFragment)
    .load(url)
    .centerCrop()
    .placeholder(&lt;/span&gt;&lt;span class=&quot;pl-smi&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 14pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;drawable&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 14pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;loading_spinner)
    .into(myImageView);&lt;/span&gt;
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5;&quot;&gt;&lt;b&gt;&amp;lt; 예시&amp;nbsp;&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal; color: rgb(36, 41, 46);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;ImageView imageView &lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 12pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt; (&lt;/span&gt;&lt;span class=&quot;pl-smi&quot; style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;ImageView&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;) findViewById(&lt;/span&gt;&lt;span class=&quot;pl-smi&quot; style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 12pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 12pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;my_image_view);&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal; color: rgb(36, 41, 46);&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;Glide&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 12pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;with(&lt;/span&gt;&lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: rgb(0, 92, 197); font-size: 12pt;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 12pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;load(&lt;/span&gt;&lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: rgb(3, 47, 98);&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;http://goo.gl/gEgYUd&lt;/span&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-size: 12pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;into(imageView);&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li style=&quot;line-height: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(필수)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;: this, getContext() 와 같이 해당 Glide를 통해 이미지 처리하려는 activity를 선언해주시면 됩니다.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;load&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(필수)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; : 이미지 url 주소, drawable 파일 이름 등 이미지 주소를 입력&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;centerCrop() : 이미지를 동그란 형태로 만드는 메소드&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;placeholder : 이미지를 가져오기전에&amp;nbsp; ImageView에 띄울 이미지&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;into&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(필수)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; : 이미지를 띄울&amp;nbsp;ImageView&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;감사합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Android</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/17</guid>
      <comments>https://thgus13.tistory.com/17#entry17comment</comments>
      <pubDate>Tue, 31 Mar 2020 21:49:44 +0900</pubDate>
    </item>
    <item>
      <title>[Android] 안드로이드 서비스(Service) 정의 및 구현 방법 정리</title>
      <link>https://thgus13.tistory.com/16</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;안녕하세요, 오늘은 안드로이드 4대 컴포넌트 중 하나인 &quot;서비스&quot;에 대해서 정리해보려고 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;글 작성에 앞서,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;1. 서비스 정의&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;2. 서비스 유형&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;3. 서비스 구현을 위해 알아야 하는&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;필수 사항&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;4. 메니페스트(Manifest) 서비스 선언&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;이 순서로&amp;nbsp; 정리해보겠습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;1. 서비스 정의&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소 입니다. 사용자 인터페이스(UI&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;)를 제공하지 않습니다. 다른 애플리케이션&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;에서도&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;서비스를 시작할 수 있으며, &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;다른 애플리케이션으로 전환 하더라도 백그라운드에서 계속해서 실행할 수 있습니다. 또한,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;구성 요소를 서비스에 바인딩하여 서비스와 상호작용할 수 있으며,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;프로세스 간 통신(IPC)도 수행할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;font color=&quot;#202124&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;예시 상황&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;1) 네트워크 트랜잭션을 처리&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;2) &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);&quot;&gt;음악을 재생&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;3) 파일 I/O를 수행&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;2. 서비스 유형&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;1)&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt; 포그라운드 (Foreground)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;포그라운드 서비스&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Foreground Service)&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;는 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;사&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;용자에게 잘 보이는 몇몇 작업을 수행&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;합니다&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;. 예를 들어, &lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;오디오 트랙을 재생할 때 포그라운드 서비스를 사용합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;2) 백그라운드 (Background)&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;백그라운드 서비스는 사용자에게 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;직접 보이지 않는 작업&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;을 수행합니다. 예를 들어, 파일 다운받는 것 입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;3) 바인드 (Bind)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;애플리케이션 구성 요소가 bindService()&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;를 호출 -&amp;gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;해당 서비스에 바인딩 되면 서비스가&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em style=&quot;box-sizing: inherit; margin-bottom: 0px; color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;바인딩&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;바인딩된 서비스는 클라이언트-서버 인터페이스를 제공&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;구성 요소가 서비스와 상호작용하게 하며, 결과를 받을 수도 있고 심지어 이와 같은 작업을 여러 프로세스에 걸쳐 프로세스 간 통신(IPC)으로 수행할 수도 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;바인딩된 서비스는 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;또&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;다른 애플리케이션 구성 요소가 이에 바인딩 되어 있는 경우에만 실행&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;됩니다. 여러 개의 구성 요소가 서비스에 한꺼번에 바인딩될 수 있지만, 이 모든 것에서 바인딩이 해제되면 해당 서비스는 소멸됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font color=&quot;#202124&quot;&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#202124&quot;&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 2;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#202124&quot;&gt;&lt;span style=&quot;font-size: 18pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 18pt;&quot;&gt;서비스 구현을 위해 알아야 하는&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 18pt;&quot;&gt;&amp;nbsp;필수 사항&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 2;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-size: 16px;&quot;&gt;서비스를 생성하려면 Service&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-size: 16px;&quot;&gt;의 하위 클래스(또는 이것의 기존 하위 클래스 중 하나)를 생성해야 됩니다&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&amp;lt; 필수 함수 &amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;1) onStartCommand()&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;시스템이 이 메서드를 호출하는 것은 또 다른 구성 요소(예: 액티비티)가 서비스를 시작하도록 요청하는 경우에 사용.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;이 메서드가 실행되면 서비스가 시작되고 백그라운드에서 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;무한히 실행&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;될 수 있음&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font color=&quot;#202124&quot; face=&quot;Roboto, Noto Sans, Noto Sans JP, Noto Sans KR, Noto Naskh Arabic, Noto Sans Thai, Noto Sans Hebrew, Noto Sans Bengali, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;p style=&quot;line-height: 0.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;2) onBind()&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li style=&quot;line-height: 0.5;&quot;&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;시스템은 다른 구성 요소가 해당 서비스에 바인딩 되고자 하는 경우(예를 들어 RPC를 수행하기 위해)에도 이 메서드를 호출한다.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 0.5;&quot;&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;이 메서드를 구현할 때에는 클라이언트가 서비스와 통신을 주고받기 위해 사용할 인터페이스를 제공해야 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 0.5;&quot;&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;이 메서드는 항상 구현해야 하지만, 바인딩을 허용하지 않으려면 null을 반환해야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;3) onCreate()&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&lt;b&gt;시스템은 서비스가 처음 생성 되었을 때,&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&lt;b&gt;이 메서드를 호출하여 일회성 설정 절차를 수행&lt;/b&gt;합니다. 서비스가 이미 실행 중인 경우, 이 메서드는 호출되지 않습니다.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;서비스가 onStartCommand()&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&amp;nbsp;또는 onBind()&lt;/span&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;를 호출하기 전에 실행하는 메소&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;드&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;4) onDestory()&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;시스템이 이 메서드를 호출하는 것은 서비스를 더 이상 사용하지 않고 &lt;b&gt;소멸시킬 때&lt;/b&gt; 사용. 서비스는 스레드, 등록된 리스너 또는 수신기 등의 각종 리소스를 정리하는 경우 호출합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;4. 메니페스트 선언&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;마지막 서비스를 사용하기 위한 필수 사항입니다. 코드는 잘 구현했지만 메니페스트에 서비스 선언을 안하시면 기능이 잘 작동하지 않으니까 꼭 까먹지 마세요!!!!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: rgb(255, 228, 0); color: rgb(255, 255, 255);&quot;&gt;&amp;lt;application&amp;gt; 요소의 하위에 추가하시면 됩니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre class=&quot;lang-xml&quot; is-upgraded=&quot;&quot; style=&quot;box-sizing: inherit; background: rgb(40, 49, 66); color: rgb(236, 239, 241); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 14px; line-height: 20px; font-family: &amp;quot;Roboto Mono&amp;quot;, monospace; padding: 24px; margin-top: 0px; margin-bottom: 0px; overflow-x: auto; position: relative;&quot;&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;&amp;lt;manifest&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt; ... &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&amp;nbsp; ...&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;&amp;lt;application&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt; ... &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;&amp;lt;service&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;box-sizing: inherit; color: rgb(206, 147, 216);&quot;&gt;android:name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;box-sizing: inherit; color: rgb(156, 204, 101);&quot;&gt;&quot;.ExampleService&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;br style=&quot;box-sizing: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: inherit; color: rgb(77, 208, 225);&quot;&gt;&amp;lt;/application&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;감사합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(32, 33, 36); font-family: Roboto, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Noto Sans JP&amp;quot;, &amp;quot;Noto Sans KR&amp;quot;, &amp;quot;Noto Naskh Arabic&amp;quot;, &amp;quot;Noto Sans Thai&amp;quot;, &amp;quot;Noto Sans Hebrew&amp;quot;, &amp;quot;Noto Sans Bengali&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Android</category>
      <category>Android</category>
      <category>Background</category>
      <category>BIND</category>
      <category>Manifest</category>
      <category>Service</category>
      <category>매니페스트</category>
      <category>바인드</category>
      <category>백그라운드</category>
      <category>서비스</category>
      <category>서비스선언</category>
      <category>안드로이드</category>
      <category>인드로이드4대컴포넌트</category>
      <category>컴포넌트</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/16</guid>
      <comments>https://thgus13.tistory.com/16#entry16comment</comments>
      <pubDate>Mon, 30 Mar 2020 21:40:55 +0900</pubDate>
    </item>
    <item>
      <title>[GIT] 자주 사용하는 git 명령어 핵심 정리(1)</title>
      <link>https://thgus13.tistory.com/15</link>
      <description>&lt;p&gt;안녕하세요, 회사에서 git을 사용합니다. 그래서 요즘 자주 사용하는 git 명령어를 정리해보려고 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;우선, 명령어 정리에 앞서&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;1. git 정의&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;2. git 설정과 초기화&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;3. git clone&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;4. git pull&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;5. git push&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;1. GIT 이란 무엇일까요?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;파일 관리를 위한 분산 버전 관리 시스템입니다. 여러 사람들의 소스코드를 효율적으로 정리하고 저장하기 위해 사용하는 것입니다.&amp;nbsp;GIT은 서버에서 파일을 관리하며, 여러 사람들의 소스코드를 각 버전 별로 저장하여, 코드를 효율적 관리를 도와줍니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;2. GIT 설정과 초기화&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;git 사용하기 위해서는 해당 저장소에 접근하기 위해 user name과 이메일을 설정해야 합니다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;자신의 github의 username과 이메일을 입력하시면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p id=&quot;8957&quot; class=&quot;fr fs ap ce ft b fu fv fw fx fy fz ga gb gc gd ge cx&quot; data-selectable-paragraph=&quot;&quot; style=&quot;box-sizing: inherit; margin-top: 2em; margin-right: 0px; margin-bottom: -0.46em; color: rgba(0, 0, 0, 0.84); word-break: break-word; line-height: 1; letter-spacing: -0.004em; font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 21px;&quot;&gt;&lt;span class=&quot;ft hk&quot; style=&quot;box-sizing: inherit; font-weight: 700; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 18pt;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;git config --global user.name “Your name”&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id=&quot;8957&quot; class=&quot;fr fs ap ce ft b fu fv fw fx fy fz ga gb gc gd ge cx&quot; data-selectable-paragraph=&quot;&quot; style=&quot;box-sizing: inherit; margin: 2em 0px -0.46em; color: rgba(0, 0, 0, 0.84); word-break: break-word; line-height: 1; letter-spacing: -0.004em; font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 21px;&quot;&gt;&lt;span class=&quot;ft hk&quot; style=&quot;box-sizing: inherit; font-weight: 700; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;git config&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; font-weight: 700; letter-spacing: -0.084px;&quot;&gt;&amp;nbsp;-&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; font-weight: 700; letter-spacing: -0.084px;&quot;&gt;-global user.email “Your email”&lt;/span&gt;&lt;/p&gt;&lt;p id=&quot;8957&quot; class=&quot;fr fs ap ce ft b fu fv fw fx fy fz ga gb gc gd ge cx&quot; data-selectable-paragraph=&quot;&quot; style=&quot;box-sizing: inherit; margin: 2em 0px -0.46em; color: rgba(0, 0, 0, 0.84); word-break: break-word; line-height: 1; letter-spacing: -0.004em; font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 21px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt; font-weight: 700; letter-spacing: -0.084px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;3. git clone :&amp;nbsp;파일 복사해서 다운 받기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;특정 주소의 github 파일을 받고 싶은 경우에&amp;nbsp;사용하는 메소드 입니다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;다운 받으려는 폴더에 파일이 &lt;b&gt;아무것도 없을 때&lt;/b&gt; 사용해야 합니다. git&amp;nbsp; pull 과는 다른 역할 입니다.&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size:14pt;&quot;&gt;&lt;b&gt;git clone &amp;lt;파일 다운 받을 git 주소&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;4. git&lt;/span&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&amp;nbsp;pull :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&amp;nbsp;파일 받아오기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;git clone과의 차이는 pull은 내려받는 의미가 더 강합니다. 즉, 현재 github의 폴더의 프로젝트가 진행중이며, &lt;b&gt;최신 버전을 받기 위해&lt;/b&gt; 사용합니다. 해당 명령어를 사용하기 위해서는 git 이름과 비밀번호를 입력해야 하는 경우가 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;b&gt;git pull origin master&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;5. git push : 파일 업로드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;자신이 작성한 파일을 github에 업로드 하기 위해서 사용하는 명령어입니다.&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;아래의 순서는 파일 업로드 하는 방식입니다.&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;git add : 업로드할 파일 선택 명령어&lt;/p&gt;&lt;p style=&quot;line-height: 1.5;&quot;&gt;git commit : 업로드 할 때 comment 입력&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;b&gt;git add -A&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;git commit -m &quot;comment&quot;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;git push -u origin master&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;cf) git add 명령어 관련 참고 이미지&lt;/p&gt;&lt;p&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?--&gt;

&lt;/p&gt;&lt;div&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?--&gt;

&lt;div&gt;&lt;img width=&quot;545&quot; src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArAAAAGFCAYAAAAFG8A1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7N0FuG1VuT5wkBIwALu7E1EEA5UQsTvxXru7ExW7OzEQBZGyW1Gkm9NdNIp5vd7+j//+jcO7GWexTuxzzt5rn8N4n+d71pxjjvjGN+qd3xxzri1KR0dHR0dHR0dHxyaETmA7Ojo6Ojo6Ojo2KXQC29HR0dHR0dHRsUmhE9iOjo6Ojo6Ojo5NCp3AdnR0dHR0dHR0bFLoBLajo6Ojo6Ojo2OTQiewHR0dHR0dHR0dmxQ6ge3o6Ojo6Ojo6NikMGEC+49//OOKo1L+/d//vfzv//7vFWcdG4L/+I//qL//93//V/7f//t/9Ti2zbWrMzYF+/zXf/1X1akdE9F1EP/zP/9TZWNiTeVPB/u1tnD8z3/+s/z3f//3FSGTi0Fbx1Y5XhfQdTCf1tYdHR0do4C56T//8z+vOFs5L/31r3+tx3//+9/r7+aICRHYP/3pT/XXhP+3v/1tfDKfqkVoc0e7ODrenDve+mA62yfkrP3985//PD42nJtgkDYksoWwDcXayodR20+Z0cHNbzBVesQ2yg6RT9ja4Ma9jRud15X8dnR0dEwWMs9zRrTry7/9279dcbR5YkIEdrvttivXvOY1yxZbbFG23377suWWW9Zj4rjL+gsbXuMa1yhbb711PWbnnXfeudv3Cpnu9okO0Wfbbbct22yzTdlhhx3GrxkzxlDiRMRr81ofSRnJc7B8Mmr7pazrXve648eETsPib0xJWbEHHdrwwfiDctOb3nQ8Ltlqq62qrGv6Ll26dJksyTyU+b19utY+Nd/csM4EliF23HHH8tvf/rYsWLCgLFy4sMybN6/Mnz+/LF68uIZ1WX+56KKLyrJly8qsWbPKta997fp7+umnV9tefPHFQ9NcnWS628c4WLFiRTn//POrThkbGSczZsyov7Nnzy5z5swpy5cvr/WZO3duPR+W50RkbeWP2n7nnXdeufTSS6sd2GDJkiW13HPOOafqNSzNxhTlsYey6ML+bO986dKlQ9O0ctJJJ5VLLrmk2lNa9ttll13qNXYfjN+lS5cuUyXmJL/mVgQW/vjHP9bfzRnrTGA9PsP0TeIMZeG54IILqjg2sXdZfznzzDNrJ7TA64BsbMG3UJ577rlD01ydZLrbh250RIoQxhBTY8OYCblctGhRDUemkCoEUtiwPCciayt/1PZTX3MFnejnl45ItPNhaTamqC87s7lj9T7jjDMqsWebYWlaQXLpKw8EWHuy48yZM+u1YWm6dOnSZSrEnGRuM8eGwAYbY4vadMWEthAwDI+FRdcCYDHMwmRR6LL+YkHUCXml2NlC6W7qD3/4Q/0dlubqJNPdPiFmxgJCY4zQWZgxQkdjRlwTjvghVAjkYH4TlbWVP2r7qbP5wi/d6EWnyy67bGj8jS2IZkizctmEHkj8sPiDIv6FF15Y89FmsaPfYfG7dOnSZSolc5qtTZ6YZ8/+uu7z3xQxIQ9sCGwWH94LC6EF2G+X9Zd4eM4+++xyvetdr27VsOBa8HXOYWmuTjLd7UMPHk4exUwkCBuvK4KI9NDXuDGGeP3E85hH3GF5TkTWVv6o7UcHOinvtNNOGyeOdKTTsDQbU9jdvIWAxj7I5y9+8Yuh8QeF7bQZO+bm3R5iHm75DUvTpUuXLlMhuJg51tyEp8HV4QspE/LA2iCchdHiw2AWQWHOu6y/6HiIDXu6g7JQCrc4svNg/KubTHf70O3Nb35zfUnrTW96Uw1DzBBUnk/EzUSDQL3xjW+sk4w95R/+8IfH67IhsrbyR22/kFdEkB7C1J8djj/++KvE39iinmyg3nRhh2OOOaZc5zrXKQ94wAOGphkUBFgbSu+Y7vLNTUCXLl26jEJwsszvXhb2tRdfIyCb81eiJkRgvcVs4mawTOIm8EFjdpm4WATZk6fOwtguihtjgfzoRz9a8yXve9/7avshLh45P/WpT63hhx9+eI2rTV2P10r5IV/ShICIx+uXRTx9wTGygKwgDBtDf3mszT4hR3R81KMeNf7G/+67716vqY96nHXWWfX3SU96Ur2uX7/4xS8et4lrSB/vpXoolyhDGDs4533zCN6kIc1LX/rSWuZb3vKWWu/vfve79abvdre7XY0vziGHHFLLjLzrXe8qBx98cD1GbFsbJw29lO03usXunn54tM2b+K//+q/VK/iGN7xhvE3YS5p1sd+aRB7ItrS+cBD91e0FL3hBOfnkk2u8lME2bOBYmHrRWTuIx2bJ49BDD611Y2t1F4dO0Vk+7CFP/TVxTdqOifzEU4Y81F/ZeTrkunNpXBP3iCOOqPv6H/zgB69S12ESG0kbe9Jd2cIG43fp0qXLVIk5yFxpPjIvXV3QCew0kSzW60sw1iavfe1r62eV5H3DG96wvlWNFHgsus8++9SF/Gtf+1oNQyAs9IiSRxMWf2EW7pAC7e/45z//eY2jH9BTPGTFI2J5Sbsx+sja7EO3XKf7Qx7ykBoP2fLppB/84AdVF3HE/d73vlevR3jh6I2QesStTs79ShMCdOqpp1bCKByZPfHEE+s1eb797W+veb3kJS+p1xBYhHLXXXcdJ1bIrTjPeMYzqp4nnHBCefe7310/a4UAsxUyqsyWqLKrMDopH4FjX0QMIdeOiKs2fvWrXz2uE/tIszb75Xh1Iv93vvOd459saT+FJewmN7lJ9WgmfuxHnNOFvmxAD0Q0n+Q7+uijaz3Yw00GUWfn9FU/aYSrm/KQfTZ2XX90HcFlL79eXJOHcvwqnw31W8fCEGfl6yvRe3USGyUv59J2AtulS5dRiznIHNgJ7BrQCezkyYYSjLXJK1/5yrrw80zK/3Wve10lGYjOAx/4wEp8jjvuuKoD4uBj70iS9tXWdEAgXLOAC8sXKZzLB3mQp2uIXcjEoC7rI2uzDz0RFMd04VUTT938IvB0D+njNRR+m9vcpv4isPIWRx4tMXKcsvyZBzInHvsg6uopz1e96lWVsPJU8kiyi/pHd3bxeJ9X9hWveEUlVwhdvISO5Smta/JFYkNGEbbYU1xCNyL++9///lqXkDv2kF6do4O44jhv7Zfj1Ym2z03Qgx70oFpf+X3sYx8r17/+9WueboRiK3WSL72VL25IOJ0cS0PcXGg/ZFc6NqC/X+XoU47lxcbS6L/pm/KMJ1w8BJ9tYnvhdGiJPEGc5bXffvtdpb6DEhspkx7OpVW+sMH4Xbp06TJVYg4yp5mPzEtXF3QCO00kC+v6Eoy1ydve9raa7xe/+MX6HdCb3exmdUFHfPbcc896zYKufOX97Gc/K/vuu+/4h99vf/vbl1/96leVePBCCiNILDL3/e9/v56Lj3QgDPJT1t3udrehOk1E1sU+IbAIxkMf+tC61/Md73hHJe68fUiYfaF+vcgkn5e97GX1V12RnpCtr3/96+Wud71r1d/1e9/73uUjH/lIJUN00O+Rt1vd6lb1+h577FGe8pSn1OMXvvCF9e36H/7wh3XMXOta16qkarfddqvX48VEBg877LDaJs7dXCBg0iJ1zukt/R3ucIdqf9cz9j73uc/VPZz2kiLge++9dz0+6KCDapuwibZYV/utSdiU95NHmy3YCslMO8vTtR//+Me1DOUi8vkDAHohn0i5+mkH2y3IV7/61Upq7ddlY32T3W584xuX5z73uePtutdee1V7sBsRB6lGcL2U9vKXv3z8zxnY6zOf+cz4TRd9f/3rX9dw1924vPe9763H67IHNjbqBLZLly7TTTqBXQd0Ajt5YkHcEIKxNvGCD8/fxz/+8fKEJzyhlvGJT3yiXkO+EINvfetblWD87ne/G1/okSftbmM4EuKFG3oK22mnnSp5QWLsqxVfOOLmbfhPfepTNeyJT3ziVfSZqKzNPsLbc6REvG984xvljne8Yz3+0pe+VOtnr6/zJz/5yeVFL3pR1ZmnVp/2uNo+1fYfrIg4SNOxxx5by0JwEVFhfmMjcW0lQLrssXTO7oinGwX2dJ58f/rTn9YtB+yP4LKl7R13utOdxtP6Td6uIWNHHnnkeBsIlz6/b33rWytpUx8k0/Ha7Jfj1QkiyOtJn4c97GG1fsY+4ZF2g4Psf/nLX642duOgHKS2re+zn/3sqj+dYrOjjjqq1hvxTrwQVMe85Qjx/e9//3pTkjjytf3CTcXDH/7wGpatDdL7tfdbnfVbNy25IYkI63tgu3TpsimLOcj83gnsGmBBYSQG6wR248qGEoy1yWte85pKJpAQ3j1Eh4cR0dx///1r2yJ2iNZnP/vZSrS85GSPq/TPf/7zKylAjpAiRISe9m16jH7f+9635qEMezHFecQjHlHj5OWwDZG12QepQKrEIciOeAhnvKwHHnhgJU+Pf/zjq648n16ico13T93lf6Mb3aiGqZu8eaoRSvV/3OMeV8t5zGMeU+Owncfetl+kTDZCquwJjbc1ezGjy+tf//o6hi6//PLq2RTmRkIcnkvtg/hnKwZPJO8icqyusS09tCHP573uda8axiupHrFNZEP6lzL1HWnVGQFVR+Ee36fu9v2q1y1vect6E+AGQrn6EW8s27Ife4hPEH3nPK9I6Xe+851KmOV129vetnqZ6aDM97znPdUOnihoL/F4prUnr6obAnV0E6K9DjjggBrn05/+dC3LS2c8sf7EgE2FIeSD9R2U2Ej7dALbpUuX6STmIPNsJ7BrQCewkycbSjDWJkgNMmV/pEe4z3nOc2o5PFQeeTtG9pCL7DNEABCKeP+I9B73fuELX6jhPJ0InmtehuGl9dKSONIitEjjMJ0mImuzj2ttOfRSX8TyJz/5SU2D+PzoRz+q5NwxUoXYe4wd76f81UtfR3IQcV5ZJBypVEdEyj5Q5zyxbGaLACKabQvGh2vKlZ84bIKAKd+eZGWxnZejxEOskaPYn4QAR+yd5Y30ZYUb3OAGlSA6Nw6RYh5ZdcpWA9fYZm32y/HqRP76kLS81c4Ra3myE11cY1+P8/UDbS/MMXGsT4iP/MYbzfPPi5v48X7nKxLEflZEVB2d87yylXA3ComXPutYfoi18tw4CGdbNiC2LojDMz6szq3ERurdCWyXLl2mk5iDzMWdwK4BncBOnmwowVib5AUcLxEhekgZEneXu9ylegyRMR5JpCSEqhVECgFAfLU9Eidc2Fe+8pV63Z7Mm9/85pV45A1v3rph+kxU1mafXEfYEIy8vIUc0fee97xnPefl9PusZz2rkrx8wsqeWWl5U52rgzzt1bTHUt2EI0SIVLYo8B7KH0GNNxeR5VG0vzWPvOlJP7Z2bkuHfBA5NwXsh0ghtMiZdIOPy8nznve8WpY9u8KRZHoKS7vxlMqbXiH1sc/69i/58Hoil25Q6M1ebMijL0/zg68qsL9zxF2fc5zr6sBjrJ6OhdtCEL0iriUtkskTray8qIbIKscNBhIfstuSXqJ/q1/2gNumkMmeh1dY30LQpUuXTVk6gV0HdAI7eWJB3BCCsTZBmOTrETTigYAiPNrU42hkw6NbxNY+WXE9LrfnUvmIbTySPJUITT6/hRz65Xmzn1NaeyL9etFpY+i/NvtER8RKPIRUvG9/+9s1TYhqiLg6SovQI0oIqXjyyT5K1xBB9fJ4mhfRY2f1D4FF0JWJxCG3vIq8fOIoWxzC3myXdvArDg8iUot4Sa/8fLPXFg5fJJDWeEOu1ZHY/qHtbCFQXzoilsJ4d2Mb+ksv3w3pXwi5fJFJL4vRRX3sK/aIX54e1yOmiGa+TGCvrjLlod8pi7ca4XZdfoikeST7ebMnNulcE9/nxdhWX9UOwvVDTw6ksz0gn4dTDj2QTWJbi7bXjtLw+D7taU+r6bRlW9dhEhspsxPYLl26TCcxB5nfO4FdAzqBnTyxIG4IwVibIKvIgn2dyMff/va38pvf/KZ+v1N5xHdgERVfIOCdFYYs5DqiwquYN/nzFrd+cetb37rmi3wIy1v+9iciLsN0moiszT6uISWOEQxkUH2RG0SGHggMXX0HF/mib+qA/MlD+uz1JAgpcimvXXbZpfzyl7+sWwEQN9e9FMRT2r4cxNtHL4+oQ4ajJ8+h+AiVMZQbCXFsT2BXezRvcYtb1DA6I85IN0EIpdFWKZP33C+hq/KRXPkjyN7uj43Wt3+xYbYQEPbwy55+tf83v/nN6q02J+RRP9GHxFMXe415U5HRbBXg+Ucq9U1xko6wle0S7IKcIvfZjkDypw3xuA8K7zb9tdvgNeW7eaHTYH0HJTZSViewXbp0mU5iDjK/dwK7BnQCO3myoQRjbRJS5vG0PbA+1s9bFgKHOCBO2hMR9B/x8VCFaCAOCBRvGELh01kImrReOEJeEJGQGy92ecGH53aYThORtdkH8Uba8p1We1p59GxlkEZdfe9TWl7i5MUjjQjaUiAOcqIeSCCPXgiVR/ZIkPLUX1l5+QoJeuQjH1m3GSBrbE2nkCb5+9wYT61PPQmzJzPebDogoT6bpV14KL2ERN8QROIYcTX26GCvqxsFOvqyhGvi+bKCF+t4b7UTwr02++V4dcIuvNgteUQutbHyfFpNmWxIN/1A3+IpFjck2wtTdBDHub7Ce0xP+vmjBy9uIeIIO3vykKozEn3KKafUmxM3U/bdal/6uUHxb2peEmu3H9CZLtnSgWjL01MDhFscHuXB+g5KbNQJbJcuXaabdAK7DugEdvJkQwnG2iReUIuvbQLKCeFA2BCKPGrmHeNl5b1DvMRHAMRxXdtLh3S4hiDk8TCSIW/XeDilT5/ZEJH3muxDHzrHO4wEChc/pIP+yNxf/vKXSkDFDdlS1zzSV4762KspnryUI6346oSUu8aG8la+sqRXPhsh0vlXLXnJQ3z6yF/5ynZdeteF00OZ8kd65StcXPmmfeghX/HlKQ+kmD7i8rxKn0fqa7Jfjlcn4pDUWxnyZg+/0V942h4ZT9n6Cd30D7qpX/JQF7/pQ/ph2ka9Ura6u/kSnnZiT3mKRy9tJFx/DYGPfnRnO3GE5aYnuq9JlO83fcl5J7BdunSZDmIOMu+ZjzqBXQ06gZ08sSCy5/oSjLWJRV+bhVxZwJGMlrBpS/HSxuKIb8F2TTqkgI4IhnjIr7TyCXlCCpCX1EnYoD4TlbXZR3jqhpDQHbFBVujluro5RmSkESfknc7q6FwaxEjeyszWBPESpiy/yJjyQiKVr+6xiXgJj47iCxNHefSQb4ghAkd3aVIfYWkj8Z37jV7RSXqkVlnixmbi5Xh9+hd9lI/0OVeOutNZvs5do5NwccXLNb+JS0IahYnrV5+iM2KO4ApnV3UVVz21RermuvLU23X1iG0SJl9tLu2f//zn2rbS0Sn1lp/fNUniKjdpO4Ht0qXLdJDM9eajTmBXg05gJ08siOy5vgRjbSIPBAGpsoCH1Fjo/SId2lTcHNPHsbC2nZG7DBaEATlANIQhD9IgDQiN443RR+i4JvsIR8hDehAkRAOBCcFzTh91Ftc+YISGfoRt2viOk48w2yEQOdekc10+KY895IN8JX7IpLiOE5+evJLsJX/1YEt5xK7q5VheyUN8aR2HnIujXuIJJ8K1N48jnddmvxyvTqRTR2XETsmPrspKPYi2dy1l01F81+jvWHwiDrtFD3WUNn1PHdhOngh/yhVfXHo5JuIkP2XSSxx6s738Yivp2nLWJNFNvnR23glsly5dpoOYg8yL5qNOYFeDTmAnTyyIWZgng8AibVmsEQ5l+XXNgoxUaUsLu/L8CnM9YSQkJcQOWciCjthI4xyR4Ol0HZmKHusr8l+TffRH5YuDXAmji+MQRfULeRRPWmnEpWNsQv8QRWnYjt1cVy9hsUPSpXz5p6zYzXEIL+9i7CZ/eSvTNXHkRcRxXbnyVpb8lCGP5C+ttnAduUPSkD35yse12MP5+vYvZUkvX3WURt70o6dH+3SSP93TFuImnK7qIo36u55zeSGq6hA7CmNL+bE7HcQVpk6O6dYeaw/p2JKusZ2bCt5b1+kur4TLz/GaJDZSF/o47wS2S5cu00HMQZlPO4FdDTqBnTyxILLn+hKMtQnCIG/EwHkWcHk71o4hFRb+EAfEQBzXLPauix99Q1D0hxAx4dIlr5CLDZGUtzr70A85URbyQh96CqeTurgewpcBL22OxXEc4iqt+vkVJp3yUlf5u558XHPsurh+6Zs8XZOXc5L4fp07jo50kabdc6pevN+up13ET/rkgUwigdFPfHFdW9/+JQ4d6C9fuiCbKdN1OsmfSKP+rosvLZ3UxfUQbOnEET/xkPDEC3EVN/qzCz3afJSlfHHTB8XxK0/h9EVipRemTLbJmFiTxEZ0ldZ5J7BdunSZDpJ52HzUCexq0Ans5IkFkT0typNBYOWrreRl0bbwIz+ISAiBMCJ+iNZ0aeOpsg/b+EVSYhd2ij2EiS+eX/ZCjowHpN95SK/4dJN3W9YoZLLtxwYh82whzC87sWVs6jwEUtzoJb1j15F0tqRr2mWwvKmW2Cj1cN4JbJcuXaaDmIMy93YCuxp0Ajt5koV8sggGQoBghFzYG+jROjKhXNd4vhBaOojnN9cH85tqmWz7xDOHrPJ66tdswQPIc8j7rByfi2KrkH/6xPPnujyQV7ryBCJkIbujlMm2H1Knz7CJ+rKf85A9x7zS7KMvOid0Yjt6+XUujTjs53dj6LehEh3UqxPYLl26TCcxB5k7zUedwK4GncBOnlgQ2XOyCIbHp4iZxRf5QiSEOQ9p0KbiIg1pW5JH56OUybaPfaWpN1tcfvnllVC5pkykNGQFgVVmjtlSHNcdS5NweSZslDLZ9iPs1pJ19kmfUjaJjdP3kH9xWhu7Lo2bBmH2xibPUUlspE70dt4JbJcuXaaDmIPMm+ajTmBXg05gJ08mm2AgrYio/BEzXkXeMp5HbUmcI1vZf4hceCTufFieUymTbR95s4/+jOj7FJZH2fEasoM4EcQKkRE39hPGzvQRzs7iTIcxMtn2ixeVrULY1ZtNHGdrgD6FkOp3+TaseH6dsxevN131R3bN1wNGKbERXTuB7dKly3QSc5A503zUCexq0Ans5MlkEwyEikcLGUUeEA5EQXkWZMQij7yznSD/Z3/00UcPzXMqZbLtgzyxD3LlF2FF8oXr47YO8BoiZOxDD/Zz7Lrx4G9n/TvVEUccUf8RTBx2Zd9hZU6lTLb9EFD1RPgRT2WxQbz+tqywhX6Xz3ulv7ku3F8Ym2PYUHovo/HYIr7DypxKiY20NX2ds2MnsF26dBm1mIPMmZ3ArgGdwE6eTDbB0E7+elPeCIK/03TsLzfl729h/QXn7W9/+3qOkOTvOI899tiheU6lTLZ9CEIVz6mybnjDG47/ja6/g/XLbmz54x//uJ7vuuuu41ss/KWrv0Y9/PDDa3rkjDdSfoNlTbVMtv2QVuTevICcIvZulG55y1vW/uavX/36i1jziLjve9/7qi7+ipZNjzvuuHFbsx3CSzd5DytzKiU2omcnsF26dJlOYg4yv3cCuwZ0Ajt5YkGcTIJB5IukEsc8hjvvvHMlCMccc0w9vvvd7149ZFmgCUI2LL+plMm2TzzQiJdjBB7hUhZSGlvc9KY3rX2evRDW3XbbrY4FpMZ1Y+S73/1uJa6ILd3kOazMqZTJtl880WynnJDP2C228avfsc973/veev6KV7yiEtbvfOc71aZILnvKj23pPKzMqZTYiE6dwHbp0mU6iTnIvNsJ7BrQCezkiQVxMgkGQnHNa16z5v3Vr361PiYX5hEt8oFQILLOkTcesngfjzrqqKF5TqVMtn3Y48QTT6zbBJTBDspJ/REscZB7tkJieBptLXDOXiG6hxxySN2CIF/ppsMYmWz7EfmwC2EP9lHWjjvuWG0YQu9GQZycm0ukP+ywwyqBjX7i6JPT5QbAbyewXbp0mW7SCew6oBPYyRML4mQSDIuufIlHtdnzicQiYMJ4HJEwcaUJmcgjcUTiDW94Q7ntbW9bvbi2GLzxjW+s1+Tl93Of+1y5xS1uUcmvx8df/OIXN0ofmWz7EGQp+4I99o8H9pvf/GYlW+ziGtv94he/qNfYC1ETP9syjjzyyBqfXQ866KByq1vdqtpKfuwXfdmebdlLupvd7Gb15kI5Hr8rCxHeGI/Qp8J+JOWkDylLP+JdVQ/XfOHB/uJ3v/vdZZdddikPf/jDax/huRafnRBgNnXD8OIXv7huQXDtJje5SfnIRz5SvxohjvZ6/etfP379QQ96UO3L+TMH+YYgb4jERvJTN+fK6wS2S5cuoxZzkLm1E9g1oBPYyZMs/JNFMFoP7Ne//vVKALQhgoBs8ZC5hjyIr12dEy8lIRPveMc7KjFtH6nrEy972ctqPscff/x4HnlcvPfee9c6DeozUZls+4QsqgfvK9uow3Wve91a/3hU2YWH+tvf/va4DUKUEDUiPi8jgpY4uRkg9nwiXr/85S/ruXbJfmP2Qszy16zaRnmD+k5UJtt+kZQzSGCRejdA6u26ay996Uvr9T322KOe22vt3M2ReGz+sIc9rPa53Byk/33qU5+qZX3oQx+q4bYd+NVmL3/5y8f/zYsHPG23IRIbaZNOYLt06TKdxBxkXu0Edg3oBHbyJAv/ZBEM5KElSpGHPOQhlSwhXc6RDW1KQrqQD4SC98s5j6Q3w3//+9/Xx8PIA73Fc/3e9753fbTukfDrXve6SsiG6TQRmWz7IDryRvSRe+fKGZR99tmnXuNRRKaMCeVn4iC+2kDXG93oRuV617te9Sw651W9zW1uUwm+9ojNb3e725Vf//rX9cWwAw88sHpukWi/dEOqB/WdqEy2/SIpZ5DA5oaG8JLS4+CDD679cd999631/d73vldtg8DqM7/97W9rWnZkH3aIl1YebMgb6/ypT31qbYMPf/jD5dOf/nTVIXpsLPv5NS46ge3Spct0EnOQ+a4T2DWgE9jJkyz8k0UwePLkizCEUDi+3/3uV68jZK6HwAoL6UAaTj/99Or5EoZkCI/Xa6eddqoEhEfRI2FxkDtk7KSTTtokHoGHlCCwPJ68qnljnp3UR7k8pGzJi+2c0EuYl5OcH3rooeN6DhM3ErzVp5xySn30LZ2Xwx772MdWosZzKE9jTD62KAzTeSIy2faLpJxBAps+Q/baa696E/Ca17ymnj/wgQ+scb/1rW/Vc/3MuRulnLPZYB7K+fKXvzy+fcCNwNve9rZqQ7aL3RBdvxsisVEnsF26dJlu0gnsOsBizkgM1gnsxpUs/JNFMJAinydCxr7xjW/URR3pdE3+gwSWOBbmmvgtgYiE2CG49sH6licSwWsm3CN45G5Qn4nKZNtHHuro0XMeP6svGyBSyraNgl3isfZYW/2NBcQ3RAoRk5djIo9s38jnuNiLF5un2iNv+4WNL3m4xmbyQJZ4bofpPBGZbPtFUs4ggeWNd41d2ddNwlve8pZ6k8Cbytscj3RLYFvbuVHyy+a8/NpDn/vJT35Snva0p9W+7bo9tfH6u0lQ5+i3vhIbaf9OYLt06TKdxBxk3u0Edg3oBHbyJAv/ZBI0+RKPuC3+wvMCUktg6SEs8fMZLdsFkAf7ZREQefKk+SUIx3Oe85xKvvQPxER64a0u6yPyn0z7IKDqgjQqB9FiC2X98Ic/HN8XqywEjJc19pE2ehF7OeWFvLOZrRXyUw7yIy9lsAviJU/2vstd7lLLzJYDJEz8jfEh/8m2XyTlDBJY/cs1RFVd2fDNb35zJav3uc99qr1+8IMf1DlGGh7w7BH2hxpujNgjBDKk/q1vfWv9nqy85ZubLFtelKXNtGmr4/pIbNQJbJcuXaabdAK7DugEdvIkC/9kEQztJF8ePgTLY31tiEy51r4BnvJCJhAw594GTxy/BKHdc889az75kkGu5Xuz3tpvdVkfmWz7yBep8hkt5Tj2aJ/3j/cQIRIvOrgJoAdy5jz2JcgakmP/b8JI7OHFJPtsv/a1r41vO0B2E+93v/tdLSfkiC6D+k5UJtt+kZQzSGD1DX0ECVUv8upXv7pet69YXN/WTfzs/919991rWMQ1fexd73pXLesFL3jBVbYX3PnOd65ebDogxhtjjoqN5NUJbJcuXaaTmIOyZpiXri7oBHaaSBb+ySIY8s6eVR5VXimeQ29oa0PkQfuKgzwQx4gB8kEH8exb9G9d8skjWwRWPl7qeuYzn1k9ZojGve51r+qp3BS2EPDeySce2EwExMtV6q4e4vE+syHy6YYAKaNXyChPIuJEeBljr3x67AEPeEAtixfxKU95yvhf9vLAulnw0hGSxKby3lgexMm0XyTlDCOwbCqMHXn+bSFgkwMOOKDGF0cftM1CPmxtC8CznvWsurdaXrmp4nmVl8+ZeQks4bYP+Fc5NxzK0Vb0iX7rK7GRftAJbJcuXaaTmIPadevqgnWu6f/8z//UPWheysmiwFgm8yxWXdZfEJU//OEP9dGpxZhted7YeWMSjE1VkG1EDilBAj2SR/T8IjrD0nS5Urr9NkzYzVjM1gRPMOyB9nQh3uIuXbp0GYWYwzknzEf4A/zHf/xH/f3P//zP+rs5YkJUHbO3CFr0TOBZ/DqB3XBhxyyE7KwzEuTVb24Urq7CBu0dpjAeznhMB+N3WVW6/TZMctOO9Oe7v7YusKd5cFiaLl26dJkKwRPMUZ7acVBwOP7v//7vFcxt88V6EViLoYncAsgjwYCDhKzLxIQd80ifnXlfLY5szDs7LM3VSfSx0047re5R9UgamchWB96xYWm6XCndfhsm8VIbnwgruxmnyKwxOhi/S5cuXaZSvGPAsWheQmDh3//938s//vGPerw5YsIE1kTuBRSTeFh/yFaX9RcLoQ7Ivt5c1yHdKCAXbMzWV2dBwOLt1w+ResSBJwwpG5amy5XS7bdhwl5Iq7HKjsYrO7Kn/bzD0nTp0qXLVAi+EC5haxPi+v/+3/8bJ7KbK9aZwP73f/93NQwvIVLFm8OL4yULn/kxqXdZf9EJ//a3v1XbWhh5ZHm7hW+MPwLY1IVd/vSnP9U+xz5IQ0v+h6XpcqV0+22YIK9IrPmPzXwLmB0zdoel6dKlS5epkGzpxBnMSxDP69///vf6uzliwh5Y4tuNvISOb3zjG9df+y66rL/kCwFsGztHvJXtse/VWWKLvI0eexFv/w9L0+VK6fbbMImtfDZu8DNyfoel6dKlS5epEHNQyx0CT283Z6wzgf2///u/6oH1yCyfbMD2fZWAd2LQo9hlYuJxLnv63XnnnVdx/edtwo5SvdQGqrtLdvGY5OqwWX1jodtvw+FpFJgP/+3f/q3813/9Vz3v6OjoGCXMTSGwm7PnNVhnAmuxs/B53IiwIluOPYpEaLMXo8v6yeAexSySnVysBJKAbLmRymdCoJOHdUO334Yh45H9YrPW09HR0dExKuAJmaM80QXn5nyyuWJCM7CFj+fVngv7wBwjr4P7MUYh9oDYNxp9kGzezOjrhSgfjkcSXUMahSGM4ohrD4mvKwjP/kB7B8Vvy5oMiVdbmdNxYczgAMdZxNtw+Otf/1p/Ww/yxiJJGYitfabT4DSJIDgwTC9ez2HhU3WTMt3tpy8Ns0Xbx1xPf6J7a/PJRmw1zI4dHR0do8R0n98nAxOagaczgUUyEU8EFZn1woVP3njBDFkV7sULJDUvotHfubpIG0KrTv6K0rk40g8rc2PKdCewgJz+85//vOJsJbztuDqC6vGqR9YbC9N5gA4SL3oh8SH77BQ4D9Gfyu0hm9IE5+PbuQliW32phRfScn2q6pByhtmxo6OjY5TYlOb3jYUJzcDTmcDSx79Q+OWJRViRWEQVoT311FMrIc1//+fTN455X8XjoUVofVbIueNcG1bmxpRNgcBCiBhvYusJ82m1D37wg+UZz3hG+ctf/lLDg401iKbzAG09zsO8iICsth7aj370o+VpT3vaVbzYk4VNxX4w7Kbo8ssvv+JoJfxz3Wc+85nypCc96YqQyUVsNcyOHR0dHaPEdJ7fJwsTmoGnM4FFThFNesXjmmvIKlLLI+uc3uLEs+oXaQ2JFI8nFnklfQvBqhvCW3LBw/r5z3++vo39oAc9qN4gBPkLu43lZdwUBqg6Dz7ybsGDzV7Xu971ym1ve9vaT6cK091+qyP++lvrgWXjb3/729WGd7zjHesTlalAbDXMjh0dHR2jxHSf3ycDE5qBpzOB5W298MILK5HlSaWXT0hY3JAquvLE5qWzM844oxJTgqy6pk62DiDCCK88xXV9WJkbU6Y7gYV8V86gIDxgD37wg+vb2MirLRrZYvDHP/6x/m5MTPcBSpd2PyYiyx4hZtqYt5D+u+222zgpm6ptBNPdfuzVbgtwznZsGhv605THP/7xtQ73ve99R7IFY5gdOzo6OkaJ6T6/TwYmNANPZwJrYfPInz5IrK8kIKUIrHOEFGnlUXUt3lfnOUbIXMv+WWHIKwKcciZLpjuBbYkZ0nDCCSfUz335Bt397ne/uoUgaPfJ/vnPf77iaMMxnQco+7SPwQe3Bfzud78rO+200zjxCsEf3Ns5mZjuE1xrM7Yc3Ebws5/9rNz0pjet+u+xxx61bw3bajBZiK2G2bGjo6NjlJju8/tkYEIz8HTfQoBs2geLfNKLJ9V+TJ/7Ql6RBoRWfERVmHh5kes3v/lNJbrqlb91db1vIbhyICANxx57bP2Yu/7gjyyEhbzxwgJv7eC+xg3FdB+gIVMt+bLF4ogjjqi2ovftbne7uh3DY/BssZgqEjud7cdm7U1SqxcbHnXUUVVvcoc73GH8BmAqv3UYnYbZsaOjo2OUmM7z+2RhQjPwmgjs/IUrpSVlgzJ/waJxWXCFLJwfWVAWLliZ94Kx35X5rfyduyjnV5XkjZgin/GwIq+2ECCpN7rRjeo/D8VLmzg8tLyuCO7DH/7w6lE87LDDat2QYcQVIRY35UyWTHcCC4jWD37wg6rfNa95zWpTtoQQtpaEwKAnckMw3QdoW9fo9a1vfWucvN7kJjepLxNCa6dBm00WNpUJrr3x8eLWT3/606ozbz8b2uYzCsRWw+zY0dHRMUpsKvP7xsSEZuDVEVhEcvHyZeXMc88pc+atfHlqxbLlZe7sOWX+XI/hl5Rly88vZ8+YPRbvgvLQffcvW2y5bTn0a98uyxesKAtnLSxL5y8sC+bMLEuXLCozZ59b5i8ZI3bLF5Sz584os5bOLfNXLC7nLZhdzp0/p8xdvLAsHCOiM+fOK/PG0smbPkisl7EQUtsCQlY1qL++tTUgL3eJKw3PrTgPechD6otIX//612u87J+VT8ildM7bsFr/MWm/WPDVr361/unD1ltvXd/KTxykWN7SOaYLchxPr/DJJrDx+kH2F0IIaPtINvsO86te/taWfuRXv/pVDd/YntbVYdQDVD1ji9XVOdsn6HXooYeOk1ce6x//+Mf1WjCV+zdhOkxwSH7bx4Z5n1tC/+Uvf7lc5zrXqeOJLY877rjx62mLqapDyhlmR2j1bttWnduxBu3LfrFH0rT9DJLO77C6tvbMV0Lacb46e7c6pt+2/VpZ5iMfRj/xxBPr+Uc+8pH68mGuD+pD7xe+8IXlU5/6VD1PHduyxGnrlzLzmzzbr04kfqtfwlK/YXmC4/Y8+bJn0kS/1j7JN3Vo2y/wOTfItaR5xCMeUT70oQ+Nh7fzAjnmmGNq/yHf+973xtN5cpXyYofo3tow7yMkzJYu61fiStt+ug/aPhHkM4fal1NiMA1Et+gD3nl4+ctfXo8H28Zvnoyk/tlKFvuKk3Rtu6lPW05rc7rZrnbIIYfUc1+9sR8+6dutaxC9X/CCF4zPw9ZbUAY7//CHPxwfx8mn1XEQ4pD22rB4o0Ds1s5LrS03R6w6A68FayKwZ553Vll+0Ypy4YXnl3lzZ5f5Y+R1+eIxcjhj5licheXsc84rf/nHf5SzZ84pD3/kY8o2W+9QvvyFr5WLF19Uls9dWrYeM/oNdr5OmTXznLJ4yfwyZ+HsMnfJ3HL2vHPL8j9eUE6deUaZvWxBmbtscTnl3LMqgZ0/lv/ceQvKjBmzqqcV6aQPUooo8qDyuhqYGtU1ZNEEhpw698cFPLf3uc99ahyPx8VRP0TVsXyQ09Sd1HpfIeLlBTHE1OQlL2Lh/f3vfz9uL/mJk7zl5Vc+k0lgMxEYfCaJDO4WwyavTJDHH3/8+P++87xayEwAw9JMFkY9QNWX/dpJNQtJa08T6SmnnFLHS2z2yU9+cvzbr0mfhWqqJsBR2i92ClJ3yMLKhrGFfsfzeq1rXavqSz7+8Y9X29G5tXcWnslGbDXMjtGBXq1u5iVfS3ADLf6//Mu/DG3vhLV9K5+jc639nnLyD3kazE+66Ngu6smbbQfT2NpCR3NRoF3MafReVwIL2qzNJ+Wm/8dWSE3bD9p2TB3p2c4xIUbC6dfaK2jjp9/Jm64pz3mutTrkOL9tnNjMb+ZFiN5tPggeEq8ebmQ9PcjTKmBTzhJgB1/TePrTn17PWyTP1KktN3VXL3/p3vZHcJ1ubd+JzTx5TH0QNgQ46RPelgXpN34f97jHlVe/+tVXXLky7qB+yQvSn2Mvtkm7tP3UeatzS/5vcIMbVPLvGOh88skn1+OADtHjt7/9bY1jvQXrrHNbksANcv65KmjbkY5sRs/25sZ5+mjqM2q0NgkStrli1R6/FqyOwK585D+nLFw89jtv1hh5nVEWjhHEi3klxwjk0jGi6c5n1rz55bwxYnvaWWeXObMXlIuWX1xmnnZeuXDR8rLVmNG31NHG8lq8eOFY3nPKzLF8ll24vJx61mnlkssvLefMOrcsWLK4rLjowkqaPd5fsmRZWbHignHPK53sgUVieUP9kYEGRSQTbrD65TUVJt1ee+1V4yGw0qkjohlvbohqyGdIbOIhwcLljeDd4x73qNsS2OyLX/xirb98pXGc/EJinU8mgTWRtAPToDNJmGQM9nYQtkTL4PV1B49u6cWTeMABB9TBm0m1zXcyMcoBmsmrnVjZtLVrFlftyWtIT/LkJz95fLITl00hkzs7TwVGab/UufWqZR8r27R2BTeYFqsQWE8y2sXRokb3qVw8YqthdhwEvZAfcXjisgjvs88+9YU+MN5dN/bburFVa4+Up5/oh+1i345V8dprGb85BnGSt2Ppf/3rX5fb3/725aEPfWglqHRJOvMTYrsuBFZ9vWgnH/28bZvVtVNLMKGtdwg6ZPwE0Q/Ugc6tDdt8knfmq6SN7tK19WjzUa5xOux68m1tDtLsu+++9aYVvv/971eSFFLvKzna3Vwf2NfNcw30bMeJeSXlK3OQ+NOHA6Xtj4P2kj59IPoKy5xla1Obnv1SP8Rz0J6PetSjyvOf//xVXt4N9NHYiK7sveeee9Z1ENobjJQx+AvRV1jqc5vb3KZuYwMk/LnPfW69sXU9c2vbVj635+YgsO6rp3D5Hn300dXJAM5jG2W3egb662A/mi5Ivdt2bG2xOWL1M/AQrN4DO69cfOkF5cRTflsuvuT88r2jjyz3u/c9qld1+22uURDTLbbcouy1z0PKRX+8rDz1wGeWLbe6Rnn3Qe8qx37n6Bpv5+vuVA2/4/Y7lK232rKSvQsuWFHLWLhwfh30P//5z+vAQUbF3WWnncvD992/nPDb39cFz6A30T7sYQ+r1z3uPvjgg+sx3eXhLtigeulLX1o//+SagRgPrBduTDTqJU91RXT9Ipwhr/QSjzimL7L7sY99rObznve8pw5YhI8+7MUrLN94dBFZvwbVZBNYMKlkwRjE29/+9nL961+/emJydxqYAOjE7myWidfgICFik41RDtBBsvnWt761vhHviwI/+clPxq+b3NL/TIy3utWtxh9bQbvYZRGaqjqM0n6BhcZCoVweql122aUSIvtaLUigj9773veuN4J0NY7dRIEbUmgXtalCbDXMjpD2tLDRz3wkTvY95yYov256zQ8hAfJt2yMkRp9rwyFltWOvXVAzzsUz7hMf6AbmQXjVq15V3v3ud1eihUiB8pTrJkMd1tUDax797Gc/u4ouKbslO7EBuJ44adPoCPRsy3Et6dNnYJB0DBLLFulPIL/oOziXRa/BeopPQtTyC+K6aX3nO99Zz+nR2v+0006r28vM98JDviCEMmjrkBu+QJrY4Ze//GX18oLw1Kctt9U34bkB4qmkExvm2mCd2Sn6meP0m8C1zI0waEce29gjbdv2gSBe2qCtv7LvfOc7lyOPPHJct+9+97t1DkmedE8fMgbe//731zSgvNglkFfG8bC1MTcPra7qljLkN4zojgKxSTsvDbbh5oZVZ+C1YE0E9uzZZ5WL/nR++fEvfli2vMZKb+o2W4+Rnu22LFttM3Z+zS3Lwx61T5m5ZF65z4PvX7YYi/PGt72pejwZHMHdYgv7VK5R7/i92GUf7byZc8tFK84vyxYsKe9/13uqp3b7bbYd99huteU1yvOf+7z6qM5dqDs9XpuQU0Jvv4giMmHgOTfgbS9w3R2yMAMCwVQvhNNb9R4Hh8C2HljiPATU4prtAx5/Zn+NvOWRdGyH8PL+IsnOJ5vAtpNLC3VFttkshIH4CoMFFrHNFgx2oq+8DOLBSWqyMeoBmsn/jW984yr9i1gATJ7s5TxbB2xRARNsJtkgbTI4qU4WRmk/dWwXIzcA9MjYJJ6o0Odtb3tbXUwTbqwA+6bPtX1vdTdlGxux1TA7pm4toaGj+u299941rPVieblP+ow5RNZXUORtThGW/eZuigHZYAPePfHNX7HTe9/73hoH6XXD6WbTdZ7VoCX8rYePjkgVyMuNvrgWZjflCMLaCGzqZq5DCkAebuJvfetbV0+XrRTK4kUzFtgoY+AJT3hCLTviGg/s6173uuq0APqYQ60P0Rfe9a531TxDxtp+Bm3fc0N5+OGHl9133328LGtHXhSU9wMf+MAaF0Jc2DvxiTm/xaMf/ejxa/q2dyq0ifrJX3pzKvtpF/FiC7Bu8CaC/iyda+J5mpN48Ur/4he/qNfo65dX0pyUPgJ+2z4XWwunk3T6nzzYxBqgzdhL3826oI/pT3nnQT70ffazn13PlSENoihP4kYo813CiP7xnOc8p4aD4/Yakh6STAd9Jw4rfwBzi1vcom69SL/zxNM4sVZp44w/dmr7lBe0DzzwwHpNnW3roN83v/nNal99K/p+4AMfGB9X8mZrcCNl+wJ7pQ3xl+mC2IReQcI2V0yIKRlwqyOwC5fNLwuWziu/+vVPy1Zj5PSZT3limXn26eVnP/p+QTQftNeeZc7iOWXu8vnl7rvfs+x0g53LW9725jJzxrlj+cwZI7rbl11ueKNy7nkzx0jV8rJk0dIy49yZZfnCpWX2OTPLktkLyrmnn10+/N4PljNOObUsW7S4fO4zny3X3Ha76jV0d2+fZjqsAck7qjM6NwhMIAYIQqaDIiJIr8cJOrXw73znO7VOJkqinm9+85vH821FJzbopEOMczd385vfvJJfaeON+/SnP13P5WmBsigjj3mpa7IJbKBDm6QyyQE7tZMPsVlenUJeCeIfL0AIRDtBTjZGOUCzALqhsaj7I4I83ta32Is3PRMbectb3nKVxTTIYgKZdCcbo7RfysniZG86Ipb+hfDbdmNssGEWZmMvZDA2a20q36muQ35bOwZ0jUeGnoiC+pg77RmMh0kexr88eBFTN2EhK2BOQ37sowdea95p4844tig/85nPHB+Pd7vb3crLXvay8fH9vOc9r275cT1krL1h+trXvlbJBp3l98QnPrGmTx3NDXRcFw8sEmEeRQZTBoeA8fHYxz52fO7wpAcxBWUi+CH5oM0RTEAQ9IXUx9Mh/aTdLyotvUC5GU+DNzaumZvVh0NB2ezjnOMj/cq4pkPg+ic+8YkaH/x9MbKoD8NLXvKSGic46KCD6rqQR+Y/+tGP6vU8idGWzr2zETzmMY+pWwiiw81udrP6lBDUw7G/nWZvN3puKrzExC7aVn7RQVumD4LrbZtbc/RHTyfZSv4h6MEXvvCFWgfpEDs3V8aq9Qv0qde85jXj+t7lLncpL37xi+sxILfaHOSx//77V7sE+jvyqr8GSGWrgzRuOFLGK1/5ytqXPCUFYyBjKNtyIHXV37SbG7p2O4r4iCjkRjL92E2H85BZT9fUO18+cc1+Y2D79InpgNSBjkE7PjdHXFnTdcDqCKw9sOede2ZZMHtG+c2Pflh2GDPgXne7V/noW95W3vjCl9Tzxz98/7JobIE/f+mS8uA996jbBl7/speXy5YsKxeOkdHqfZX/GHGdOWtemTtnjEDOX1Lmz5hfLlxyYVk2f1n5+Q9/Wl74r88v97jLXSsp3nbbrcd0Wjlw6WLCsBDe6173qt5Ngy0TMEEweMRyR2lxsXdWfXbdddea1iDiZbSQhmi+6U1vGs+jFfaQj8nM5PT617++3ukJa+OZHOx9M3HEdimDTnScbAI7bKAhExmotkkoN3eedH7AAx5Q60jciWaRtRAavK0XZyow6gEakgDZcxbCykZuVnJTY6E08dIviy+wYRaFYKrqMGr7xWulTLa0ELR7hYn9k7EnotMuvLHZ4OO8qUJsNcyO2jWkodUp+lsIxTdXIANIg7lHPY37IGmN13gUpXOTDTx7PNSgf3lEytMEKaMlL8ikMlqPYQgeMs2ThgiB/BDO1Ivu0jlfFwJrPlU/hDw3KsmvjefGzh9RsBkS57q52jgRljlQmdrcMRIoj1e84hV1nkeYgL2MOfNnC3Vp7QDiIoZIOxuon/lY/iB/5SOLSCkg2ne6051WmT/dxKonrzL9ECRvxrflIcRpJ1tItIG5HuI9Raq0gbytDwhhriPtkG0evJ/SIGy2erhRCLEDpBjxVsfMNyGnQM/MO9Y4pKyFMq1/6Ru2R4mX/iidGwfbAIQh0/5VEPRnuqlH+rs6mweteeBrAQhzdGMraVyP3VyzfiLP8nE9Hk55ax+fxNSnILpZs3KDB7lRAvtjb3nLW9Zj9pKPtjCeHNv/rRywnunbymz7qzBEGMTlCYbWztMB0Tn1gbYemyOurOk6IJPtVQmsPwZYUpaPyVknnlTuc8c7l1tf9wZlxzFDXn+r7cuzH/uEMuOUM8rSsbjLFi0s991t17Lz2AB9++teXxace15ZPGtu3ROLwC5atrzMXyCvC8uiBUvL0gXLytwZ88oFSy8sBz7t2WWbrRpyuOXYQrfdGIEYI7F0yHYEL2QZ6O5UM0ESE2sIrcGKQOYRvglEuO/AInMmVNfslTLxhNAKD9lsbSEOL1zKMqhMMo7ZzbG7fvHoJm3ya/OcLAIbGHQGbotMbtm/S1//GhUy65fnI94jk3wwmNdkYtQDtL2LV2+TY25Wrnvd647bzq8nAOLEPibb6NrqnElwKjBq+wWps36HPOlf7JZ/2UIO2DULRXTM4gjSEshCNtkYbL/WjtEFtHk7RugdQsdbyHsF5g71drMNIeYeibuBNEcpg3i6I5/Xvva1NX1syIPF2+UcsRHXXJN+mBsEcwukP4pvrkFkchOW+UoYz5TyLOrC1kZg/XoKJm7IJGLiiRZdUi5C9b73va/uEWUjHubMM+LFE0iQC+DZizfSI2Tg3TOP0hPBbNGOqZbkIRocFbxs9NFmyke0pEmbvehFL6rePvXn8U57teC19nRPPvoqUgzy0R8RNi9xKdO8z8bWFfq4+VVXT3ICTyM84ZKfz2qpf9oj9jHHWDPoj4hD+owtFeIEbX8cBDLm0TwoT73bl7jM8wi0tiDpH46tEdraC8ocNto4nwRLn2vFVyzoYk3OVhj20ffylKVNpww3BsaE+iPu7fj2dCIElu7sK436tzcQaUtbutzspJ9KY37RbyA3WOkzjvWH6JPx8+EPf3icqDpXpnGwJjtPNVJH+gUJ21xxZU3XATpaS9ocm6zmLlxQ5p4/RhgXzS1vec9BlVi+613vKcuWjIWdcXYduEuWLi+zF84vZ8+dVR78iH0r6XzbQe8sS5YtLbPnzhk737Jss9225YQTf19+97vf168UzJu7qCxbfEGZO2thufiiP5R73H3Xsby3Kl/5+tfKvDEi/OFPfrRssfVYRxsTeeTfekz89gTxCHihQJjBYm9XCCKxx8cAs6fGJCSODm2CMTmqW/78QJ3XJF4wMzB0eOdsgywrz2RjUHzuc5+rBNZWBh5b4jh7aKeCwK4JPAuxn988IuctmQ6YDgO0JSYW7CwyJBNf9h22hGs6YJT2a23REgw3iOlvsaWxyNsD7aI0asRWw+wYpG4Wthynzwjj2bNf0mLo5ho5MA9YpIn5B2FJWr/KQRLY8A1veEM9D6lBfCzKEC9d9AtpHoTrdEGw9NWWICCYSDJPL5iX6GguVb4vKtiylcU8UEfkyhqRvczKD6luF3qkEAFSN3WXxrwXjzO0xJOHj5489uorX/M6UkFXRDL9K3ZrQbfoi/B7YU2d6YRcGrdtP0OY2Rk5pGtIc9qRnurkxSn9V1/1WDs6i6d+vOOgXdQxxN7NgPR5IZHu++23XyXNkE8/Qdqy7UO8vbaRpK7aXz2SJnHVMenzC5w0qRO4li0CoAxfndF20PaPHPPcs71zadlQPumLfqMfO3o6xZYBHZFANnScdIG8zAPxwqf/ILD0D3hwzR/itW2f/qCPexrWgp2Sh2+bSx/c8IY3HN+iQK/kA9EhNrA32zaHQd1HhbRx+gG07b454qoz8BqwOgI7Z9GCcsqCWWXGxcvK5w8/bCWpHIuLyO58vV3KzW5x83Lg855TySuie5+H7FG22GaL8saD3lpOP/fMMnf+nHLt7bet2wquP0YAr7PDjnX/60UXXFqWLF5RFi5aXs44Z0Z5+oH/ujJf2wa22qJsv8u1a1nX3GWHsnjpkurJ9LhAAw4+miSIIrF/KosmMZBy7rGJuonnLtAEi9C2ZHWYZO+MvJ0jqhYoWxB4D1wz0dknhrQit+KZ9KcLgTWJm5SUHzLmrt+jyemAUQ7QdhI3sWUyC6FoxaSaiY9Np8skMuoJLmW1E75jhIFOxqFFy7HxkC0q04XERv9hdtQ/BgkjTxLCamFVT31G/eKJMrfIo/1nMaTHPAvi8+SLE4+RF6F895IO2X/uOKRF3I9+9KM1bfTMtRCsPFb2mTKeQ3FbQhoPoDbwCNsxoqGOX/nKV8Zv0EI82nqLy+uapzVu2oWlDf3aC+mtdEAGEWJbA2CwrUNK5IG8ZruDF2RtceJdM28Ce2RrD8/qINjD+hBiCWwvPihLHG3ms21gjnazIE3GvC0M2jGE21ds7NUEcbxb4brH7ezKcSIPjhDIN1etV5knEFieX5AGmUTMA7ZOe8fRwEmjvKwZ5mwQpt84t75ot7aNkW5jzQtMwEmTcQfKsg9aX0sf0s5pC+394Ac/uK5rsYm0nkjpY9ow4SA/HnMvqSVcvfWBvKAXpN8ol+OEJzvwlJSTybiK5znE3XYcSB0zXyOwSK/82r7E2eWcndygpQ+bz+OdDjJ+WjKr7T35sL1wuiBtlXaEhG2uuLKm64A1Edhzli0opy2ZXY782Q/L1te+Ztlqm63Lyi8RXPEZrTE55GtfKmeed0bZ/9EPL9ttv3V5/RteXRYtnFsuWr64HPrpT5TbXPfaddvBox/60HLR4iXlrNNOLwsXLC0z5y4o51/yh/L1I44sD374fmWb6+xYrnOTG5SnPe/Actf73r2S2bnz59VHMv6pJy9OmVRsuH/kIx9ZJwQ6I5A2fNu/Y9DyMlpADVjHHluaIJBMj1VMOuqozmsSH66Wn/LEtzjx7pog3dGZTAibIaz0oI+49PY7agILmRCIBc5+pOmCUQ/QdlJOuVkwtb2793z7UdxMmNMFo7ZfFoAsLrGP/k8n+6z1OQth642bLoithtkRUp/swbMo2jLgyUxuCHmh2k8/2UvoGkJhvypY2MWVzktGXmjiDUNgPCplpxAO4hF3S/yEuYE3XzvmJWLztj+aa5TryVHCeQTbuiGL5iXH5jF52MeIcA62IWhfhMQ/NOW6+Vh6yI0LMqiO6Q/KbF8ipVcekQdecDKH6yvZF6p+97znPetxYC8nW5p/IcQG2Ag5yRhFlpA3ZWZsI/cItjqEJCXPeL0Tn+SmgB7C3fB7bG1NQRDVMS8X56UtBFZedEx6j9h5YNvxmLKsS4ibdSw2y35nwg76hmPQJm4ict5C/sp0PY/w6cyhwonTvtfgpcP0W09H6MG7Dsikmw7trJ8jeerETnmS4klD8nMDpN/KD1GXTn/IWk20r/TpO5BrJGu7pxRpL+uTdT5tlXBgEzcB2S8NwszT9sAqJzdrIC3b2RqRMo1BvxxS9tnSz7nxxYudPj0dMGxeavvT5oir9vA1YHUE1ktcCxbNLUuWzi+Pe+T+5ZpjBvzS+95fLj13Zll28mnlOQ/fv+w8FvaeV7y8LDjpxPL3JQvLZTPOLZecfVb558IF5dIzTit/Pees8rdzzy4XnHxi+fPYYLp8LP8V8xeUy8aIqxe7zpk7RpSXLR+TpeXs+bPrv3Fd/Jc/lPnL5pf5S+aVmbNnVY8pfUxa7m6RCxOeY3fBJhC/CKQ7U54yk4hjvzqptNJ4PCw/8ddlC4E4Fhd50UHevK/ylQ97IYfOXaebF8rY0B2xsFESWIM5g9+C6A3RTK7t3s9RYtQD1CTdTpDu9k1gT33qU6sXxo2PBTCLjIl9Ok0go7Zf+lPQTv4WO/9S1ZK7eGOmC2KrYXYE7Z86xWsTpO+0RDNEN16jQLw2vfGXfJEEfxYAWejpwSPZ2tNCLY+2fS3ObqoTpp+mnNg6hFRbJb/BPtKmp4M6xaubt76DtKcbkla/9kUbaK+1EJ7x1NoukD97iUfnF7zgBeMvYAWxRYuMY/qzf2wJbTkpO79tPJBv8maX9ridK6Al+0HyDaSRNh5BkK4dCyHwaQd1j/3SDjyXbhToG73aerU3iAlPWtA+rb7SD2ujNg0oS1js0EJdUz9obQVpSxhsE2j1yfH973//VdpbWyun1TU2TljO5SE+KCvXW93bfNr5q43TttUoETuOan4fBSbElFZHYJfNnVcuO/e8MvPoY8pr935Euf2YAe85Jo/cfuey+9jvfcfE74nv/mD5jx//qpTfnFTKSWeVyw47qlz+raNKOfnMMTm5LP7ukWWZxyJI6JlnlWVjec49b2b9G9q5S5eXM+fMLWfPnVMWXrByP+2cebPHrp1eli1dWPesuoukE/LIy4qw8irwplpcEEYEku7iIJuuI5Ne2MoLVoioY8QT2UWABwnroCCrSK98lIHQysu1fHEAUeXVlafrfunMhqMmsO0imsnBoJ5OJGKUAzQTa36VG9tkMcg10BeCwUVqVBil/ZQzuAAOLopZTCwU8ahMF9tBbDXMjoE6Ref0B+eD9WgJnPzam8R2QWzt4+ZameaTwNzFM5YXnthukFSwa7v4thBXGX7pGMIzDK61NxiDUPfMX+a3dpGHloAE6h07pc3b8RS7hczkNzq3MF/7Ak3qqryQM2Ht+ExZbV1b2yknaR23uidfeQzWEehG5Bd95etYefRIeMaAcHkO2t68HD0Gy2rPkx9Y+9q90cmTDkkTW7REVtjgzVSQ8OgZvZNPfmNXyHXx27ZqdR0sLzYKpG1tP9jm+hqvMFsP2gf0H/mlzPSNjDF5E3GSPvYWTn9lJl3yUbfVtcuoELuNYn4fFSbElFZHYFeMkb3/njW7XPajH5WPP+7J5aA99ypP2vY65aU3vGX5wkMeUd5+m7uWn/7ri8sXH/qIsfP9y+WfP6T837ePKoft/9jy7f0eU/7x5UPL3w47vHxo3/3Kp5781HLKF75Q/jFzRrl4jLwuGcsXIZw1ViYSO3/F8rL4/LHfhQvq384umT+nnL9kYVm8cOXfvprEkE+PLvy2JDMvZNHdNfnysLZk1TGyaYFBeE0GIaJrEgRWHggpQZARaHk4l0c8vrFdPMHKHDWBhUwmGazQTnqjxigHaBYDE1hLRtrJlS76TSa2dnGYDpguE1y7gOW4tWkWQ9cGF6xRIrYaZseQbwt4uyjHWwauqWf6kn7S1ru9WczCm2OQVz5ZFPHYNf+pD61t6RS9jOH0VXGGjek2bbtgaw+6tPOCfENW0k7yFM/noDyCj/6tTdRBfnRpSXvStuMpSDmutf0h/UTa1HPQGybPxGvzznF00CaDNw7RP7/agQ0GbZf8064tYj9IutQn9mzTJcz6lXQQfeXHlplbMtcAGwzqluvKTD1Wp2/C1ZOk3VpbtEh8uqX9QPzBvHNN+7nG1unXoO9Hd+HJO+0jLHmI69g2AFsKwHkk5/JodYT08YSD49Zu9MtYTLr8skc7vqEdF6NE6j7q+X0qMSGmtDoCu3zu7PKnc08t/3bq8eXcr3yhfOIJjy3v22uv8l82W3/zW+WTD3xgOeyxjy2Xf+lL5S9f/1r56qMeUT64267l/I99tPzft75Vvrr33uUrD9un/OVr3ygrvvzV8umnPr3MPero8o95C8qKGTPL4vkLyrxFi8v8MRJ47hjZO+ucs8ussfDzFywsFy9cWBaNEVNx7Cv1mD6kEmn0woPHZvSMxxPZpL/rSG8e4eeLAPJxV8fzaqANEuFhIj9kFEF1rpyQYvkpyz4yHl92U5Z40ihn1ATWwM4gBcfxtrQTzSgxHQaoia61h0k+C187KcaW7QIzakwX+7V2ChLWLgbDFptRIrYaZsdBqMcw26ZO0I63wOLYhqu7fLJoDtqi7V/ph8oYdvOURdkCnXT5zQLuWqtjS6qBLu0+SfoM1qOtQ5t+2FhAaMRNuycdMpb6tOQCWl0J0Lm1d4hu8hhGcNt6BsZ2G+6cbspp888xXaK7MOfqoN7Rs80vesQWuZa4LUEH5Sduq3trc+WnX8gvN01J53rKCSFMnNjPb+rRInrlV5zUMUgeAT1jH/rrDyk/6eSTOINkEULyIX1fmuiojMRv09GNPkSZyoikDkGbB6RM6WJP1zPfO27HH73TntMBsWcnsKvBarcQzJtTLptzTvmfJbPKX874fVn24+PKiu8fU/735N+XcvJJ5Y/HHVvOP/ywUs48rZSzTy8XfvfwcunRR5Ry7hmlnHZSufDQb5RLxohuOXdG+d8TTizLjvtBWfrLX5dLzzuvnO/x+7z5ZcGihWXuwkVl1tgx0rdiydKyaOascv7csfLnzF0ZZ0yvEEhxkEheUL/CeF+F84QirfHCIrQhj9kCgFSGZKbOaxL5ikekde7TM8rh+RXW2sx1Qgckd9QENmgHrwE/bFIbFUY9QFtbsFEmVnAeXUye7SQ/XSaRUdovi0e72LX9LBBGBhel6YDYapgdgyxyrV3Tb0JOQizaBTGLp8UyaV1LHwsBcG1wIY1NB+2UPKVJenGyIMujzTflipNjED/pUkYW7ugRHVoCNjh3pC7ybsdOypKX47aPpB8kvt/oPAzRh55Jm/EYJFzc6Jh0IG50Sbr8Ck8d5Zv0rX1btHZsr4mfa9EnBNW1hCWOMOlJwlobgn7VXkt50a0lha2NWx0dt/GkTdw2TfpQkPPEUX5rU4it2rq1/UWaVpf0MWHJK3WBxHWt1afNI0gYmwz2y7aObf7RE6TPtcG6t3YZJVLHTmCHQOP5uL1v8SGFIVtI2OJFY8RxjMTyxK4YkwvmzC4XjhHBi2fPLJfMWr1c2sgfxkjkpTNnj4VLO6duS7C3dvH8MUI4fyVJtG2AOBZGeF5J4myqgsjyFPP8elEjNu9YidYW3gQFE9HmPkA3Frr9Ngzs1JIH8Fa1RW5wQezo6OgYBcxPvlACmfM3Zx6xzgQWMHveSZ5MLw/45d1EYoeRsi7rLmzIE+t40LOTO+mrO3JHzD5s0u0yMXT7rT9aWznmhRkcpx0dHR2jQoiqeYkX3Rw16AXf3LBeBBbR8nISr6H9nZ3AbriwKe+rX3Ye3AvVceUneby40mLwUVrHcHT7bTjaBcE3IpHZdm9iR0dHxyiQfe/tjbXtDdmytDliwgSWx9Ungnhf7eu0ncAeT9sJuqy/ILF1P/HYDcIuu+xS76Ysjp3IXgkDkU0QB49tHbf7lDrWjG6/9Uf2vcVmFos8quvo6OgYNeKIsAXRHIU7bO7OiXUmsAxi4fOSk5eefCvVPlhv/XuzHrHtsv7C++o7j/lnmBYWzY6VQMIG7TNdNtFvCuj223hgx8EXOjo6OjpGiczv7UuBmyvWmcACwxCeh/wN3Y1vfOP66y/iuqy/+Gs6dvRiSOzpl+Ral5V/e+i3tY9H4jnusmbp9ls/yV+3+t90X2NJeOzZpUuXLqOU9u+lA5/y3JyxzgQ2jx7td80nnzzu9lUC3zgd5lXssu7i017syLbs3KLvUbwSHov4Gka2WMDmvMdnY6Pbb/3g7V77X9uvECD+/elIR0fHqJF5CFcY/ArB5rxNbJ0JbAzjw/+IFvLqOH8SYD9sl/UXNsx3ads7qM39LcJ1RQaowcgL1onDxNDtt2EIcW0fx2Wcbs6P6Do6OjYd4AuertnadHWY49eZwMLq/sigfZt+VOKzXr6IEH2QbIQw+nq739/G8na6hjQK41EWR1wvpvm6gvC8XGW/r/htWZMh9KaHMlsCO13Q3sU5zr7Jwbu7vAnZLuoba49lSERrn9YjNmqYPDJpDNOL93NY+FTdpEx3+w0+adC3Vqef8FybavvldzqO046Ojqsnhs1LCdtcMaEZeDoTWCQT8URQkVmP5O3/8IIZsir8sssuqyQ1L6LR37m6SBtCq07+9tW5ONIPK3NjynQnsICcDn603ePn1RFU36LbmH+1N50H6CCJohcSH7LfPqZ3HqI/ldtDNoUJLnZr+1RuCmJHNmXvNRHcyUDKGmbHjo6OjlFi2Lw0lfPjKDChGXg6E1j6eJPfL09s9pUiqgjtqaeeWgmpv4els60P7aN78XhoEVpfA3DuONeGlbkxZVMgsBAixpsYkmGQ+LTaBz/4wfKMZzxj6P+nbwxM5wHaepxX5xFEVlsP7Uc/+tHytKc97Spe7MnCdLdfS+bbY/1pTUR/qvbwxlbD7NjR0dExSkzn+X2yMKEZeDoTWOQU0aRXPK65hqwitTyyzuktTjyrfpHWkEjxeGKRV9K3EFz5SQ5ovWM8rJ///OfLDjvsUB70oAfVG4QgnxjaWF7GTWGAqnNLSAfJLA82e13vetcrt73tbWs/nSpsCvajT/5wobVle7Pk5mmqtg20iK2G2bGjo6NjlBg2LyVsc8WEZuDpTGB5Wy+88MJKZHlS6eVPFmwXQKroyhObl87OOOOMSkwJsuqaOtk6gAgjvPIU1/VhZW5Mme4EFhAHMCgIovHgBz+4fjUBebVFI1sM/vjHP9bfjYnpPkDp0m6cR77YI2RLGz/pSU+q+u+22251iwVsLIK/Nkxn+8WD3Xqyc9x+a7XVl20Ht7RMJlL2MDt2dHR0jBLTeX6fLExoBp7OBNYfAHjkTx8k1tv8SCkC6xwhRVp5VF2L99V5jhEy17J/VhjyigCnnMmS6U5gW2KGcJ1wwgll5513rm+03+9+96tbCIKWVPz5z3++4mjDMZ0HKPu05GtwW8Dvfve7+vkqut/3vvcdJ/ghsVOB6W4/CFm1Rzi68fLrUy2RbZ8CTJU3NvoMs2NHR0fHKDGd5/fJwoRm4Om+hQDZtA8W+aQXT6r9cz73hbwiDQit+IiqMPHyItdvfvObSnTVC2n1eNf1voXgyoGAkB577LFlq622qv3BH1kIC3njhQXe2pbQbQxM9wEaUqXeOUa+jjjiiGoret/udrer2zGQsRCyqSKx091++swnP/nJ8qlPfeqKkFW90+1xS2Db7S2TidhqmB07Ojo6RonpPr9PBiY0A08GgV04f7i0ceYvXPWcDMZHTJHPeFiRV1sIkNQb3ehGZbvtthv30iYODy2vK4L78Ic/vHoUDzvssFo3ZBhxRYjFHSx/Y8t0J7CAaP3gBz+o+vmIO5uyJYRQtJ5a2JgvKE33AdrWNXp961vfGievN7nJTerLhNDaadBmk4XpbL/LL7+8POQhD6m67bHHHjUsnvzvfe975Va3ulX19ntJ0LgGhHYq9U9Zw+zY0dHRMUpM5/l9sjChGXhNBBbJQwTz8tSyFcvL7Llzytz588rCxYsqcUQYly9dVvbde59yjS22LId+/Rtl2aLFZcGcuWX5vIVl8ay5ZcWiJWXuzFll8cJFK1/Mmj2rzFu0sCxZtrTMmTe3EqZFCxaWFUuWlgWz5pTFc+eXC5cuL0vG8kFivYxFD9sCQlY1qL++tTUg+omrDsoQxx5OHwBGOOLN9Zv6TrZMFYFtH8N69BryFALaerbyaDa/X/3qV8f/6pb86le/quEb29O6Oox6gKpnbLG6Ood00evQQw8dJ6881j/+8Y/rtWCq9r4Go7Tf4F7VtlzHvsZAr9gLSZWGtx9xFUa23nrr8upXv/qKlCvR9unJRHQeZkdob0TatnVj0441oHNueDLmkqbtZ5B0foe1Vztm80WG1ibtdXAt/Tf72ofZcHBOECe65KlBykv4oO7JP0i6ti6rG0uQshO3tWXK8tvePJpHtY1tTYNjrLVFym31zeftWshb+YmXdPmlS+ovXsrUf+nBiZK0sUf098RBHH8S9Itf/KJeS9zoKl7yh3YsKc/16HLkkUfWG2XQXvJIfrGh8sxHBxxwwCr5iv+Sl7ykPP7xj79KuwXau603JF/nyst52jptk/C2DRInebaQLmWceOKJVW/re9umrf7gPH25LefqgLZ9g4RtrpgQU1oTgUUaeUAvuuDCShKRwsVLV34ZQBzXddaZ580oj3zEAeWaW29TDvnil8oFy5aXpfMXlm3HjH7j6+5S5p43cyWpnbfy370Q2AsvvaScee4YKR0jwso9+8yzKoFdtmCMZM6eV+acO6OcefoZddFTFuKJrPKg8rrmv95doxtvDwLr3B8X0PuBD3xgjfO1r32tltvukVVmiOZkCV0mk8BmoJvMTADDBvewzxFlsjj++OPrlwboxvP6kY98pE4wU/UJIxj1AFVf9msnzUz0rT0tMKecckodL7GZhSqLY9JnYh82eU8GpssEx4atLcnTn/70cVshqfvvv3+dO1rymuP73//+1WZ0n0r9U9YwO4Yk6AdtX0BefHHCDbT4//Iv/zK0vQdJAeRzdK6131NO/n/605/q72B+0kXHluxY2KMneGHVFqDUI3HlR2efeUv8towQhCBzRPQyJ2hfaZKu3eaRft/aSTw6q3+rM4Q0JV1sNFi35MeZok7ITsJa/c3117nOdcprX/va8bxCpEB9pEfyzHuQspUZ2yZt5sCWWGUrlbUnN/rmTHmmHcwdyjnttNPG83f+6U9/epUyYktIWYOfKox9Dj/88HKb29xmPAzYwJoHz3ve88ojHvGImj/52Mc+VsvMPPaqV72qvmA6iJZ4Az0cJ3xwG0/qE/s7b+PTLe2XuMAuJNfy68VselqXIeUlv+Q/CHVs235zRvoMOwUJ21xxZU3XAWsisB7j85ounDuvzJ09p8ybM7cSSoR16eIl1fMqbPbMWeWsM84s88fiXLTi/HLuFWR0qzGjb6mDjuXDmypv5HXFBeeX0888o1z2xz/UfanKRZIXj8U774yxtIuWlIuWrSgXX7jS8yqdPbDVezu2APojAw3qDjfhXkDyy0MrTDoeWJOLLQSIr4EiL0R4c/gKQSa4wCRhUTToTbzOg5ZomWx93cFdPb1y525iymTa5juZGOUAzQLXEgk2be2aSVV7WiDpSZ785CevMpGHAGRiHTbxTgamwwSnrsPK/P3vf1/1CtEz11z/+tcftyFBtt785jev0lctYIOEarIQvYfZcRB0pJs4H/rQh8YX4n322ae+0AfGu+vGfkt+1KftZymP7fTD5AXtWBWvvZbxG7jejlVzjadOCA8PeCDdfe5zn/KWt7ylnqefpn+3uqb8zAXQltkeGwMZB8kr8xC03k9lStvWp80rhAyRi36AtJqv3AyZ11vEjnvttVe5wQ1uUG/E2aBNz75f+cpXyk1vetPaNm5AWnIL6hpdYosQqRbqKI+TTjqpnh988MH1CVZs8Mtf/nKVPqSc6173uuXDH/5wbafoG8QmQcr0bkfGhC1e97znPauO1j5I20hrLvIZv9j6/e9/fx1rgS06bh5B+ra/pC3k17Z3Ox4TJ+0Laasg7d2mg4Trfy3EO/nkk6uttO3gi8GJ3/YV5UsXW18dkP7S9qnBPrS5YfUz8BCsicBeevEl5eQTTyqXXHRxOfboY8quu+5aDYk4+iUPe9jD6p3pM5/5zJrXu971rnLUkd+t1667805liy23KNvvuEO5xtZblRmzZpbzL7ygbkFYsGhhvQP7+c9/Xh79yEeV7bbZthLe6++0c3nEvvuVE3/7uzJn1uw6UDxqUI48TRYmDcfKkwePqgHw0pe+tH7+ybXnP//55c53vnM9/s53vlMJrHqFxMYbO5ky2QQWTLbDJlp4+9vfXgmDl4yOOuqoK0JX4o53vGPVSVuyGR3B4CDtAjCZGOUATR0zWb71rW+ti5wvCvzkJz8Zv25iT/+ziNq7ySMUtJNsFoepqsMo7accC8rqymNXHiq6IVV+Ca+rmwF90F7YYTabyjq0v60dIbohCupqPhIn+55DhPLryY8bwnzBQ75tXbLws81gHVNWO/aGkRvxjPuWFAjTDxE8+rG7+dEnBpEhZZkHeGChzTeEIL/q2RIpeYtPr5TpN+Sk7f+QerQksa1rdE95LWFtx2RLmFoPrGvRB8R70YteVF784heXW9/61uULX/hCvR5dlXP729++kjx5ILBBvhzSoq1PdJRX6qV9kS9IWwT6s6cNbf2gJfJtfGjLa+fy5OGFUSQ4iN3NS/K6+c1vXp8GQdpVGxL6uWmxF30QsW/aRl7SgF95Jb/oSJ/YAdLPxW8JcOqYdkpbqZ96if/b3/62erM5lIKkGywnBDf5DPa5zRVpm3ZeGpw3NjdMiCmticCeN3NGufgPl5Uf//xnZYtrbFnJ6JbbbF222m7b+nuNbbcp+z5i/zJ34YKy+wP2rNff8La3lKOOO3Ys/thitdUVMna83bV3rPHso501Z3b15PLuHvzu9xReWgTWL9lqy2uU5z/3eXWiscd2zz33LNe61rXGySmht19eV5ObxyTOLY4Ghet5fGkCUB/eW/FJSOZkymQT2EzQg0DW3/Oe91Sb8Ugom/B2W2AR22zBYCdbL+TVTjRThVEP0EyYb3zjG1fpX8QEaxJlL+fpT7aogEmYtEibZOKfbIzafm1ZjtlLH3LMBuyBWOhnxibxKJu+nprA4EI/Cv3z29oxi2T6iF91U5e99967hoVMgL320mfMITq+giJvT3yEZb+5x7ygvmy277771vjsgwCJ8973vrfGQXqRfTebriNj0Not4M0SD8Fy0xXPGyBBvgahHkmbG1llunnLH0489rGPLS94wQvqMf3c8ItnDgHk55WvfGV53OMeV8+R1ZZcGBd0jS2e+9zn1mv6wze+8Y1yhzvcof7usssudZ5CrjN2/CqPTrEFD6rj3GhD4oMXdunLZkhsi6OPPro+bTIfy4tDRP3p6GmdMJKyIERSnXJdu3/3u9+t9frZz35W48hbu9HFXtPcqPn1fWjlsOuXv/zlmh8gbMnT0wlrV/qaMfPNb35zPB9tZgucP0hpyS3deVPpQpKfuh133HFVV9B2r3jFK2p7SkNPZd3tbner8cVjm8xj6it+bEE/62YLbS0+XfXnrCXmT2uPMlxHmj/zmc/UPuK6Tw7yRAfxwLopYUfHkG001v9cl2c7Dq8uGDYvTeX8OApcWdN1gA68OgKL6C1asrju9xHvqU99ar3D9+IKg/rgfdLtutt9yi7Xv15509veWonvrAXzyhY7bleufZMblNNnn1fmr1ha5i9dXM6dsfLPBRDT+XPn1a0HH3jf+8tpp5xatxl89rOfrZOeCc3dnf1KyiL2Atnv+oEPfKCem6hNqO6iDSKDDhGR97e//e06OYpncJgQQ2AdI20hmpMlU+GBBR3aRGmyCtgpHuiIb7si+5lwiMkzXogsQO2iPNkY5QDNouEJgn5tn5jFlC76Fnvx7rcLBG9G0g2iXVCnapKdLhOcvpP+Mwh7YWPT2JEH1k0WtAszDJ5PJmKrYXYMtGW8S9rewqpPmBO9fJa9i/KwgMsDEUx/EJY9jGBOQ3pssQCk8t73vncdd8bxgQceWJ9oxZ7Ixste9rLx8W3Poy0/LaQTP+XLmyiHvq7d4x73qI+XQ1YQK0+qQHpeTI+jkVNEDWlSJqJy0EEHlbvf/e7l4x//eI0PN7vZzSpZGoR60yE3ceY/c86XvvSlqof5WF9AqthOPKQccWJfdjSXI4R0pZu5jL1tEdMWsW1s4gbA/lfXlc1DLp14yC29zXPWll//+tc1De+0dvRiJogvD+QRtPud7nSn8pjHPGa8LbwMJf8Q+WOOOabqFbRELLrR3V9y8yK6wdD3PRUEtr7lLW9Z+wBiqK3kZ/2iu3lcG97rXveq8dmm3SfNPrYXaJ8A2WffwI0GJ1DgCRJbAx1f97rX1XrRLx78dv6ih3h+06bAltbi6PPud7+76q4PArvJK+Qd6deubCcvbeS6OoJjL3gGbkj085DlFlcXEjtsXkrY5oqrzsBrgA43jMDatzrr7HPLoplzym9++NOy3ZgB97jHruX9bzuovPZFL6vnj9/vgLJ01rxy8aJl5aH3f0B9aeu1L39luWTpirJsydhEyvu69RZl1tKF5ey5s8rM+XPr57OQxxVe9Fq4qPzsRz8uz3vOc8vd7nLX2kgG3pZbXaN6c+nyxS9+sXq+DGB3y8inDi8uQTB4xAwMaU0A7tjUx54vg8zjc8RVvXhC5CuPlmxOhkw2gTXhDsKEmAUqk3nupk2ED3jAA2qbE3fPJhIweZqkBvc2TTZGPUCzMIEbH3qEsLIRL5Zzi5pHdVlgszhBJvbYHaaqDqO0X/oOtPYAJBTRsAjFlmyoD+YmgfAAWqyNT3035HWqbwCG2VH9QlzbfpLF1DYT8XmeeFrpbu7JnBokrfGaR8nSqTfwVL3tbW+rx/oXkvmEJzyhnqeM9vHsT3/601qGubB9NA3mSNe8zAVeMEPugFPA1gJA4uitz0Y//d8cisQgd/LxyUGwxxTRoxcd41GGtBkbhsxkLIgLxk7KRmRbO0unnzz60Y+u54gOz1+7TUf/kMYTJJB/ytBOCBoCDvLKS01evOTx9+KvOVmdf/SjH9V4L3/5y8c96WAONGdbM9jYOuXYk4K2r9PDTYj8eUud5xF3vKeQPuxGIcSfB9ILZ/LLdSQwXmNb8Nw4BMqwLcHnIIOMtbSb+PZkB9Y7OsX2noC4KTK+tCf9WkIYYsmja0uf6+wVR0Y7r7ER6KNuaAaJpXLlIR7vf26QAtfZCNjVuXUKeOntJwf9GrFvb5DYQh3asbi5Q52BnYKEba64sqbrgEy2BvcggT1/6bJywZJl5YyTTin3vPNdy812uUElqTtts3155uOeVGacckZZMXdhOX/B4rLnvXcrO+947fLW17+xfnXAy11bbD1GRMcILO/rnEULypIVy+veV5OfF798reCZT39G2WarlQSryhhxtTXBL53ckQk3gbqzMwBtP0h8no4QWkS35j028ajLQx/60Fo/n4qSl2vCHZvo/U6mTDaBDUxog2TWpGNyyRup7OARTsisXxNdvEftBD2MGE8WRj1As+CCeltoLOL08fgutvPrCYA4sY+JNLq2Og+SucnEKO23ujpbzC2AyAG9kIbYEIlKWEtk2ZynaKox2H50CdqFW5u3Y8TYspiCesYjatyrq/kFsuAjJsh7tqEQn0eSD6+f9LEhj+uzn/3sev7973+/xkWkYsO8TIjMhaSA/mi+cQ05oD9C7dyLrLyceYSrLwvnGW2fMBD5KpsH7R3veEetu6cR8gvR4lF0nf6D/U2YuSXjKHUOyeKlNP9A5h+EKPs0M+dDrsezHLKjLegTmyG/L3zhC+sxQqZsaZBULzGBdUJdeQDVyTXkTh6pg3yVQ0cvarE7Yg/isLd29PhbOgQrhJWubkr07bQLksr7/olPfKK2D5Kdlxql80u0OecBb6h1C9gRbE2x5QIy97R904uQuTlQHp3kCfJAIh/5yEfWuoVws3/6kzr61WfFyaN7tuIFh7QDuGFRn+jJLuqmbPXQ18GNkycHdDUOxOON5t0HfZSttIu08f5av7WR8iGENePPb8I2d6RfskuQsM0VV9Z0HaATDyOwPKUzFs4rJ513Vnnb+99Ttthuq/LyN7y2zF28sH7Ddfb8MWK2fFmZs2B+mTl3TtnvgEfUva5vec9BZe6yxdXjWvfMbnWNcsKJv6+PC+Svs/rmqxe0vBx2z7vfo34/Np+6+tgnPl7T2XPLu5q7SZOgtzENLtsMhJkIvMQVgkg8luQ9+PrXv14nMXEMGJOQCU3d8ucHmcRvcYtb1HN3/LYZxB4bKlNFYNcEj8eVnUUkpCEflh81psMAzcQItq1kQidZZLLvMIvKdMGo7ZeFtPXcx+tKQo788tjwJH7uc58bv57+yEMXj8+gV3EyEVsNs2MQktQSpvQZYRZ5BMoi7OZaXc0lFlli/kEYktavcjx+1p/e8IY31PPcXFr4Q1Rs3xIW/UKaIXHoEn3cpJvTeR5BOsTurne9a/XUxRPIg6hvu558/EZHhAPp9Zgf0Y4nTV2RIB7OH/7wh+P6tLaxd9zc23pQeSGRHsi825JvxBohVg/eY9fp09ZLWN6iVx57Bzx3dEtd1NV+WGTTvlDtwIuLsCNO4nnpNx5Y19XFzZdybL/IEyzzdwthvjpBD23oHOjakm8QJ7qAeu63336rELB4sOF973tftW3qrZ7awY0fJLwFcuuGQlzgsAmpZmPefQ4guvi8V/RrdYC2bwXi2t4gbtqXDm442m0xaUt9WH8B9TAXQMqyjSWOAH2QkyBeftD3bUVA5G3PSRun/w97IrI5Y9i8lLDNFVedgdeA1RFYHtO5Fy0vMy5eVj5z+DfKFtuOLTg7jC3mW4/9brd12eVmNy7Pe/lLKlEV99577l6vveptbyonzzi7LDh/WdnpOtetHtsbXnunssPW25azTjmtel1tH/DZLI/+n/WsZ9XGqaR1TK6z03Xr77Wve53x/aoeJYjTfsYoIg5pvzlJWm+HR1/qJp67TBMrQuvlHAPd5OoRoDj2KKm/O8BBQjpRmQ4E1oDn4VF+yJhJw6PJ6YBRDtB2EjQpZwEIoWjFixchr2w6XSaRUdrPgpZFDbIQI3EWVWOQXm4iEdU8ZuUVRHIQWtd5yOJZi6dnquqQcobZUf8YXNR55hAl9bYI6zPIWl7KMrfII4/wwWJvngXxQ+B41sAjbh49OoTEOw5ZETffb42euaZPtv04HlcEtiVGwtyY+dJGyIYwhNa5Pp3+D/LPky4kNvtEkROeS+GtbaIXZB+ouRtCmkLiOCvYDEI4eWfbb5WKnzfrPSXJjRAHSIvowIP9+te/ftyGyLL5H/EL6QkhzRck2Fy+tjSANrU31B5RYFtb17Q3W7KJfb/mUaQY1EWesXXOtUns6ebBvlTwmS0k2nojv9hNHZXPC8k2CLT0HDbOjSfnaTt1Yjtp3Pzl6xLA/uoV8veUpzylflIyoJ8v+QTyaW8GgF2NRR7TQw455IrQle9HKJO+8kE2QXrtKyxPHeyrfc5znlOPc1NqreWUgnwHltOADuzthevsd27/VCdzb/p6zjd3pH+wU9COtc0RE2JKayKwp86dUWZetKx85eixCffa1yzb7HStuq912x22HyecXz/0G5UMHvCoR5bttr9mef2b31QWLl1Szl++onzxAx8rt93xeuXaY8Z/8j4HlD8sPb+ce8rp9buyyOtFl1xcvnX4t8ve++5TdrjWjuX6N7xBefa//kt9oUGD0cWA9kgknzEyuXiz0SMREwGdPfJyR+ytT4PdYunRkMcXjn0+hScSKTV5mcjUUbj6m+RMtsirhYcX1mI7SEgnKtOBwILFTPnEtxJ9Zma6YNQDtF20U67+TB996YY3vOH4QiquyXs6YZT2CzEICWkXbTdICCoSa2sAYmWRz3V2JBbxLErJZyoRWw2zI6S986KjhZ3XzqPP3BDyUOXtffD9VdfU3V5KyJvY0nkJa/fdd6/bAxACBM9+dP1NHIKQxb4gzA28+cpx+3WBEBC29fjVDWoWf/qyrzlTOkQ0dWV7HjN65qkDT3K86dJ5qcs8ax6DPMr3Qm/aUjwiP/AE7J3vfOe4fczdT3ziEytZRjyyLSJp6O5D//bXxs5ucPLFBvUJmWZn8aVtxyIPI7sGnBXi59E6mNvZDymkB/15x7NVyI0WMuha8s4NiXQIsW0FnsYgv/QY3O4w6IHVNtYs5C59JI/o2yc9iFtIHG9qwm3ZUJb3Odr+EGgr7zW4gZKWDjzk2oxt5YnY65PqmzGW/NOftKf4KdtNlU8w8rynv4SYAl38y5hyxM/XCFogzV4SDujnU5yejiK01mx9OvuaA/m5UUj/atsjumj/qwOGzUsJ21yx6gy8FujAwwisc4OXe/85Bz67bD1mwINe/+Zy8bzFZfHp55Zn7P3Ict2xsA++8k1lxannlX8svKBcct78ctnMheXvSy4si39/ZvnHeYvLX8+YV5b85rRy2bnzy+ULlpXz5y4sl198aZ1gZsyZXb9MQByfefZZdUD6GoFPbPF68ZjSxwKIZCIXSK1jd3AmNr/y85hJGno79msbgrTSuNOTn/hIrMlYPuqo7tKYfC0C4rdkdH1k1ATWIM8kYEF0N5w7+Hbv5ygx6gFq0o6NwKJkkjehm7zd+CBeJlFACKbTBDIdJjj9LP2K/bJQh6C2XkXXsxBmURIHcu532GI9GYithtkRtH8W/egZpO+0uoaAqWcL8dr0xl/yRSLt24QszPTwiD5xgB3l0bZvymsRT3ebNmV7BO+4JQDyi4dxEOn3QeJElxbsEN30h1ZP1xI/XtNWB+UkPptDez3z1WCZqWNb13j72LztU0HGu7yUqT/GC90iZbVjP0h5bRnJF5JXawNIv5CXdMlbWYNbZ6IfZAyBthKevFxryx4EXcSNnm09WrR5sAkynDZo7T5oJ/oQUI640VdcdUw92zrSR/zkJw+63elOd6rOJRisl/M11XVzQ9p/lPP7VGNCTGl1BHb5nAXlj2fPKyd/9ajy1LvuWW67xTXKnbfYpuy93c3KATvcqtxtzKAP3WKXcuyL31WWfP7YUn4xo5TfzS+nvufL5cwPfr2UM1eU/z1hTjnzC0eWMw45uvz7jCXl0nPmlfNnjOU/c3Z9FIS4njVnZt2GsPj85WXegjHCN2duOe+ss1f+reyYiEcnxNQdG8JqEuZNNdHx5CKqdBcHCXUd0UVEEVhElZfDMQKL7CKu7vxCVOXFOytfZcinJaPrI6MmsJngIJOXCSmPaacDRjlAMxHmV7mxTbsIBvloN2RCHjVGPcHFXvpVFjsLkuN20Ru0V0is8NjY4jXVdo2thtkxUI/oFV2dD+rakkn5tTeJw8gP5JG/uSowd3lylM89IVchCEFLaKD1mrYQTxh92r4MOW89a3QT3pIUecc+bZuC8/Za6ma+cUz3tr5BxhfdxGn11qfk1ZalDOchPK1tpQd5DOs/4re6QZv/YJq27oN2l0fC2nj0Sx1i14wNNxSZi5WVclu7tXNy2x4QvVPPYQhxZPfEa+ubsFZnYeK3YZB00Q+SP7RjwHFbD0hfT52z9iRc/Ngwto/tPP00Hqyd8mt1S5xWr80dqeuo5vdRYEJMaXUE9oLZC8q/n7mgnPmZw8ub9nhMecXdHlaeuMNtywtvtGt52532Ke++6/7li3sdWD626+PLR+/5mHLGKz9W5r79K+UTuz2xfPw+Tyinvf5T5bz3fb0851b3K6/e/YDyy48eUv45d0W5eNYYuTtvVlm4eFF9SWzO8rEyz19aCawXx+rfzs5bUM5fPBa2cFElmEgn8mki9duSxLyQRXfXkFke1pasOkZILTAILyKM1Bos2fOab8TKxwLiuC1nfWTUBBYyibSTn8kjk82oMcoBmol6cOHLhAt00W8ykQ56SUaNUU9w6V/Q9rHWKxR7Gr9sre/RsSV1WZxAurYNJhOx1TA7hiQiFG094+EE1/Sd9CX9pO1LLTERnnISR172Qyo34lGsx6xBaxs6RS95xeaOo2P66iAxyZiXho3TDkD/lvBAWy6E7KTdpFfmsLlEvm16x9K3fUR56SPQ2hiSvo0zCGXneqt/dGrbKmFt36KPtpBHm154bGPMuxbdnedam5ewQVu0uod0i9faJ+0p/9YGyqRb258SF6KDMnLcpk/YoJ312fbcMV2SNr8JHyTx6pi80xfomPqA8PYcWvvCoK2U4ysNj3rUo64IudJ+4ra2Hsx7c0XsPKr5fRSYEFNaHYFdMWdB+fMZc8v/nLag/OYDXy7veNhTymvutV8594PfKOcd/NXy5ts/tHxiz6eW0173yTLzrV8sn3/QM8tBd9in/O5lHyyzDzqkHHyPR5Z33+OAMvMDh5bj3/nZ8rL77V9+/plv1G0Gy+YuKEuXL6vfh509RmDPnDernHre2fWvZm0fuHDR0pUkd4zM8pLawxlSiHjaE+RRPz0RTV5aBJT+riO97ctY4sjHVgGeV4MrpJbnw6904iePzeElLoO8HfSO83i3nRRHiekwQE2OrT1M8JmY24k+thwkBqPEKO2XBYhdUubgYtcSOBjULQQCLJyx91QtUNFnmB0H0ZKaFq2u7XgL1KsNV0f5tEShRdu/0g+VMXjzFEIFyQvyQlz0ineWnQeJQKCc1E08+bX1att1kHgE4rf2STnGU0tenLdQf2HSErq0ZbhOH3Zxvc2r1THH0rZ6iJ/z2DN9rq0Xe7b5JW4waLec+23j5rjVoW1T8emUstu0g30hZSRu7BKbDCK2STznCYsO0Uv6YW3p+uAcpzyS+PRqy4/ebZ+EwXN5t+UHiSd/bdDqJW91aMNil80dsVUnsKvB6ggskvnn2UvKX89dWC767VnlxC9/p3pR/+OkOaWctayc9vFvltM/emgppy4u5eRF5bQPfq2c9dFvlnLG2OR5+tJy5se+Wc75+LfGzpeVv/36nHLSV44sJ3/nB3ULAe/qzNmzyuwlC8vMJQvKuQvnlnlLFpUly5aWubPnlKXzF5bFc+eXBfOu3IvrF9FEVj3i9yvMZC3c9gGkNV5YhDbkEUkVhryGmLpGpCXqnPzlIa54GyKjJrCBCSETjElgcFIZJUY9QFtbsNHgpBxdMoFm4pwuk8go7ZcFxW97A8Bu7ESP9LuE+U3cNg20bdEuVpOJ2GqYHYPo3do1uoZYZMFPXAhRU8+kdS19LGTJtTYdDBKRIHkO6h2E5CYdPROnta/yYv+URa9WB8i1IPX0K27iy6tNm7yFRZeWuCp/UPegrfMg2c01tosujpNXm7Y9pkfsPUjGeTVbXRy3tmrtkzzz2+ZFn7bdkmduIGCwz8dmyae1YfJiq0BYW6/UqZ23Yhflt+HSDeqf9Plty2/7yGC8FvEKJ+1gmYNoy4AQ+DYdpN7KTD6tLa4OSB/qBHY1YBgeSmSL8D4ifIjkivmLyvnzFpULxuSiuSvl4jmLyqVXyGWz102kkVZeyxYsqlsDkEXbCOZfIY5DJl1PnE1Z7G9DpJFnNwomqWED+uqMTH7eWGabduHoWDu6/dYfg4uxxdGb4Ve3RbKjo2P6wpzeEtjNfY5fZwKLyXsDFmFFtngnPX73mBnpipeyy/qJ/bn24SKxPpETIBruQtn/6iwtDNAQB0Tf3fiwNF2ulBbdfhMXMA55gGK7QU9Hly5duoxCMgeBeSnOL17xYZ7wzQXrTGA9bvI3dL4Z6LG5x/EexXuMPsyj2GXiYvsAe6YDujlIp+xYCY+8fHgb3Eh1TAzdfuuH9vEvsKMbzcHH5h0dHR2jgvd9PMGFwX3wmyMmvIXA3lFva/K+WgC97IR8DdvX2WXdxdcMfHqJZ9tncVp0Ervyka07SV4wxCFeMARi8OWfjqui22/DwVa2YSCz7OeJ1Obs3ejo6Ng04Clatoj5sxHITXf74t/mhgkT2Ej++tE/cJjI22tdJi75Z53804t9irFrt++V/wIT+/h8EE+i3/TFLquXbr8Nk9iPrfyTUP4Zyb/VtfG6dOnSZaoFX/DvcDkPNvcnRBMisIiUR9webdtG4CWu7N8cfBzeZWKSLxl4Sc7iCLmj6h7Ylcgbs/5i08DkBeNRzH6fjjWj22/jwcsRiCwvR/fCdnR0jBr5CoebbPO7/a9+N2f+sM4EljEw+3w6KmTLS0c+VdU+Du8yccn3aL0k195B5XMhSMbVWfI4xONuAzRAwGBYmi5XSrffhkm75aJ9WQKGxe/SpUuXqZQg81Lm/M0ZE/LAMkw+n4XIhryG0HZZf8kfIrTfgdUpLZgdK5HvDHoSkAHbPwW17uj22zhgOyQ2L0v0MdrR0TFq5Oa6dYDlKe7migkRWBO2LQMIV/tHBoNkbJjES4v0elwuna8YyGdd81iTyDNbGpThKwm8mfmLWNejs0f2yg4R90s/BNInwegjvrjOp4KgK1N5LYGdSoTQxNMUeDxqUCTc7+Aj06lawAc9X5CwUWPQJrEnOG5tNCrSOJ3tB+12hmF6eRrBzq1t40GeCkSnYXbsWDdow7TZ4B8PZIy0c1Db1mtC2w8cp40yf0022jGdeih3Y5YdWwx+Gmkq6remcdbWnS55agjaMnrLo23bxFtT3hsLrU6Qm3lY1z423ZF+MF3n98nAhGbgDSGwyCHi6DMPyGH20AobFn+iEn0ch4Aip47POOOM8X26yhQnxx7dI7j0CbkWjvgmv6mQURPYYcgCM0jOAtenirzCdB+gJkL2aO3VvgHaHvvEyfve977ypCc96YqQycd0tt/gIkYvdrTgpY+1dmVrY/RjH/tYeepTn3pF6OQithpmx46JoSUQ2rglNtp5fR5/hhyPqk9n/AfRY2MQtGGfRBplXdWzJa7WgsG33bXxMBtI15LGtu0nG2kfZW5ub+cPm5dG1T+mChOagTeEwCKF8WQiitIhjogtb+lg/PURhNWipiyElX48qJdeemklziGvPv0l3GfAQmyFS1v/WWwsH0SWl9b5VOzxnQ4ENpNMHjv4XBrkjj+DoZ2kYWNM0OuC6TxA2aC9y2cvYa2tTNrkC1/4QrnRjW5U7nnPe9a+N1UT+HS2X0tOV9efxMmic8ghh5Sb3vSm1YY+QTcViK2G2bFjzcjNMPKS/j44j2jfvGg4UQz2GXlP5efhWr3bvryxx5e5mf1C1qElkpMFdVLu6sbmIFqCasz+8Y9/vOLsSshzqvZpRp92rs1N1OayV3Q6z++ThQnNwBtCYEmIIuIaUojAIottvPUR+iCbSLJykGKENN7X008/vZx66qmVuIpLB/pb/ITRA6Gli/TSiictQjuszI0poyaw7QRsksqk2JKydvIyEYgzlYN/UxigJuV28oZMlNp3//33r/rf6173qpP6ui4IGwObgv3Yql1kBu1j3D7sYQ+rdbjb3e5WPVNTVYeUM8yOHeuO2M/ckeOWzGbuydyyrqTWuBs2/gaJ8lRg8MZ1QyGP1c0VGyP/icD4bEm6umqj6Of6mtqstY18pmL8Rl86WtNis83pY//D5qWpsO0oMaEZeEMI7Nlnn10uuOCCmgbR9OgeuZTPsPgTlexldczDG/14Uf/0pz9Vb2JLoLO9QBjSm3oJO/PMM2s6xDZkNuVMloyawAI7DUPung1+0k5eMFWDZDoP0NjEhBjSn4naZPnzn/+8el19e/Xe9773KjcGU3UTMN0nOLq0i3FuktLvjEmfAKP/HnvsUf/4A1pbTiZiq2F27Fg7zKNBblL8tseIz4a0Z/vSivyMy6nqHxwg+inQI/1kcL5cHxgHGRvtfDFVXmYe9JYErssaIE6emLgxjRce2vRTMf+lj4F5OeXTb7AumyqGzUvD2mVzwoRm4A3dQoA0Iq8GOjIbcpitBRsi8pWXcpBjYSGhvK+nnHJKLZfH1bWQXGnEs8Xg5JNPLpdffnn1wtIpdUydJ1NGTWAz8ZpoQmTf8573lM985jP1OAOhnQimeuBP5wEar1HQLppf/vKXK/Eyfu50pzvVa5dddlm1+VS+JTqd7WdxbvtT28/gm9/8ZtXbB7tvd7vbjfdRtkzfnWzEVsPs2LFmxGYIKgLReuGGQX+QZl3/Tjsev/YGKP1iXdJvKNr+ag5NX87Tl42B1mbyjY2mqv/DYLupt/Lb+iOqg+MX2GQw3lRB2YPrVebsjdlGo0T6+XSc3ycLE5qBN4TAIor2niKKyOPvf//7uo1APiGcGyK2DNgGgMjKHxFVJuJ6k5vcpOy0007ltNNOq/oiD8g0Mhvi+4AHPKDsvPPO5Vvf+lbVk5cWGQ6xHFbmxpRRE9gM5kxIPFy8hfYYQiabo48+utzxjnesOj7zmc+sNyLDJqvJwHQfoLyvWUDZkG7f/va3yw477FB1vs51rlNvprK3OJiqCXS62y+Lo4Umxwj+EUccUXW259WvbT3A1i1hmWzEVsPs2LFmmF8Gyc/gY+bMMcZHyMa69s/Ek2e8fsjvVML4z7gPNpaHNHNEO3cMI+2ThUEvtjk/5aa+xmra2LWEC2v1T16D7T/ZoJMy237IqbW5IPaervP7ZGBCM/CaCOz8hWOyYFGVBQMibM7c+WXW7Lll+YoLyr777V922PG65ZCvfKPMnbNwjHzaD7vy8X6NL68BCdFbOH+lLL5Clsxb+bt08ZJKSL2wRS8klhcVEdWgxLWQXOHIV/bg7rvvvjXOMcccU895buXBO5utCZMpoyawgYXjsY99bG1r/wjml07g5SMeMGGx6Yc+9KEp8wBsKgM0C3GIF/HnAccdd1wNhyxEg16BycR0t197IxS93FDqb+xH71/96lc1PB4omOobqGF27FgzfvCDH5Rb3OIWV5ytJLSxo/YzZvzNsZvmvfbaq4bDREhOS7IcP+Yxjykf+chHpmx+OuCAA8r73//+etwSvEHytz5IHzc3P/vZz67HMFVeTPvNv/71r4+3WXvTbQ778Ic/XMcDR9GPfvSjK66s1I9DyBi27kLb7jAVN/CDfYDO2uf2t799+fjHP35F6KaNYfNSwjZXTGgG1gmHEVgEc+7Y+XnzF5aZcxeUiy7+Qzn7rBll6ZLzy7z5S8q8hcvK6efMLssuvrycM2dR2e/RTyzX2OY65dOfPqTMmbmkLF5w/pjRty5bXmPrMnfeojJv0eKycPnyctYYgVx64fll9vwxYrd00RihPK8sHyOqKxaN5XnWeWXFzHnlz0suKovOmVNmnzej6kUnRBbp5OHl8aK3idGWBYQ12xnEJc4f+MAH1kXysMMOq3ULoRQPmUV4hbnW7pt1Tbny9U9aie9cfOmkCVFdnYyawBrgIVMHHnhg2Xbbbasefh/5yEfWF+Cc+wi+/893THbbbbeaZiow6gFq0c1i1HpCMhGzYRbcE044oerp70b9fupTnxrf69WSr0Gv1GRiukxwytTX2kUl9vAbm/z6178e3/NKvvGNb6yy5YKtp1L/lDXMjvpA25Y5Nq7NPeLyxL/oRS8a7y/QEjlQ/9gHUt+ER9onJkFbvnASb2QgbezuBj62tX2qbY/08+9973v1OgIjf3rJo4Vyom+bh36e8COPPLLc5ja3Gb8uz3e96131WLyXvvSl5RGPeEQ9V853v/vdGsf8mfLaslOv5N8ifWmfffYZJ5QwjCi1dWltSc/YIHHkKzxlut6mf/jDH14+8IEP1OPWDtKlL2de5RwYrF+wuvlBPHV61ateNbTeLegmTvIJkk5eg9dSFjvkml9pbn3rW9c2TLj0qSOHj7p4wpnrzmP73/72t/XcU1F5SZd4ynKeslu7iZs6kFxr29Gc2qahl+t+W9sFGTcgjqc65uYgaVxjw3aen+6gM7B1kLDNFRNiSmsisLMXzi8X/uHSMQK6oJxxxlll4fxF5eILLykzzptTFi1eXi6+7M/lxDPPKTMXLCvzl1xQZs1aVBYuWFH+dtk/y8LZS8t21xxb6Lfcuixadn5ZOEZQ47FFLhHSObNnlovPX1EJ7FmnnFb++de/lyWz55XZZ55XLliyolx2yaX15SsTgu0EdPOo0aDRoHS3VQC5FM4bSxAzZey9996VnFkkW9LJC+sXYaVH9scix47dXYYsixcPrzALhO0RCK9ra5JRE9jAhMKOdCCZcK93veuNH5NrXeta5SUveUlNM2yimAyMcoC2k2QWT2HKd56JGPSPG97whvWGSL/jmUkatmpJ2FTZDkY9wXnEGpIQcpDzLGiBsWXRTH97znOeU8cTiJuFGIYRk8lAbDXMjkFuUsThfUJes5Crs77gplodzC3GkflKfVIP1xwPW7DjcXMtNkvfWp03LjYeROYaX8R41KMeNb64t33ixje+cd0yZN9xkEW91RHSl91YxA65ofNkSz500f+V64lO8NCHPrR86UtfGu8X3/nOd8a3fcGwcZL6+005jqOTG2+eQbrERpAygN1T7xAmSB45z29sM/hZKOXut99+5YMf/OAVISvtk7K8sKzObA7yO+qoo6ozIGnkTVqbykPctLcyzLuJY31r0RIu6digvVGANv+WAA6zcfaa27vvaQjQI3aQJ3LejgXbJhB07cvu+jvyzgZB28eCwf4bfVu0Xw1o51FIGwEdQdu29YW2L9z2trctH/3oR8fjtPkHg+VMV8SmbVsMs/PmhKvOwGvA6gjsggXzxgjneWNk7ZTyl8svKsd955vlwbvtWrYbM+S2Y7L1mGw5Jk9/xpPHiN7ysUG4T9lq7PxDBx9cjjvsiBpniy2uUbYYy9/v1tfYpsyfObf8YdkFZdFZM8rF8xaXPy29oBw7Fvfxj35M2WmXncsW221dtthmi/LQJz2m/PrsU8tZ551bSePxxx9fH7NoRHta3/zmN48/fqSvOEjmv/zLv4x7El/3uteVu9zlLvX48MMPr3VTL7958QwpMWkhowiwBfZrX/ta3ddo/6ytBvL3mEXYQx7ykLpAIc3iDhLWQRk1gc2CA4j9Jz7xiXG78SI6jgfBNgJ7mFe3ME4WRj1ATYYmRvXmabn+9a9fSRbC39rirne9a9XRJK4v8MwHFrR2op1KG47SfoPlWDA83r3VrW5VbnCDG5Rf/vKXdT9aFp773e9+VU+PldnZ+Gghvyy4rT0nE6nDMDu2i6K6add4ON34tqA3Mc5cDzEfrIcxGXu0UFZbXovk4TdxYqdBQmBeMqe/973vrXog0gES8rOf/ayOeQs8Aqv/67+DhCAIiWwJIigXITVWWqg/O4mPIPlTCsfCSPRv7ZJ5KkSNLtEn5UuLiLhZ+PSnP13DgP6xhbiJ3yIERjkpC7GSJ0if9k9Y8nn84x9f54XWztHtd7/7Xf0KCedI23aHHnpotb31I20tjTzUO3mHZHtSyIsvbtsOsRu0c7ntGF7ETZu0adp4g7ZwLXZ3rO1sDWjbNvraKmVNUC+2iR6BmxB1RATNhSGqaYvUDdr8gQ7Rsx0LCZNXS3yTPnnm3C/dhMcG8k6/g7bstOHgmJnOGDYvJWxzxYSY0poI7IIFM8qKpXPKL396bLnJTtuXa44Zkdxsp2tVgrr9tluWxz/ukeXMs04tez14z0pq3/nG15cjvvLVcp1tti1bbDVGXsfkmte6drnpTW9e5s2aXc5fsLhcunh5WTpGZs+ft6i8/Y1vro2zzY7bV/K6xXZjsv0W5Skve3655E9/rCQz39mkq98af2xw8YSYsJFKE3Ye7eYRJe+rX/sU1YnnlLeWILBeBjP5IL9+xeFVkAZZlbdw6YUhtcgrW0nfktVhMmoCCyaCTBImF4/14nWNPXlikfggk9BUYNQDNBPf61//+tqn6JFHgTzx7PemN72petWEEW0KrrWLh0m+PZ8KjNp++oo6e7nGvrPYSB9zg5SXs9761rfWcGHGrcU/aBfaLFJTZcfYapgdQZu2pADEefCDH1yPka7o6uU+fSfbC4hHrfJ2k50wfemggw5ahczwqtmOkBtwduJpzHUe1YzbXXfddXwRzlilAzGOxXPTbyFHVNUh+fiXOGFImRuNFq9+9atr/hkHn/zkJ2vazB9f+cpXajgxt5orQ2Dpc4973KM+umWTxCPqazuDedq5uRHk7asoO+64Yw13Y2jMtQTDnGs+V95rXvOa6sigu7qm7m18j+LllTYIxHHjZM4372WMe1oH8tL3eENzY//2t7+9kvwvfvGLNQ47aMu090knnVTzUK8gugj/4Q9/OB7/ec973nj7Wacyh+hbT3nKU6rtW4hH3OjZYhAIa+dv6TJmXvnKV46vecTa1fZdnvdcR4DtFdWmLXhneXeTB4KOYIO21ifZ6sQTT6zXrYdBiDu92JDjh830c9uv0q+0g38sDJlO39QfEGYOKvZPG+qH4rIl4qw/GVfipB1b2NaSbR+uxcuctnG99apPZwyblxK2uWLV1lwLdLbVEdi582eVy/90afn+Md+t5PT5z3hmuXjxkvLTY4+r5/e9z25l2YrlZf7iRWWvhz6k7LLLLuVFL3hh+eNFl5V5YwR1iy3HBsFWYwN80fxyyrlnlfkrlpY5ixaUc+fMKnMXLyxnzp5Rzp0/p3zo058ovz3jlDJ3xZLyxW99o2x3veuWG9/uVuWEk08q3//+92vjEft16KbzJwzBpXcGxzvf+c66WBx77LFVH2Ee60jHa2JQE/XlfQ0RdV1e0hk4Jk75uovOizvufMXz/VueDenWJOKOmsC2ngHwF510IWxm8dAHTNYmkiwKq/t+7MbGKAeoCTOwCMVDyB5+EQVt6DiLhkUCBnVsSQK0i+pkYrrYD5Am+6dbGxpHFhvnWWze8Y53rOJ5yXGr91Tbb5gdWyAJ4mhj4z+LK2IOeTveWEc6EMnYxxzCgx/iwzONSCB1YDH1KD6PNT36f/GLXzxuF0T0Gc94Rj0GL/wgvMZq4sjbIm9uoxdiZkzf/e53r9fZ05daXHMDb4GXL5gHX/jCF1ZCA+pi/ItLN+WoA52REjCvaU+Pa+PhvPnNb149X+rNVup08MEHj9tBveXpW7/q6mVR4yrIHlll0xexu9nNbjb+1r/6uE73kB+gH0/bC17wgjrXxxbmuj333LPGoY+0JOQR2XYehPyC/N7ylrfUl9QQKAiJSn04PsTPHJv2k/bOd75z7edgzmALoFuIHqgbZ8nLX/7yeq4M12y9UI5+Z93hoQ14odkOossrXvGKaqvAPmckEpBY/YVOgfZ2vX0JFUKGfZlGe7tJTxnq4CmetjEGtL/5Uf7azhjX7/VJv9aXbDFgR+sopIxA/hkbtlLol2wpzBeOjDXlyvc3v/lNtQ8yTQ9pn/70p1cbgu0XxloI6nOf+9zyxCc+sR6DG2fp84RkumPYvJSwzRXDZ+DVQKcbRmDnL5xXzp19Xjln1tnll7/6abneda9V7nOXu5Y3v+rV5ZVjkysC+7jHPa4sPX9FOf3cs8t99ti9bLfjDuUVr3plmT1zVlk0Z16Nc82x/C+76MJKFFf4XbKwnDLj7LLw4vPLjCULys9O/G154rOfUa5/0xvX9NfYeqtia8K1d7xWnei8gKUD66AmXl5RRFODumOnrzAToQFlewCvjzjSGKT2wKqbQaWedHEebwcbuKtDXk3QwvwzkMFnH2xeenjQgx5UdUKQTegtWR0moyawIQEmeJ3+Wc96VtWDsFcW4YgFzAKgblOFUQ/QEABIvzJx60v6jok/9rFYW6zaCVj6Yfq2C+xkYpT2y6JjsdHHwNgKUdW/yKMf/ehxQsvb3y4erf1hKtseUt4wO2b8pJ5BCEvrkUTewVMe58Z+Fn5IPfNIU5ws6OYVXlFgy89+9rPVEwhIbquTPBFBXjyL+yAZyBYHC7U6Gee2UAEvoDlbWyGaPFHIh0fAvHPyTV15UZEiHk9l8pTakuV66iLfO9zhDvUY0eGtTD0A4eFsAOl47YwttgEeW3mwSfqP/N797nfXY0REuQGi7GlcPKLQ9hdlhETSGXnOPl/5m++RR5AuZCZ7X81/7fYEcYx/RLR1BAhXFjJljrAfNJ7OtAfvNtIlHY/jL37xixoeIHe5GUBIES3gLfSnKGkHv7Zq8DYCO1vX9BFQrrqphz9WAfbURsac+Rxcl3e7n5Z9ra+ASKcN5KnMtt+B9tS+5ra8xOVmQzr7nfPmf2zgs408xOrg/QFP/0B8+rVzJJvmKUXqAW663JggodqUE4rTxZoP2pvH2BOKtD0946XncRffOqwMxFabsuOmADpD2xYJ21yxaq9bC9ZEYOcsnl0u/etF5YSTflVuetNdyh1vc7Oy/dZjxHH7rcrTnva4cuoZJ5azZ59VFl20uDxg3wdWb+s7D357mTlGei9evKjccMzoNxmT5SeeVi44a2a5eN7CMntsgrdP6rzZs8r8sQ77rLGBy1OLtNZtCVtsWXYc+91hTGw5MOHo/DwJJgo62lcX8kVv3rOQUY80nPNE5CsEPpgunU4fAozM8tAiwdIRRDXeVgMSeVWWO3ATzu67717JMfsgyi1ZHSajJrABYs4TwY70iLfaJOvXBNuGIyDtZ10mE9NhgFoYM3nzyqQvIVt+9TXjxBOAkBK/8QC0MGkOhk0mRm2/EDLIIm87D6JCMr5iU30RWjuyWSC/1pM92Yit1mbH1DOkNqC7xdULoxZkN9nyQC6lT13i7ctWFH3KfCOOL4QgioFvXPPAQm6eM0ZJHrkroyV/gMCyu0e28LSnPa16dNlZOqQNeUCAEFLwNEl+CERLcBDAePVe9rKXjX9RwOJPb0/HeJvBOQLoEXPa1vziDz8AqVG2+psb2UWZ3mnwS+f0EXkAfW3LCEkDOsTLC9aS9jc3T/LzGy+ztnENoUvckP2QG8eDHkmEOd5OaIkXAmvORP4SFvJId2W5OZAvcZPgNzdzuYHRd2xTYhPEK/ETN3UBeuornjQqk/CYu+6mJvWPsJ91zLGbqxbaNn2whXNkV5pA+2nPeDbdWOnD8gY3Q3lKRdhFffXtQP+wHrf5hvgbV8aO69ZL4yrXrL/akW31Oes2Jwt7SefGS/kZmzzN2UIA+ljakA6x+6aAtE1rs8H22txwZU3XAWsisIsuWlJ+dcrx5T0fek+55vZbl7e84bVl3sxzy/LFC8q8uWMkcdkYIV00u8xaMqfc/2F7VgL7hre+vsyZN7Msmzen7Dxm9BuMyaXnzChzTjixEtjzFywss85d+eb/jBmzyl57PbSS16987gt1X+xnD/5Quf6W21QSe9GyFeNeDoOFl8NjG4NXmAGDiIYgEne96mAAeuNVmEVT/bKFwEStjnRASENuhWXBIAaLMi0m7IQQy5sXdlMgsCZ5j69Mapk0M8F5tAsWi9TXAmLiMRnkbnayMeoBOngnnses7WTs+D73uc/4BGlibXV0PIzYTAVGab92MQ+hAOMjC5U+heQ4zh9o5JFzS7wsTlNlsxax1TA7Qki569EvC2vqbn6IxzQE1hwTHHLIIeP5spm65saaDd7whjeM24s8+clPrvYU1/xj7ELKz290jh3pY94JgaVn9p26qUBY0995ObN/1Txlfm3fKNefvQjL26c8eybt+23biPcOWaCrcB699hNX8kck0jfyGbqQHlt0vvrVr9ZjdWn7AyBM8R4HvJUpYzA+7y2CFR0RH3s4A2W3BNWcb2xrM0ButAkkD+XFs6i8hNPXY3R5sjlkzsxWCGuE+I6tM4NfOQBtxiPokb64vq3r82YpRx8gkJsLe2KjU/qg/uMGga3bsSitczrwRkLmKvbiaY3tk5f+yU7WgtbDr/+EwMZ7bT0GTyxb77s8Ms4hbWU8Ieu2m6Re0Tc3FNmXDK7ZVpB9wLF5+xQHSddXAutXXuLSJvYi66deYDQf0SVjZ7ojeqpzsKnovr5YdQZeC1ZHYOcuXFRmL11WTj5vZvn0l79arnXtXcqWW2xTtrvG9mWrsd873PYu5aUve3WZMXss3YWXlHvvwQO7XXnnu99fTj3t7LJs+fll6+2vUba79tjEvPUYAd12i3LaGSeXFSuW1Tv++XMXlFnnzCzPf/Zzy9a+UjAm22+xVbnWVtvWLx3ssOU1ytzZc+ok49GtBozngeSu1GSImHrMkEWgJR/q5/GNO8aQ13wGS33dyfHayscEzjtrAEhrUpenX+ceibBNCOraZNQEFpAJb4THHu7S2a59O/nHP/5xfeziui85mHinCqMcoMrJQpHJG9oX3Yh+55FZMJUewrVhlPaL7ULocm7RywtBGacWw9aGg4R/VIithtkR9IsstH7d4OZRKKiHRTGPyo15eVhos/hb9M0hIA8kybl9hhZT842nS8pKP0yZFmB9Md+1DInK9RbK88SIzUNWEAmESB6IX8gCsiHcDRsgIOYAEMf8KB/11d/zEk7aMGSU7gGCw7kQeHyPaKV/IHHS8Eqyty0KvHRB6gZ00IfaP0pgd+l5ddk9pMgxu5nbEPWA185Tp9hKWsQsNtZWxrZ1gT7yZ4PoYN8pj3Fbp7ZMNmAjBDhkDeFWTrsVwU2AJ3oQWwTy44F94xvfWMuNx5bdga7pm5l3/EGPPbMJVz9/8OCbtdob5JW21i/sE3WTFZLNgcGZQd/YI/HplCeRkLohgbGvultb9ROwF9xTAmidAsk7v67lMT6920+GOefxbsmoddRYsQ0QrNf0Eg7y9SUF7RxY7xDYlAl0RZrZLW24KWDYvJSwzRWrzsBrwZoI7Kwly8qf/vk/5Yijf1C23ebaZfutrl223WK7ssMWO9bfrcbkYx/+VJkzd1F51KOfMGbkbcpBbz+4LF90/hgJml8+9qVPlC12GCMB221RnvL8p5Zz5p9X5iyaV86/+KL6bdmFCxeXI779nbLXgx5SP7N1g+tdvzzlKU8aG+x7jU2WKx8lIJzedjUBaESTkkdb7oxNyvZVGQR+PV4Sx103r4i9S855DxBU9cqXCJK3eiNswp0brN4Qtj9LWpMwb65HoSYAZFdaIu2aZNQENguoN3vdBFhoTcp5hGayG7YQGvhTRTBGOUDbxbItM28XEwt0vrlo4ssiMl0mkVHaL30kdswvuGHM43ILUh7p0W2q+ta6ILYaZscs6JB297jY4htijgR4axp4l6TJW9zmJ4+ZAUFMfI/jzS/2QCrX+HTN+PRL7FUNjGNh5mq/8jXXxY50iq76LqKJYAiT1qfNlBuyAUiZD74DHfRtBEX+btrtuUSw44EG5CWP/O05RJLVQ7sjZjywyGVIEsLw+c9/vh4D76JtOfHa0Y+XV37EVxjUMd5r+SjHNX3JvP/85z+/7otNe7V9ia2R2OSHpN/ylres18x1wjzWD4GhB7tkz79wfVXdxfU0D/HjJVY/+rbkx2cHU1a2Gymf04XdSMjcE55gfVxZR7/aMPMz0mZ/svzZUvrkmxeR1RuUn5sH4sUzsBfVFybUh7jGlukXblToplzXEGQvh3nK2HpKQV/XVvpRxrTtKm549CXrQ/4EJ20FxoEw6fwS6yoHU5xLcQpFL6BbyKayPe0SN2l4iUEazihhtk1kTHrCkb3Y9NUPs2VA3YTx+kpnfEDSTncMm5cStrliQkxpdQTWHxl4Oeu8ubPrHiovZL33zW8vl81fWhadeU554VOeXq41FvbWV766nH3iSWXJrJnlggXzyyVjk+RFc+aWS5csKpdeuKgsXjqjzFtwTlmweFaZMX9GOWPWOeWsebPK3OXLyuzly6ucvWBembFoYQ2fs3RBmblobpm/ZEFZtGRx/aCyxwUGisHAQ6rD+06nx2Mey/B28CiK59eCYLLOsXB3/wYhkVY+iKt4SKl6OzbYxHfdL7u4RuggPy+qmPRasjpMRk1gIQPVxKfjxwOQQYDAmkjbiXkqMR0GaEvEMrHaA+zRFXJAn0zkMJ0mv1Hab7Actmv7kQXSwmFBDrKgT3Ubrw7RY5gdQXiu5WYvxKNFeyNoMW4X6BbpO62XSpn5uH8gzDepg+QXD1vQnifvYbZFcBKeNK2OaTd5pC4tOQyRlcdg3UI+5IF0Ji9xldXGD7nNb3QeLDflJa3x19rYPGZsgvjitX2vHa8tCQ9S7jC0XlL6D9qzvR6dUkarA6SebRqIzXI9SFmDOqe/JH5enoK2D1jfgoS3doO0a5vOsTKSJ/vRkd4p22/blhkH4g7WI5CH660No09rK2HRR9skPl1b2yW81QmiQ+qm3DZ/zizOCOkTZ1NA6jvK9XGqMSGmtDoCu2T+nPKXpfPKwhN+WZ6y+67lntfcptx6zIi7jsndx+T2V8gPDz6o/NspJ5T/Oef08r9nnVaWHffdsuQ7h5e///bX5bKxu6U/HP/bMvvY48qKE08u/3nhReXfLvtDJZ6zx8jpWWPlnLtsaZl50Yoy97ILyozli8rZC2eVM+f6d6+Z5fwLV/7LFn3oRzfn7vw9KkMyPf5BJpHKeFfzlYG8cCUMMXXdYoqo8sg6dhcesiuMJ1fe0tMTiZXOo3hEGXmOrUJUVyejJrCZxE007aA1IRgEGfzBsMlpsjHqAZpJLmXGBlkcW5ggY5fBRWFUGLX92KFdoJy3fc2x64Ph7eIySkTvYXYEC2EW1tau6qQOwhyrW/pO+sggwQoyLqU3R/E0mWfEF+YJCS+gLU3tGE26liyECAHSk7Kjs32T6avRwbXk1ZKGxFOntA8P1uA8Aal7a5P2eHC/p7IH7diSj6CtD33ESbqct+W4lr2hg30s+bbxEb8g9c02CvFbYpvjlBsk35AzEEc5JHqQEKm0i7k35DRhKSfewhb6RAicusbuLaRJe4Fy2zhJn7onbuK0NtdObX3burbx2mNQp8RN2vS3tu+3dYHEjQ3a87YO4g96inN90GagDikD7L/3BEH4poTUcVTz+ygwIaa0OgJ7yezzSjnzd+Xyr3yifHP/B5WP3/125fljRvz07W9VDrnrHcvnbneLsvzVLy1fv9cdy9d2vVMpX/lUKV/6ZDli97uVX+63Vymf+Wwph/6wfOse+5XD9nhc+bevHFfKb88rlx9/Zrl85qKybO6iMm/R0jJrjFyeuWh+OX7GmeWsRXPL4svOL8suW1FmjRHZE0/+fdUrhBPZRDSRVuE8p8gqIurOk/6uWRSk8ZhBGp7WHBOeVOTUr/TiIsHiyUM4IuvYIweLi2sIM/H4BKENUV2djJrAQjuxQSbNwOAXlonL+VQO8lEO0NY2JruUG+KRidekmwlWWCbh6YBRT3BZPNpFZHCBbOHaYB8cJaLjMDu27UxvdUzdjJHBcZLzlkSJ3y68Fv7BMfbTn/60lpuXTokXpKKTPFoCBbZNpc8O9scQpJbohuS1uiX/5D3o9Uv/T11b8hckrd+0a36VP2hfiA2B7m08dRokR5Dx19ouYZA8Q1qie+Kof8Jawpu2ybXAetGi1Z8OrZ5t27g2jOj5bes9aHsQRzj7tXWDxE/75TrynWuD7ce2qRe9wPlgXXNtGORJr8RRVspO/m2fAnHYtu2XbN7WP30KEp56gHxTTutMEJ5+2NoZ2I0urb7wq1/9qo6pbJ2Tb8qe7ohN2nmptdPmiAkxpdUR2IsR2LNPLOX3Pyn/+e2vlCMftU/55gPvX/7fZz5Zyqc/WY4eOz7sPvcs5ahvjZHXz5Zv7X6vcvSD7lfKlz9dyte/WI64573LN++0eylf/WH5708dUb6279PLgs8dUcp5S8tfZy4uF81fVhbMX1LOm7+wLLrkorL40gvLgguXl5POOaWced4ZZf5Cf/O60tvJe4o4Iq/IKTKLgNKXd9QxvZFT8RFa5BbRRD6l95IET2zIK6IrvXyzP5aHVZh4Bpy8EGN5S5OvD5j0bENwfU0yHQhsJoHBQZuJ22AYnAimEqMcoLFHJvQsfspvJ1BoJ18YJA2jwijt1y4Sbd9K+bEf2/HIDdpwOiC6DrMjCEcyUj+/bb0tpknrmn6TuPpT+ok4zmMTcTLu0u+gJZ3JJ2jzGoS4WaCh7cstAWjLglwL6aSTdhqcE9o6y7ON0+aZeaVt61ZfehJpBuvXlhGCzvbD5id2zLiN7kGI3Or6m3LkTS95J708XUt58hdPuLiuRcfk3bZ/ym31cZw2FS+EVT7yTx0G6+hc3JTHHiknutNh0IZBS4xBvDZMOw3aRxz6IIH0HiSmQfSA6Gd80ytIvSBxQB+OPWKn3FAEw+bW9mWvFnSR/7D+pr6pc35bHTcFpC6dwK4GqyOwCxfMK0sXzS0XjBHJyxfOL6ccd0yZ+b0flf86b3b533Nnl0XHfr8sOPq4UuYtKH8/6ZQy5zvfLZf9/FflnyedXP7+q+PLZT/9Sfnjr35R/nbaSeUvp59WFowdX3juOeWCMcK4bO6CMuPcmWX+giVl1ryFZc6CheW0s86sxHPJ4vnlkguWlyUL5pazzjy9ElAEE7nMXlVENuTTW5vuQoWN6z6Wj/iIqHohrdKGAEsnXyQW6ZVOnJBVxBfpdY13NlsMeGldl15YS1aHyagJ7LCObgBnghgczO0kurrJf2NjOgzQTKTqP+hlMtGHdLBXOzFPB4zSfoOLZ7sgR4d28QrYcar619oQPYfZsdVdH9E/sqg7bu1sgUydhpGKpJMm4yyLqnIGbcKObT7Sux77xqM1OIahTZe+C+Lm3ByQfq/8pGnbbTAf0ta/tc8g6ZBP8qJz4kd/cF0ZiSeP1KctG9gqads8Ykt5CE9e0iuPyHOY9zhoCX7KjW2g1SVlt3Vvdcixtoku0JLBth0hhE45ZND727YhpIyEK2eQBAIdlet69FV20rdwfVi4tGzR1leewugqTWuf1pYpP8TeeeotXptn6z2WX+KlP8SW6qzM6NraUd1IWw6kb6ZNxdlUkHp3ArsarI7AzhkjaKcvmF9mj5G6k8eI28yFi8fI5Ypy0fKLy+wzZpblcxaVS5dcUOaeOaOsmLuw/HH5hfU7ritmzit/XDRGGL3kNPO0smLJjLJwvhefzhgjrLPGZHaZNWd2WbxkWVk2lmb2HOUuLfPnzisXrTi/zPH4f+6ssnje7LJ82ZKqDyKJbCKOSGmIZYgiUpqtBDyk4viVVjhyKo3rxLm8hCHHznlUpXMduWULEu8umyhLufLMNoY1yagJbIvBha6dUDMRjWJgjHKAtuVkUkvYoL0gE+CwiX5UGKX9gtYeWcyygMSuftm0JQbTAbHVMDtCyIVFsV2o2/q1RAJaMpd+tLpFMyQW5C+PdmzKu7VZuzBDSEB+k1abtH1Y3okz2AaupW7KF88vUV5bpnitftE/fSD55LdFGybPnMdeg+UAu8WuITmDZQUJb/PJcfKI7mmPeIwhdhlssza/tu65ro1i23Ys5Dj9AxIviF4Qe7doiV1bl9S97T9Ba7M2f/qsznb0Spg48nDehkX35DlY57aesVNrr1xv+5/jVkeIXZN2sDxI2OA8nbT0bstp7bgpIfXsBHY18AKBx/B5jM7LyKvpKwRzx4gXmbdocVkwRmB99mrRgpWyZMHC1crS+X7nl0UL547LwkVjspB3dKWHdKWszDPni8bSVhmLQ66Mt2kKW8bL6/Ml7aQxOFFdHZGJDzJADU522twH6cZAt9+GwzhsF2ef+WkXyo6Ojo5RoJ3DM7+HoLdz/+aGdSawJmoEloeQRxKJjaeTILRd1l+y7YA31jceeRp0wCyQOujVWRCt3GXnQ+8GZnvn3WX10u23YTLMe2WhcM0YHYzfpUuXLlMlkDnKt31btM6wzQ0TIrAm7Owt5TX0i3R5jD7oUewyMUFi7aV1g+Djzu2COfgY7+qKDET9sPVKdw/1uqHbb8PR2ood4+Xo6OjoGBVsj8jcZF5qtyZtzlhnAgsebfvXHN7XEC8eQx7Ylox1mbjwZvumrD22OiDYB7Q5u//XB7mRAnvS4qHuWDd0+60f2pdnckMZO3Z0dHRMB3B8mZfM656ubc7eV1jnGZgh/Bd0+9dvPqCdv5vrsvEkf4vnL2nzN5RdVgp7xCb+MrL3v4lJt9/6Sb67amzmb1zbubBLly5dRiW2hfn198PZIha0L8xtbpgQgR18lC0snomOjYPsZwG27R6yVdHeUa7pczcdw9Htt37gzchYbPeddXR0dIwa5nVzUvvEtv3W8+aKdSawmbBN4u235zKpM2CX9Zd84sM+lsEbBftZhqW5ugmwk32HztMn2WswbperCnT7rZ+AuS7betjOeWw4LE2XLl26TIUE2ZPfvkOzOe+HndAmrkFva4gW0mUi77L+Ankj3AKZDdm5QehY9TuB0A7cjrWj22/90b68FWRs9jHa0dExSoS45iY7GHSGbW7obyF0dHR0dHR0dHRsUugEtqOjo6Ojo6OjY5NCJ7AdHR0dHR0dHR2bFDqB7ejo6Ojo6Ojo2KTQCWxHR0dHR0dHR8cmhU5gOzo6Ojo6Ojo6Nil0AtvR0dHR0dHR0bFJoRPYjo6Ojo6Ojo6OTQqdwHZ0dHR0dHR0dGxS6AS2o6Ojo6Ojo6Njk0InsB0dHR0dHR0dHZsUOoHt6Ojo6Ojo6OjYpNAJbEdHR0dHR0dHxyaFTmA7Ojo6Ojo6Ojo2KXQC29HR0dHR0dHRsUmhE9iOjo6Ojo6Ojo5NCp3AdnR0dHR0dHR0bFLoBLajo6Ojo6Ojo2OTQiewHR0dHR0dHR0dmxQ6ge3o6Ojo6Ojo6Nik0AlsR0dHR0dHR0fHJoVOYDs6Ojo6Ojo6OjYpdALb0dHR0dHR0dGxSaET2I6Ojo6Ojo6Ojk0KncB2dHR0dHR0dHRsUugEtqOjo6Ojo6OjY5NCJ7AdHR0dHR0dHR2bFDqB7ejo6Ojo6Ojo2KQwhMCeWz54p7uU268iLy5HXXLF5StwzkdWXvvgWVcErA1nfWRlXi88pvzhiqAWE85vPTAVZbRIeSvlqjbs6Ojo6Ojo6OiYOFYlsCGZq5EXHPvHKyKuhgxK/5FzrzgZRIjxMCKXax8p51wRMhmYSgK7KnmNdBLb0dHR0dHR0bGhuJLAXnJMecEVRKslqqX8sRz1whCw1RPMPxz74pVxVktgr4yzav6rD990MUjWr7Th5lPHjo6Ojo6Ojo7RYJzArpGAVnK7qvew9WaOpx2X1XgaQ5JX2UYQctemGdjGsEr8K721R42XewWxvooHefU6j6Mh7itlVZLekutVvKqr2QpRMWS7xJpJ+pX1HddtvC7RZ6WdOgHu6Ojo6OjouLpjnMBO9PH6ehHYYWT1KqR2gLxG1nTdtdVuf7iSkF6ljqtNc6V+V63blbLuZHIYSR/AKoR1CKHt6Ojo6Ojo6OiouILAXvmIuyVMayKmg2RwPO4athBUhKhdES/p1pTPqmVdSe5WIZAD+Q7DqvlcWedhZQ3qN4wIr6msFusafzxeZB3z7+jo6Ojo6Oi4OmGNHthJIbDjBLT1NA4hh0NkJWFNmkFv5pXEdlwGdFlV56uWXTG+pWBl+NB6rQNZDsbrs6YtB+No6rBO8Ts6Ojo6Ojo6rn5Ytz2wQx6Brz+BbdJ+5KpEcN0J7ADxHMcgkV2dzhMjsBP19sLEyOsYVtmPO0jQOzo6Ojo6Ojo6YJzArkKeBojZODldA4GdiFdyPO5AnrB2Irw2AnslomPI56o6T2wLwUQJ7JU2W7ueK9HoE+le2I6Ojo6Ojo6Oq+BKAgurEMsh0hCq1RLYKmvzHjZk7SokbdCDGkmewwnslYRxUNaBdF9FrkyzXgR2FU/qqjJIpnM+rn+1x5X2WaXcjo6Ojo6Ojo6OAQJbMcQTOISQXoUMDhDPK8OHYygxHMcgiW3LX4MHdgghbfW4qs5juArZHE6MJ0JgV0+mV0Ngx3UYVs+ErWyXTmg7Ojo6Ojo6ru4YQmA7Ojo6Ojo6Ojo6pi86ge3o6Ojo6Ojo6Nik0AlsR0dHR0dHR0fHJoVOYDs6Ojo6Ojo6OjYpdALb0dHR0dHR0dGxSaET2I6Ojo6Ojo6Ojk0KncB2dHR0dHR0dHRsUugEtqOjo6Ojo6OjY5NCJ7AdHR0dHR0dHR2bFDqB7ejo6Ojo6Ojo2KTQCWxHR0dHR0dHR8cmhU5gOzo6Ojo6Ojo6Nil0AtvR0dHR0dHR0bFJoRPYjo6Ojo6Ojo6OTQqdwHZ0dHR0dHR0dGxS6AS2o6Ojo6Ojo6Njk0InsB0dHR0dHR0dHZsUOoHt6Ojo6Ojo6OjYpNAJbEdHR0dHR0dHxyaFoQT2//7v/+rvf/7nf47//r//9/+6dLnaSsbEIIbFnY6yqes/HWQYhsW7uknvW126dJmo/O///u8VM0Upf/7zn684KuUf//jHFUdrxyoE9r/+67/GSet//Md/1N9MTn67dLk6SvBv//Zv4+ftTd1g/OkmQE/6R+eM801B/1EK+0DmRuf/8z//UwWu7vaLff793/993CZslWuD8bt06dKFZO4IJkJcg3ECa3L++9//Xo//9re/jU/S//znP6vkvEuXq5sYD//93/89fu7YIu14uo8NurbjOWH09+tGtb3WZVXRviFnEXaLDc2b7bWrm1gzWhvELo71Lee51qVLly6DkjkCLr/88vq7rrjKFoK//vWvZYsttijXuc51ytZbb1222WabstNOO9XjLl2ujnLd6163bLvttqsc77DDDnVsDMadbtKOX8f090v/wbhdrirstOOOO65yvN1225VrXvOaV4l7dRTrBHs4vva1r12Pt99++/Hx0qVLly7DxDoUwTnd+E4U4wSWp8GdNDZsoj733HPLsmXLyvLly8vMmTPLwoULu3S5Wsp5551XFixYUObPn1/HxQUXXFBueMMb1uNFixYNTTNdhN70dzxv3rwyY8aMcsYZZ5Sb3/zm5fzzz79K/C6rypw5c8rs2bOrHfP71re+tbziFa+o8+OwNFcn0Z/0K2NDP7Ne3Pve9y4/+clPyuLFi4em6dKlS5clS5aUiy++uMydO7fe8PLC2lYwESI7TmDjwrWxFjs2IVmcTUoKGKZAly5XB7n00ksrcSHOly5dWm5yk5uU3/72t9OexBjD9Ecyov/JJ59cbnnLW5ZZs2ZVwjGYpsuVsmLFiirmQ+dI2Vve8pbyohe9qNrTJDyY5uokFiB9rB0bu+22WznyyCPr8XS/wevSpcto5PTTT69OAY4UXlhP/2Fwb+yaMHQLAQJrora4ZQIygXfpcnUUXiaeOGTVQo0M3vjGNy6nnnpqvbkblma6CF3dhPqlv7Djjz++EljjerrrP2oxwSL65kFkVdjrX//68rKXvawex/t4dRVP54wNZFV/Yg8e2O9973tXe9t06dJl9cKx4tc8ca1rXavuAgAveK0rxgksz2vE/i4Tt4X7oosuqhN4WHOXLlc3QVwQGOMBgTXorn/969dH8fE8DUrCV3d9KiVeQvr75Tm+2c1uVsNHod/qvHJ0QYaQIpPasDiE/TM/mZucD4s3UUm+8kz5dHUzj+jTjY6ve93rKoEVPlX2U3ZupEbRZspkF23T2psN2CjtIN4973nP8oMf/GCV9F26dOnSirnWja95Y6utthrnnxPBKh5YzFcGMssiY0Lq0uXqLBkHBlrGBQJ72mmn1TCLeIhFFvTsIRfnzDPPrGl4QsUTx4IvPGQJMUAoDWpk6cILLxwvD3Fx7pq4Br3fENOQLechqcqRVlnOW/1/97vfVQLrOGF0pYv08pOOfnSO3q1+dJAnvc8+++x6PeRP2lyXv/jJXxw3xeLEdsqX/le/+lV55jOfWW5/+9uXz3/+81Vv8VtCK/6xxx5bHv7wh5ctt9yy3Pe+963nynBDkfrETsqkh+upl3Bx5K1Owh3/9Kc/LY973OPKnnvuWQ499NDxMmM/Ih0P7Etf+tIarjzx6O9XfsKIsunEfvoDj71j5YtP5OmcXnRoy2rlOc95TnUsKPeUU06p2xrElUf7ZEBY7ClMvo7p5VgY3VJv12IHacWJDZPedWXe5z73KXe6053Kj370o/G6R98cEwSWB1Z4ly5dugwTc4Y5yBwTAjtRdALbpctapF2kMy5aApvF3jGyhZAgaWeddVYlHrbkeDESKbMtx6D1IpjH+N6+zIuSSIRjgjwKM7hDCpXjV1kImfJCepTlmnLlLzxpB/UfJLDJjyBG8vj5z39eHvrQh1bdPd5B7OSJLMnXMcL3gAc8oMaxpeJNb3pTvYYU0V3cECnEzV4nZTqmr3DxlMtmCN5jH/vYctvb3rZ8+tOfrtfe+c531rfbn/a0p40TQiROmb4IgFS9/e1vL094whPKne985/KZz3ym1l857EnkTRd1o7d8Eoetc53X8GEPe1i53/3uV4444oiqH/3beVCalsDKS7j2ZEt1USYv91Oe8pT6coI29usLEAj3QQcdVAlh2y7qKm960EeYsv0q46lPfWq5xjWuUV74whfWvWPSEvVJ20nvV5o//OEPtY7snBsM566JlzLEZ4O0qXPH4tJN2eIdffTR5R73uMf4C1rR22+Oo1MnsF26dFmbmDPMM+abTmC7dJkkyTgw4DIuWgKbQYgU5LE2Eog4POhBD6qeM5vU73//+5dzzjmnini77LJLJTfyC4EgrsmL11XeyBGC4xo9QnJdS1p6IU7ihDwibMjioP4tgRUeYofkEPnxhnoZh5fTfHCb29ym/PCHP6wERxrxPve5z9XrBMl97nOfW4mTsqOreMpXljqFOKV+SK14rv/iF7+oRBQB+sQnPlHt++53v7uSY2/9qzNitP/++9evKLzjHe+oBO3www8v//Iv/1LJlZsE+SlTOdoiJIxd4gGlY+orLlt+97vfLY94xCMqif3Od74zrnfsFz1bAissJFmdleX897//fXn84x9fSafPSiHhbORGxqem9t5771oXeqT/aAf2TRvKW5j8nvWsZ9V2cEN00kkn1est+Uw/cczbq55f/OIXy93udrfy9Kc/vd6QRH/pYgeSc+XKJ31aXL900Pbsq22OO+64ajdplSdfadiDdALbpUuXtUnmGXNIJ7BdukySZBwYcBkXLYFFAIgF3XVkIKSCR5G3kOcNgfna175WCYH8jDPkT/zkjfjyRCJCSBAygtCmXC9g8UIiLiEdv/nNb2ocZEgYwsNLFz0G9R/mgZVPS2SRJN5VJPvud797udGNblQOPvjgWkdl/frXv64EDTn3LVB1Q7LUGUFXpnwQzDw6p7f86ads5brG26yePLrIFg/sl770pUpwhWcLht9jjjmmeoPveMc7lo9//OO1PNfaGwN2kL82QfSk01bOkbzUkR5+3Wgoh5dxv/32q57GL3zhC/Ua+8R+RL6DBJYORH5EGvZ50pOeVNv+zW9+c9XpxBNPLC9/+csrId95552r55jOypEPPdkjBDQklb480PrL8573vBpHWylHet5c7SW99vZlAHmwj0f+j370oyshl5/rdKSverOLPITnmnzplD7kqxVsc9e73rWSUzcaad/YJXYincB26dJlbWLOMA+ZdzqB7dJlkiTjwIDLuBjcQoBkGIyIijAE06/H8MbTZz/72ep5e/CDH1yJBAKC3PDQyRsZQFZ4HhEAnlnXkA9kyPX3ve991ZOHwCkTAXnb295WwzyuFob4vvKVr6x/XoBoteM4ug4SWEJ/5C51RooQuRvc4AaVdPEg88AhpPGEImE3velN677VEFiTkfRs86pXvarc+ta3rvXkeeR1/Pa3v13t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XI4OACXJ13PPgzxTADaAAogF1hKHxGdiC5N3otSWXdOOEKDf//735eMf/3i5y13uUv8L2g477FCfDZulT0LMq/jnP/+5xoWnglKPcLYB2ITYuMB+C/Da17623O52t6s6A16vuOKKqiPgNmeFp4JaGVAPYHvqqaeJUGzGWg1ggYp4UvPDLPfieVxdJ15+9zy0rteUPva8+ni6AWzIfyH5zW9+U890HnPMMcu9sTxmoQAUZKLn2MH1UQsy1jQAy5O4//7710+X3eIWtyhbb7113ZDGKy0E+ONZFEZnq2IMr4ta/c1GDyzbDbgD8N42veAFLygbbrhh1dmHPvSh5eBVevILp0I/rW5QD2B76qmniVBsxlrvgfVq8W53u1t59rOfXb2vgAZva0CHPKecckp5znOeU5785CeXE088sS6CPqbLa7uienvuGc8kgH3e855X637iE594LcDhHyk86UlPqq/OgSegDkmfCLUgY00CsP4ry9vf/vayySab1P8e9vSnP71+OF+/gffYLIA1unCf4wMBspOlVn+z7QysfpJLeMYZZ1Qb579hYWeFeWMdsaAT+dKXlJsspY6EPYDtqaeeJkKxGdMOYC16OUcq3g8nAD8LejybvJry8HryeL7whS+sZ6++/vWv13h55OcB9RpfuZYTJx0IDWAIaGhlypEA18p885vfrB/D9W/JIpc0HAAC5Er370GPPfbYmk+d+pI8kUW5tBkgnPh4ddu49E8o3nXkbvXY85rHGRueZcKpBrAm7S677FI23XTTcqMb3ah6zy6//PLqVeONvfWtb13WWWed+i/3bnvb25YPfOAD1UM70cmefMKZBrDsSsCl6wAptsZ9PKfu2/44r8nzSie+E2ju2njm9XcLWlFbNtdt3GSorW8mASxd0Ut0hfTbfYgOxAGNNvC81Gy4/xZmvCqHp0oXgzSo60EA27ZL1tynH+kX0t+Mj4QpEz2EUm5lfVM+lLcZ7Xhp05G01J83G2RE6k8bQkdaBkl9K3prkrKDb0vM7S9/+ctlxx13rPkH5UHWnrve9a51zTrwwANrPW0fBokuzA/5otvIJM569frXv77+h8GQ+FZepJx2IpN71/K6DimX9sQL5UtfTz311NreD3/4w3qffG0dg0Te9giVNqKftqy6sLU8bciXcdI+T9fRW+pLPqTNFelVevqV69AhhxxS/6mJ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&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;읽어주셔서 감사합니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 정보/개발공부</category>
      <category>Android</category>
      <category>git</category>
      <category>github</category>
      <category>IT</category>
      <category>명령어</category>
      <category>버전관리시스템</category>
      <author>장구치는 개발자</author>
      <guid isPermaLink="true">https://thgus13.tistory.com/15</guid>
      <comments>https://thgus13.tistory.com/15#entry15comment</comments>
      <pubDate>Sun, 29 Mar 2020 22:23:46 +0900</pubDate>
    </item>
  </channel>
</rss>