{"id":80245,"date":"2020-05-04T19:42:04","date_gmt":"2020-05-04T17:42:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack"},"modified":"2020-05-04T19:42:04","modified_gmt":"2020-05-04T17:42:04","slug":"vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack","title":{"rendered":"W\u0142amanie do infrastruktury LineageOS poprzez podatno\u015b\u0107 w SaltStack","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Deweloperzy platformy mobilnej <noindex><a rel=\"nofollow\" href=\"https:\/\/lineageos.org\/\">LineageOS<\/a><\/noindex>, kt\u00f3ra jest nast\u0119pc\u0105 CyanogenMod, <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/LineageAndroid\/status\/1256821056100163584\">ostrzegli<\/a><\/noindex> zg\u0142aszaj\u0105 o wykryciu \u015blad\u00f3w w\u0142amania w infrastrukturze projektu. Zauwa\u017cono, \u017ce o godzinie 6 rano (MSK) 3 maja atakuj\u0105cemu uda\u0142o si\u0119 uzyska\u0107 dost\u0119p do g\u0142\u00f3wnego serwera systemu centralnego zarz\u0105dzania konfiguracj\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.saltstack.com\/\">SaltStack<\/a><\/noindex> poprzez wykorzystanie nieza\u0142atanej luki w zabezpieczeniach. Obecnie trwa analiza incydentu, a szczeg\u00f3\u0142y s\u0105 na razie niedost\u0119pne. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/status.lineageos.org\/issues\/5eae596b4a0ebd114676545f\">Zg\u0142oszono<\/a><\/noindex> Dobrze, \u017ce atak nie wp\u0142yn\u0105\u0142 na klucze do generowania podpis\u00f3w cyfrowych, system kompilacji oraz kody \u017ar\u00f3d\u0142owe platformy \u2014 klucze <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/zifnab06\/status\/1256870980523196417\">by\u0142y przechowywane<\/a><\/noindex>  na hostach, ca\u0142kowicie odizolowanych od g\u0142\u00f3wnej infrastruktury zarz\u0105dzanej przez SaltStack, a budowy zosta\u0142y zatrzymane z powod\u00f3w technicznych 30 kwietnia. S\u0105dz\u0105c po danych dost\u0119pnych na stronie <noindex><a rel=\"nofollow\" href=\"https:\/\/status.lineageos.org\/\">status.lineageos.org<\/a><\/noindex> deweloperzy ju\u017c przywr\u00f3cili serwer z systemem recenzji kodu Gerrit, stron\u0119 i wiki. Wy\u0142\u0105czone pozostaj\u0105 serwer budowy (builds.lineageos.org), portal do pobierania plik\u00f3w (download.lineageos.org), serwery pocztowe oraz system koordynacji przekierowa\u0144 na lustrzane kopie. <\/p>\n<p>Atak by\u0142 mo\u017cliwy, poniewa\u017c port sieciowy (4506) do uzyskania dost\u0119pu do SaltStack <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/zifnab06\/status\/1256870980523196417\">nie by\u0142<\/a><\/noindex> zosta\u0142 zablokowany dla zewn\u0119trznych zapyta\u0144 przez zapor\u0119 sieciow\u0105 \u2014 atakuj\u0105cy musia\u0142 czeka\u0107 na pojawienie si\u0119 krytycznej luki w SaltStack i wykorzysta\u0107 j\u0105 zanim administratorzy zainstaluj\u0105 aktualizacj\u0119 z poprawk\u0105. Wszystkim u\u017cytkownikom SaltStack zaleca si\u0119 pilne zaktualizowanie swoich system\u00f3w oraz sprawdzenie ich pod k\u0105tem \u015blad\u00f3w w\u0142amania.<\/p>\n<p>Wydaje si\u0119, \u017ce ataki za po\u015brednictwem SaltStack nie ograniczy\u0142y si\u0119 tylko do w\u0142amania do LineageOS i mia\u0142y masowy charakter \u2014 w ci\u0105gu jednego dnia r\u00f3\u017cni u\u017cytkownicy, kt\u00f3rzy nie zd\u0105\u017cyli zaktualizowa\u0107 SaltStack, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saltstack\/salt\/issues\/57057\">zauwa\u017caj\u0105<\/a><\/noindex> wykrywali kompromitacj\u0119 swoich infrastruktur, z umieszczonym na serwerach kodem do wydobywania kryptowalut lub backdoorami. W tym r\u00f3wnie\u017c <noindex><a rel=\"nofollow\" href=\"https:\/\/status.ghost.org\/incidents\/tpn078sqk973\">doniesiono<\/a><\/noindex> o podobnym w\u0142amaniu w infrastruktur\u0119 systemu zarz\u0105dzania tre\u015bci\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/TryGhost\/Ghost\">Ghost<\/a><\/noindex>, kt\u00f3ry dotkn\u0105\u0142 strony Ghost(Pro) oraz systemu bilingowego (twierdzi si\u0119, \u017ce numery kart kredytowych nie ucierpia\u0142y, ale hashe hase\u0142 u\u017cytkownik\u00f3w Ghost mog\u0142y trafi\u0107 w r\u0119ce atakuj\u0105cych).<\/p>\n<p>29 kwietnia wydano <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saltstack\/salt\/releases\">aktualizacje platformy SaltStack<\/a><\/noindex> , w kt\u00f3rych usuni\u0119to <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.saltstack.com\/en\/latest\/topics\/releases\/3000.2.html\">3000.2<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.saltstack.com\/en\/2019.2\/topics\/releases\/2019.2.4.html\">2019.2.4<\/a><\/noindex>(informacje o lukach zosta\u0142y opublikowane 30 kwietnia), kt\u00f3rym przypisano najwy\u017cszy poziom zagro\u017cenia, poniewa\u017c pozwalaj\u0105 one na dost\u0119p bez autoryzacji <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saltstack\/salt\/blob\/v3000.2_docs\/doc\/topics\/releases\/3000.2.rs\">dwie luki<\/a><\/noindex> do <noindex><a rel=\"nofollow\" href=\"https:\/\/labs.f-secure.com\/advisories\/saltstack-authorization-bypass\">zezwalaj\u0105<\/a><\/noindex> Zdalne wykonywanie kodu, zar\u00f3wno na hostcie zarz\u0105dzaj\u0105cym (salt-master), jak i na wszystkich serwerach zarz\u0105dzanych przez niego.<\/p>\n<ul>\n<li class=\"l\"> Pierwsza luka (<noindex><a rel=\"nofollow\" href=\"https:\/\/security-tracker.debian.org\/tracker\/CVE-2020-11651\">CVE-2020-11651<\/a><\/noindex>) jest spowodowana brakiem odpowiednich kontroli przy wywo\u0142ywaniu metod klasy ClearFuncs w procesie salt-master. Luka umo\u017cliwia zdalnemu u\u017cytkownikowi dost\u0119p do niekt\u00f3rych metod bez uwierzytelnienia. W tym przypadku atakuj\u0105cy mo\u017ce uzyska\u0107 token dost\u0119pu z uprawnieniami root do master-serwera i uruchomi\u0107 dowolne polecenia na obs\u0142ugiwanych hostach, na kt\u00f3rych dzia\u0142a demon <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.saltstack.com\/en\/latest\/ref\/cli\/salt-minion.html\">salt-minion<\/a><\/noindex>. \u0141atka usuwaj\u0105ca t\u0119 luk\u0119 zosta\u0142a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saltstack\/salt\/commit\/a67d76b15615983d467ed81371b38b4a17e4f3b7\">opublikowano<\/a><\/noindex> 20 dni temu, ale po jej zastosowaniu pojawi\u0142y si\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saltstack\/salt\/issues\/57016\">regresywne<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/saltstack\/salt\/issues\/57027\">zmiany<\/a><\/noindex>, prowadz\u0105ce do awarii i zak\u0142\u00f3ce\u0144 synchronizacji plik\u00f3w.\n<li class=\"l\"> Druga luka (<noindex><a rel=\"nofollow\" href=\"https:\/\/security-tracker.debian.org\/tracker\/CVE-2020-11652\">CVE-2020-11652<\/a><\/noindex>) umo\u017cliwia dost\u0119p do metod za pomoc\u0105 manipulacji klas\u0105 ClearFuncs poprzez przesy\u0142anie odpowiednio sformatowanych \u015bcie\u017cek, co mo\u017ce by\u0107 u\u017cywane do pe\u0142nego dost\u0119pu do dowolnych katalog\u00f3w w systemie plik\u00f3w master-serwera z uprawnieniami root, ale wymaga posiadania uwierzytelnionego dost\u0119pu (taki dost\u0119p mo\u017cna uzyska\u0107 dzi\u0119ki pierwszej luce i wykorzysta\u0107 drug\u0105 luk\u0119 do pe\u0142nej kompromitacji ca\u0142ej infrastruktury).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52872\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b LineageOS, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 CyanogenMod, \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u043b\u0438 \u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u043e\u0432 \u0432\u0437\u043b\u043e\u043c\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041e\u0442\u043c\u0435\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 6 \u0447\u0430\u0441\u043e\u0432 \u0443\u0442\u0440\u0430 (MSK) 3 \u043c\u0430\u044f \u0430\u0442\u0430\u043a\u0443\u044e\u0449\u0435\u043c\u0443 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 SaltStack \u0447\u0435\u0440\u0435\u0437 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0434\u0451\u0442 \u0440\u0430\u0437\u0431\u043e\u0440 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430 \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043a\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u0421\u043e\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0430\u0442\u0430\u043a\u0430 \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-80245","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b LineageOS, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 CyanogenMod,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u0437\u043b\u043e\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b LineageOS \u0447\u0435\u0440\u0435\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 SaltStack | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b LineageOS, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 CyanogenMod,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-04T17:42:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-04T17:42:04+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Hakerstwo infrastruktury LineageOS przez luk\u0119 w SaltStack | ProHoster","description":"Programi\u015bci mobilnej platformy LineageOS, kt\u00f3ra zast\u0105pi\u0142a CyanogenMod,","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u0437\u043b\u043e\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b LineageOS \u0447\u0435\u0440\u0435\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 SaltStack | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b LineageOS, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 CyanogenMod,","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/vzlom-infrastruktury-lineageos-cherez-uyazvimost-v-saltstack","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-04T17:42:04+00:00","article:modified_time":"2020-05-04T17:42:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80245","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:21:23","updated":"2022-09-28 08:26:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/80245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=80245"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/80245\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=80245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=80245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=80245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}