{"id":1289792,"date":"2021-07-09T07:09:01","date_gmt":"2021-07-09T14:09:01","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1289792"},"modified":"2021-07-09T07:09:01","modified_gmt":"2021-07-09T14:09:01","slug":"monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux","title":{"rendered":"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux"},"author":10252,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37501],"tags":[],"industry":[],"product":[36571],"class_list":["post-1289792","blog","type-blog","status-publish","format-standard","hentry","category-administration","product-arcgis-enterprise"],"acf":{"short_description":"To briefly discuss setting up the Python 3 Runtime for ArcGIS Server 10.9 on Linux.","flexible_content":[{"acf_fc_layout":"content","content":"<p><em>NOTE: This blog assumes that you have already installed and configured the following: ArcGIS Server 10.9 and Conda.<\/em><\/p>\n<p>As part of the ArcGIS Server on Linux experience, we offer utilization of the Python 3 runtime. This is achieved by leveraging the power of the popular, open-source package\/environment management system known as Conda. When working with ArcGIS Python functionality, this greatly comes in handy for all of your GIS workflows.<\/p>\n<p>In this Monthly Linux Tip, we will look at setting up the Python 3 runtime in an ArcGIS Server 10.9 environment. Please see the table of contents below:<\/p>\n<ol>\n<li><strong>What is the Python 3 Runtime?<\/strong><\/li>\n<li><strong>Download arcgis-server-py3 package<\/strong><\/li>\n<\/ol>\n<p><strong>1. What is the Python 3 Runtime?<\/strong><\/p>\n<p>The Python 3 Runtime allows ArcPy scripts and tools to be ran independently of ArcGIS Server. This comes in handy if your enterprise is interested in ArcGIS Python functionality exclusively, rather than all of ArcGIS Server\u2019s functionalities.<\/p>\n<p>Older versions of the ArcGIS Enterprise software only supported the Python 2.7 runtime. This was problematic as there were limitations that tightened the scope of the runtime\u2019s capabilities. However, with the Python 3 runtime, there are now more broadened capabilities, as indicated in the Python 3 Runtime readme file.<\/p>\n<p><strong>2. Download arcgis-server-py3 package<\/strong><\/p>\n<p>Below in my environment, we can see that I have already configured Conda:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/conda-version.png\" \/><\/p>\n<p><em>(If you do not already have Conda installed, please refer to the <a href=\"https:\/\/repo.continuum.io\/\">Anaconda website<\/a> to setup before proceeding)<\/em><\/p>\n<p>Once you have successfully configured Conda on your environment, you\u2019re ready to install the <em>arcgis-server-py3 <\/em>package. This package is what enables ArcGIS Python functionality in your unique Conda environment. Before moving forward, I\u2019ll want to make sure I create a Conda environment, which I will make below:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/create-conda-env.png\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/conda-env-made.png\" \/><\/p>\n<p><em>NOTE: The second screenshot is the end of the output of the prior screenshot.<\/em><\/p>\n<p>As noted, I am specifying <em>python=3.7<\/em> in this environment as I plan to use the Python 3 runtime. Additionally, we will need to set environmental variable <em>ARCGISHOME<\/em>. As the name suggests, this will allow our Conda environment to recognize our ArcGIS Server installation path. Without setting this, we will not be able to properly download the <em>arcgis-server-py3<\/em> package. To avoid any issues, let&#8217;s set it now:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/export.png\" \/><\/p>\n<p>Once done, you can now activate the newly created Conda environment:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/conda-activate.png\" \/><\/p>\n<p>All good to go! Now all that is left is to download the <em>arcgis-server-py3<\/em> package, which is done below:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/arcgis-server-py3-start.png\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/arcgis-server-py3-done.png\" \/><\/p>\n<p><em>NOTE: The second screenshot is the end of the output of the prior screenshot.<\/em><\/p>\n<p>And that is all there is to it! We can verify our installation went smoothly by doing the following:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/conda-list.png\" \/><\/p>\n<p>Additionally, you can directly invoke Python and attempt to import arcpy as seen below:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/arcpy.png\" \/><\/p>\n<p>As we can see, this was successful, and we can now utilize the Python 3 Runtime!<\/p>\n<p>That is all for this month, please let me know in the comments if this was beneficial. Also, as always, let me know what you would like to see next. Thank you for reading this Monthly Linux Tip!<\/p>\n"}],"authors":[{"ID":10252,"user_firstname":"Markus","user_lastname":"Walker","nickname":"MWalker","user_nicename":"mwalker","display_name":"Markus Walker","user_email":"MWalker@esri.com","user_url":"","user_registered":"2019-12-03 14:04:26","user_description":"Markus is a Product Engineer on the ArcGIS Enterprise team, where he specializes with Linux architectures.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/31161cb9-c3aa-493e-8ff2-5b3a3ff46361-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","card_image":false,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/ArcGIS-Enterprise-wide.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\"},\"author\":{\"name\":\"Markus Walker\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/457f3d786c7c12c3d37d57b3d6f2702f\"},\"headline\":\"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux\",\"datePublished\":\"2021-07-09T14:09:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\"},\"wordCount\":10,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"articleSection\":[\"Administration\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\",\"name\":\"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2021-07-09T14:09:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/457f3d786c7c12c3d37d57b3d6f2702f\",\"name\":\"Markus Walker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/31161cb9-c3aa-493e-8ff2-5b3a3ff46361-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/31161cb9-c3aa-493e-8ff2-5b3a3ff46361-213x200.jpg\",\"caption\":\"Markus Walker\"},\"description\":\"Markus is a Product Engineer on the ArcGIS Enterprise team, where he specializes with Linux architectures.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/mwalker\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux","og_locale":"en_US","og_type":"article","og_title":"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux"},"author":{"name":"Markus Walker","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/457f3d786c7c12c3d37d57b3d6f2702f"},"headline":"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux","datePublished":"2021-07-09T14:09:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"articleSection":["Administration"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux","name":"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2021-07-09T14:09:01+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/administration\/monthly-linux-tip-python-3-runtime-for-arcgis-server-on-linux#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Monthly Linux Tip: Python 3 Runtime for ArcGIS Server on Linux"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/457f3d786c7c12c3d37d57b3d6f2702f","name":"Markus Walker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/31161cb9-c3aa-493e-8ff2-5b3a3ff46361-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/31161cb9-c3aa-493e-8ff2-5b3a3ff46361-213x200.jpg","caption":"Markus Walker"},"description":"Markus is a Product Engineer on the ArcGIS Enterprise team, where he specializes with Linux architectures.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/mwalker"}]}},"text_date":"July 9, 2021","author_name":"Markus Walker","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/mwalker","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/04\/ArcGIS-Enterprise-wide.jpg","primary_product":"ArcGIS Enterprise","tag_data":[],"category_data":[{"term_id":37501,"name":"Administration","slug":"administration","term_group":0,"term_taxonomy_id":37501,"taxonomy":"category","description":"","parent":0,"count":427,"filter":"raw"}],"product_data":[{"term_id":36571,"name":"ArcGIS Enterprise","slug":"arcgis-enterprise","term_group":0,"term_taxonomy_id":36571,"taxonomy":"product","description":"","parent":0,"count":976,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-enterprise","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1289792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/10252"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1289792"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1289792\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1289792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1289792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1289792"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1289792"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1289792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}