{"action":"created","comment":{"url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/comments/58657983","id":58657983,"diff_hunk":"@@ -0,0 +1,85 @@\n+/**\n+ * Copyright 2016 Telefonica Investigación y Desarrollo, S.A.U\n+ *\n+ * This file is part of fiware-cygnus (FI-WARE project).\n+ *\n+ * fiware-cygnus is free software: you can redistribute it and/or modify it under the terms of the GNU Affero\n+ * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your\n+ * option) any later version.\n+ * fiware-cygnus is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the\n+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License\n+ * for more details.\n+ *\n+ * You should have received a copy of the GNU Affero General Public License along with fiware-cygnus. If not, see\n+ * http://www.gnu.org/licenses/.\n+ *\n+ * For those usages not covered by the GNU Affero General Public License please contact with iot_support at tid dot es\n+ */\n+package com.telefonica.iot.cygnus.backends.kafka;\n+\n+import com.telefonica.iot.cygnus.log.CygnusLogger;\n+import java.util.Properties;\n+import kafka.admin.AdminUtils;\n+import kafka.utils.ZKStringSerializer$;\n+import org.I0Itec.zkclient.ZkClient;\n+import org.apache.kafka.clients.producer.KafkaProducer;\n+import org.apache.kafka.clients.producer.ProducerConfig;\n+import org.apache.kafka.clients.producer.ProducerRecord;\n+import org.apache.kafka.common.serialization.StringSerializer;\n+\n+/**\n+ *\n+ * @author pcoello25\n+ */\n+\n+public class KafkaBackendImpl implements KafkaBackend {\n+    \n+    private KafkaProducer<String, String> kafkaProducer;\n+    private static final CygnusLogger LOGGER = new CygnusLogger(KafkaBackendImpl.class);\n+    private ZkClient zookeeperClient;\n+    private Properties properties;\n+    \n+    /**\n+     * Constructor.\n+     * @param brokerList\n+     * @param zookeperEndpoint\n+     */\n+    public KafkaBackendImpl(String brokerList, String zookeperEndpoint) {\n+        properties = new Properties();\n+        properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, brokerList);\n+        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());\n+        properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());\n+        \n+        // create the Zookeeper client\n+        zookeeperClient = new ZkClient(zookeperEndpoint, 10000, 10000, ZKStringSerializer$.MODULE$);","path":"src/main/java/com/telefonica/iot/cygnus/backends/kafka/KafkaBackendImpl.java","position":54,"original_position":54,"commit_id":"d1f18b14cd5e8057febfdebf0ff4b8be834ab8a3","original_commit_id":"d1f18b14cd5e8057febfdebf0ff4b8be834ab8a3","user":{"login":"frbattid","id":3865056,"avatar_url":"https://avatars.githubusercontent.com/u/3865056?v=3","gravatar_id":"","url":"https://api.github.com/users/frbattid","html_url":"https://github.com/frbattid","followers_url":"https://api.github.com/users/frbattid/followers","following_url":"https://api.github.com/users/frbattid/following{/other_user}","gists_url":"https://api.github.com/users/frbattid/gists{/gist_id}","starred_url":"https://api.github.com/users/frbattid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frbattid/subscriptions","organizations_url":"https://api.github.com/users/frbattid/orgs","repos_url":"https://api.github.com/users/frbattid/repos","events_url":"https://api.github.com/users/frbattid/events{/privacy}","received_events_url":"https://api.github.com/users/frbattid/received_events","type":"User","site_admin":false},"body":"The advantage of having a permanent client is that no time is expent in establishing connections again and again. The disadvantage is the permanent connection may be closed... Is there any means of checking if a connection to Zookeeper is alive? If not, I would suggest to establish de connection each time a client is aimed to be used (despite the time expent in creating them).","created_at":"2016-04-06T06:43:22Z","updated_at":"2016-04-06T06:43:22Z","html_url":"https://github.com/telefonicaid/fiware-cygnus/pull/914#discussion_r58657983","pull_request_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914","_links":{"self":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/comments/58657983"},"html":{"href":"https://github.com/telefonicaid/fiware-cygnus/pull/914#discussion_r58657983"},"pull_request":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914"}}},"pull_request":{"url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914","id":64922408,"html_url":"https://github.com/telefonicaid/fiware-cygnus/pull/914","diff_url":"https://github.com/telefonicaid/fiware-cygnus/pull/914.diff","patch_url":"https://github.com/telefonicaid/fiware-cygnus/pull/914.patch","issue_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/914","number":914,"state":"open","locked":false,"title":"hardening/912_creation_of_kafka_backend","user":{"login":"pcoello25","id":15360342,"avatar_url":"https://avatars.githubusercontent.com/u/15360342?v=3","gravatar_id":"","url":"https://api.github.com/users/pcoello25","html_url":"https://github.com/pcoello25","followers_url":"https://api.github.com/users/pcoello25/followers","following_url":"https://api.github.com/users/pcoello25/following{/other_user}","gists_url":"https://api.github.com/users/pcoello25/gists{/gist_id}","starred_url":"https://api.github.com/users/pcoello25/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pcoello25/subscriptions","organizations_url":"https://api.github.com/users/pcoello25/orgs","repos_url":"https://api.github.com/users/pcoello25/repos","events_url":"https://api.github.com/users/pcoello25/events{/privacy}","received_events_url":"https://api.github.com/users/pcoello25/received_events","type":"User","site_admin":false},"body":"* Fix issue #912 \r\n* 100% unit test passed: \r\n```\r\nResults : Tests run: 82, Failures: 0, Errors: 0, Skipped: 0\r\n```\r\n* e2e (unofficial) tests passed:\r\n```\r\nCreating persistence backend.\r\nStarting transaction (1459753989-342-0000000000)\r\nReceived data ({    \"subscriptionId\" : \"51c0ac9ed714fb3b37d7d5a8\",    \"originator\" : \"localhost\",    \"contextResponses\" : [        {            \"contextElement\" : {                \"attributes\" : [                    {                        \"name\" : \"attributeName1\",                        \"type\" : \"attributeType\",                       \"value\" : \"1.3\"                    },\t\t    {                        \"name\" : \"attributeName2\",                        \"type\" : \"attributeType\",                       \"value\" : \"36.5\"                    },\t\t    {\t\t\t\"name\" : \"attributeName3\",\t\t\t\"type\" : \"attributeType\",        \t       \"value\" : \"42.3\"\t\t    }                ],                \"type\" : \"entityType\",                \"isPattern\" : \"false\",                \"id\" : \"entityId\"            },            \"statusCode\" : {                \"code\" : \"200\",                \"reasonPhrase\" : \"OK\"            }        }    ]})\r\nChecking if topic 'fiwareservice_fiwareservicepath_entityId_entityType' already exists.\r\nCreating Topic.\r\nPersisting data at OrionKafkaSink. Topic (fiwareservice_fiwareservicepath_entityId_entityType), Data ({\"headers\":[{\"fiware-service\":\"fiwareservice\"},{\"fiware-servicePath\":\"/fiwareservicepath\"},{\"timestamp\":1459754668324}],\"body\":{\"attributes\":[{\"name\":\"attributeName1\",\"type\":\"attributeType\",\"value\":\"1.3\"},{\"name\":\"attributeName2\",\"type\":\"attributeType\",\"value\":\"36.5\"},{\"name\":\"attributeName3\",\"type\":\"attributeType\",\"value\":\"42.3\"}],\"type\":\"entityType\",\"isPattern\":\"false\",\"id\":\"entityId\"}})\r\nSending the record to Kafka\r\nFinishing transaction (1459753989-342-0000000000)\r\n```\r\n* Assignee @frbattid ","created_at":"2016-04-01T10:07:01Z","updated_at":"2016-04-06T06:43:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"56e2b6a757a20722e715d72350dbaa7a93d1034d","assignee":{"login":"frbattid","id":3865056,"avatar_url":"https://avatars.githubusercontent.com/u/3865056?v=3","gravatar_id":"","url":"https://api.github.com/users/frbattid","html_url":"https://github.com/frbattid","followers_url":"https://api.github.com/users/frbattid/followers","following_url":"https://api.github.com/users/frbattid/following{/other_user}","gists_url":"https://api.github.com/users/frbattid/gists{/gist_id}","starred_url":"https://api.github.com/users/frbattid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frbattid/subscriptions","organizations_url":"https://api.github.com/users/frbattid/orgs","repos_url":"https://api.github.com/users/frbattid/repos","events_url":"https://api.github.com/users/frbattid/events{/privacy}","received_events_url":"https://api.github.com/users/frbattid/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914/commits","review_comments_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914/comments","review_comment_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/comments{/number}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/914/comments","statuses_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/statuses/d1f18b14cd5e8057febfdebf0ff4b8be834ab8a3","head":{"label":"telefonicaid:hardening/912_creation_of_kafka_backend","ref":"hardening/912_creation_of_kafka_backend","sha":"d1f18b14cd5e8057febfdebf0ff4b8be834ab8a3","user":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=3","gravatar_id":"","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"repo":{"id":16607947,"name":"fiware-cygnus","full_name":"telefonicaid/fiware-cygnus","owner":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=3","gravatar_id":"","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/telefonicaid/fiware-cygnus","description":"Being part of FIWARE, Cygnus is a connector in charge of persisting Orion context data in certain configured third-party storages, creating a historical view of such data.","fork":false,"url":"https://api.github.com/repos/telefonicaid/fiware-cygnus","forks_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/forks","keys_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/keys{/key_id}","collaborators_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/teams","hooks_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/hooks","issue_events_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/events{/number}","events_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/events","assignees_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/assignees{/user}","branches_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/branches{/branch}","tags_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/tags","blobs_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/refs{/sha}","trees_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/trees{/sha}","statuses_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/statuses/{sha}","languages_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/languages","stargazers_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/stargazers","contributors_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/contributors","subscribers_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/subscribers","subscription_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/subscription","commits_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/commits{/sha}","git_commits_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/commits{/sha}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/comments{/number}","issue_comment_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/comments{/number}","contents_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/contents/{+path}","compare_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/compare/{base}...{head}","merges_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/merges","archive_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/downloads","issues_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues{/number}","pulls_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls{/number}","milestones_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/milestones{/number}","notifications_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/labels{/name}","releases_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/releases{/id}","deployments_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/deployments","created_at":"2014-02-07T07:57:41Z","updated_at":"2016-03-14T16:43:54Z","pushed_at":"2016-04-06T06:22:20Z","git_url":"git://github.com/telefonicaid/fiware-cygnus.git","ssh_url":"git@github.com:telefonicaid/fiware-cygnus.git","clone_url":"https://github.com/telefonicaid/fiware-cygnus.git","svn_url":"https://github.com/telefonicaid/fiware-cygnus","homepage":"","size":93929,"stargazers_count":21,"watchers_count":21,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":73,"forks":20,"open_issues":73,"watchers":21,"default_branch":"master"}},"base":{"label":"telefonicaid:develop","ref":"develop","sha":"7dd02cdad277cc9ba79a580f9febf6a64c74bf5e","user":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=3","gravatar_id":"","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"repo":{"id":16607947,"name":"fiware-cygnus","full_name":"telefonicaid/fiware-cygnus","owner":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=3","gravatar_id":"","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/telefonicaid/fiware-cygnus","description":"Being part of FIWARE, Cygnus is a connector in charge of persisting Orion context data in certain configured third-party storages, creating a historical view of such data.","fork":false,"url":"https://api.github.com/repos/telefonicaid/fiware-cygnus","forks_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/forks","keys_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/keys{/key_id}","collaborators_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/teams","hooks_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/hooks","issue_events_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/events{/number}","events_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/events","assignees_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/assignees{/user}","branches_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/branches{/branch}","tags_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/tags","blobs_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/refs{/sha}","trees_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/trees{/sha}","statuses_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/statuses/{sha}","languages_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/languages","stargazers_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/stargazers","contributors_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/contributors","subscribers_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/subscribers","subscription_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/subscription","commits_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/commits{/sha}","git_commits_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/git/commits{/sha}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/comments{/number}","issue_comment_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/comments{/number}","contents_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/contents/{+path}","compare_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/compare/{base}...{head}","merges_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/merges","archive_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/downloads","issues_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues{/number}","pulls_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls{/number}","milestones_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/milestones{/number}","notifications_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/labels{/name}","releases_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/releases{/id}","deployments_url":"https://api.github.com/repos/telefonicaid/fiware-cygnus/deployments","created_at":"2014-02-07T07:57:41Z","updated_at":"2016-03-14T16:43:54Z","pushed_at":"2016-04-06T06:22:20Z","git_url":"git://github.com/telefonicaid/fiware-cygnus.git","ssh_url":"git@github.com:telefonicaid/fiware-cygnus.git","clone_url":"https://github.com/telefonicaid/fiware-cygnus.git","svn_url":"https://github.com/telefonicaid/fiware-cygnus","homepage":"","size":93929,"stargazers_count":21,"watchers_count":21,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":73,"forks":20,"open_issues":73,"watchers":21,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914"},"html":{"href":"https://github.com/telefonicaid/fiware-cygnus/pull/914"},"issue":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/914"},"comments":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/issues/914/comments"},"review_comments":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914/comments"},"review_comment":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/pulls/914/commits"},"statuses":{"href":"https://api.github.com/repos/telefonicaid/fiware-cygnus/statuses/d1f18b14cd5e8057febfdebf0ff4b8be834ab8a3"}}}}