讀取資料

資料描述

  • 透過中山管院文字分析平台,取得PTT武漢肺炎討論專版2020-01-26 ~ 2020-04-12的資料,以關鍵字為“口罩”,共取得721篇文章,66792筆回覆。

載入PTT武漢肺炎版資料

資料預覽

發文者數量

[1] 361

回覆者數量

[1] 8352

整理所有參與人

建立社群網路圖

將原文與回覆Join起來

篩選欄位

建立網路關係

IGRAPH 3db0755 DN-- 8452 66792 -- 
+ attr: name (v/c), artUrl (e/c)
+ edges from 3db0755 (vertex names):
 [1] Zarooor    ->Simon951434 Zarooor    ->Simon951434 cwh0105    ->Simon951434 ECZEMA     ->Simon951434 Zarooor    ->Simon951434 Zarooor    ->Simon951434
 [7] ttcml      ->Simon951434 coga4712   ->Simon951434 coga4712   ->Simon951434 LEEWY      ->Simon951434 harry901   ->nashsaka    harry901   ->nashsaka   
[13] cloudyst   ->nashsaka    nashsaka   ->nashsaka    crownblue  ->nashsaka    ttcml      ->nashsaka    Zarooor    ->nashsaka    love462077 ->nashsaka   
[19] nashsaka   ->nashsaka    carmot     ->nashsaka    carmot     ->nashsaka    jimmylily  ->nashsaka    pigdog0305 ->nashsaka    sungel     ->nashsaka   
[25] mcyangtw   ->nashsaka    heavenlyken->nashsaka    ANCEE      ->nashsaka    ardella    ->nashsaka    ardella    ->nashsaka    ardella    ->nashsaka   
[31] gosy1102   ->nashsaka    Lenore     ->nashsaka    Lenore     ->nashsaka    Lenore     ->nashsaka    Lenore     ->nashsaka    Lenore     ->nashsaka   
[37] Lenore     ->nashsaka    oceanfishwu->zxcdewsaq   oceanfishwu->zxcdewsaq   gemini6479 ->zxcdewsaq   gemini6479 ->zxcdewsaq   ilanese    ->zxcdewsaq  
[43] kashi77331 ->ilanese     kashi77331 ->ilanese     BITMajo    ->ilanese     BITMajo    ->ilanese     noyesray   ->ilanese     justin81828->ilanese    
+ ... omitted several edges

網路圖

可以發現密密麻麻的東西,完全看不出個所以然。我們試着放少一點的東西來試試。

資料篩選

挑出2020-03-01當天的文章和它的回覆

過濾圖中的點(v)

過濾使用者後

可以稍微看出圖中的點(人)之間有一定的關聯,不過目前只有單純圖形我們無法分析其中的內容。
因此以下我們將資料集中的資訊加到我們的圖片中。

主題分類

詳細內容請參考第十週的課程

前處理

Read 30 items
Read 1225 items
[1] TRUE
<<DocumentTermMatrix (documents: 721, terms: 2992)>>
Non-/sparse entries: 44471/2112761
Sparsity           : 98%
Maximal term length: 10
Weighting          : term frequency (tf)

LDA 主題分析

可以歸納出
topic 1 = “口罩預購”
topic 2 還需要再細分
topic 3 = “各國疫情”
topic 4 = “口罩產能”
以下我們挑出第一個主題與第三個主題來做比較。

LDA主題進行視覺化

使用者是否受到歡迎

因nCoV2019看板中幾乎沒有噓文,因此所有的連線幾乎都為綠色。

結語:
使用network的視覺化可以讓我們對於網路中的使用者及他們在這個網路中可能扮演的角色有更多地瞭解。

LS0tCnRpdGxlOiAi5YiG5p6QbkNvVjIwMTnos4fmlpnpm4bkuK3oqI7oq5bogIXkuYvntrLot6/pl5zkv4IiCmF1dGhvcjogIkt1bi1Ic2lhbmcgQ2hlbiIKZGF0ZTogIjIwMjAvMDUvMTMiCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICBoaWdobGlnaHQ6IHB5Z21lbnRzCiAgICB0aGVtZTogZmxhdGx5CiAgICBjc3M6IHN0eWxlLmNzcwotLS0KCiMg57O757Wx6Kit572uCiMjIyDlronoo53pnIDopoHnmoRwYWNrYWdlcwpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpwYWNrYWdlcyA9IGMoInJlYWRyIiwgImRwbHlyIiwgImppZWJhUiIsICJ0aWR5ciIsICJ0aWR5dGV4dCIsICJpZ3JhcGgiLCAidG9waWNtb2RlbHMiLCAiZ2dwbG90MiIsICJzdHJpbmdyIikKZXhpc3RpbmcgPSBhcy5jaGFyYWN0ZXIoaW5zdGFsbGVkLnBhY2thZ2VzKClbLDFdKQpmb3IocGtnIGluIHBhY2thZ2VzWyEocGFja2FnZXMgJWluJSBleGlzdGluZyldKSBpbnN0YWxsLnBhY2thZ2VzKHBrZykKYGBgCgojIyMg6LyJ5YWlcGFja2FnZXMKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbGlicmFyeShyZWFkcikKbGlicmFyeShkcGx5cikKbGlicmFyeShqaWViYVIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkodGlkeXRleHQpCmxpYnJhcnkoaWdyYXBoKQpsaWJyYXJ5KHRvcGljbW9kZWxzKQpsaWJyYXJ5KHN0cmluZ3IpCmxpYnJhcnkoZ2dwbG90MikKYGBgCgojIOiugOWPluizh+aWmQoKIyMjIOizh+aWmeaPj+i/sAorIOmAj+mBjuS4reWxseeuoemZouaWh+Wtl+WIhuaekOW5s+WPsO+8jOWPluW+l1BUVOatpua8ouiCuueCjuiojuirluWwiOeJiDIwMjAtMDEtMjYgfiAyMDIwLTA0LTEy55qE6LOH5paZ77yM5Lul6Zec6Y215a2X54K6IuWPo+e9qSLvvIzlhbHlj5blvpc3MjHnr4fmlofnq6DvvIw2Njc5MuethuWbnuimhuOAggoKIyMjIOi8ieWFpVBUVOatpua8ouiCuueCjueJiOizh+aWmQpgYGB7ciBtZXNzYWdlPUZBTFNFfQojIOaWh+eroOizh+aWmQpwb3N0cyA8LSByZWFkX2NzdigiLi9uQ29WXzIwMTlfbWFza19hcnRpY2xlTWV0YURhdGEuY3N2IikKcG9zdHMKYGBgCgoKYGBge3IgbWVzc2FnZT1GQUxTRX0KIyDlm57opobos4fmlpkKcmV2aWV3cyA8LSByZWFkX2NzdigiLi9uQ29WXzIwMTlfbWFza19hcnRpY2xlUmV2aWV3cy5jc3YiKQpyZXZpZXdzCmBgYAoKYGBge3J9CiMg6YG45Y+W6ZyA6KaB55qE5qyE5L2NCnJldmlld3MgPC0gcmV2aWV3cyAlPiUKICAgICAgc2VsZWN0KGFydFVybCwgY210UG9zdGVyLCBjbXRTdGF0dXMsIGNtdENvbnRlbnQpCnJldmlld3MKYGBgCgojIOizh+aWmemgkOimvQoKIyMjCmBgYHtyfQpwb3N0cyAlPiUgCiAgZ3JvdXBfYnkoYXJ0RGF0ZSkgJT4lCiAgc3VtbWFyaXNlKGNvdW50ID0gbigpKSU+JQogIGdncGxvdChhZXMoYXJ0RGF0ZSxjb3VudCkpKwogICAgZ2VvbV9saW5lKGNvbG9yPSJibHVlIiwgc2l6ZT0xKSsKICAgIHRoZW1lX2NsYXNzaWMoKQpgYGAKCiMjIyDnmbzmlofogIXmlbjph48KYGBge3J9Cmxlbmd0aCh1bmlxdWUocG9zdHMkYXJ0UG9zdGVyKSkKYGBgCgojIyMg5Zue6KaG6ICF5pW46YePCmBgYHtyfQpsZW5ndGgodW5pcXVlKHJldmlld3MkY210UG9zdGVyKSkKYGBgCgojIyMg57i95YWx5pyJ5Y+D6IiH55qE5Lq65pW4CmBgYHtyfQphbGxQb3N0ZXIgPC0gYyhwb3N0cyRhcnRQb3N0ZXIsIHJldmlld3MkY210UG9zdGVyKQpsZW5ndGgodW5pcXVlKGFsbFBvc3RlcikpCmBgYAoKIyMjIOaVtOeQhuaJgOacieWPg+iIh+S6ugpgYGB7cn0KIyDmlbTnkIbmiYDmnInlh7rnj77pgY7lvpfkvb/nlKjogIUKIyDlpoLmnpzlroPmm77nmbzpgY7mlofnmoToqbHlsLHmqJnoqLvku5bniLJwb3N0ZXIKIyDlpoLmnpzmspLmnInnmbzpgY7mlofnmoToqbHliYfmqJnoqLvku5bniLJyZXBseWVyCnVzZXJMaXN0IDwtIGRhdGEuZnJhbWUodXNlcj11bmlxdWUoYWxsUG9zdGVyKSkgJT4lCiAgICAgICAgICAgICAgbXV0YXRlKHR5cGU9aWZlbHNlKHVzZXIlaW4lcG9zdHMkYXJ0UG9zdGVyLCAicG9zdGVyIiwgInJlcGx5ZXIiKSkKdXNlckxpc3QKYGBgCgoKIyDlu7rnq4vnpL7nvqTntrLot6/lnJYKIyMjIOWwh+WOn+aWh+iIh+WbnuimhkpvaW7otbfkvoYKYGBge3J9CiMg5oqK5Y6f5paH6IiH5Zue6KaG5L6d5pOaYXJ0VXJsIGlubmVySm9pbui1t+S+hgpwb3N0c19SZXZpZXdzIDwtIG1lcmdlKHggPSBwb3N0cywgeSA9IHJldmlld3MsIGJ5ID0gImFydFVybCIpCnBvc3RzX1Jldmlld3MKYGBgCgojIyMg56+p6YG45qyE5L2NCmBgYHtyfQojIOWPluWHuiBjbXRQb3N0ZXIo5Zue6KaG6ICFKeOAgWFydFBvc3RlcijnmbzmlofogIUp44CBYXJ0VXJsKOaWh+eroOmAo+e1kCkg5LiJ5YCL5qyE5L2NCmxpbmsgPC0gcG9zdHNfUmV2aWV3cyAlPiUKICAgICAgc2VsZWN0KGNtdFBvc3RlciwgYXJ0UG9zdGVyLCBhcnRVcmwpCmxpbmsKYGBgCgojIyMg5bu656uL57ay6Lev6Zec5L+CCmBgYHtyfQpyZXZpZXdOZXR3b3JrIDwtIGdyYXBoX2Zyb21fZGF0YV9mcmFtZShkPWxpbmssIGRpcmVjdGVkPVQpCnJldmlld05ldHdvcmsKYGBgCgojIyMg57ay6Lev5ZyWCmBgYHtyfQojIOeVq+WHuue2sui3r+WclgpwbG90KHJldmlld05ldHdvcmspCmBgYAo+IOWPr+S7peeZvOePvuWvhuWvhum6u+m6u+eahOadseilv++8jOWujOWFqOeci+S4jeWHuuWAi+aJgOS7peeEtuOAguaIkeWAkeippuedgOaUvuWwkeS4gOm7nueahOadseilv+S+huippuippuOAggoKIyMjIOiqv+aVtOWPg+aVuApgYGB7cn0KIyDmiorpu57pu57nmoTlpKflsI/lkoznt5rnmoTnspfntLDoqr/lsI/vvIzkuKbkuI3poa/npLrkvb/nlKjogIXos6zomZ/jgIIKcGxvdChyZXZpZXdOZXR3b3JrLCB2ZXJ0ZXguc2l6ZT0yLCBlZGdlLmFycm93LnNpemU9LjIsdmVydGV4LmxhYmVsPU5BKQpgYGAKPiDpgoTmmK/mspLku4Dpurzlpb3op6Pph4vnmoTvvIzmiJHlgJHoqabnnYDnuK7lsI/mlofnq6DnmoTmlbjph4/nnIvnnIvjgIIKCiMg6LOH5paZ56+p6YG4CiMjIyDmjJHlh7oyMDIwLTAzLTAx55W25aSp55qE5paH56ug5ZKM5a6D55qE5Zue6KaGCmBgYHtyfQpsaW5rIDwtIHBvc3RzX1Jldmlld3MgJT4lCiAgICAgIGZpbHRlcihhcnREYXRlID09IGFzLkRhdGUoJzIwMjAtMDMtMDEnKSkgJT4lCiAgICAgIHNlbGVjdChjbXRQb3N0ZXIsIGFydFBvc3RlciwgYXJ0VXJsKSAlPiUgCiAgICAgIHVuaXF1ZSgpCmxpbmsKYGBgCgojIyMg6YGO5r++5ZyW5Lit55qE6bueKHYpCmBgYHtyfQojIOmAmemCiuimgeevqemBuGxpbmvkuK3mnInlh7rnj77nmoTkvb/nlKjogIUKIyDlm6DniLLlpoLmnpx1c2VyTGlzdO+8iGlncmFwaOS4rWdyYXBoX2Zyb21fZGF0YV9mcmFtZeeahHblj4PmlbjlkIPnmoTpgqPlgIvmnbHopb/vvInkuK3lh7rnj77kuobmspLmnInlnKhsaW5r5Lit5Ye654++55qE5L2/55So6ICFCiMg5Lmf5pyD6KKraWdyYXBo55Wr5LiK5Y6777yM5ZyW54mH5bCx5pyD6K6K5b6X5rKS5pyJ5oSP576pCiMg5oOz6KaB55yL5pyD6K6K5oCO6bq85qij55qE5Lq65Y+v5Lul6LeR5LiA5LiL5LiL6Z2i55qEY29kZQpmaWx0ZXJlZF91c2VyIDwtIHVzZXJMaXN0ICU+JQogICAgICAgICAgZmlsdGVyKHVzZXIlaW4lbGluayRjbXRQb3N0ZXIgfCB1c2VyJWluJWxpbmskYXJ0UG9zdGVyKSAlPiUKICAgICAgICAgIGFycmFuZ2UoZGVzYyh0eXBlKSkKZmlsdGVyZWRfdXNlcgpgYGAKCiMjIyDmnKrpgY7mv77kvb/nlKjogIUKYGBge3J9CiMjIOitpuWRiu+8geacieWvhumbhuaBkOaHvOeXh+eahOS6uuiri+Wwj+W/g+S9v+eUqAojcmV2aWV3TmV0d29yayA8LSBncmFwaF9mcm9tX2RhdGFfZnJhbWUoZD1saW5rLCB2PXVzZXJMaXN0LCBkaXJlY3RlZD1UKQojcGxvdChyZXZpZXdOZXR3b3JrLCB2ZXJ0ZXguc2l6ZT0zLCBlZGdlLmFycm93LnNpemU9MC4zLHZlcnRleC5sYWJlbD1OQSkKYGBgCgojIyMg6YGO5r++5L2/55So6ICF5b6MCmBgYHtyfQpzZXQuc2VlZCg0ODcpCiMg5bu656uL57ay6Lev6Zec5L+C5ZyW77yM5Zug54iy5Ymb5Ymb55yL55qE5pmC5YCZ5oSf6Ka6566t6aCt5pyJ6bue56SZ55y877yMCiMg5omA5Lul6YCZ6KOP5oiR5YCR5YWI5oqK6Zec5L+C55qE5pa55ZCR5oCn5ou/5o6J77yM5rib5bCR5ZyW54mH5Lit55qE5LiN5b+F6KaB55qE6LOH6KiKCnJldmlld05ldHdvcmsgPC0gZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGQ9bGluaywgdj1maWx0ZXJlZF91c2VyLCBkaXJlY3RlZD1GKQpwbG90KHJldmlld05ldHdvcmssIHZlcnRleC5zaXplPTMsIGVkZ2UuYXJyb3cuc2l6ZT0wLjMsdmVydGV4LmxhYmVsPU5BKQpgYGAKPiDlj6/ku6XnqI3lvq7nnIvlh7rlnJbkuK3nmoTpu54o5Lq6KeS5i+mWk+acieS4gOWumueahOmXnOiBr++8jOS4jemBjuebruWJjeWPquacieWWrue0lOWcluW9ouaIkeWAkeeEoeazleWIhuaekOWFtuS4reeahOWFp+WuueOAgjxicj4K5Zug5q2k5Lul5LiL5oiR5YCR5bCH6LOH5paZ6ZuG5Lit55qE6LOH6KiK5Yqg5Yiw5oiR5YCR55qE5ZyW54mH5Lit44CCCgojIyMg5Yqg5by35ZyW5YOP55qE6aGv56S66LOH6KiKKDEpCmBgYHtyfQpzZXQuc2VlZCg0ODcpCiMg55So5L2/55So6ICF55qE6Lqr5Lu95L6G5Y2A5YiG6bue55qE6aGP6Imy77yM5aaC5p6c5pyJ55m85paH55qE6Kmx5piv6YeR6Imy55qE77yM5Y+q5pyJ5Zue6KaG5paH56ug55qE5YmH55So5re66JeN6Imy6KGo56S6ClYocmV2aWV3TmV0d29yaykkY29sb3IgPC0gaWZlbHNlKFYocmV2aWV3TmV0d29yaykkdHlwZT09InBvc3RlciIsICJnb2xkIiwgImxpZ2h0Ymx1ZSIpCnBsb3QocmV2aWV3TmV0d29yaywgdmVydGV4LnNpemU9MywgZWRnZS5hcnJvdy5zaXplPTAuMyx2ZXJ0ZXgubGFiZWw9TkEpCmBgYAoKIyMjIOWKoOW8t+WcluWDj+eahOmhr+ekuuizh+ioiigyKQpgYGB7cn0Kc2V0LnNlZWQoNDg3KQojIOevqemBuOimgemhr+ekuuWHuueahOS9v+eUqOiAhe+8jOS7peWFjeWcluW9ouiiq+WvhuWvhum6u+m6u+eahOaWh+Wtl+imhuiTiwojIOmhr+ekuuaciei2hemBjjXlgIvpl5zoga/nmoTkvb/nlKjogIXos6zomZ8KbGFiZWxzIDwtIGRlZ3JlZShyZXZpZXdOZXR3b3JrKQpWKHJldmlld05ldHdvcmspJGxhYmVsIDwtIG5hbWVzKGxhYmVscykKClYocmV2aWV3TmV0d29yaykkY29sb3IgPC0gaWZlbHNlKFYocmV2aWV3TmV0d29yaykkdHlwZT09InBvc3RlciIsICJnb2xkIiwgImxpZ2h0Ymx1ZSIpCnBsb3QocmV2aWV3TmV0d29yaywgdmVydGV4LnNpemU9MywgZWRnZS5hcnJvdy5zaXplPTAuMiwKICAgICB2ZXJ0ZXgubGFiZWw9aWZlbHNlKGRlZ3JlZShyZXZpZXdOZXR3b3JrKSA+IDUsIFYocmV2aWV3TmV0d29yaykkbGFiZWwsIE5BKSwgIHZlcnRleC5sYWJlbC5mb250PTIpCmBgYAo+IOaIkeWAkeWPr+S7peeci+WIsOWfuuacrOeahOS9v+eUqOiAhemXnOS/gu+8jOS9huaYr+aIkeWAkeW4jOacm+iDveWkoOWwh+abtOmAsumajueahOizh+ioiuimluimuuWMluOAgjxicj4K5L6L5aaC77ya5L2/55So6ICF57aT5bi45Y+D6IiH55qE5paH56ug56iu6aGe77yM5oiW5piv5L2/55So6ICF5Zyo6Kmy56S+576k57ay6Lev5Lit5piv5ZCm5Y+X5Yiw5q2h6L+O44CCCgojIOS4u+mhjOWIhumhngo+IOips+e0sOWFp+Wuueiri+WPg+iAg+esrOWNgemAseeahOiqsueoiwoKIyMjIOWJjeiZleeQhgpgYGB7cn0KIyDmlofnq6Dmlrflj6UKbWFza19tZXRhIDwtIHBvc3RzICU+JQogICAgICAgICAgICAgIG11dGF0ZShzZW50ZW5jZT1nc3ViKCJbXG5dezIsfSIsICLjgIIiLCBzZW50ZW5jZSkpCiMg5Lul5YWo5b2i5oiW5Y2K5b2iIOmpmuatjuiZn+OAgeWVj+iZn+OAgeWIhuiZnyDku6Xlj4og5YWo5b2i5Y+l6JmfIOeIsuS+neaTmumAsuihjOaWt+WPpQptYXNrX3NlbnRlbmNlcyA8LSBzdHJzcGxpdChtYXNrX21ldGEkc2VudGVuY2UsIlvjgILvvIHvvJvvvJ8hPztdIikKIyDlsIfmr4/lj6Xlj6XlrZDvvIzoiIfku5bmiYDlsaznmoTmlofnq6DpgKPntZDphY3lsI3otbfkvobvvIzmlbTnkIbmiJDkuIDlgItkYXRhZnJhbWUKbWFza19zZW50ZW5jZXMgPC0gZGF0YS5mcmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgYXJ0VXJsID0gcmVwKG1hc2tfbWV0YSRhcnRVcmwsIHNhcHBseShtYXNrX3NlbnRlbmNlcywgbGVuZ3RoKSksIAogICAgICAgICAgICAgICAgICAgICAgICBzZW50ZW5jZSA9IHVubGlzdChtYXNrX3NlbnRlbmNlcykKICAgICAgICAgICAgICAgICAgICAgICkgJT4lCiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoIXN0cl9kZXRlY3Qoc2VudGVuY2UsIHJlZ2V4KCJeKFx0fFxufCApKiQiKSkpCm1hc2tfc2VudGVuY2VzJHNlbnRlbmNlIDwtIGFzLmNoYXJhY3RlcihtYXNrX3NlbnRlbmNlcyRzZW50ZW5jZSkKbWFza19zZW50ZW5jZXMKYGBgCgpgYGB7ciBtZXNzYWdlPUZBTFNFfQojIyDmlofnq6DmlrfoqZ4KIyBsb2FkIG1hc2tfbGV4aWNvbgptYXNrX2xleGljb24gPC0gc2NhbihmaWxlID0gIi4vZGljdC9tYXNrX2xleGljb24udHh0Iiwgd2hhdD1jaGFyYWN0ZXIoKSxzZXA9J1xuJywgCiAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRmLTgnLGZpbGVFbmNvZGluZz0ndXRmLTgnKQojIGxvYWQgc3RvcCB3b3JkcwpzdG9wX3dvcmRzIDwtIHNjYW4oZmlsZSA9ICIuL2RpY3Qvc3RvcF93b3Jkcy50eHQiLCB3aGF0PWNoYXJhY3RlcigpLHNlcD0nXG4nLCAKICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPSd1dGYtOCcsZmlsZUVuY29kaW5nPSd1dGYtOCcpCiMg5L2/55So6buY6KqN5Y+D5pW45Yid5aeL5YyW5LiA5YCL5pa36Kme5byV5pOOCmppZWJhX3Rva2VuaXplciA9IHdvcmtlcigpCiMg5L2/55So5Y+j572p5a2X5YW46YeN5paw5pa36KmeCm5ld191c2VyX3dvcmQoamllYmFfdG9rZW5pemVyLCBjKG1hc2tfbGV4aWNvbikpCiMgdG9rZW5pemUgZnVuY3Rpb24KY2hpX3Rva2VuaXplciA8LSBmdW5jdGlvbih0KSB7CiAgbGFwcGx5KHQsIGZ1bmN0aW9uKHgpIHsKICAgIGlmKG5jaGFyKHgpPjEpewogICAgICB0b2tlbnMgPC0gc2VnbWVudCh4LCBqaWViYV90b2tlbml6ZXIpCiAgICAgIHRva2VucyA8LSB0b2tlbnNbIXRva2VucyAlaW4lIHN0b3Bfd29yZHNdCiAgICAgICMg5Y675o6J5a2X5Liy6ZW35bqm54iyMeeahOipnuW9mQogICAgICB0b2tlbnMgPC0gdG9rZW5zW25jaGFyKHRva2Vucyk+MV0KICAgICAgcmV0dXJuKHRva2VucykKICAgIH0KICB9KQp9CnRva2VucyA8LSBtYXNrX3NlbnRlbmNlcyAlPiUKICB1bm5lc3RfdG9rZW5zKHdvcmQsIHNlbnRlbmNlLCB0b2tlbj1jaGlfdG9rZW5pemVyKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3Qod29yZCwgcmVnZXgoIlswLTlhLXpBLVpdIikpKSAlPiUKICBjb3VudChhcnRVcmwsIHdvcmQpICU+JQogIHJlbmFtZShjb3VudD1uKQp0b2tlbnMKYGBgCgpgYGB7cn0KIyMg5riF55CG5pa36Kme57WQ5p6cCiMg5oyR5Ye657i95Ye654++5qyh5pW45aSn5pa8M+eahOWtlwpyZXNlcnZlZF93b3JkIDwtIHRva2VucyAlPiUgCiAgZ3JvdXBfYnkod29yZCkgJT4lIAogIGNvdW50KCkgJT4lIAogIGZpbHRlcihuID4gMykgJT4lIAogIHVubGlzdCgpCgptYXNrX3JlbW92ZWQgPC0gdG9rZW5zICU+JSAKICBmaWx0ZXIod29yZCAlaW4lIHJlc2VydmVkX3dvcmQpCgptYXNrX2R0bSA8LSBtYXNrX3JlbW92ZWQgJT4lIGNhc3RfZHRtKGFydFVybCwgd29yZCwgY291bnQpCm1hc2tfZHRtCmBgYAoKIyMjIExEQSDkuLvpoYzliIbmnpAKYGBge3J9CiMgTERB5YiG5oiQNOWAi+S4u+mhjAptYXNrX2xkYSA8LSBMREEobWFza19kdG0sIGsgPSA0LCBjb250cm9sID0gbGlzdChzZWVkID0gMTIzNCkpCiMg55yL5ZCE576k55qE5bi455So6Kme5b2ZCnRpZHkobWFza19sZGEsIG1hdHJpeCA9ICJiZXRhIikgJT4lCiAgZmlsdGVyKCEgdGVybSAlaW4lIGMoIuWPo+e9qSIpKSAlPiUgCiAgZ3JvdXBfYnkodG9waWMpICU+JQogIHRvcF9uKDEwLCBiZXRhKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgbXV0YXRlKHRvcGljID0gYXMuZmFjdG9yKHRvcGljKSwKICAgICAgICAgdGVybSA9IHJlb3JkZXJfd2l0aGluKHRlcm0sIGJldGEsIHRvcGljKSkgJT4lCiAgZ2dwbG90KGFlcyh0ZXJtLCBiZXRhLCBmaWxsID0gdG9waWMpKSArCiAgZ2VvbV9jb2woc2hvdy5sZWdlbmQgPSBGQUxTRSkgKwogIGZhY2V0X3dyYXAofiB0b3BpYywgc2NhbGVzID0gImZyZWUiKSArCiAgY29vcmRfZmxpcCgpICsKICBzY2FsZV94X3Jlb3JkZXJlZCgpCmBgYAo+IOWPr+S7peatuOe0jeWHujxicj4KdG9waWMgMSA9ICLlj6PnvanpoJDos7wiPGJyPgp0b3BpYyAyIOmChOmcgOimgeWGjee0sOWIhjxicj4KdG9waWMgMyA9ICLlkITlnIvnlqvmg4UiPGJyPgp0b3BpYyA0ID0gIuWPo+e9qeeUouiDvSI8YnI+CuS7peS4i+aIkeWAkeaMkeWHuuesrOS4gOWAi+S4u+mhjOiIh+esrOS4ieWAi+S4u+mhjOS+huWBmuavlOi8g+OAggoKYGBge3J9CiMg5L2/55SoTERB5YiG6aGe5q+P56+H5paH56ug55qE5Li76aGMCm1hc2tfdG9waWNzIDwtIHRpZHkobWFza19sZGEsIG1hdHJpeD0iZ2FtbWEiKSAlPiUgIyDlnKh0aWR5IGZ1bmN0aW9u5Lit5L2/55So5Y+D5pW4ImdhbW1hIuS+huWPluW+lyB0aGV0YeefqemZo+OAggogICAgICAgICAgICAgICAgICBncm91cF9ieShkb2N1bWVudCkgJT4lCiAgICAgICAgICAgICAgICAgIHRvcF9uKDEsIHd0PWdhbW1hKQptYXNrX3RvcGljcwpgYGAKCgojIyMgTERB5Li76aGM6YCy6KGM6KaW6Ka65YyWCmBgYHtyfQojIOaKiuaWh+eroOizh+ioiuWSjOS4u+mhjGpvaW7otbfkvoYKcG9zdHNfUmV2aWV3cyA8LSBtZXJnZSh4ID0gcG9zdHNfUmV2aWV3cywgeSA9IG1hc2tfdG9waWNzLCBieS54ID0gImFydFVybCIsIGJ5Lnk9ImRvY3VtZW50IikKcG9zdHNfUmV2aWV3cwpgYGAKCmBgYHtyfQojIOaMkemBuOWHujIwMjAvMDMvMDHlvoznmoTmlofnq6DvvIwKIyDnr6npgbjmnInlnKgxNeevh+S7peS4iuaWh+eroOWbnuimhuiAhe+8jAojIOaWh+eroOS4u+mhjOatuOmhnueCujEo5Y+j572p6aCQ6LO8KeiIhzMo5ZCE5ZyL55ar5oOFKeiAhe+8jAojIOashOS9jeWPquWPlu+8mmNtdFBvc3RlcijoqZXoq5bogIUpLCBhcnRQb3N0ZXIo55m85paH6ICFKSwgYXJ0VXJsKOaWh+eroOmAo+e1kCksIHRvcGljKOS4u+mhjCkKbGluayA8LSBwb3N0c19SZXZpZXdzICU+JQogICAgICBmaWx0ZXIoYXJ0RGF0ZSA+IGFzLkRhdGUoJzIwMjAtMDMtMDEnKSkgJT4lCiAgICAgIGdyb3VwX2J5KGNtdFBvc3RlciwgYXJ0VXJsKSAlPiUgCiAgICAgIGZpbHRlcihuKCk+MTUpICU+JSAKICAgICAgdW5ncm91cCgpICU+JSAKICAgICAgZmlsdGVyKHRvcGljID09IDEgfCB0b3BpYyA9PSAzKSAlPiUgCiAgICAgIHNlbGVjdChjbXRQb3N0ZXIsIGFydFBvc3RlciwgYXJ0VXJsLCB0b3BpYykgJT4lIAogICAgICB1bmlxdWUoKQpsaW5rCmBgYAoKYGBge3J9CiMg56+p6YG4bGlua+S4reacieWHuuePvueahOS9v+eUqOiAhQpmaWx0ZXJlZF91c2VyIDwtIHVzZXJMaXN0ICU+JQogICAgICAgICAgZmlsdGVyKHVzZXIlaW4lbGluayRjbXRQb3N0ZXIgfCB1c2VyJWluJWxpbmskYXJ0UG9zdGVyKSAlPiUKICAgICAgICAgIGFycmFuZ2UoZGVzYyh0eXBlKSkKZmlsdGVyZWRfdXNlcgpgYGAKCiMjIyDkvb/nlKjogIXntpPluLjlj4PoiIfnmoTmlofnq6DnqK7poZ4KYGBge3J9CiMg5bu656uL57ay6Lev6Zec5L+CCnJldmlld05ldHdvcmsgPC0gZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGQ9bGluaywgdj1maWx0ZXJlZF91c2VyLCBkaXJlY3RlZD1GKQoKIyDkvp3mk5rkvb/nlKjogIXouqvku73lsI3pu57pgLLooYzkuIroibIKbGFiZWxzIDwtIGRlZ3JlZShyZXZpZXdOZXR3b3JrKQpWKHJldmlld05ldHdvcmspJGxhYmVsIDwtIG5hbWVzKGxhYmVscykKVihyZXZpZXdOZXR3b3JrKSRjb2xvciA8LSBpZmVsc2UoVihyZXZpZXdOZXR3b3JrKSR0eXBlPT0icG9zdGVyIiwgImdvbGQiLCAibGlnaHRibHVlIikKCiMg5L6d5pOa5Zue6KaG55m855Sf55qE5paH56ug5omA5bCN5oeJ55qE5Li76aGM77yM5bCN5LuW5YCR55qE6Zec6IGv57ea6YCy6KGM5LiK6ImyCkUocmV2aWV3TmV0d29yaykkY29sb3IgPC0gaWZlbHNlKEUocmV2aWV3TmV0d29yaykkdG9waWMgPT0gIjEiLCAibGlnaHRncmVlbiIsICJwYWxldmlvbGV0cmVkIikKCiMg55Wr5Ye656S+576k57ay6Lev5ZyWCnNldC5zZWVkKDU0MzIpCnBsb3QocmV2aWV3TmV0d29yaywgdmVydGV4LnNpemU9MywgZWRnZS53aWR0aD0zLCB2ZXJ0ZXgubGFiZWwuZGlzdD0xLAogICAgIHZlcnRleC5sYWJlbD1pZmVsc2UoZGVncmVlKHJldmlld05ldHdvcmspID4gNywgVihyZXZpZXdOZXR3b3JrKSRsYWJlbCwgTkEpLHZlcnRleC5sYWJlbC5mb250PTIpCgojIOWKoOWFpeaomeekugpsZWdlbmQoImJvdHRvbXJpZ2h0IiwgYygi55m85paH6ICFIiwi5Zue5paH6ICFIiksIHBjaD0yMSwgCiAgY29sPSIjNzc3Nzc3IiwgcHQuYmc9YygiZ29sZCIsImxpZ2h0Ymx1ZSIpLCBwdC5jZXg9MSwgY2V4PTEpCmxlZ2VuZCgidG9wbGVmdCIsIGMoIuWPo+e9qemgkOizvCIsIuWQhOWci+eWq+aDhSIpLCAKICAgICAgIGNvbD1jKCJsaWdodGdyZWVuIiwicGFsZXZpb2xldHJlZCIpLCBsdHk9MSwgY2V4PTEpCmBgYAo+IOWPr+S7peeci+WHuuW4s+iZnyJPdmVySW5maW5pdHki5ZKMInB0dDg1OTIi5omA55m855qE5paH5aSa5Zyo6KiO6KuW5Y+j572p6aCQ6LO855qE5Li76aGM77yMPGJyPgrluLPomZ8ibmlnaHR3aW5nIuWSjCJrdW1hNjYwMjI0IuetieaJgOeZvOeahOeOn+WkmuWcqOiojuirluWQhOWci+eWq+aDheeahOS4u+mhjOOAggoKIyMjIOS9v+eUqOiAheaYr+WQpuWPl+WIsOatoei/jgpgYGB7cn0KIyBQVFTnmoTlm57opobmnInkuInnqK7vvIzmjqjmlofjgIHlmZPmlofjgIHnrq3poK0KIyDmiJHlgJHlj6ropoHnnIvmjqjlmZPlsLHlpb3vvIzlm6DmraTmiornrq3poK3muIXmjokKbGluayA8LSBwb3N0c19SZXZpZXdzICU+JQogICAgICBmaWx0ZXIoY210U3RhdHVzIT0i4oaSIikgJT4lCiAgICAgIGdyb3VwX2J5KGNtdFBvc3RlciwgYXJ0VXJsKSAlPiUgCiAgICAgIGZpbHRlcihuKCk+NSkgJT4lIAogICAgICB1bmdyb3VwKCkgJT4lIAogICAgICBzZWxlY3QoY210UG9zdGVyLCBhcnRQb3N0ZXIsIGFydFVybCwgY210U3RhdHVzKSAlPiUgCiAgICAgIHVuaXF1ZSgpCgojIOaOpeS4i+S+huaKiue2sui3r+WclueVq+WHuuS+hu+8jOi3n+WJjemdouWBmueahOS6i+mDveS4gOaoo++8jOWboOatpOS4jeWGjee0sOi/sAoKIyDnr6npgbhsaW5r5Lit5pyJ5Ye654++55qE5L2/55So6ICFCmZpbHRlcmVkX3VzZXIgPC0gdXNlckxpc3QgJT4lCiAgICAgICAgICBmaWx0ZXIodXNlciVpbiVsaW5rJGNtdFBvc3RlciB8IHVzZXIlaW4lbGluayRhcnRQb3N0ZXIpICU+JQogICAgICAgICAgYXJyYW5nZShkZXNjKHR5cGUpKQoKIyDlu7rnq4vntrLot6/pl5zkv4IKcmV2aWV3TmV0d29yayA8LSBncmFwaF9mcm9tX2RhdGFfZnJhbWUoZD1saW5rLCB2PWZpbHRlcmVkX3VzZXIsIGRpcmVjdGVkPUYpCgojIOS+neaTmuS9v+eUqOiAhei6q+S7veWwjem7numAsuihjOS4iuiJsgpsYWJlbHMgPC0gZGVncmVlKHJldmlld05ldHdvcmspClYocmV2aWV3TmV0d29yaykkbGFiZWwgPC0gbmFtZXMobGFiZWxzKQpWKHJldmlld05ldHdvcmspJGNvbG9yIDwtIGlmZWxzZShWKHJldmlld05ldHdvcmspJHR5cGU9PSJwb3N0ZXIiLCAiZ29sZCIsICJsaWdodGJsdWUiKQoKCiMg5L6d5pOa5Zue6KaG55m855Sf55qE5paH56ug5omA5bCN5oeJ55qE5Li76aGM77yM5bCN5LuW5YCR55qE6Zec6IGv57ea6YCy6KGM5LiK6ImyCkUocmV2aWV3TmV0d29yaykkY29sb3IgPC0gaWZlbHNlKEUocmV2aWV3TmV0d29yaykkY210U3RhdHVzID09ICLmjqgiLCAibGlnaHRncmVlbiIsICJwYWxldmlvbGV0cmVkIikKCiMg55Wr5Ye656S+576k57ay6Lev5ZyWCnNldC5zZWVkKDU0MzIpCnBsb3QocmV2aWV3TmV0d29yaywgdmVydGV4LnNpemU9MiwgZWRnZS53aWR0aD0zLCB2ZXJ0ZXgubGFiZWwuZGlzdD0xLAogICAgIHZlcnRleC5sYWJlbD1pZmVsc2UoZGVncmVlKHJldmlld05ldHdvcmspID4gNSwgVihyZXZpZXdOZXR3b3JrKSRsYWJlbCwgTkEpLHZlcnRleC5sYWJlbC5mb250PTIpCgojIOWKoOWFpeaomeekugpsZWdlbmQoImJvdHRvbXJpZ2h0IiwgYygi55m85paH6ICFIiwi5Zue5paH6ICFIiksIHBjaD0yMSwKICBjb2w9IiM3Nzc3NzciLCBwdC5iZz1jKCJnb2xkIiwibGlnaHRibHVlIiksIHB0LmNleD0xLCBjZXg9MSkKbGVnZW5kKCJ0b3BsZWZ0IiwgYygi5o6oIiwi5ZmTIiksIAogICAgICAgY29sPWMoImxpZ2h0Z3JlZW4iLCJwYWxldmlvbGV0cmVkIiksIGx0eT0xLCBjZXg9MSkKYGBgCj4g5ZugbkNvVjIwMTnnnIvmnb/kuK3lub7kuY7mspLmnInlmZPmlofvvIzlm6DmraTmiYDmnInnmoTpgKPnt5rlub7kuY7pg73ngrrntqDoibLjgIIKCj4g57WQ6Kqe77yaPGJyPgrkvb/nlKhuZXR3b3Jr55qE6KaW6Ka65YyW5Y+v5Lul6K6T5oiR5YCR5bCN5pa857ay6Lev5Lit55qE5L2/55So6ICF5Y+K5LuW5YCR5Zyo6YCZ5YCL57ay6Lev5Lit5Y+v6IO95omu5ryU55qE6KeS6Imy5pyJ5pu05aSa5Zyw556t6Kej44CCPGJyPgo=