)]}'
{"specs/backlog/policy-default.rst":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"0fcc30665f4f874eb4d19e722df5c48714cbaaa8","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Default Policy File"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_6c16ebf2","line":7,"updated":"2015-04-03 00:15:05.000000000","message":"nit: remove extra \"\u003d\" to align with the text","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b1a9f87d447dd642bb99ccb061e4cdc150a14c3","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Default Policy File"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_39ddb4e0","line":7,"in_reply_to":"baa041b7_6c16ebf2","updated":"2015-05-18 00:23:12.000000000","message":"++","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"0fcc30665f4f874eb4d19e722df5c48714cbaaa8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When an endpoint needs to enforce policy, it has to get the policy rules file"},{"line_number":21,"context_line":"from somewhere.  Currently, most the OpenStack projects maintain a policy file"},{"line_number":22,"context_line":"in their own git repository.  In order to make it possible for an endpoint to"},{"line_number":23,"context_line":"fetch its policy from Keystone, Keystone needs to have an appropriate policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_ece0bbfc","line":20,"updated":"2015-04-03 00:15:05.000000000","message":"maybe remove \"rules\" to use the term \"policy file\" consistently","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"8409c945d187f1196d429d10dbd6295e53b5b6d9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When an endpoint needs to enforce policy, it has to get the policy rules file"},{"line_number":21,"context_line":"from somewhere.  Currently, most the OpenStack projects maintain a policy file"},{"line_number":22,"context_line":"in their own git repository.  In order to make it possible for an endpoint to"},{"line_number":23,"context_line":"fetch its policy from Keystone, Keystone needs to have an appropriate policy"},{"line_number":24,"context_line":"file available.  With the specification to merge the existing policy files into"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab921fb_1b46bfbf","line":21,"updated":"2015-04-29 18:41:20.000000000","message":"s/\"most the\"/\"most of the\"","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b1a9f87d447dd642bb99ccb061e4cdc150a14c3","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from somewhere.  Currently, most the OpenStack projects maintain a policy file"},{"line_number":22,"context_line":"in their own git repository.  In order to make it possible for an endpoint to"},{"line_number":23,"context_line":"fetch its policy from Keystone, Keystone needs to have an appropriate policy"},{"line_number":24,"context_line":"file available.  With the specification to merge the existing policy files into"},{"line_number":25,"context_line":"a single, namespaced policy file, there will be an obvious default policy file"},{"line_number":26,"context_line":"to return for services requesting policy from Keystone."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_19d8b8ee","line":24,"updated":"2015-05-18 00:23:12.000000000","message":"link to this spec?","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"0fcc30665f4f874eb4d19e722df5c48714cbaaa8","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Allow the definition of a default policy file to be returned from the Keystone"},{"line_number":32,"context_line":"policy GET API if there is no policy file that explicitly matches the service"},{"line_number":33,"context_line":"or endpoint."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"},{"line_number":36,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_4c89e725","line":33,"updated":"2015-04-03 00:15:05.000000000","message":"so the default policy file will contain all the rules across project?  Might worth mentioning what is the scope of the default policy file.","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"8409c945d187f1196d429d10dbd6295e53b5b6d9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Keep the policy files split into their component parts by service and require"},{"line_number":39,"context_line":"each service have a default policy file specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Security Impact"},{"line_number":42,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3acd31a7_2abc806b","line":39,"updated":"2015-04-29 18:41:20.000000000","message":"I like the proposed change better than the alternative.  Each service should focus on their service specific tasks as oppose to serving policy file.","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"ad97933a627f8edf84322177b7c705a0458965ed","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Should be performed in a single commit"},{"line_number":140,"context_line":"*  Create config option"},{"line_number":141,"context_line":"*  Add code to endpoint_filter extension to return default policy as needed"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_9108ff92","line":141,"updated":"2015-04-04 07:30:42.000000000","message":"do you mean endpoint_filter to endpoint_policy extension....I assume the latter?","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"8409c945d187f1196d429d10dbd6295e53b5b6d9","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Dependencies"},{"line_number":145,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* Real deployment depends on a viable unified policy file."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3acd31a7_2a04807c","line":147,"updated":"2015-04-29 18:41:20.000000000","message":"Keystone can server a default policy, but there is really no need of maintaining a physical unified policy file.  Per relational database spec currently under review, policy would be centralized in the database. The key is having a schema which unifies policies from different services together.","commit_id":"eeddb6e70f3c18d4b80f2705c46969cf2f75aadb"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"896d63a2bacd3280409d0f7edbeb7a625ab407d6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When an endpoint needs to enforce policy, it has to get the policy rules file"},{"line_number":21,"context_line":"from somewhere.  Currently, most the OpenStack projects maintain a policy file"},{"line_number":22,"context_line":"in their own git repository.  In order to make it possible for an endpoint to"},{"line_number":23,"context_line":"fetch its policy from Keystone, Keystone needs to have an appropriate policy"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_717746a0","line":20,"updated":"2015-05-22 21:30:44.000000000","message":"type: need \"of\" between \"most\" and  \"the\"","commit_id":"05bb5ca2073cbc60a5ea5149a7de54e917eaa976"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"896d63a2bacd3280409d0f7edbeb7a625ab407d6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"policy GET API if there is no policy file that explicitly matches the service"},{"line_number":34,"context_line":"or endpoint."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The Policy rules are all namespaced.  For example, the identity services has "},{"line_number":37,"context_line":"\"identity:create_user\". This means that multiple services can work off a single,"},{"line_number":38,"context_line":"unified policy file.  If the service requires a rule that does not"},{"line_number":39,"context_line":"match and explicit rule, it will use the default rule."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_117012a3","line":36,"updated":"2015-05-22 21:30:44.000000000","message":"de-redify","commit_id":"05bb5ca2073cbc60a5ea5149a7de54e917eaa976"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"00a07edd6197380bfa2571adda660ee90f5f3f1d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"or endpoint."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The Policy rules are all namespaced.  For example, the identity services has "},{"line_number":37,"context_line":"\"identity:create_user\". This means that multiple services can work off a single,"},{"line_number":38,"context_line":"unified policy file.  If the service requires a rule that does not"},{"line_number":39,"context_line":"match and explicit rule, it will use the default rule."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_16a12846","line":37,"updated":"2015-05-22 21:16:50.000000000","message":"updates to the rules will be made via API, right?","commit_id":"05bb5ca2073cbc60a5ea5149a7de54e917eaa976"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"0d3193bd25e5f14ec02cbd928966cd65a8901bc5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"The Policy rules are all namespaced.  For example, the identity services has "},{"line_number":37,"context_line":"\"identity:create_user\". This means that multiple services can work off a single,"},{"line_number":38,"context_line":"unified policy file.  If the service requires a rule that does not"},{"line_number":39,"context_line":"match and explicit rule, it will use the default rule."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Alternatives"},{"line_number":42,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_9629989d","line":39,"updated":"2015-05-22 21:23:06.000000000","message":"Will it be necessary to always download and parse the default policy file, when a rule does not exist?","commit_id":"05bb5ca2073cbc60a5ea5149a7de54e917eaa976"}],"specs/kilo/policy-default.rst":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"240a4295cc5a05b4305566794a63ae34382df0de","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Default Policy File"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"`bp policy-default \u003chttps://blueprints.launchpad.net/keystone/+spec/policy-default\u003e`_"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_916fce91","line":8,"updated":"2014-12-02 20:55:37.000000000","message":"have \u003d match title length:","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"240a4295cc5a05b4305566794a63ae34382df0de","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Allow the definition of a default policy file to be returned from the Keystone"},{"line_number":32,"context_line":"policy GET API if there is no policy file that explicitly matches the service"},{"line_number":33,"context_line":"or endpoint."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"},{"line_number":36,"context_line":"------------"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_f18f3221","line":34,"updated":"2014-12-02 20:55:37.000000000","message":"What does the REST request look like?","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"0418a8db59f26cfb533e22dbe662233583c21b20","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Allow the definition of a default policy file to be returned from the Keystone"},{"line_number":32,"context_line":"policy GET API if there is no policy file that explicitly matches the service"},{"line_number":33,"context_line":"or endpoint."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"},{"line_number":36,"context_line":"------------"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_7052c536","line":34,"in_reply_to":"5a890539_f18f3221","updated":"2014-12-06 04:36:52.000000000","message":"It will be the existing REST API for the endpoint_policy extension","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"240a4295cc5a05b4305566794a63ae34382df0de","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Does this change alter the API in a way that may impact security, such as"},{"line_number":51,"context_line":"  a new way to access sensitive information or a new way to login?"},{"line_number":52,"context_line":"* Yes, it provides a single unified policy file for most operations."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Does this change involve cryptography or hashing?"},{"line_number":55,"context_line":"* No"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_d1987677","line":52,"updated":"2014-12-02 20:55:37.000000000","message":"will this require a standardized naming convention? \n\n    identity:user_create\n    compute:server_create\n\nWill those naming changes be owned by this change?","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"0418a8db59f26cfb533e22dbe662233583c21b20","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Does this change alter the API in a way that may impact security, such as"},{"line_number":51,"context_line":"  a new way to access sensitive information or a new way to login?"},{"line_number":52,"context_line":"* Yes, it provides a single unified policy file for most operations."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Does this change involve cryptography or hashing?"},{"line_number":55,"context_line":"* No"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_902e51aa","line":52,"in_reply_to":"5a890539_d1987677","updated":"2014-12-06 04:36:52.000000000","message":"Yes, but that is covered by a different spec:  unified policy.  It is already the standard, but we\u0027ll have to do some cleanup to make it work everywhere/","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"240a4295cc5a05b4305566794a63ae34382df0de","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"This change alone should have no performance impact.  The larger policy files"},{"line_number":90,"context_line":"might lead to longer processing times of RBAC, but the changes should be"},{"line_number":91,"context_line":"immaterial."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Other Deployer Impact"},{"line_number":94,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_31ad3a85","line":91,"updated":"2014-12-02 20:55:37.000000000","message":"Do we have to be concerned about certain file sizes? How would we get around that type of issue? Nova\u0027s policy file is pushing 400 LOC. \n\nhttps://github.com/openstack/nova/blob/master/etc/nova/policy.json","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"0418a8db59f26cfb533e22dbe662233583c21b20","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"This change alone should have no performance impact.  The larger policy files"},{"line_number":90,"context_line":"might lead to longer processing times of RBAC, but the changes should be"},{"line_number":91,"context_line":"immaterial."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Other Deployer Impact"},{"line_number":94,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_f03dd5de","line":91,"in_reply_to":"5a890539_31ad3a85","updated":"2014-12-06 04:36:52.000000000","message":"I don\u0027t think so.  I think we are well within limits.  Once we do proper common rules we might actually be reducing the size of some of the policy files.","commit_id":"8a3ff87d7863ce254dafe1d5e3c0c6bdccbad1c1"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ebeee87e21cbe94c601792defba4fe4f9150fbdc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"To Set the default policy file, the user will PUT to:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"PUT /policies/{policy_id}/OS-ENDPOINT-POLICY/default"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This will create an association between the policy and all non specified"},{"line_number":40,"context_line":"services and endpoints. If another service is already specified as the default,"},{"line_number":41,"context_line":"this will replace that association. Any body supplied with this API will be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_0b1207b4","line":38,"updated":"2014-12-17 21:29:33.000000000","message":"So what prevents someone from hacking the system by pushing a default policy up that basically allows global access to all resources?  Couldn\u0027t this be easily used to enable unauthorized access to lots of resources?  It should be clearly discussed how this will be done without opening up a vulnerability here.","commit_id":"7f848d22458fb1ea8bbe067b657d5ba0123ca5e8"}]}
