From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0576968782554795919==" MIME-Version: 1.0 From: Jonathan Richardson Subject: [SPDK] json conf file syntax Date: Fri, 08 Jan 2021 18:01:55 -0800 Message-ID: <3a641f7361b6b1082d53dace520f1ce8@mail.gmail.com> List-ID: To: spdk@lists.01.org --===============0576968782554795919== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi, I converted my conf file using config_converter.py but there is no Nvme section in the json file output. It also said the Transport section was invalid so I removed it. When I run nvmf_tgt it says "Unable to listen on transport RDMA. The transport must be created first." Is this related to the json parsing? Are there any json examples or docs that describe the format of the file? Thanks. root(a)bcm958742k:/usr/share/spdk/scripts# nvmf_tgt -m 0xf -c temp.json -L all Warning: printing stderr to console terminal without -q option specified. Suggest using --silence-noticelog to disable logging to stderr and monitor syslog, or redirect stderr to a file. (Delaying for 10 seconds...) [2021-01-09 01:58:56.026281] Starting SPDK v21.01-pre git sha1 8bbb8192a / DPDK 20.11.0 initialization... [2021-01-09 01:58:56.026341] [ DPDK EAL parameters: [2021-01-09 01:58:56.026355] nvmf [2021-01-09 01:58:56.026367] --no-shconf [2021-01-09 01:58:56.026379] -c 0xf [2021-01-09 01:58:56.026391] --log-level=3Dlib.eal:6 [2021-01-09 01:58:56.026403] --log-level=3Dlib.cryptodev:5 [2021-01-09 01:58:56.026416] --log-level=3Duser1:6 [2021-01-09 01:58:56.026429] --base-virtaddr=3D0x200000000000 [2021-01-09 01:58:56.026442] --match-allocations [2021-01-09 01:58:56.026454] --file-prefix=3Dspdk_pid704 [2021-01-09 01:58:56.026466] ] EAL: No available hugepages reported in hugepages-32768kB EAL: No available hugepages reported in hugepages-64kB EAL: No available hugepages reported in hugepages-1048576kB EAL: No legacy callbacks, legacy socket not created [2021-01-09 01:58:56.041236] app.c: 543:spdk_app_start: *NOTICE*: Total cores available: 4 [2021-01-09 01:58:56.149647] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (1, app_thread) [2021-01-09 01:58:56.279129] reactor.c: 699:reactor_run: *NOTICE*: Reactor started on core 1 [2021-01-09 01:58:56.279264] reactor.c: 435:get_rusage: *INFO*: Reactor 1: 2 voluntary context switches and 0 involuntary context switches in the last second. [2021-01-09 01:58:56.279603] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (2, reactor_1) [2021-01-09 01:58:56.279644] reactor.c: 699:reactor_run: *NOTICE*: Reactor started on core 2 [2021-01-09 01:58:56.279721] reactor.c: 435:get_rusage: *INFO*: Reactor 2: 2 voluntary context switches and 0 involuntary context switches in the last second. [2021-01-09 01:58:56.280002] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (3, reactor_2) [2021-01-09 01:58:56.280038] reactor.c: 699:reactor_run: *NOTICE*: Reactor started on core 3 [2021-01-09 01:58:56.280185] reactor.c: 435:get_rusage: *INFO*: Reactor 3: 1 voluntary context switches and 1 involuntary context switches in the last second. [2021-01-09 01:58:56.280400] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (4, reactor_3) [2021-01-09 01:58:56.280426] reactor.c: 699:reactor_run: *NOTICE*: Reactor started on core 0 [2021-01-09 01:58:56.280730] reactor.c: 435:get_rusage: *INFO*: Reactor 0: 10 voluntary context switches and 6 involuntary context switches in the last second. [2021-01-09 01:58:56.280833] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'accel' configuration [2021-01-09 01:58:56.280843] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'accel': configuration done. [2021-01-09 01:58:56.280854] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'interface' configuration [2021-01-09 01:58:56.280863] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'interface': configuration done. [2021-01-09 01:58:56.280873] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'net_framework' configuration [2021-01-09 01:58:56.280881] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'net_framework': configuration done. [2021-01-09 01:58:56.280891] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'bdev' configuration [2021-01-09 01:58:56.280907] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: bdev_set_options [2021-01-09 01:58:56.280916] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "bdev_io_pool_size": 65536, "bdev_io_cache_size": 256 } [2021-01-09 01:58:56.288750] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:56.288769] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: bdev_nvme_set_options [2021-01-09 01:58:56.288779] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "retry_count": 4, "timeout_us": 0, "nvme_adminq_poll_period_us": 1000000, "action_on_timeout": "none", "nvme_ioq_poll_period_us": 0 } [2021-01-09 01:58:56.296753] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:56.296769] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'bdev_nvme_set_hotplug' not allowed -> skipping [2021-01-09 01:58:56.296780] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'bdev': configuration done. [2021-01-09 01:58:56.296791] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'scsi' configuration [2021-01-09 01:58:56.296800] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'scsi': configuration done. [2021-01-09 01:58:56.296809] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'nvmf' configuration [2021-01-09 01:58:56.296820] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: nvmf_set_config [2021-01-09 01:58:56.296829] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "acceptor_poll_rate": 10000 } [2021-01-09 01:58:56.644456] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:56.644472] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: nvmf_set_max_subsystems [2021-01-09 01:58:56.644482] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "max_subsystems": 1024 } [2021-01-09 01:58:56.652472] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:56.652490] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'nvmf_create_subsystem' not allowed -> skipping [2021-01-09 01:58:56.652503] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'nvmf_subsystem_add_listener' not allowed -> skipping [2021-01-09 01:58:56.652515] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'nvmf_subsystem_add_ns' not allowed -> skipping [2021-01-09 01:58:56.652525] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'nvmf': configuration done. [2021-01-09 01:58:56.652535] json_config.c: 479:app_json_config_load_subsystem: *DEBUG*: No more entries for current state, calling 'framework_start_init' [2021-01-09 01:58:56.652549] accel_engine.c: 692:spdk_accel_engine_initialize: *NOTICE*: Accel engine initialized to use software engine. [2021-01-09 01:58:56.652571] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device sw_accel_engine (0xaaaabaca09c0) on thread app_thread [2021-01-09 01:58:56.652581] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device accel_module (0xaaaabaca09b0) on thread app_thread [2021-01-09 01:58:56.652595] bdev_raid.c: 949:raid_bdev_get_ctx_size: *DEBUG*: raid_bdev_get_ctx_size [2021-01-09 01:58:56.705891] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device bdev_mgr (0xaaaabaca0888) on thread app_thread [2021-01-09 01:58:56.705935] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device null_bdev (0xaaaabac9f0b0) on thread app_thread [2021-01-09 01:58:56.705946] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device bdev_nvme_poll_groups (0xaaaabac9f280) on thread app_thread [2021-01-09 01:58:56.705956] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device aio_module (0xaaaabac9ff80) on thread app_thread [2021-01-09 01:58:56.705974] thread.c:1376:spdk_io_device_register: *DEBUG*: Registering io_device nvmf_tgt (0xaaaae428cf50) on thread app_thread [2021-01-09 01:58:56.706039] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (5, nvmf_tgt_poll_group_0) [2021-01-09 01:58:56.706089] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (6, nvmf_tgt_poll_group_1) [2021-01-09 01:58:56.706107] thread.c:1543:spdk_get_io_channel: *DEBUG*: Get io_channel 0xffff6c000fe0 for io_device nvmf_tgt (0xaaaae428cf50) on thread nvmf_tgt_poll_group_1 refcnt 1 [2021-01-09 01:58:56.706127] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (7, nvmf_tgt_poll_group_2) [2021-01-09 01:58:56.706146] thread.c:1543:spdk_get_io_channel: *DEBUG*: Get io_channel 0xffff64000fe0 for io_device nvmf_tgt (0xaaaae428cf50) on thread nvmf_tgt_poll_group_2 refcnt 1 [2021-01-09 01:58:56.706506] thread.c: 318:spdk_thread_create: *DEBUG*: Allocating new thread (8, nvmf_tgt_poll_group_3) [2021-01-09 01:58:56.706535] thread.c:1543:spdk_get_io_channel: *DEBUG*: Get io_channel 0xffff68000fe0 for io_device nvmf_tgt (0xaaaae428cf50) on thread nvmf_tgt_poll_group_3 refcnt 1 [2021-01-09 01:58:56.706571] thread.c:1543:spdk_get_io_channel: *DEBUG*: Get io_channel 0xaaaae428f290 for io_device nvmf_tgt (0xaaaae428cf50) on thread nvmf_tgt_poll_group_0 refcnt 1 [2021-01-09 01:58:56.706635] json_config.c: 440:subsystem_init_done: *DEBUG*: 'framework_start_init' done - continuing configuration [2021-01-09 01:58:56.706650] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'accel' configuration [2021-01-09 01:58:56.706659] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'accel': configuration done. [2021-01-09 01:58:56.706670] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'interface' configuration [2021-01-09 01:58:56.706679] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'interface': configuration done. [2021-01-09 01:58:57.047572] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'net_framework' configuration [2021-01-09 01:58:57.047582] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'net_framework': configuration done. [2021-01-09 01:58:57.047602] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'bdev' configuration [2021-01-09 01:58:57.047618] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'bdev_set_options' not allowed -> skipping [2021-01-09 01:58:57.047633] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: bdev_nvme_set_options [2021-01-09 01:58:57.047643] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "retry_count": 4, "timeout_us": 0, "nvme_adminq_poll_period_us": 1000000, "action_on_timeout": "none", "nvme_ioq_poll_period_us": 0 } [2021-01-09 01:58:57.055618] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:57.055636] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: bdev_nvme_set_hotplug [2021-01-09 01:58:57.055645] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "enable": true, "period_us": 100000 } [2021-01-09 01:58:57.063639] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:57.063652] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'bdev': configuration done. [2021-01-09 01:58:57.063664] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'scsi' configuration [2021-01-09 01:58:57.063672] json_config.c: 359:app_json_config_load_subsystem_config_entry: *DEBUG*: Subsystem 'scsi': configuration done. [2021-01-09 01:58:57.063682] json_config.c: 496:app_json_config_load_subsystem: *DEBUG*: Loading subsystem 'nvmf' configuration [2021-01-09 01:58:57.063693] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'nvmf_set_config' not allowed -> skipping [2021-01-09 01:58:57.063705] json_config.c: 376:app_json_config_load_subsystem_config_entry: *DEBUG*: Method 'nvmf_set_max_subsystems' not allowed -> skipping [2021-01-09 01:58:57.063718] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: nvmf_create_subsystem [2021-01-09 01:58:57.063728] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "nqn": "nqn.2016-06.io.spdk:cnode0", "allow_any_host": true, "serial_number": "SPDK00000000000001", "model_number": "SPDK bdev Controller" } [2021-01-09 01:58:57.071586] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"result":true} [2021-01-09 01:58:57.071602] json_config.c: 383:app_json_config_load_subsystem_config_entry: *DEBUG*: method: nvmf_subsystem_add_listener [2021-01-09 01:58:57.071612] json_config.c: 392:app_json_config_load_subsystem_config_entry: *DEBUG*: params: { "listen_address": { "trtype": "RDMA", "adrfam": "IPv4", "trsvcid": "1023", "traddr": "192.168.1.10" }, "nqn": "nqn.2016-06.io.spdk:cnode0" } [2021-01-09 01:58:57.075606] nvmf.c: 613:spdk_nvmf_tgt_listen: *ERROR*: Unable to listen on transport RDMA. The transport must be created first. [2021-01-09 01:58:57.079610] jsonrpc_client.c: 95:jsonrpc_parse_response: *DEBUG*: JSON string is : {"jsonrpc":"2.0","id":0,"error":{"code":-32602,"message":"Invalid parameters"}} [2021-01-09 01:58:57.079627] json_config.c: 219:rpc_client_poller: *ERROR*: error response: { "code": -32602, "message": "Invalid parameters" } [2021-01-09 01:58:57.079734] json_config.c: 135:app_json_config_load_done: *DEBUG*: Config load finished with rc -22 --===============0576968782554795919== Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="temp.conf" W0dsb2JhbF0KICAjIFRyYWNlcG9pbnQgZ3JvdXAgbWFzayBmb3Igc3BkayB0cmFjZSBidWZmZXJz CiAgIyBEZWZhdWx0OiAweDAgKGFsbCB0cmFjZXBvaW50IGdyb3VwcyBkaXNhYmxlZCkKICAjIFNl dCB0byAweEZGRkZGRkZGRkZGRkZGRkYgdG8gZW5hYmxlIGFsbCB0cmFjZXBvaW50IGdyb3Vwcy4K ICAjVHBvaW50R3JvdXBNYXNrIDB4MAoKICAjIHN5c2xvZyBmYWNpbGl0eQogIExvZ0ZhY2lsaXR5 ICJsb2NhbDciCgojIERlZmluZSBOVk1mIHByb3RvY29sIGdsb2JhbCBvcHRpb25zCltOdm1mXQog ICMgU2V0IGhvdyBvZnRlbiB0aGUgYWNjZXB0b3IgcG9sbHMgZm9yIGluY29taW5nIGNvbm5lY3Rp b25zLiBUaGUgYWNjZXB0b3IgaXMgYWxzbwogICMgcmVzcG9uc2libGUgZm9yIHBvbGxpbmcgZXhp c3RpbmcgY29ubmVjdGlvbnMgdGhhdCBoYXZlIGdvbmUgaWRsZS4gMCBtZWFucyBjb250aW51b3Vz bHkKICAjIHBvbGwuIFVuaXRzIGluIG1pY3Jvc2Vjb25kcy4KICBBY2NlcHRvclBvbGxSYXRlIDEw MDAwCgpbTnZtZV0KICAjIE5WTWUgRGV2aWNlIFdoaXRlbGlzdAogICMgVXNlcnMgbWF5IHNwZWNp Znkgd2hpY2ggTlZNZSBkZXZpY2VzIHRvIGNsYWltIGJ5IHRoZWlyIHRyYW5zcG9ydCBpZC4KICAj IFNlZSBzcGRrX252bWVfdHJhbnNwb3J0X2lkX3BhcnNlKCkgaW4gc3Bkay9udm1lLmggZm9yIHRo ZSBjb3JyZWN0IGZvcm1hdC4KICAjIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIGFzc2lnbmVk IG5hbWUsIHdoaWNoIGNhbiBiZSByZWZlcmVuY2VkIGZyb20KICAjIG90aGVyIHNlY3Rpb25zIGlu IHRoZSBjb25maWd1cmF0aW9uIGZpbGUuIEZvciBOVk1lIGRldmljZXMsIGEgbmFtZXNwYWNlCiAg IyBpcyBhdXRvbWF0aWNhbGx5IGFwcGVuZGVkIHRvIGVhY2ggbmFtZSBpbiB0aGUgZm9ybWF0IDxZ b3VyTmFtZT5uWSwgd2hlcmUKICAjIFkgaXMgdGhlIE5TSUQgKHN0YXJ0cyBhdCAxKS4KICBUcmFu c3BvcnRJZCAidHJ0eXBlOlBDSWUgdHJhZGRyOjAwMDc6MDE6MDAuMCIgTnZtZTAKCiAgIyBFbmFi bGUgaGFuZGxpbmcgb2YgaG90cGx1ZyAocnVudGltZSBpbnNlcnQgYW5kIHJlbW92ZSkgZXZlbnRz CiAgSG90cGx1Z0VuYWJsZSBZZXMKICBIb3RwbHVnUG9sbFJhdGUgMTAwMDAwMAoKIyBNdWx0aXBs ZSBzdWJzeXN0ZW1zIGFyZSBhbGxvd2VkLgojIERpcmVjdCBjb250cm9sbGVyCltTdWJzeXN0ZW0w XQogIE5RTiBucW4uMjAxNi0wNi5pby5zcGRrOmNub2RlMAogIEFsbG93QW55SG9zdCBZZXMKICBM aXN0ZW4gUkRNQSAxOTIuMTY4LjEuMTA6MTAyMwogIFNOIFNQREswMDAwMDAwMDAwMDAwMQogIE5h bWVzcGFjZSBOdm1lMG4xCg== --===============0576968782554795919== Content-Type: application/json MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="temp.json" ewogICJzdWJzeXN0ZW1zIjogWwogICAgewogICAgICAic3Vic3lzdGVtIjogImFjY2VsIiwKICAg ICAgImNvbmZpZyI6IG51bGwKICAgIH0sCiAgICB7CiAgICAgICJzdWJzeXN0ZW0iOiAiaW50ZXJm YWNlIiwKICAgICAgImNvbmZpZyI6IG51bGwKICAgIH0sCiAgICB7CiAgICAgICJzdWJzeXN0ZW0i OiAibmV0X2ZyYW1ld29yayIsCiAgICAgICJjb25maWciOiBudWxsCiAgICB9LAogICAgewogICAg ICAic3Vic3lzdGVtIjogImJkZXYiLAogICAgICAiY29uZmlnIjogWwogICAgICAgIHsKICAgICAg ICAgICJwYXJhbXMiOiB7CiAgICAgICAgICAgICJiZGV2X2lvX3Bvb2xfc2l6ZSI6IDY1NTM2LAog ICAgICAgICAgICAiYmRldl9pb19jYWNoZV9zaXplIjogMjU2CiAgICAgICAgICB9LAogICAgICAg ICAgIm1ldGhvZCI6ICJiZGV2X3NldF9vcHRpb25zIgogICAgICAgIH0sCiAgICAgICAgewogICAg ICAgICAgInBhcmFtcyI6IHsKICAgICAgICAgICAgInJldHJ5X2NvdW50IjogNCwKICAgICAgICAg ICAgInRpbWVvdXRfdXMiOiAwLAogICAgICAgICAgICAibnZtZV9hZG1pbnFfcG9sbF9wZXJpb2Rf dXMiOiAxMDAwMDAwLAogICAgICAgICAgICAiYWN0aW9uX29uX3RpbWVvdXQiOiAibm9uZSIsCiAg ICAgICAgICAgICJudm1lX2lvcV9wb2xsX3BlcmlvZF91cyI6IDAKICAgICAgICAgIH0sCiAgICAg ICAgICAibWV0aG9kIjogImJkZXZfbnZtZV9zZXRfb3B0aW9ucyIKICAgICAgICB9LAogICAgICAg IHsKICAgICAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgICAgICJlbmFibGUiOiB0cnVlLAogICAg ICAgICAgICAicGVyaW9kX3VzIjogMTAwMDAwCiAgICAgICAgICB9LAogICAgICAgICAgIm1ldGhv ZCI6ICJiZGV2X252bWVfc2V0X2hvdHBsdWciCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAg ewogICAgICAic3Vic3lzdGVtIjogInNjc2kiLAogICAgICAiY29uZmlnIjogbnVsbAogICAgfSwK ICAgIHsKICAgICAgInN1YnN5c3RlbSI6ICJudm1mIiwKICAgICAgImNvbmZpZyI6IFsKICAgICAg ICB7CiAgICAgICAgICAicGFyYW1zIjogewogICAgICAgICAgICAiYWNjZXB0b3JfcG9sbF9yYXRl IjogMTAwMDAKICAgICAgICAgIH0sCiAgICAgICAgICAibWV0aG9kIjogIm52bWZfc2V0X2NvbmZp ZyIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgICAg ICJtYXhfc3Vic3lzdGVtcyI6IDEwMjQKICAgICAgICAgIH0sCiAgICAgICAgICAibWV0aG9kIjog Im52bWZfc2V0X21heF9zdWJzeXN0ZW1zIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAg InBhcmFtcyI6IHsKICAgICAgICAgICAgIm5xbiI6ICJucW4uMjAxNi0wNi5pby5zcGRrOmNub2Rl MCIsCiAgICAgICAgICAgICJhbGxvd19hbnlfaG9zdCI6IHRydWUsCiAgICAgICAgICAgICJzZXJp YWxfbnVtYmVyIjogIlNQREswMDAwMDAwMDAwMDAwMSIsCiAgICAgICAgICAgICJtb2RlbF9udW1i ZXIiOiAiU1BESyBiZGV2IENvbnRyb2xsZXIiCiAgICAgICAgICB9LAogICAgICAgICAgIm1ldGhv ZCI6ICJudm1mX2NyZWF0ZV9zdWJzeXN0ZW0iCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAg ICAicGFyYW1zIjogewogICAgICAgICAgICAibGlzdGVuX2FkZHJlc3MiOiB7CiAgICAgICAgICAg ICAgInRydHlwZSI6ICJSRE1BIiwKICAgICAgICAgICAgICAiYWRyZmFtIjogIklQdjQiLAogICAg ICAgICAgICAgICJ0cnN2Y2lkIjogIjEwMjMiLAogICAgICAgICAgICAgICJ0cmFkZHIiOiAiMTky LjE2OC4xLjEwIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibnFuIjogIm5xbi4yMDE2LTA2 LmlvLnNwZGs6Y25vZGUwIgogICAgICAgICAgfSwKICAgICAgICAgICJtZXRob2QiOiAibnZtZl9z dWJzeXN0ZW1fYWRkX2xpc3RlbmVyIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInBh cmFtcyI6IHsKICAgICAgICAgICAgIm5hbWVzcGFjZSI6IHsKICAgICAgICAgICAgICAibnNpZCI6 IDEsCiAgICAgICAgICAgICAgImJkZXZfbmFtZSI6ICJOdm1lMG4xIgogICAgICAgICAgICB9LAog ICAgICAgICAgICAibnFuIjogIm5xbi4yMDE2LTA2LmlvLnNwZGs6Y25vZGUwIgogICAgICAgICAg fSwKICAgICAgICAgICJtZXRob2QiOiAibnZtZl9zdWJzeXN0ZW1fYWRkX25zIgogICAgICAgIH0K ICAgICAgXQogICAgfSwKICAgIHsKICAgICAgInN1YnN5c3RlbSI6ICJuYmQiLAogICAgICAiY29u ZmlnIjogW10KICAgIH0sCiAgICB7CiAgICAgICJzdWJzeXN0ZW0iOiAidmhvc3QiLAogICAgICAi Y29uZmlnIjogW10KICAgIH0sCiAgICB7CiAgICAgICJzdWJzeXN0ZW0iOiAiaXNjc2kiLAogICAg ICAiY29uZmlnIjogWwogICAgICAgIHsKICAgICAgICAgICJtZXRob2QiOiAiaXNjc2lfc2V0X29w dGlvbnMiLAogICAgICAgICAgInBhcmFtcyI6IHsKICAgICAgICAgICAgImFsbG93X2R1cGxpY2F0 ZWRfaXNpZCI6IGZhbHNlLAogICAgICAgICAgICAiZGVmYXVsdF90aW1lMnJldGFpbiI6IDIwLAog ICAgICAgICAgICAibXV0dWFsX2NoYXAiOiBmYWxzZSwKICAgICAgICAgICAgIm1heF9jb25uZWN0 aW9uc19wZXJfc2Vzc2lvbiI6IDIsCiAgICAgICAgICAgICJub3BfdGltZW91dCI6IDYwLAogICAg ICAgICAgICAiZGlzYWJsZV9jaGFwIjogZmFsc2UsCiAgICAgICAgICAgICJyZXF1aXJlX2NoYXAi OiBmYWxzZSwKICAgICAgICAgICAgIm5vZGVfYmFzZSI6ICJpcW4uMjAxNi0wNi5pby5zcGRrIiwK ICAgICAgICAgICAgImNoYXBfZ3JvdXAiOiAwLAogICAgICAgICAgICAibWF4X3Nlc3Npb25zIjog MTI4LAogICAgICAgICAgICAiaW1tZWRpYXRlX2RhdGEiOiB0cnVlLAogICAgICAgICAgICAiZXJy b3JfcmVjb3ZlcnlfbGV2ZWwiOiAwLAogICAgICAgICAgICAibm9wX2luX2ludGVydmFsIjogMzAs CiAgICAgICAgICAgICJkZWZhdWx0X3RpbWUyd2FpdCI6IDIsCiAgICAgICAgICAgICJtYXhfcXVl dWVfZGVwdGgiOiA2NCwKICAgICAgICAgICAgImZpcnN0X2J1cnN0X2xlbmd0aCI6IDgxOTIKICAg ICAgICAgIH0KICAgICAgICB9CiAgICAgIF0KICAgIH0KICBdCn0K --===============0576968782554795919== Content-Type: application/pkcs7-signature MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" 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 vHaK84VoWnHQcLUkaMiN0X7XM5C6vIo8yhBhA6BaVus/5I1NTLPbKuo/kWuFjk2Fpoe66YLtTn3h RoVB1OA8ItIQN/sCAwEAAaOCAdcwggHTMA4GA1UdDwEB/wQEAwIFoDCBngYIKwYBBQUHAQEEgZEw gY4wTQYIKwYBBQUHMAKGQWh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzcGVy c29uYWxzaWduMnNoYTJnM29jc3AuY3J0MD0GCCsGAQUFBzABhjFodHRwOi8vb2NzcDIuZ2xvYmFs c2lnbi5jb20vZ3NwZXJzb25hbHNpZ24yc2hhMmczME0GA1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0 MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJBgNV HRMEAjAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NwZXJz b25hbHNpZ24yc2hhMmczLmNybDArBgNVHREEJDAigSBqb25hdGhhbi5yaWNoYXJkc29uQGJyb2Fk Y29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSMEGDAWgBRpcoJiMWeVRIV3kYDEBDZJ nXsLYTAdBgNVHQ4EFgQUa5kon5XwHZRSZkX5IOJpNb4vbw8wDQYJKoZIhvcNAQELBQADggEBAAaL wxrc2inAZlHxB3cfK6JxuQI5tZBg5stkNrv4jQ//mOyUsTYCAOip2b/YYrczxaRRBGrSAh7mNVfS pKyxl2zd/0jj5nwLv9xy78GL89xD/mVvd1gXADqQDTFjHNH3Hqg1lu3vtWq1tOFxdyrDsX8cYkUv 8MIM4iHV5TYM99qNGxKbj/ZNdcHYBO45IIFNG/nqe7nPkQ7ikilr/Y1+DGpVwesuxm9x2ZiRPlBN MtXVWdVK2QyHMXHbJoENTaUb8qPrzI4gwF9C9nrQBYIJx45s9AMLn/xozqDMyJXqFluyQjJdwv2+ BdZUGnCAtzSgrEru5ffGcSvpzK+qArTc7UYxggJvMIICawIBATBtMF0xCzAJBgNVBAYTAkJFMRkw FwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTMwMQYDVQQDEypHbG9iYWxTaWduIFBlcnNvbmFsU2ln biAyIENBIC0gU0hBMjU2IC0gRzMCDH8hIsPI4q59Cxj1yjANBglghkgBZQMEAgEFAKCB1DAvBgkq hkiG9w0BCQQxIgQg10nJIygIvbfwz4RJI0Ogmz/64iOzDv72z2gg/nUDgqQwGAYJKoZIhvcNAQkD MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjEwMTA5MDIwMTU4WjBpBgkqhkiG9w0BCQ8x XDBaMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMAsG CSqGSIb3DQEBCjALBgkqhkiG9w0BAQcwCwYJYIZIAWUDBAIBMA0GCSqGSIb3DQEBAQUABIIBAChg RMiWu7UvCeP+8CW28pAzgxaU9rVb+nJlkABZMcdCT28Wywf4DJGMft5X6++KsFGb2eyj2iKGL1W4 UKm+clFhCcrp/0m401wxb/lbZ6sTjsSB8Q4aBSrOIpun7lEgp38fFDJa/V1CymwjL5Gsbud+FTxN 3u22htOMS+fHzM8En97DfqDYH/FhkbNv2+vUWaHxieLMOi/XI4con3XEXJ66vKCZy3DfpWomKOuW oWTG0Ng9KXEE+vrPODjx2WZVJ9AOXpFOhWSHlUMFA8gPO3DatN/+TaaayW0br4x9GQFoYuIflxce /P+1V62dkEUirfxRwot1moCJGUbhYHNCdtI= --===============0576968782554795919==--