)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"854947fac7a1ee8fef20d7cbe1c8bc3ad8cfb0b3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Added an parameter for neutron::agents::ml2::ovs to enable ovs-dpdk"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"puppet-vswitch will provide ovs and ovs with dpdk options."},{"line_number":10,"context_line":"ovs with dpdk has to be enabled only on compute nodes. Added"},{"line_number":11,"context_line":"and option to configure via templates to enable dpdk."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint tripleo-ovs-dpdk"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dada55a8_83c03f7e","line":10,"updated":"2016-07-22 14:28:51.000000000","message":"\"Added and option\" does not mean much. What are templates? Please remove any mention to TripleO (again).","commit_id":"9c867807c6cc309f3bc5c30336cb69028f47c982"}],"manifests/agents/ml2/ovs.pp":[{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"0598176059aed54abcb8d07db728eeff1499d1b1","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  $manage_vswitch             \u003d true,"},{"line_number":168,"context_line":"  $int_peer_patch_port        \u003d $::os_service_default,"},{"line_number":169,"context_line":"  $tun_peer_patch_port        \u003d $::os_service_default,"},{"line_number":170,"context_line":"  $datapath_type              \u003d $::os_service_default,"},{"line_number":171,"context_line":"  $vhostuser_socket_dir       \u003d $::os_service_default,"},{"line_number":172,"context_line":"  $ovsdb_interface            \u003d $::os_service_default,"},{"line_number":173,"context_line":"  $purge_config               \u003d false,"},{"line_number":174,"context_line":"  $enable_dpdk                \u003d false,"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"dada55a8_ef511a10","line":171,"range":{"start_line":170,"start_character":2,"end_line":171,"end_character":54},"updated":"2016-07-18 12:41:59.000000000","message":"Should we validate these variables value in case when enable_dpdk\u003dtrue?","commit_id":"7959e607d6d4638687f5c946e627833573d8a644"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"753d06a9af5badb7abbd62b832dadd4841ce244e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  $manage_vswitch             \u003d true,"},{"line_number":168,"context_line":"  $int_peer_patch_port        \u003d $::os_service_default,"},{"line_number":169,"context_line":"  $tun_peer_patch_port        \u003d $::os_service_default,"},{"line_number":170,"context_line":"  $datapath_type              \u003d $::os_service_default,"},{"line_number":171,"context_line":"  $vhostuser_socket_dir       \u003d $::os_service_default,"},{"line_number":172,"context_line":"  $ovsdb_interface            \u003d $::os_service_default,"},{"line_number":173,"context_line":"  $purge_config               \u003d false,"},{"line_number":174,"context_line":"  $enable_dpdk                \u003d false,"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"dada55a8_07a609c1","line":171,"range":{"start_line":170,"start_character":2,"end_line":171,"end_character":54},"in_reply_to":"dada55a8_ef511a10","updated":"2016-07-19 05:34:01.000000000","message":"What I understand is that, we need to validate if datapath_type and vhostuser_socket_dir are set  in case of enabling dpdk. I can add a failure message if both are not set.","commit_id":"7959e607d6d4638687f5c946e627833573d8a644"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"15c86580d46dbb22a90addde2db462dc1c1bcd4e","unresolved":false,"context_lines":[{"line_number":185,"context_line":"  include ::neutron::deps"},{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":"  if $manage_vswitch {"},{"line_number":188,"context_line":"    if $enable_dpdk and is_service_default($datapath_type) {"},{"line_number":189,"context_line":"      fail(\u0027Datapath type for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":190,"context_line":"    }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    if $enable_dpdk and is_service_default($vhostuser_socket_dir) {"},{"line_number":193,"context_line":"      fail(\u0027vhost user socket directory for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":"    if $enable_dpdk {"},{"line_number":196,"context_line":"      require ::vswitch::dpdk"},{"line_number":197,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"dada55a8_8128bc87","line":194,"range":{"start_line":188,"start_character":0,"end_line":194,"end_character":5},"updated":"2016-07-20 12:42:13.000000000","message":"This check can be placed out of \"if $manage_vswitch\" block. It can be also shortened to\n\nif $enable_dpdk and (is_service_default($datapath_type) or is_service_default($vhostuser_socket_dir))","commit_id":"d720688eb7e1296c2c8ad0c0ef06ac5b677df32f"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"0a05eb403ddf4e435aed2486ae1aa015befa6464","unresolved":false,"context_lines":[{"line_number":185,"context_line":"  include ::neutron::deps"},{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":"  if $manage_vswitch {"},{"line_number":188,"context_line":"    if $enable_dpdk and is_service_default($datapath_type) {"},{"line_number":189,"context_line":"      fail(\u0027Datapath type for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":190,"context_line":"    }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    if $enable_dpdk and is_service_default($vhostuser_socket_dir) {"},{"line_number":193,"context_line":"      fail(\u0027vhost user socket directory for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":"    if $enable_dpdk {"},{"line_number":196,"context_line":"      require ::vswitch::dpdk"},{"line_number":197,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"dada55a8_a1d4e0bc","line":194,"range":{"start_line":188,"start_character":0,"end_line":194,"end_character":5},"in_reply_to":"dada55a8_21c4705d","updated":"2016-07-20 12:51:47.000000000","message":"enable_dpdk with manage_vswitch\u003dfalse doesn\u0027t make sense, right? And it will be silently ignored, let\u0027s show some warning for this case. I got your point regarding error messages, thanks","commit_id":"d720688eb7e1296c2c8ad0c0ef06ac5b677df32f"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"7a9299294fc904a9c37145ff14e6ad3b6d676166","unresolved":false,"context_lines":[{"line_number":185,"context_line":"  include ::neutron::deps"},{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":"  if $manage_vswitch {"},{"line_number":188,"context_line":"    if $enable_dpdk and is_service_default($datapath_type) {"},{"line_number":189,"context_line":"      fail(\u0027Datapath type for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":190,"context_line":"    }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    if $enable_dpdk and is_service_default($vhostuser_socket_dir) {"},{"line_number":193,"context_line":"      fail(\u0027vhost user socket directory for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":"    if $enable_dpdk {"},{"line_number":196,"context_line":"      require ::vswitch::dpdk"},{"line_number":197,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"dada55a8_21c4705d","line":194,"range":{"start_line":188,"start_character":0,"end_line":194,"end_character":5},"in_reply_to":"dada55a8_8128bc87","updated":"2016-07-20 12:48:09.000000000","message":"I have test case to check if enable_dpdk \u003d true and manage_vswitch \u003d false, in which case, vswitch::dpdk call should not be included. Keep it out will fail this test case. Shall i remove the test case?\n\nIf shortened, a valid error message may not be possible. The error message will be generic like \"datapath type and vhost user sock dir must be set when DPDK is enabled\". For this reason only, i have placed it separate.","commit_id":"d720688eb7e1296c2c8ad0c0ef06ac5b677df32f"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"23f4e7527324aa0a7a5243d645ff57fd5051505e","unresolved":false,"context_lines":[{"line_number":185,"context_line":"  include ::neutron::deps"},{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":"  if $manage_vswitch {"},{"line_number":188,"context_line":"    if $enable_dpdk and is_service_default($datapath_type) {"},{"line_number":189,"context_line":"      fail(\u0027Datapath type for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":190,"context_line":"    }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    if $enable_dpdk and is_service_default($vhostuser_socket_dir) {"},{"line_number":193,"context_line":"      fail(\u0027vhost user socket directory for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":194,"context_line":"    }"},{"line_number":195,"context_line":"    if $enable_dpdk {"},{"line_number":196,"context_line":"      require ::vswitch::dpdk"},{"line_number":197,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"dada55a8_e15d3848","line":194,"range":{"start_line":188,"start_character":0,"end_line":194,"end_character":5},"in_reply_to":"dada55a8_a1d4e0bc","updated":"2016-07-20 12:53:33.000000000","message":"Done","commit_id":"d720688eb7e1296c2c8ad0c0ef06ac5b677df32f"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"4a58749cd153ab196dff56de289a63645fe18758","unresolved":false,"context_lines":[{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  if $enable_dpdk and ! $manage_vswitch {"},{"line_number":189,"context_line":"    warning(\u0027Enabling DPDK without manage vswitch does not have any effect\u0027)"},{"line_number":190,"context_line":"  }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  if $enable_dpdk and is_service_default($datapath_type) {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dada55a8_7ae44ae0","line":189,"updated":"2016-07-20 14:47:01.000000000","message":"then, we should fail, right?","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"8e8dfd88ab0af05ae65eb428107103aa9759e677","unresolved":false,"context_lines":[{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  if $enable_dpdk and ! $manage_vswitch {"},{"line_number":189,"context_line":"    warning(\u0027Enabling DPDK without manage vswitch does not have any effect\u0027)"},{"line_number":190,"context_line":"  }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  if $enable_dpdk and is_service_default($datapath_type) {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dada55a8_313f7988","line":189,"in_reply_to":"dada55a8_7ae44ae0","updated":"2016-07-21 05:31:47.000000000","message":"Basically it will not do any configuration, enable_dpdk will be ignored. But it is good if we fail and inform operator that this configuration is not expected. I will change to fail.","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"4a58749cd153ab196dff56de289a63645fe18758","unresolved":false,"context_lines":[{"line_number":190,"context_line":"  }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  if $enable_dpdk and is_service_default($datapath_type) {"},{"line_number":193,"context_line":"    fail(\u0027Datapath type for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":194,"context_line":"  }"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  if $enable_dpdk and is_service_default($vhostuser_socket_dir) {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dada55a8_dae576dc","line":193,"updated":"2016-07-20 14:47:01.000000000","message":"good","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"4a58749cd153ab196dff56de289a63645fe18758","unresolved":false,"context_lines":[{"line_number":194,"context_line":"  }"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  if $enable_dpdk and is_service_default($vhostuser_socket_dir) {"},{"line_number":197,"context_line":"    fail(\u0027vhost user socket directory for ovs agent must be set when DPDK is enabled\u0027)"},{"line_number":198,"context_line":"  }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  if $manage_vswitch {"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dada55a8_baea42aa","line":197,"updated":"2016-07-20 14:47:01.000000000","message":"good","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"4a58749cd153ab196dff56de289a63645fe18758","unresolved":false,"context_lines":[{"line_number":202,"context_line":"      require ::vswitch::dpdk"},{"line_number":203,"context_line":"    } else {"},{"line_number":204,"context_line":"      require ::vswitch::ovs"},{"line_number":205,"context_line":"    }"},{"line_number":206,"context_line":"  }"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dada55a8_1ad42eea","line":205,"updated":"2016-07-20 14:47:01.000000000","message":"good","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a644b9e8e08b552f7428892adca922d4c0fdceb9","unresolved":false,"context_lines":[{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  if $enable_dpdk and ! $manage_vswitch {"},{"line_number":189,"context_line":"    fail(\u0027Enabling DPDK without manage vswitch does not have any effect\u0027)"},{"line_number":190,"context_line":"  }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  if $enable_dpdk and is_service_default($datapath_type) {"}],"source_content_type":"text/x-puppet","patch_set":6,"id":"dada55a8_d2fd16b2","line":189,"updated":"2016-07-21 17:29:50.000000000","message":"good, now please add an unit test for it.","commit_id":"07569003fab1fd64826d6ec01576a0b71272424a"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"199191ab6c9fa57e40d440886bc7255f82c02670","unresolved":false,"context_lines":[{"line_number":186,"context_line":"  include ::neutron::params"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  if $enable_dpdk and ! $manage_vswitch {"},{"line_number":189,"context_line":"    fail(\u0027Enabling DPDK without manage vswitch does not have any effect\u0027)"},{"line_number":190,"context_line":"  }"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  if $enable_dpdk and is_service_default($datapath_type) {"}],"source_content_type":"text/x-puppet","patch_set":6,"id":"dada55a8_1d7323e9","line":189,"in_reply_to":"dada55a8_d2fd16b2","updated":"2016-07-22 08:26:03.000000000","message":"Done","commit_id":"07569003fab1fd64826d6ec01576a0b71272424a"}],"releasenotes/notes/enable-dpdk-2f34825bbad4e69e.yaml":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a644b9e8e08b552f7428892adca922d4c0fdceb9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added an configuration to enable DPDK with OVS."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"dada55a8_720eeae5","line":3,"updated":"2016-07-21 17:29:50.000000000","message":"Support configuration when DPDK is enabled with OVS.","commit_id":"07569003fab1fd64826d6ec01576a0b71272424a"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"199191ab6c9fa57e40d440886bc7255f82c02670","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added an configuration to enable DPDK with OVS."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"dada55a8_3d2427c5","line":3,"in_reply_to":"dada55a8_720eeae5","updated":"2016-07-22 08:26:03.000000000","message":"Done","commit_id":"07569003fab1fd64826d6ec01576a0b71272424a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b662269e9e241872f3281b7eb1222abb21c89373","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Support configuration when DPDK is enabled with OVS."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"dada55a8_0309efdd","line":3,"updated":"2016-07-22 14:29:41.000000000","message":"I don\u0027t understand, why don\u0027t we include ::vswitch::ovs if dpdk is enabled with OVS? can you explain?","commit_id":"9c867807c6cc309f3bc5c30336cb69028f47c982"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"30ec64f9309b65b9a09742bc7855ad8b18d069ea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Support configuration when DPDK is enabled with OVS."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"dada55a8_d96cdf38","line":3,"in_reply_to":"dada55a8_0309efdd","updated":"2016-07-22 17:41:04.000000000","message":"It is either openvswitch (vanilla) or openvswitch-dpdk package. For DPDK we need to have additional options to be setup before starting the service. But this is still evolving. This change with respect to OVS2.5 version. The roadmap is to support unified with run time options to enable DPDK with same package. \n\nSo from puppet-neutron prespective, it will be either ovs or ovs+dpdk. Here vswitch::ovs shall represent the vanilla ovs and vswitch::dpdk class shall represent ovs (vswitch) with dpdk. Any future changes will not affect puppet-neutron and it shall be handled in puppet-vswitch only.","commit_id":"9c867807c6cc309f3bc5c30336cb69028f47c982"}],"spec/classes/neutron_agents_ml2_ovs_spec.rb":[{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"5bff17e38bbad9f1c5bcae3a112307b2bf538b13","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        end"},{"line_number":303,"context_line":"      end"},{"line_number":304,"context_line":"    end"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"  end"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"  context \u0027on Debian platforms\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"dada55a8_bf123407","line":305,"updated":"2016-07-20 14:26:20.000000000","message":"Empty string","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"8e8dfd88ab0af05ae65eb428107103aa9759e677","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        end"},{"line_number":303,"context_line":"      end"},{"line_number":304,"context_line":"    end"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"  end"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"  context \u0027on Debian platforms\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"dada55a8_71df3169","line":305,"in_reply_to":"dada55a8_bf123407","updated":"2016-07-21 05:31:47.000000000","message":"Done","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"5bff17e38bbad9f1c5bcae3a112307b2bf538b13","unresolved":false,"context_lines":[{"line_number":360,"context_line":"      end"},{"line_number":361,"context_line":"    end"},{"line_number":362,"context_line":"  end"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"dada55a8_3fff64ab","line":363,"updated":"2016-07-20 14:26:20.000000000","message":"Empty string","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"8e8dfd88ab0af05ae65eb428107103aa9759e677","unresolved":false,"context_lines":[{"line_number":360,"context_line":"      end"},{"line_number":361,"context_line":"    end"},{"line_number":362,"context_line":"  end"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"dada55a8_91e2a52d","line":363,"in_reply_to":"dada55a8_3fff64ab","updated":"2016-07-21 05:31:47.000000000","message":"Done","commit_id":"1dcb5d689856a748f4387bad6e6dc1afa78a98a0"}]}
