{"id":115675,"date":"2024-05-10T19:52:06","date_gmt":"2024-05-10T17:52:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git"},"modified":"2024-05-10T19:52:06","modified_gmt":"2024-05-10T17:52:06","slug":"proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git","title":{"rendered":"O projeto gittuf desenvolve um sistema de prote\u00e7\u00e3o criptogr\u00e1fica para reposit\u00f3rios Git","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A vers\u00e3o 0.4 do projeto gittuf est\u00e1 dispon\u00edvel, desenvolvendo um sistema hier\u00e1rquico de verifica\u00e7\u00e3o do conte\u00fado dos reposit\u00f3rios Git, que minimiza os riscos em situa\u00e7\u00f5es de comprometimento de desenvolvedores individuais com acesso ao reposit\u00f3rio. O gittuf oferece uma camada adicional de seguran\u00e7a ao Git e um conjunto de utilit\u00e1rios para gerenciar as chaves de todos os desenvolvedores que t\u00eam acesso ao reposit\u00f3rio e para definir regras de acesso a branches, tags e arquivos espec\u00edficos. O c\u00f3digo do projeto \u00e9 escrito em Go e \u00e9 distribu\u00eddo sob a licen\u00e7a Apache 2.0. O projeto est\u00e1 em fase de desenvolvimento ativo e possui qualidade de pr\u00e9-lan\u00e7amento, adequado para experimentos, mas ainda n\u00e3o pronto para implementa\u00e7\u00f5es em produ\u00e7\u00e3o.      <\/p>\n<p>Informa\u00e7\u00f5es e artefatos que garantem uma verifica\u00e7\u00e3o adicional das altera\u00e7\u00f5es realizadas s\u00e3o armazenados no reposit\u00f3rio de objetos Git em um espa\u00e7o de nomes espec\u00edfico do gittuf, o que permite manter a compatibilidade com as ferramentas e servi\u00e7os existentes, incluindo GitHub e GitLab. Ao usar ferramentas que n\u00e3o suportam gittuf, o reposit\u00f3rio permanece totalmente acess\u00edvel, mas \u00e9 limitada a capacidade de verifica\u00e7\u00e3o avan\u00e7ada de sua integridade. A arquitetura do gittuf \u00e9 baseada em elementos comprovados do framework TUF (The Update Framework), que \u00e9 utilizado para proteger os processos de forma\u00e7\u00e3o de atualiza\u00e7\u00f5es em projetos como Docker, Fuchsia, AGL (Automotive Grade Linux) e PyPI.      <\/p>\n<p>O modelo de verifica\u00e7\u00e3o no gittuf \u00e9 baseado na aplica\u00e7\u00e3o de um sistema hier\u00e1rquico de distribui\u00e7\u00e3o de confian\u00e7a. A raiz da confian\u00e7a pertence ao propriet\u00e1rio do reposit\u00f3rio, que pode gerar chaves para os participantes do desenvolvimento e definir regras de acordo com as quais as chaves geradas podem ser aplicadas. O gittuf permite criar regras granulares flex\u00edveis que definem os poderes de cada desenvolvedor e a \u00e1rea do reposit\u00f3rio onde ele tem permiss\u00e3o para fazer altera\u00e7\u00f5es. Por exemplo, um desenvolvedor pode ser autorizado a criar tags, fazer altera\u00e7\u00f5es em branches espec\u00edficas ou alterar apenas arquivos individuais no reposit\u00f3rio.     <\/p>\n<p>Os desenvolvedores e as mudan\u00e7as que realizam s\u00e3o identificados por chaves e assinaturas digitais. O Gittuf permite gerar novas chaves, distribuir chaves de forma segura, realizar a rota\u00e7\u00e3o peri\u00f3dica de chaves, revogar chaves comprometidas, gerenciar listas de acesso (ACL) e namespaces em reposit\u00f3rios Git. O Gittuf tamb\u00e9m mant\u00e9m um log de refer\u00eancia (RSL \u2014 Reference State Log) de todas as altera\u00e7\u00f5es, cuja integridade e prote\u00e7\u00e3o contra altera\u00e7\u00f5es retroativas s\u00e3o asseguradas por meio de uma estrutura de \u00e1rvore chamada '\u00e1rvore de Merkle' (Merkle Tree) \u2014 cada ramo verifica todos os ramos e n\u00f3s subsequentes gra\u00e7as \u00e0 hashing em \u00e1rvore (tendo um hash final, o usu\u00e1rio pode confirmar a validade de todo o hist\u00f3rico de opera\u00e7\u00f5es, bem como a corre\u00e7\u00e3o dos estados passados).       <\/p>\n<p>Para verificar assinaturas digitais de commits e tags, o propriet\u00e1rio do reposit\u00f3rio cria e distribui chaves p\u00fablicas, que est\u00e3o diretamente associadas ao reposit\u00f3rio. Para combater a promo\u00e7\u00e3o de altera\u00e7\u00f5es por invasores, feitas ap\u00f3s o acesso \u00e0s chaves para formar assinaturas digitais de desenvolvedores individuais, s\u00e3o aplicados mecanismos de revoga\u00e7\u00e3o e substitui\u00e7\u00e3o de chaves. As chaves t\u00eam um tempo de vida limitado e exigem atualiza\u00e7\u00e3o constante para evitar a forma\u00e7\u00e3o de assinatura com chaves antigas.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61144\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 gittuf 0.4, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Git, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0438\u0441\u043a\u0438 \u0432 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e. Gittuf \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a Git \u0438 \u043d\u0430\u0431\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e, \u0438 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0430\u0432\u0438\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0435\u0442\u043a\u0430\u043c, \u0442\u0435\u0433\u0430\u043c \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 [&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-115675","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 gittuf 0.4, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Git, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0438\u0441\u043a\u0438 \u0432 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a.\" \/>\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\/pt\/blog\/news\/proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u041f\u0440\u043e\u0435\u043a\u0442 gittuf \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Git | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 gittuf 0.4, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Git, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0438\u0441\u043a\u0438 \u0432 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git\" \/>\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=\"2024-05-10T17:52:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-10T17:52:06+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\udd47O projeto gittuf desenvolve um sistema de prote\u00e7\u00e3o criptogr\u00e1fica de reposit\u00f3rios Git | ProHoster","description":"Est\u00e1 dispon\u00edvel o lan\u00e7amento do projeto gittuf 0.4, que desenvolve um sistema hier\u00e1rquico de verifica\u00e7\u00e3o do conte\u00fado de reposit\u00f3rios Git, permitindo minimizar riscos em situa\u00e7\u00f5es de comprometimento de desenvolvedores individuais com acesso.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u041f\u0440\u043e\u0435\u043a\u0442 gittuf \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Git | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 gittuf 0.4, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Git, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0438\u0441\u043a\u0438 \u0432 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/proekt-gittuf-razvivaet-sistemu-kriptograficheskoj-zashhity-repozitoriev-git","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":"2024-05-10T17:52:06+00:00","article:modified_time":"2024-05-10T17:52:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115675","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":"default","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":"2026-01-23 00:04:29","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 00:04:29","updated":"2026-01-23 00:04:29","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/115675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=115675"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/115675\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=115675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=115675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=115675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}