시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 24 11 7 50.000%

문제

중세 기사 시대에, 사악한 조롱에 대항하는 정신력, 즉 '멘탈'은 아주 중요한 것이었다.

킹 현우는 자신의 노예들이 약한 멘탈을 갖기를 바라지 않았다. 그래서 자신의 엄청난 코딩 능력으로 트레이닝용 도발 봇을 만들어냈다.

하지만 현우는 아직 인공지능 수업을 듣지 않았고, 아는 것이라곤 오토마타 1단원 뿐이었기 때문에 같은 상태에서 같은 입력을 받는다면 항상 같은 행동을 하는 것이 보장되는 봇 하나를 짜는 것이 고작이었다.

현우가 만든 도발 봇은 아래의 테이블과, 이어 설명할 몇 가지 규칙에 따라 행동한다.

<taunt> ::= <sentence> | <taunt> <sentence> | <noun>! | <sentence>
<sentence> ::= <past-rel> <noun-phrase> | <present-rel> <noun-phrase> | <past-rel> <article> <noun> 
<noun-phrase> ::= <article> <modified-noun>
<modified-noun> ::= <noun> | <modifier> <noun>
<modifier> ::= <adjective> | <adverb> <adjective>
<present-rel> ::= your <present-person> <present-verb>
<past-rel> ::= your <past-person> <past-verb>
<present-person> ::= steed | king | first-born
<past-person> ::= mother | father | grandmother | grandfather | godfather
<noun> ::= hamster | coconut | duck | herring | newt | peril | chicken | vole | parrot | mouse | twit 
<present-verb> ::= is | “masquerades as”
<past-verb> ::= was | personified
<article> ::= a
<adjective> ::= silly | wicked | sordid | naughty | repulsive | malodorous | ill-tempered
<adverb> ::= conspicuously | categorically | positively | cruelly | incontrovertibly

쌍따옴표 안에 있는 문구는 항상 하나의 단어로 취급된다.

위의 표를 읽는 법을 모른다면 이 링크를 참고하자.

봇은 위의 테이블을 참조하여, 아래와 같은 규칙으로 도발을 한다.

  • '단어'란, 최소 한 개의 영어 알파벳을 포함하고 있으며, 다른 단어와 최소 한 개 이상의 공백 문자로 구분되어 있는 연속된 문자열을 의미한다.
  • 봇은 우선 상대의 말을 모두 듣는다. 그 이후, 상대의 말에 몇 개의 단어가 있는지에 따라 도발의 수가 결정된다. 상대가 3개의 단어를 말할 때마다 한 개의 도발을 하며, 만일 상대가 말한 단어의 수가 3으로 나누어 떨어지지 않는다면 한 번의 도발을 더 한다.
  • 기본적으로 봇이 하는 도발은 위의 테이블에서 <taunt> 하나로 시작하여 재귀적으로 계속 확장하게 된다. 이때, 자세히 보면 <taunt>가 다시 <taunt>를 만들게 되어 한 문장에 도발이 두 번 들어가는 경우가 있는데, 이런 경우엔 도발을 두 번 한 것으로 세야 한다. 만일 상대가 말한 문장이 4개의 단어로 이루어져 있고, 봇이 한 문장에 도발을 두 번 하게 된다면, 그대로 봇은 임무를 다한 것이다.
  • 어떤 기호에 대한 표현식이 총 N가지이고, 이 기호를 지금 K번째로 만났으면 ((K-1) mod N) + 1 번째 선택지를 택한다. 이 선택은 모든 기호에 대해 독립적이다. 예를 들어, 첫 번째 도발은
    <taunt>
    => <sentence>
    => <past-rel> <noun-phrase>
    => your <past-person> <past-verb> <article> <modified-noun>
    => your mother was a <noun>
    => your mother was a hamster
    가 되며, 두 번째 도발의 첫 확장 부분은
    <taunt>
    => <taunt> <sentence>
    => <noun>! <present-rel> <noun-phrase>
    => ...
    이 될 것이다.
  • 이외에 항상 적용되는 특별한 예외 규칙으로, 상대가 말한 문장에 t-h-e-h-o-l-y-g-r-a-i-l (대소문자 구분 없음) 의 12글자가 순서대로 (비연속적이어도 상관 없음) 등장한다면, 봇이 처음으로 만드는 도발은 "(A childish hand gesture)." 가 되어야 한다. 이 도발은 선택지를 거치지 않기 때문에 각 기호들의 선택 상태에 아무 영향을 미치지 않으며, 한 개의 도발로 카운트된다.

킹 현우는 이 복잡한 봇을 통해 노예들을 훈련시킬 것이다.

킹 현우의 도발 봇이 어떻게 행동하게 될 지 시뮬레이션해 보자.

입력

입력은 임의의 여러 줄로 구성된다.

각 줄은 봇의 상대가 말한 내용으로 구성되어 있으며, 항상 알파벳 대소문자, 숫자, ",.-!?", 공백으로만 이루어져 있다.

모든 라인은 최소 1개, 최대 72개의 문자로 이루어져 있으며, 단어는 항상 하나 이상의 공백으로 구분되어져 있다.

모든 라인에 대해, 단어가 0개인 경우는 없다.

출력

각 입력에 대해, 아래와 같이 출력한다.

  • "Knight:", 스페이스(아스키 코드 32), 입력된 문장을 순서대로 출력한다. 이때, 입력에 만일 1개 이상의 공백 문자(스페이스, 탭)가 있다면 모두 단 하나의 스페이스(아스키 코드 32)로 대체되어야 한다.
  • "Taunter:", 스페이스(아스키 코드 32) , 입력에 맞는 도발, 마침표 하나를 필요한 도발 수만큼 순서대로 출력한다. 각 단어는 항상 하나의 스페이스(아스키 코드 32)로 구분되어야 한다.
  • 위의 두 출력단이 끝나면, 빈 줄 하나를 추가로 출력한다.

모든 도발은 대문자로 시작해야 하며, 추가적인 공백 문자가 있어서는 안 된다.

쌍따옴표 안에 있는 문구는 항상 하나의 단어로 취급되며, 쌍따옴표는 도발에 포함되지 않는다. 도발을 출력할 때, 도발 앞과 뒤에 위에서 설명한 공백 문자 이외에 다른 공백 문자가 있어서는 안 된다.

예제 입력 1

Hello! 
Are you feeling alright? 
Is there someone else I could talk to? 
Anyone at    all? 
We seek the holy grail . . .

예제 출력 1

Knight: Hello! 
Taunter: Your mother was a hamster. 

Knight: Are you feeling alright? 
Taunter: Coconut! Your steed is a silly duck. 

Knight: Is there someone else I could talk to? 
Taunter: Your father personified a herring. 
Taunter: Your grandmother was a newt. 
Taunter: Peril! Your king masquerades as a conspicuously wicked chicken. 

Knight: Anyone at all? 
Taunter: Your grandfather personified a vole. 

Knight: We seek the holy grail . . . 
Taunter: (A childish hand gesture). 
Taunter: Your godfather was a parrot.
W3sicHJvYmxlbV9pZCI6IjkxNjciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWIzYzRcdWJjMWMgXHViZDA3IiwiZGVzY3JpcHRpb24iOiI8cD5cdWM5MTFcdWMxMzggXHVhZTMwXHVjMGFjIFx1YzJkY1x1YjMwMFx1YzVkMCwgXHVjMGFjXHVjNTQ1XHVkNTVjIFx1Yzg3MFx1Yjg3MVx1YzVkMCBcdWIzMDBcdWQ1NmRcdWQ1NThcdWIyOTQgXHVjODE1XHVjMmUwXHViODI1LCBcdWM5ODkgJiMzOTtcdWJhNThcdWQwYzgmIzM5O1x1Yzc0MCBcdWM1NDRcdWM4ZmMgXHVjOTExXHVjNjk0XHVkNTVjIFx1YWM4M1x1Yzc3NFx1YzVjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkMGI5IFx1ZDYwNFx1YzZiMFx1YjI5NCBcdWM3OTBcdWMyZTBcdWM3NTggXHViMTc4XHVjNjA4XHViNGU0XHVjNzc0IFx1YzU3ZFx1ZDU1YyBcdWJhNThcdWQwYzhcdWM3NDQgXHVhYzE2XHVhZTMwXHViOTdjIFx1YmMxNFx1Yjc3Y1x1YzljMCBcdWM1NGFcdWM1NThcdWIyZTQuIFx1YWRmOFx1Yjc5OFx1YzExYyBcdWM3OTBcdWMyZTBcdWM3NTggXHVjNWM0XHVjY2FkXHViMDljIFx1Y2Y1NFx1YjUyOSBcdWIyYTVcdWI4MjVcdWM3M2NcdWI4NWMgXHVkMmI4XHViODA4XHVjNzc0XHViMmRkXHVjNmE5IFx1YjNjNFx1YmMxYyBcdWJkMDdcdWM3NDQgXHViOWNjXHViNGU0XHVjNWI0XHViMGM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQ1NThcdWM5YzBcdWI5Y2MgXHVkNjA0XHVjNmIwXHViMjk0IFx1YzU0NFx1YzljMSBcdWM3NzhcdWFjZjVcdWM5YzBcdWIyYTUgXHVjMjE4XHVjNWM1XHVjNzQ0IFx1YjRlM1x1YzljMCBcdWM1NGFcdWM1NThcdWFjZTAsIFx1YzU0NFx1YjI5NCBcdWFjODNcdWM3NzRcdWI3N2NcdWFjZTQgXHVjNjI0XHVkMWEwXHViOWM4XHVkMGMwIDFcdWIyZThcdWM2ZDAgXHViZmQwXHVjNzc0XHVjNWM4XHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWFjMTlcdWM3NDAgXHVjMGMxXHVkMGRjXHVjNWQwXHVjMTFjIFx1YWMxOVx1Yzc0MCBcdWM3ODVcdWI4MjVcdWM3NDQgXHViYzFiXHViMjk0XHViMmU0XHViYTc0IFx1ZDU2ZFx1YzBjMSBcdWFjMTlcdWM3NDAgXHVkNTg5XHViM2Q5XHVjNzQ0IFx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHViY2Y0XHVjN2E1XHViNDE4XHViMjk0IFx1YmQwNyBcdWQ1NThcdWIwOThcdWI5N2MgXHVjOWRjXHViMjk0IFx1YWM4M1x1Yzc3NCBcdWFjZTBcdWM3OTFcdWM3NzRcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDYwNFx1YzZiMFx1YWMwMCBcdWI5Y2NcdWI0ZTAgXHViM2M0XHViYzFjIFx1YmQwN1x1Yzc0MCBcdWM1NDRcdWI3OThcdWM3NTggXHVkMTRjXHVjNzc0XHViZTE0XHVhY2ZjLCBcdWM3NzRcdWM1YjQgXHVjMTI0XHViYTg1XHVkNTYwIFx1YmE4NyBcdWFjMDBcdWM5YzAgXHVhZGRjXHVjZTU5XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWQ1ODlcdWIzZDlcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbiZsdDt0YXVudCZndDsgOjo9ICZsdDtzZW50ZW5jZSZndDsgfCAmbHQ7dGF1bnQmZ3Q7ICZsdDtzZW50ZW5jZSZndDsgfCAmbHQ7bm91biZndDshIHwgJmx0O3NlbnRlbmNlJmd0O1xyXG4mbHQ7c2VudGVuY2UmZ3Q7IDo6PSAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDsgfCAmbHQ7cHJlc2VudC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDsgfCAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDthcnRpY2xlJmd0OyAmbHQ7bm91biZndDsgXHJcbiZsdDtub3VuLXBocmFzZSZndDsgOjo9ICZsdDthcnRpY2xlJmd0OyAmbHQ7bW9kaWZpZWQtbm91biZndDtcclxuJmx0O21vZGlmaWVkLW5vdW4mZ3Q7IDo6PSAmbHQ7bm91biZndDsgfCAmbHQ7bW9kaWZpZXImZ3Q7ICZsdDtub3VuJmd0O1xyXG4mbHQ7bW9kaWZpZXImZ3Q7IDo6PSAmbHQ7YWRqZWN0aXZlJmd0OyB8ICZsdDthZHZlcmImZ3Q7ICZsdDthZGplY3RpdmUmZ3Q7XHJcbiZsdDtwcmVzZW50LXJlbCZndDsgOjo9IHlvdXIgJmx0O3ByZXNlbnQtcGVyc29uJmd0OyAmbHQ7cHJlc2VudC12ZXJiJmd0O1xyXG4mbHQ7cGFzdC1yZWwmZ3Q7IDo6PSB5b3VyICZsdDtwYXN0LXBlcnNvbiZndDsgJmx0O3Bhc3QtdmVyYiZndDtcclxuJmx0O3ByZXNlbnQtcGVyc29uJmd0OyA6Oj0gc3RlZWQgfCBraW5nIHwgZmlyc3QtYm9yblxyXG4mbHQ7cGFzdC1wZXJzb24mZ3Q7IDo6PSBtb3RoZXIgfCBmYXRoZXIgfCBncmFuZG1vdGhlciB8IGdyYW5kZmF0aGVyIHwgZ29kZmF0aGVyXHJcbiZsdDtub3VuJmd0OyA6Oj0gaGFtc3RlciB8IGNvY29udXQgfCBkdWNrIHwgaGVycmluZyB8IG5ld3QgfCBwZXJpbCB8IGNoaWNrZW4gfCB2b2xlIHwgcGFycm90IHwgbW91c2UgfCB0d2l0IFxyXG4mbHQ7cHJlc2VudC12ZXJiJmd0OyA6Oj0gaXMgfCAmbGRxdW87bWFzcXVlcmFkZXMgYXMmcmRxdW87XHJcbiZsdDtwYXN0LXZlcmImZ3Q7IDo6PSB3YXMgfCBwZXJzb25pZmllZFxyXG4mbHQ7YXJ0aWNsZSZndDsgOjo9IGFcclxuJmx0O2FkamVjdGl2ZSZndDsgOjo9IHNpbGx5IHwgd2lja2VkIHwgc29yZGlkIHwgbmF1Z2h0eSB8IHJlcHVsc2l2ZSB8IG1hbG9kb3JvdXMgfCBpbGwtdGVtcGVyZWRcclxuJmx0O2FkdmVyYiZndDsgOjo9IGNvbnNwaWN1b3VzbHkgfCBjYXRlZ29yaWNhbGx5IHwgcG9zaXRpdmVseSB8IGNydWVsbHkgfCBpbmNvbnRyb3ZlcnRpYmx5PFwvcHJlPlxyXG5cclxuPHA+XHVjMzBkXHViNTMwXHVjNjM0XHVkNDVjIFx1YzU0OFx1YzVkMCBcdWM3ODhcdWIyOTQgXHViYjM4XHVhZDZjXHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWQ1NThcdWIwOThcdWM3NTggXHViMmU4XHVjNWI0XHViODVjIFx1Y2RlOFx1YWUwOVx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1ZDQ1Y1x1Yjk3YyBcdWM3N2RcdWIyOTQgXHViYzk1XHVjNzQ0IFx1YmFhOFx1Yjk3OFx1YjJlNFx1YmE3NCZuYnNwOzxhIGhyZWY9XCJodHRwczpcL1wva28ud2lraXBlZGlhLm9yZ1wvd2lraVwvJUVCJUIwJUIwJUVDJUJCJUE0JUVDJThBJUE0LSVFQiU4MiU5OCVFQyU5QSVCMCVFQiVBNSVCNF8lRUQlOTElOUMlRUElQjglQjAlRUIlQjIlOTVcIj5cdWM3NzQgXHViOWMxXHVkMDZjPFwvYT5cdWI5N2MgXHVjYzM4XHVhY2UwXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48cD5cdWJkMDdcdWM3NDAgXHVjNzA0XHVjNzU4IFx1ZDE0Y1x1Yzc3NFx1YmUxNFx1Yzc0NCBcdWNjMzhcdWM4NzBcdWQ1NThcdWM1ZWMsIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVhZGRjXHVjZTU5XHVjNzNjXHViODVjIFx1YjNjNFx1YmMxY1x1Yzc0NCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JiMzOTtcdWIyZThcdWM1YjQmIzM5O1x1Yjc4MCwgXHVjZDVjXHVjMThjIFx1ZDU1YyBcdWFjMWNcdWM3NTggXHVjNjAxXHVjNWI0IFx1YzU0Y1x1ZDMwY1x1YmNiM1x1Yzc0NCBcdWQzZWNcdWQ1NjhcdWQ1NThcdWFjZTAgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWIyZTRcdWI5NzggXHViMmU4XHVjNWI0XHVjNjQwIFx1Y2Q1Y1x1YzE4YyBcdWQ1NWMgXHVhYzFjIFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM3ODhcdWIyOTQgXHVjNWYwXHVjMThkXHViNDFjIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YmQwN1x1Yzc0MCBcdWM2YjBcdWMxMjAgXHVjMGMxXHViMzAwXHVjNzU4IFx1YjlkMFx1Yzc0NCBcdWJhYThcdWI0NTAgXHViNGUzXHViMjk0XHViMmU0LiBcdWFkZjggXHVjNzc0XHVkNmM0LCBcdWMwYzFcdWIzMDBcdWM3NTggXHViOWQwXHVjNWQwIFx1YmE4NyBcdWFjMWNcdWM3NTggXHViMmU4XHVjNWI0XHVhYzAwIFx1Yzc4OFx1YjI5NFx1YzljMFx1YzVkMCBcdWI1MzBcdWI3N2MgXHViM2M0XHViYzFjXHVjNzU4IFx1YzIxOFx1YWMwMCBcdWFjYjBcdWM4MTVcdWI0MWNcdWIyZTQuIFx1YzBjMVx1YjMwMFx1YWMwMCAzXHVhYzFjXHVjNzU4IFx1YjJlOFx1YzViNFx1Yjk3YyBcdWI5ZDBcdWQ1NjAgXHViNTRjXHViOWM4XHViMmU0IFx1ZDU1YyBcdWFjMWNcdWM3NTggXHViM2M0XHViYzFjXHVjNzQ0IFx1ZDU1OFx1YmE3MCwgXHViOWNjXHVjNzdjIFx1YzBjMVx1YjMwMFx1YWMwMCBcdWI5ZDBcdWQ1NWMgXHViMmU4XHVjNWI0XHVjNzU4IFx1YzIxOFx1YWMwMCAzXHVjNzNjXHViODVjIFx1YjA5OFx1YjIwNFx1YzViNCBcdWI1YThcdWM1YjRcdWM5YzBcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0XHViYTc0IFx1ZDU1YyBcdWJjODhcdWM3NTggXHViM2M0XHViYzFjXHVjNzQ0IFx1YjM1NCBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YWUzMFx1YmNmOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWJkMDdcdWM3NzQgXHVkNTU4XHViMjk0IFx1YjNjNFx1YmMxY1x1Yzc0MCBcdWM3MDRcdWM3NTggXHVkMTRjXHVjNzc0XHViZTE0XHVjNWQwXHVjMTFjICZsdDt0YXVudCZndDsgXHVkNTU4XHViMDk4XHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU1OFx1YzVlYyBcdWM3YWNcdWFkYzBcdWM4MDFcdWM3M2NcdWI4NWMgXHVhY2M0XHVjMThkIFx1ZDY1NVx1YzdhNVx1ZDU1OFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1Yzc3NFx1YjU0YywgXHVjNzkwXHVjMTM4XHVkNzg4IFx1YmNmNFx1YmE3NCAmbHQ7dGF1bnQmZ3Q7XHVhYzAwIFx1YjJlNFx1YzJkYyAmbHQ7dGF1bnQmZ3Q7XHViOTdjIFx1YjljY1x1YjRlNFx1YWM4YyBcdWI0MThcdWM1YjQgXHVkNTVjIFx1YmIzOFx1YzdhNVx1YzVkMCBcdWIzYzRcdWJjMWNcdWM3NzQgXHViNDUwIFx1YmM4OCBcdWI0ZTRcdWM1YjRcdWFjMDBcdWIyOTQgXHVhY2JkXHVjNmIwXHVhYzAwIFx1Yzc4OFx1YjI5NFx1YjM3MCwgXHVjNzc0XHViN2YwIFx1YWNiZFx1YzZiMFx1YzVkNCBcdWIzYzRcdWJjMWNcdWM3NDQgXHViNDUwIFx1YmM4OCBcdWQ1NWMgXHVhYzgzXHVjNzNjXHViODVjIFx1YzEzOFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YjljY1x1Yzc3YyBcdWMwYzFcdWIzMDBcdWFjMDAgXHViOWQwXHVkNTVjIFx1YmIzOFx1YzdhNVx1Yzc3NCA0XHVhYzFjXHVjNzU4IFx1YjJlOFx1YzViNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVhY2UwLCBcdWJkMDdcdWM3NzQgXHVkNTVjIFx1YmIzOFx1YzdhNVx1YzVkMCBcdWIzYzRcdWJjMWNcdWM3NDQgXHViNDUwIFx1YmM4OCBcdWQ1NThcdWFjOGMgXHViNDFjXHViMmU0XHViYTc0LCBcdWFkZjhcdWIzMDBcdWI4NWMgXHViZDA3XHVjNzQwIFx1Yzc4NFx1YmIzNFx1Yjk3YyBcdWIyZTRcdWQ1NWMgXHVhYzgzXHVjNzc0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM1YjRcdWI1YTQgXHVhZTMwXHVkNjM4XHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWQ0NWNcdWQ2MDRcdWMyZGRcdWM3NzQgXHVjZDFkIE5cdWFjMDBcdWM5YzBcdWM3NzRcdWFjZTAsIFx1Yzc3NCBcdWFlMzBcdWQ2MzhcdWI5N2MgXHVjOWMwXHVhZTA4IEtcdWJjODhcdWM5ZjhcdWI4NWMgXHViOWNjXHViMGFjXHVjNzNjXHViYTc0ICgoSy0xKSBtb2QgTikgKyAxIFx1YmM4OFx1YzlmOCBcdWMxMjBcdWQwZGRcdWM5YzBcdWI5N2MgXHVkMGRkXHVkNTVjXHViMmU0LiBcdWM3NzQgXHVjMTIwXHVkMGRkXHVjNzQwIFx1YmFhOFx1YjRlMCBcdWFlMzBcdWQ2MzhcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YjNjNVx1YjliZFx1YzgwMVx1Yzc3NFx1YjJlNC4gXHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWIzYzRcdWJjMWNcdWM3NDA8YnIgXC8+XHJcblx0Jmx0O3RhdW50Jmd0OzxiciBcLz5cclxuXHQ9Jmd0OyAmbHQ7c2VudGVuY2UmZ3Q7PGJyIFwvPlxyXG5cdD0mZ3Q7ICZsdDtwYXN0LXJlbCZndDsgJmx0O25vdW4tcGhyYXNlJmd0OzxiciBcLz5cclxuXHQ9Jmd0OyB5b3VyICZsdDtwYXN0LXBlcnNvbiZndDsgJmx0O3Bhc3QtdmVyYiZndDsgJmx0O2FydGljbGUmZ3Q7ICZsdDttb2RpZmllZC1ub3VuJmd0OzxiciBcLz5cclxuXHQ9Jmd0OyB5b3VyIG1vdGhlciB3YXMgYSAmbHQ7bm91biZndDs8YnIgXC8+XHJcblx0PSZndDsgeW91ciBtb3RoZXIgd2FzIGEgaGFtc3RlcjxiciBcLz5cclxuXHRcdWFjMDAgXHViNDE4XHViYTcwLCBcdWI0NTAgXHViYzg4XHVjOWY4IFx1YjNjNFx1YmMxY1x1Yzc1OCBcdWNjYWIgXHVkNjU1XHVjN2E1IFx1YmQ4MFx1YmQ4NFx1Yzc0MDxiciBcLz5cclxuXHQmbHQ7dGF1bnQmZ3Q7PGJyIFwvPlxyXG5cdD0mZ3Q7ICZsdDt0YXVudCZndDsgJmx0O3NlbnRlbmNlJmd0OzxiciBcLz5cclxuXHQ9Jmd0OyAmbHQ7bm91biZndDshJm5ic3A7Jmx0O3ByZXNlbnQtcmVsJmd0OyAmbHQ7bm91bi1waHJhc2UmZ3Q7PGJyIFwvPlxyXG5cdD0mZ3Q7IC4uLjxiciBcLz5cclxuXHRcdWM3NzQgXHViNDIwIFx1YWM4M1x1Yzc3NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzc0XHVjNjc4XHVjNWQwIFx1ZDU2ZFx1YzBjMSBcdWM4MDFcdWM2YTlcdWI0MThcdWIyOTQgXHVkMmI5XHViY2M0XHVkNTVjIFx1YzYwOFx1YzY3OCBcdWFkZGNcdWNlNTlcdWM3M2NcdWI4NWMsIFx1YzBjMVx1YjMwMFx1YWMwMCBcdWI5ZDBcdWQ1NWMgXHViYjM4XHVjN2E1XHVjNWQwIHQtaC1lLWgtby1sLXktZy1yLWEtaS1sIChcdWIzMDBcdWMxOGNcdWJiMzhcdWM3OTAgXHVhZDZjXHViZDg0IFx1YzVjNlx1Yzc0YykgXHVjNzU4IDEyXHVhZTAwXHVjNzkwXHVhYzAwIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyAoXHViZTQ0XHVjNWYwXHVjMThkXHVjODAxXHVjNzc0XHVjNWI0XHViM2M0IFx1YzBjMVx1YWQwMCBcdWM1YzZcdWM3NGMpIFx1YjRmMVx1YzdhNVx1ZDU1Y1x1YjJlNFx1YmE3NCwgXHViZDA3XHVjNzc0IFx1Y2M5OFx1Yzc0Y1x1YzczY1x1Yjg1YyBcdWI5Y2NcdWI0ZGNcdWIyOTQgXHViM2M0XHViYzFjXHVjNzQwICZxdW90OyhBIGNoaWxkaXNoIGhhbmQgZ2VzdHVyZSkuJnF1b3Q7IFx1YWMwMCBcdWI0MThcdWM1YjRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWM3NzQgXHViM2M0XHViYzFjXHVjNzQwIFx1YzEyMFx1ZDBkZFx1YzljMFx1Yjk3YyBcdWFjNzBcdWNlNThcdWM5YzAgXHVjNTRhXHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWFjMDEgXHVhZTMwXHVkNjM4XHViNGU0XHVjNzU4IFx1YzEyMFx1ZDBkZCBcdWMwYzFcdWQwZGNcdWM1ZDAgXHVjNTQ0XHViYjM0IFx1YzYwMVx1ZDVhNVx1Yzc0NCBcdWJiZjhcdWNlNThcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTcwLCBcdWQ1NWMgXHVhYzFjXHVjNzU4IFx1YjNjNFx1YmMxY1x1Yjg1YyBcdWNlNzRcdWM2YjRcdWQyYjhcdWI0MWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVkMGI5IFx1ZDYwNFx1YzZiMFx1YjI5NCBcdWM3NzQgXHViY2Y1XHVjN2ExXHVkNTVjIFx1YmQwN1x1Yzc0NCBcdWQxYjVcdWQ1NzQgXHViMTc4XHVjNjA4XHViNGU0XHVjNzQ0IFx1ZDZjOFx1YjgyOFx1YzJkY1x1ZDBhYyBcdWFjODNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDBiOSBcdWQ2MDRcdWM2YjBcdWM3NTggXHViM2M0XHViYzFjIFx1YmQwN1x1Yzc3NCBcdWM1YjRcdWI1YmJcdWFjOGMgXHVkNTg5XHViM2Q5XHVkNTU4XHVhYzhjIFx1YjQyMCBcdWM5YzAgXHVjMmRjXHViYmFjXHViODA4XHVjNzc0XHVjMTU4XHVkNTc0IFx1YmNmNFx1Yzc5MC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc0MCBcdWM3ODRcdWM3NThcdWM3NTggXHVjNWVjXHViN2VjIFx1YzkwNFx1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWM5MDRcdWM3NDAgXHViZDA3XHVjNzU4IFx1YzBjMVx1YjMwMFx1YWMwMCBcdWI5ZDBcdWQ1NWMgXHViMGI0XHVjNmE5XHVjNzNjXHViODVjIFx1YWQ2Y1x1YzEzMVx1YjQxOFx1YzViNCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1ZDU2ZFx1YzBjMSBcdWM1NGNcdWQzMGNcdWJjYjMgXHViMzAwXHVjMThjXHViYjM4XHVjNzkwLCBcdWMyMmJcdWM3OTAsICZxdW90OywuLSE/JnF1b3Q7LCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWNcdWI5Y2MgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFx1Yjc3Y1x1Yzc3OFx1Yzc0MCBcdWNkNWNcdWMxOGMgMVx1YWMxYywgXHVjZDVjXHViMzAwIDcyXHVhYzFjXHVjNzU4IFx1YmIzOFx1Yzc5MFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVjNzNjXHViYTcwLCBcdWIyZThcdWM1YjRcdWIyOTQgXHVkNTZkXHVjMGMxIFx1ZDU1OFx1YjA5OCBcdWM3NzRcdWMwYzFcdWM3NTggXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWI3N2NcdWM3NzhcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWIyZThcdWM1YjRcdWFjMDAgMFx1YWMxY1x1Yzc3OCBcdWFjYmRcdWM2YjBcdWIyOTQgXHVjNWM2XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWM3ODVcdWI4MjVcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzc0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4mcXVvdDtLbmlnaHQ6JnF1b3Q7LCBcdWMyYTRcdWQzOThcdWM3NzRcdWMyYTQoXHVjNTQ0XHVjMmE0XHVkMGE0IFx1Y2Y1NFx1YjRkYyAzMiksIFx1Yzc4NVx1YjgyNVx1YjQxYyBcdWJiMzhcdWM3YTVcdWM3NDQgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVjNzc0XHViNTRjLCBcdWM3ODVcdWI4MjVcdWM1ZDAgXHViOWNjXHVjNzdjIDFcdWFjMWMgXHVjNzc0XHVjMGMxXHVjNzU4IFx1YWNmNVx1YmMzMSBcdWJiMzhcdWM3OTAoXHVjMmE0XHVkMzk4XHVjNzc0XHVjMmE0LCBcdWQwZWQpXHVhYzAwIFx1Yzc4OFx1YjJlNFx1YmE3NCBcdWJhYThcdWI0NTAgXHViMmU4IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWMyYTRcdWQzOThcdWM3NzRcdWMyYTQoXHVjNTQ0XHVjMmE0XHVkMGE0IFx1Y2Y1NFx1YjRkYyAzMilcdWI4NWMgXHViMzAwXHVjY2I0XHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+JnF1b3Q7VGF1bnRlcjomcXVvdDssIFx1YzJhNFx1ZDM5OFx1Yzc3NFx1YzJhNChcdWM1NDRcdWMyYTRcdWQwYTQgXHVjZjU0XHViNGRjIDMyKSAsIFx1Yzc4NVx1YjgyNVx1YzVkMCBcdWI5ZGVcdWIyOTQgXHViM2M0XHViYzFjLCBcdWI5YzhcdWNlNjhcdWQ0NWMgXHVkNTU4XHViMDk4XHViOTdjIFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWIzYzRcdWJjMWMgXHVjMjE4XHViOWNjXHVkMDdjIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YWMwMSBcdWIyZThcdWM1YjRcdWIyOTQgXHVkNTZkXHVjMGMxIFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWMyYTRcdWQzOThcdWM3NzRcdWMyYTQoXHVjNTQ0XHVjMmE0XHVkMGE0IFx1Y2Y1NFx1YjRkYyAzMilcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzA0XHVjNzU4IFx1YjQ1MCBcdWNkOWNcdWI4MjVcdWIyZThcdWM3NzQgXHViMDVkXHViMDk4XHViYTc0LCBcdWJlNDggXHVjOTA0IFx1ZDU1OFx1YjA5OFx1Yjk3YyBcdWNkOTRcdWFjMDBcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWIzYzRcdWJjMWNcdWM3NDAgXHViMzAwXHViYjM4XHVjNzkwXHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU3NFx1YzU3YyBcdWQ1NThcdWJhNzAsIFx1Y2Q5NFx1YWMwMFx1YzgwMVx1Yzc3OCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwXHVhYzAwIFx1Yzc4OFx1YzViNFx1YzExY1x1YjI5NCBcdWM1NDggXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWMzMGRcdWI1MzBcdWM2MzRcdWQ0NWMgXHVjNTQ4XHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWJiMzhcdWFkNmNcdWIyOTQgXHVkNTZkXHVjMGMxIFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWIyZThcdWM1YjRcdWI4NWMgXHVjZGU4XHVhZTA5XHViNDE4XHViYTcwLCBcdWMzMGRcdWI1MzBcdWM2MzRcdWQ0NWNcdWIyOTQgXHViM2M0XHViYzFjXHVjNWQwIFx1ZDNlY1x1ZDU2OFx1YjQxOFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuJm5ic3A7XHViM2M0XHViYzFjXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU2MCBcdWI1NGMsIFx1YjNjNFx1YmMxYyBcdWM1NWVcdWFjZmMgXHViNGE0XHVjNWQwIFx1YzcwNFx1YzVkMFx1YzExYyBcdWMxMjRcdWJhODVcdWQ1NWMgXHVhY2Y1XHViYzMxIFx1YmIzOFx1Yzc5MCBcdWM3NzRcdWM2NzhcdWM1ZDAgXHViMmU0XHViOTc4IFx1YWNmNVx1YmMzMSBcdWJiMzhcdWM3OTBcdWFjMDAgXHVjNzg4XHVjNWI0XHVjMTFjXHViMjk0IFx1YzU0OCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiOTE2NyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlRhdW50IEdlbmVyYXRpb24gU2ltdWxhdG9yIiwiZGVzY3JpcHRpb24iOiI8cD5JbiBhbGwgdGhlIGFubmFscyBvZiBrbmlnaHRob29kLCBubyBwZXJzb25hbGl0eSB0cmFpdCBoYXMgYmVlbiBpbiBtb3JlIGRpcmUgbmVlZCB0aGFuIHRoZSBmb3J0aXR1ZGUgdG8gd2l0aHN0YW5kIHRoZSBkaXBsb21hdGljYWxseSBkZWxldGVyaW91cyBlZmZlY3RzIG9mIGEgdmljaW91cywgcmVsZW50bGVzcyB0YXVudGluZy4gVGFza2VkIHdpdGggc3RyZW5ndGhlbmluZyB0aGUgbWVudGFsIGVuZHVyYW5jZSBvZiBDYW1lbG90JnJzcXVvO3Mga25pZ2h0cywgS2luZyBBcnRodXImIzM5O3MgY291cnQgZGVjaWRlZCB0aGF0IGluc3RydWN0aW9uYWwgdGF1bnRpbmcgbXVzdCBiZSBhcHBsaWVkLCB5ZXQgaXQgY291bGQgbm90IGJlIGRlbGl2ZXJlZCBieSB0aGUgY2hpdmFscm91cyBhZG1pbmlzdHJhdGlvbi4gVGh1cywgU2lyIExhbmNlbG90IGNvbW1hbmRlZCBhIGxvY2FsIGFuYXJjaG8tc3luZGljYWxpc3QgcGVhc2FudCB0byB3cml0ZSBhIHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgdGF1bnRzIChhLmsuYS4gbXVkc2xpbmdpbmcpIHRoZXJlYnkgcHJvZHVjaW5nIGEgc2NyaXB0IHRvIHRlc3QgdGhlIHBhdGllbmNlIG9mIGtuaWdodHMgaW4gYSB0cmFpbmluZyBlbnZpcm9ubWVudC4gVG8gcHJldmVudCB1bmJyaWRsZWQgY3JlYXRpdml0eSBpbiB0YXVudGluZyBmcm9tIHNwb2lsaW5nIHRoZSBvdGhlcndpc2Ugc3RhdGVseSBwcm9jZWVkaW5ncyBvZiBhIG5vYmxlbWFuJnJzcXVvO3MgZWR1Y2F0aW9uLCB0aGUgZm9sbG93aW5nIHJ1bGVzIGRlc2lnbmVkIGJ5IGNvbW1pdHRlZSAoVGhlIFJvdW5kIFRhYmxlKSBtdXN0IGJlIGFkaGVyZWQgdG86PFwvcD5cclxuXHJcbjxwcmU+XHJcbiZsdDt0YXVudCZndDsgOjo9ICZsdDtzZW50ZW5jZSZndDsgfCAmbHQ7dGF1bnQmZ3Q7ICZsdDtzZW50ZW5jZSZndDsgfCAmbHQ7bm91biZndDshIHwgJmx0O3NlbnRlbmNlJmd0O1xyXG4mbHQ7c2VudGVuY2UmZ3Q7IDo6PSAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDsgfCAmbHQ7cHJlc2VudC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDsgfCAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDthcnRpY2xlJmd0OyAmbHQ7bm91biZndDsgXHJcbiZsdDtub3VuLXBocmFzZSZndDsgOjo9ICZsdDthcnRpY2xlJmd0OyAmbHQ7bW9kaWZpZWQtbm91biZndDtcclxuJmx0O21vZGlmaWVkLW5vdW4mZ3Q7IDo6PSAmbHQ7bm91biZndDsgfCAmbHQ7bW9kaWZpZXImZ3Q7ICZsdDtub3VuJmd0O1xyXG4mbHQ7bW9kaWZpZXImZ3Q7IDo6PSAmbHQ7YWRqZWN0aXZlJmd0OyB8ICZsdDthZHZlcmImZ3Q7ICZsdDthZGplY3RpdmUmZ3Q7XHJcbiZsdDtwcmVzZW50LXJlbCZndDsgOjo9IHlvdXIgJmx0O3ByZXNlbnQtcGVyc29uJmd0OyAmbHQ7cHJlc2VudC12ZXJiJmd0O1xyXG4mbHQ7cGFzdC1yZWwmZ3Q7IDo6PSB5b3VyICZsdDtwYXN0LXBlcnNvbiZndDsgJmx0O3Bhc3QtdmVyYiZndDtcclxuJmx0O3ByZXNlbnQtcGVyc29uJmd0OyA6Oj0gc3RlZWQgfCBraW5nIHwgZmlyc3QtYm9yblxyXG4mbHQ7cGFzdC1wZXJzb24mZ3Q7IDo6PSBtb3RoZXIgfCBmYXRoZXIgfCBncmFuZG1vdGhlciB8IGdyYW5kZmF0aGVyIHwgZ29kZmF0aGVyXHJcbiZsdDtub3VuJmd0OyA6Oj0gaGFtc3RlciB8IGNvY29udXQgfCBkdWNrIHwgaGVycmluZyB8IG5ld3QgfCBwZXJpbCB8IGNoaWNrZW4gfCB2b2xlIHwgcGFycm90IHwgbW91c2UgfCB0d2l0IFxyXG4mbHQ7cHJlc2VudC12ZXJiJmd0OyA6Oj0gaXMgfCAmbGRxdW87bWFzcXVlcmFkZXMgYXMmcmRxdW87XHJcbiZsdDtwYXN0LXZlcmImZ3Q7IDo6PSB3YXMgfCBwZXJzb25pZmllZFxyXG4mbHQ7YXJ0aWNsZSZndDsgOjo9IGFcclxuJmx0O2FkamVjdGl2ZSZndDsgOjo9IHNpbGx5IHwgd2lja2VkIHwgc29yZGlkIHwgbmF1Z2h0eSB8IHJlcHVsc2l2ZSB8IG1hbG9kb3JvdXMgfCBpbGwtdGVtcGVyZWRcclxuJmx0O2FkdmVyYiZndDsgOjo9IGNvbnNwaWN1b3VzbHkgfCBjYXRlZ29yaWNhbGx5IHwgcG9zaXRpdmVseSB8IGNydWVsbHkgfCBpbmNvbnRyb3ZlcnRpYmx5PFwvcHJlPlxyXG5cclxuPHA+Tm90ZSB0aGF0IGFsbCBwaHJhc2VzIGluIGRvdWJsZSBxdW90ZXMgYXJlIHRvIGJlIHRyZWF0ZWQgYXMgb25lIHdvcmQgZm9yIHRhdW50IHNpbXVsYXRpb24gb3V0cHV0LjxcL3A+XHJcblxyXG48cD5UaGUgbnVtYmVyIG9mIHRhdW50cyBlbGljaXRlZCBhdCBhbnkgZ2l2ZW4gdGltZSBpcyBkZXJpdmVkIGZyb20gdGhlIG51bWJlciBvZiB3b3JkcyBzcG9rZW4gYnkgdGhlIGtuaWdodC4gRm9yIGV2ZXJ5IHRocmVlIHdvcmRzIChvciBmcmFjdGlvbiB0aGVyZW9mKSBkZWxpdmVyZWQgYnkgdGhlIGtuaWdodCwgdGhlIGdlbmVyYXRvciBwcm9kdWNlcyBvbmUgb3IgbW9yZSB0YXVudHMgaW4gYSB0aGVhdGVyLXN0eWxlIHNjcmlwdCBmb3JtYXQuIEluIHRoZSBldmVudCB0aGF0IDIgdGF1bnRzIG11c3QgYmUgcHJvZHVjZWQgb24gYSBzaW5nbGUgbGluZSwgdGhleSB3aWxsIGJlIGNvdW50ZWQgYXMgMiB0YXVudHMgdG93YXJkcyB0aGUgdG90YWwgcmVxdWlyZWQuIEJ5IGEgbWFuZGF0ZSBmcm9tIHRoZSBtYXNzZXMsIGEgd29yZCB3aWxsIGFsd2F5cyBjb250YWluIGF0IGxlYXN0IG9uZSBhbHBoYWJldGljIGNoYXJhY3RlciwgYW5kIHdpbGwgYmUgc2VwYXJhdGVkIGZyb20gb3RoZXIgd29yZHMgYnkgYXQgbGVhc3QgMSBzcGFjZS48XC9wPlxyXG5cclxuPHA+SW4gZXhjZXB0aW9uIHRvIHRoZSBhYm92ZSBydWxlcywgd2hlbmV2ZXIgdGhlIHByb2dyYW0gZmluZHMgdGhlIGhvbHkgZ3JhaWwsIHdoaWNoIGlzIHRvIHNheSwgdGhlIGxldHRlcnMgdC1oLWUtaC1vLWwteS1nLXItYS1pLWwgKGNhc2UgaW5zZW5zaXRpdmUpIGluIHRoYXQgb3JkZXIgaW4gYSBsaW5lIG9mIGlucHV0LCB0aGVuIHRoZSBmaXJzdCB0YXVudCBnZW5lcmF0ZWQgd2lsbCBiZSBkaXNwbGF5ZWQgYnkgdGhlIHByb2dyYW0gYXMgJmxkcXVvOyhBIGNoaWxkaXNoIGhhbmQgZ2VzdHVyZSkmcmRxdW87LjxcL3A+XHJcblxyXG48cD5UbyBlbnN1cmUgYWxsIHJveWFsIHF1YWxpdHkgYXNzdXJhbmNlIGNyaXRlcmlhIGFyZSBtZXQsIHRoZSBwcm9ncmFtIG11c3QgYmUgZGVtb25zdHJhdGVkIGJ5IGEgc2ltdWxhdGlvbiBzaG93aW5nIHRoZSB0YXVudHMgcHJvZHVjZWQgZnJvbSBhIHNlcmllcyBvZiBpbnB1dHMuIEVhY2ggdGF1bnQgaXMgZ2VuZXJhdGVkIGJ5IGFwcGx5aW5nIHRoZSB0YXVudCBnZW5lcmF0aW9uIHJ1bGVzIHVudGlsIGFsbCBvZiB0aGUgJmx0Oy4uLiZndDsgaGF2ZSBiZWVuIHJlcGxhY2VkIHdpdGggYXBwcm9wcmlhdGUgd29yZHMuIEluIG1vc3QgY2FzZXMsIHlvdSB3aWxsIGZhY2UgYSBjaG9pY2Ugb2YgYWx0ZXJuYXRlIHJ1bGVzIGZvciBleHBhbmRpbmcgYSBwaHJhc2UgbmFtZS4gSW4gdGhlc2UgY2FzZXMsIHlvdSBzaG91bGQgbWFrZSBhIGNob2ljZSBhcyBmb2xsb3dzOiBTdXBwb3NlIHRoYXQgdGhpcyBpcyB0aGUgazxzdXA+dGg8XC9zdXA+IHN1Y2ggY2hvaWNlIHRoYXQgeW91IGhhdmUgZmFjZWQgZm9yIHRoYXQgcnVsZSBzaW5jZSB0aGUgc3RhcnQgb2YgcHJvZ3JhbSBleGVjdXRpb24sIGFuZCB0aGF0IHlvdSBtdXN0IGNob29zZSBvbmUgb2YgbiBydWxlcyBmb3IgZXhwYW5kaW5nIGEgZ2l2ZW4ga2luZCBvZiBwaHJhc2UuIExldCB0aGUgcnVsZXMgZm9yIHRoYXQgcGhyYXNlIGJlIG51bWJlcmVkIGZyb20gMS4uLm4gaW4gdGhlIG9yZGVyIG9mIGFwcGVhcmFuY2UgYWJvdmUsIGFuZCB0aGVuIGNob29zZSBydWxlIG51bWJlciAoKGstMSkgbW9kIG4pICsgMS48XC9wPlxyXG5cclxuPHA+V2VsbCwgZ2V0IG9uIHdpdGggaXQhPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgaW5wdXQgd2lsbCBjb25zaXN0IG9mIGFuIHVuc3BlY2lmaWVkIG51bWJlciBvZiBsaW5lcy4gRWFjaCBsaW5lIHdpbGwgY29udGFpbiBhIHN0YXRlbWVudCB1dHRlcmVkIGJ5IGEga25pZ2h0IGNvbnNpc3Rpbmcgb2YgbGV0dGVycywgZGlnaXRzLCB0aGUgY2hhcmFjdGVycyAmcXVvdDssLi0hPyZxdW90OyBhbmQgd2hpdGVzcGFjZS4gRWFjaCBsaW5lIG9mIGlucHV0IHdpbGwgYmUgbW9yZSB0aGFuIDEgY2hhcmFjdGVyIGFuZCBsZXNzIHRoYW4gNzIgY2hhcmFjdGVycyBpbiBsZW5ndGguIEFsbCB3b3JkcyB3aWxsIGJlIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLiBFYWNoIHN0YXRlbWVudCB3aWxsIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHdvcmQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGV2ZXJ5IGxpbmUgb2YgaW5wdXQsIHByaW50IGEgYmxvY2sgb2Ygb3V0cHV0IGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZzo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5BIHNpbmdsZSBsaW5lIGNvbnRhaW5pbmcgJnF1b3Q7S25pZ2h0OiZxdW90OywgYSBzcGFjZSwgYW5kIHRoZSBpbnB1dC4gQW55IGFwcGVhcmFuY2Ugb2Ygd2hpdGVzcGFjZSBpbnNpZGUgdGhlIGlucHV0IHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBzaW5nbGUgc3BhY2UuPFwvbGk+XHJcblx0PGxpPkFsbCB0YXVudHMgKGFzIGV4cGxhaW5lZCBpbiB0aGUgYWJvdmUgcnVsZXMpIHByZWZhY2VkIGJ5ICZxdW90O1RhdW50ZXI6JnF1b3Q7IGFuZCBhIHNwYWNlLCB0aGUgdGF1bnQsIGFuZCBhIHBlcmlvZC4gRWFjaCB3b3JkIHNob3VsZCBiZSBzZXBhcmF0ZWQgZnJvbSBuZWlnaGJvcmluZyB3b3JkcyBieSBhIHNpbmdsZSBzcGFjZS48XC9saT5cclxuXHQ8bGk+QSBibGFuayBsaW5lJm5ic3A7PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+RWFjaCB0YXVudCBzaG91bGQgYmVnaW4gd2l0aCBhIGNhcGl0YWwgbGV0dGVyLCBhbmQgbm8gZXh0cmEgY2hhcmFjdGVycyBzaG91bGQgYmUgYWRkZWQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d

출처

ACM-ICPC > Regionals > North America > Pacific Northwest Regional > 2006 Pacific Northwest Region Programming Contest I번