{"id":146,"date":"2021-02-13T20:19:34","date_gmt":"2021-02-13T20:19:34","guid":{"rendered":"https:\/\/adrianotanaka.com.br\/?p=146"},"modified":"2022-03-11T19:17:45","modified_gmt":"2022-03-11T19:17:45","slug":"oci-cloud-guard-parte-1","status":"publish","type":"post","link":"https:\/\/adrianotanaka.com.br\/index.php\/2021\/02\/13\/oci-cloud-guard-parte-1\/","title":{"rendered":"OCI &#8211; Cloud Guard parte 1"},"content":{"rendered":"\n<p>O OCI agora fornece um utilit\u00e1rio chamado <strong>Cloud Guard<\/strong> que faz uma captura e analise de informa\u00e7\u00f5es de seu ambiente cloud e baseado nisso te entrega m\u00e9tricas que apontam o n\u00edvel de seguran\u00e7a(e pode at\u00e9 tomar a\u00e7\u00f5es de forma autom\u00e1tica), at\u00e9 o presente momento esse \u00e9 um servi\u00e7o gratuito e hoje vamos dar uma olhada nessa ferramenta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"458\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1024x458.png\" alt=\"\" class=\"wp-image-147\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1024x458.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-300x134.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-768x344.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image.png 1086w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>https:\/\/www.oracle.com\/security\/cloud-security\/pricing\/<\/figcaption><\/figure>\n\n\n\n<p>O Cloud Guard \u00e9 dividido em 4 partes:<\/p>\n\n\n\n<p><strong>Target<\/strong><br>O target como o pr\u00f3prio nome diz, indica o que vai ser monitorado pelo Cloud Guard, podendo ser desde todo o Tenancy at\u00e9 um recurso especifico.<\/p>\n\n\n\n<p><strong>Detector<\/strong><br>\u00c9 quem faz a analise dos targets, eles podem ser tanto do tipo criados pela pr\u00f3pria Oracle ou criados pelo usu\u00e1rio(que obrigatoriamente \u00e9 um clone do template oferecido pela Oracle).<\/p>\n\n\n\n<p><strong>Problem<\/strong><br>Quando o Detector, baseado nas regras identifica algo, ele \u00e9 marcado como Problem, podendo ser do tipo Activy ou Configuration.<\/p>\n\n\n\n<p><strong>Responder<\/strong><br>\u00c9 a a\u00e7\u00e3o que o Cloud Guard vai tomar caso encontre o Problem.<\/p>\n\n\n\n<p class=\"has-text-color has-background has-vivid-red-color has-pale-cyan-blue-background-color\"><strong>Para esse, fica o alerta: N\u00e3o vincule o responder antes de entender o que ele realmente faz, esse \u00e9 o padr\u00e3o que a oracle disponibiliza(e que serve de base para o que voc\u00ea pode fazer):<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-17-1024x544.png\" alt=\"\" class=\"wp-image-367\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-17-1024x544.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-17-300x159.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-17-768x408.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-17.png 1484w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ativa\u00e7\u00e3o<\/strong>(target)<\/h2>\n\n\n\n<p>A ativa\u00e7\u00e3o do Cloud Guard \u00e9 bem simples, bastando ir no caminho <strong>Security -&gt; Cloud Guard<\/strong>, uma policy deve ser criada com as seguintes permiss\u00f5es, mas o cloud guard tamb\u00e9m faz isso automaticamente caso voc\u00ea queira:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">allow service cloudguard to read vaults in tenancy\nallow service cloudguard to read keys in tenancy\nallow service cloudguard to read compartments in tenancy\nallow service cloudguard to read tenancies in tenancy\nallow service cloudguard to read audit-events in tenancy\nallow service cloudguard to read compute-management-family in tenancy\nallow service cloudguard to read instance-family in tenancy\nallow service cloudguard to read virtual-network-family in tenancy\nallow service cloudguard to read volume-family in tenancy\nallow service cloudguard to read database-family in tenancy\nallow service cloudguard to read object-family in tenancy\nallow service cloudguard to read load-balancers in tenancy\nallow service cloudguard to read users in tenancy\nallow service cloudguard to read groups in tenancy\nallow service cloudguard to read policies in tenancy\nallow service cloudguard to read dynamic-groups in tenancy\nallow service cloudguard to read authentication-policies in tenancy\nallow service cloudguard to use network-security-groups in tenancy<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"230\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1-1024x230.png\" alt=\"\" class=\"wp-image-149\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1-1024x230.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1-300x67.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1-768x173.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1-1536x345.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-1.png 1616w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Na parte de regi\u00e3o a ser monitorada voc\u00ea pode colocar o Cloud Guard para monitorar a regi\u00e3o atual ou outra regi\u00e3o que voc\u00ea aponte:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"277\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-2-1024x277.png\" alt=\"\" class=\"wp-image-150\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-2-1024x277.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-2-300x81.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-2-768x208.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-2-1536x416.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2020\/11\/image-2.png 1619w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Al\u00e9m disso, voc\u00ea ainda pode escolher quais recursos v\u00e3o ser monitorados  e quais regras devem ser usadas para o monitoramento(falarei sobre isso mais pra frente).<\/p>\n\n\n\n<p>Depois de ativado, aguarde alguns minutos para que ele comece a analisar o ambiente e gerar as recomenda\u00e7\u00f5es:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"388\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-13-1024x388.png\" alt=\"\" class=\"wp-image-362\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-13-1024x388.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-13-300x114.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-13-768x291.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-13-1536x582.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-13.png 1844w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Perceba que para esse ambiente, recebemos a &#8220;nota&#8221; Good pois temos alguns problemas de n\u00edvel Critico (em vermelho no gr\u00e1fico do canto direito).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Regras(Detector)<\/h2>\n\n\n\n<p>Aqui estou usando as duas regras que a pr\u00f3pria Oracle nos fornece, a <strong>OCI Configuration Detector Recipe (Oracle Managed)<\/strong> faz detec\u00e7\u00e3o de configura\u00e7\u00f5es &#8220;erradas&#8221; e a <strong>OCI Activity Detector Recipe (Oracle Managed) <\/strong>faz detec\u00e7\u00e3o de atividades suspeitas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>OCI Configuration Detector Recipe <\/strong><\/h2>\n\n\n\n<p>Ao clicar na receita, voc\u00ea tem acesso ao que elas fazem, podendo tamb\u00e9m filtrar por n\u00edvel de criticidade, abaixo um peda\u00e7o das regras de Configuration:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"260\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-11-1024x260.png\" alt=\"\" class=\"wp-image-360\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-11-1024x260.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-11-300x76.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-11-768x195.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-11-1536x391.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-11.png 1648w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>E ao clicar em uma das linhas, voc\u00ea pode entender melhor o que \u00e9 analisado:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"100\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-12-1024x100.png\" alt=\"\" class=\"wp-image-361\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-12-1024x100.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-12-300x29.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-12-768x75.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-12-1536x150.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-12.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Tamb\u00e9m \u00e9 poss\u00edvel ajustar uma regra para que ela pare de alertar por exemplo sobre uma porta que realmente precise ficar aberta, nesse caso eu n\u00e3o quero receber alertas sobre a porta XYZ por exemplo, basta retirar ela da lista de portas monitoradas:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"591\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-14-1024x591.png\" alt=\"\" class=\"wp-image-363\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-14-1024x591.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-14-300x173.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-14-768x443.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-14.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>OCI Activity Detector Recipe<\/strong><\/h2>\n\n\n\n<p>Nessa receita, temos uma coisa bem legal que \u00e9 a analise de atividades suspeitas e ele inclusive consegue nos mostrar de onde est\u00e3o vindo os acessos ao nosso ambiente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"369\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-18-1024x369.png\" alt=\"\" class=\"wp-image-370\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-18-1024x369.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-18-300x108.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-18-768x277.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-18.png 1063w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>E ele conseguiria bloquear os acessos de um usu\u00e1rio que esteja vindo de um ip problem\u00e1tico:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"988\" height=\"141\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-19.png\" alt=\"\" class=\"wp-image-371\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-19.png 988w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-19-300x43.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-19-768x110.png 768w\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Problem<\/h2>\n\n\n\n<p>Nessa tela, temos acesso a um resumo dos problemas que foram identificados no ambiente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"166\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-15-1024x166.png\" alt=\"\" class=\"wp-image-365\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-15-1024x166.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-15-300x49.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-15-768x124.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-15-1536x248.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-15-2048x331.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Clicando em algum deles, temos detalhes de por exemplo qual porta est\u00e1 aberta e em qual local:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-16-1024x218.png\" alt=\"\" class=\"wp-image-366\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-16-1024x218.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-16-300x64.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-16-768x164.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-16-1536x327.png 1536w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-16-2048x436.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Vale ressaltar que a Oracle faz recomenda\u00e7\u00f5es baseadas em um template criado por ela, ent\u00e3o por isso \u00e9 importante clonar e ajustar as receitas para o seu ambiente, por exemplo no meu caso recebi um alerta de que a porta 80 est\u00e1 aberta para a internet, nesse caso eu poderia ajustar a receita para ignorar a porta 80(ou excluir esse recurso\/compartimento do target) ou at\u00e9 entender melhor como eu poderia provisionar algum servi\u00e7o da cloud para me ajudar.<\/p>\n\n\n\n<p>Se voc\u00ea clicar no Resource Name, ele te direciona para o Advanced query ( que j\u00e1 falei sobre <a href=\"https:\/\/adrianotanaka.com.br\/index.php\/2021\/01\/29\/oci-search-bar\/\">aqui<\/a>) :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"205\" src=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-20-1024x205.png\" alt=\"\" class=\"wp-image-373\" srcset=\"https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-20-1024x205.png 1024w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-20-300x60.png 300w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-20-768x154.png 768w, https:\/\/adrianotanaka.com.br\/wp-content\/uploads\/2021\/02\/image-20.png 1283w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Responder<\/h2>\n\n\n\n<p>No ambiente de teste, ainda n\u00e3o implementei a parte do Responder pois \u00e9 um detalhe que ainda n\u00e3o domino 100% e a chance de acabar estragando o ambiente \u00e9 maior do que os benef\u00edcios, por enquanto sugiro que utilize apenas a tela de Overview e Problems(espero logo escrever um post sobre a parte do Responder).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O OCI agora fornece um utilit\u00e1rio chamado Cloud Guard que faz uma captura e analise de informa\u00e7\u00f5es de seu ambiente cloud e baseado nisso te entrega m\u00e9tricas que apontam o n\u00edvel de seguran\u00e7a(e pode at\u00e9 tomar a\u00e7\u00f5es de forma autom\u00e1tica), at\u00e9 o presente momento esse \u00e9 um servi\u00e7o gratuito e hoje vamos dar uma olhada [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":355,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"material-hide-sections":[],"footnotes":""},"categories":[8,6,1],"tags":[29,30,10,28,31],"class_list":["post-146","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oci","category-oracle","category-uncategorized","tag-cloud","tag-devops","tag-oci","tag-sec","tag-secops"],"_links":{"self":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=146"}],"version-history":[{"count":11,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/146\/revisions"}],"predecessor-version":[{"id":376,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/posts\/146\/revisions\/376"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/media\/355"}],"wp:attachment":[{"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianotanaka.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}