€•v]Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ,/translations/zh_CN/maintainer/pull-requests”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/maintainer/pull-requests”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/maintainer/pull-requests”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/maintainer/pull-requests”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/maintainer/pull-requests”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/maintainer/pull-requests”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒCreating Pull Requests”h]”hŒCreating Pull Requests”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒF/var/lib/git/docbuild/linux/Documentation/maintainer/pull-requests.rst”h KubhŒ paragraph”“”)”}”(hŒ¿This chapter describes how maintainers can create and submit pull requests to other maintainers. This is useful for transferring changes from one maintainers tree to another maintainers tree.”h]”hŒ¿This chapter describes how maintainers can create and submit pull requests to other maintainers. This is useful for transferring changes from one maintainers tree to another maintainers tree.”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hXbThis document was written by Tobin C. Harding (who at that time, was not an experienced maintainer) primarily from comments made by Greg Kroah-Hartman and Linus Torvalds on LKML. Suggestions and fixes by Jonathan Corbet and Mauro Carvalho Chehab. Misrepresentation was unintentional but inevitable, please direct abuse to Tobin C. Harding .”h]”(hXUThis document was written by Tobin C. Harding (who at that time, was not an experienced maintainer) primarily from comments made by Greg Kroah-Hartman and Linus Torvalds on LKML. Suggestions and fixes by Jonathan Corbet and Mauro Carvalho Chehab. Misrepresentation was unintentional but inevitable, please direct abuse to Tobin C. Harding <”…””}”(hhÇhžhhŸNh NubhŒ reference”“”)”}”(hŒ me@tobin.cc”h]”hŒ me@tobin.cc”…””}”(hhÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:me@tobin.cc”uh1hÏhhÇubhŒ>.”…””}”(hhÇhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒOriginal email thread::”h]”hŒOriginal email thread:”…””}”(hhëhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhŒ literal_block”“”)”}”(hŒ:https://lore.kernel.org/r/20171114110500.GA21175@kroah.com”h]”hŒ:https://lore.kernel.org/r/20171114110500.GA21175@kroah.com”…””}”hhûsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hùhŸh¶h Khh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ Create Branch”h]”hŒ Create Branch”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj hžhhŸh¶h Kubh¸)”}”(hŒéTo start with you will need to have all the changes you wish to include in the pull request on a separate branch. Typically you will base this branch off of a branch in the developers tree whom you intend to send the pull request to.”h]”hŒéTo start with you will need to have all the changes you wish to include in the pull request on a separate branch. Typically you will base this branch off of a branch in the developers tree whom you intend to send the pull request to.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj hžhubh¸)”}”(hXKIn order to create the pull request you must first tag the branch that you have just created. It is recommended that you choose a meaningful tag name, in a way that you and others can understand, even after some time. A good practice is to include in the name an indicator of the subsystem of origin and the target kernel version.”h]”hXKIn order to create the pull request you must first tag the branch that you have just created. It is recommended that you choose a meaningful tag name, in a way that you and others can understand, even after some time. A good practice is to include in the name an indicator of the subsystem of origin and the target kernel version.”…””}”(hj*hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj hžhubh¸)”}”(hXGreg offers the following. A pull request with miscellaneous stuff for drivers/char, to be applied at the Kernel version 4.15-rc1 could be named as ``char-misc-4.15-rc1``. If such tag would be produced from a branch named ``char-misc-next``, you would be using the following command::”h]”(hŒ”Greg offers the following. A pull request with miscellaneous stuff for drivers/char, to be applied at the Kernel version 4.15-rc1 could be named as ”…””}”(hj8hžhhŸNh NubhŒliteral”“”)”}”(hŒ``char-misc-4.15-rc1``”h]”hŒchar-misc-4.15-rc1”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hj8ubhŒ4. If such tag would be produced from a branch named ”…””}”(hj8hžhhŸNh NubjA)”}”(hŒ``char-misc-next``”h]”hŒchar-misc-next”…””}”(hjThžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hj8ubhŒ+, you would be using the following command:”…””}”(hj8hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K!hj hžhubhú)”}”(hŒ,git tag -s char-misc-4.15-rc1 char-misc-next”h]”hŒ,git tag -s char-misc-4.15-rc1 char-misc-next”…””}”hjlsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h K&hj hžhubh¸)”}”(hŒÆthat will create a signed tag called ``char-misc-4.15-rc1`` based on the last commit in the ``char-misc-next`` branch, and sign it with your gpg key (see Documentation/maintainer/configure-git.rst).”h]”(hŒ%that will create a signed tag called ”…””}”(hjzhžhhŸNh NubjA)”}”(hŒ``char-misc-4.15-rc1``”h]”hŒchar-misc-4.15-rc1”…””}”(hj‚hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hjzubhŒ! based on the last commit in the ”…””}”(hjzhžhhŸNh NubjA)”}”(hŒ``char-misc-next``”h]”hŒchar-misc-next”…””}”(hj”hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hjzubhŒX branch, and sign it with your gpg key (see Documentation/maintainer/configure-git.rst).”…””}”(hjzhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K(hj hžhubh¸)”}”(hŒYLinus will only accept pull requests based on a signed tag. Other maintainers may differ.”h]”hŒYLinus will only accept pull requests based on a signed tag. Other maintainers may differ.”…””}”(hj¬hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K,hj hžhubh¸)”}”(hXÎWhen you run the above command ``git`` will drop you into an editor and ask you to describe the tag. In this case, you are describing a pull request, so outline what is contained here, why it should be merged, and what, if any, testing has been done. All of this information will end up in the tag itself, and then in the merge commit that the maintainer makes if/when they merge the pull request. So write it up well, as it will be in the kernel tree forever.”h]”(hŒWhen you run the above command ”…””}”(hjºhžhhŸNh NubjA)”}”(hŒ``git``”h]”hŒgit”…””}”(hjÂhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hjºubhX¨ will drop you into an editor and ask you to describe the tag. In this case, you are describing a pull request, so outline what is contained here, why it should be merged, and what, if any, testing has been done. All of this information will end up in the tag itself, and then in the merge commit that the maintainer makes if/when they merge the pull request. So write it up well, as it will be in the kernel tree forever.”…””}”(hjºhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K/hj hžhubh¸)”}”(hŒAs said by Linus::”h]”hŒAs said by Linus:”…””}”(hjÚhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K7hj hžhubhú)”}”(hXÕAnyway, at least to me, the important part is the *message*. I want to understand what I'm pulling, and why I should pull it. I also want to use that message as the message for the merge, so it should not just make sense to me, but make sense as a historical record too. Note that if there is something odd about the pull request, that should very much be in the explanation. If you're touching files that you don't maintain, explain _why_. I will see it in the diffstat anyway, and if you didn't mention it, I'll just be extra suspicious. And when you send me new stuff after the merge window (or even bug-fixes, but ones that look scary), explain not just what they do and why they do it, but explain the _timing_. What happened that this didn't go through the merge window.. I will take both what you write in the email pull request _and_ in the signed tag, so depending on your workflow, you can either describe your work in the signed tag (which will also automatically make it into the pull request email), or you can make the signed tag just a placeholder with nothing interesting in it, and describe the work later when you actually send me the pull request. And yes, I will edit the message. Partly because I tend to do just trivial formatting (the whole indentation and quoting etc), but partly because part of the message may make sense for me at pull time (describing the conflicts and your personal issues for sending it right now), but may not make sense in the context of a merge commit message, so I will try to make it all make sense. I will also fix any speeling mistaeks and bad grammar I notice, particularly for non-native speakers (but also for native ones ;^). But I may miss some, or even add some. Linus”h]”hXÕAnyway, at least to me, the important part is the *message*. I want to understand what I'm pulling, and why I should pull it. I also want to use that message as the message for the merge, so it should not just make sense to me, but make sense as a historical record too. Note that if there is something odd about the pull request, that should very much be in the explanation. If you're touching files that you don't maintain, explain _why_. I will see it in the diffstat anyway, and if you didn't mention it, I'll just be extra suspicious. And when you send me new stuff after the merge window (or even bug-fixes, but ones that look scary), explain not just what they do and why they do it, but explain the _timing_. What happened that this didn't go through the merge window.. I will take both what you write in the email pull request _and_ in the signed tag, so depending on your workflow, you can either describe your work in the signed tag (which will also automatically make it into the pull request email), or you can make the signed tag just a placeholder with nothing interesting in it, and describe the work later when you actually send me the pull request. And yes, I will edit the message. Partly because I tend to do just trivial formatting (the whole indentation and quoting etc), but partly because part of the message may make sense for me at pull time (describing the conflicts and your personal issues for sending it right now), but may not make sense in the context of a merge commit message, so I will try to make it all make sense. I will also fix any speeling mistaeks and bad grammar I notice, particularly for non-native speakers (but also for native ones ;^). But I may miss some, or even add some. Linus”…””}”hjèsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h K9hj hžhubh¸)”}”(hŒ(Greg gives, as an example pull request::”h]”hŒ'Greg gives, as an example pull request:”…””}”(hjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K[hj hžhubhú)”}”(hXChar/Misc patches for 4.15-rc1 Here is the big char/misc patch set for the 4.15-rc1 merge window. Contained in here is the normal set of new functions added to all of these crazy drivers, as well as the following brand new subsystems: - time_travel_controller: Finally a set of drivers for the latest time travel bus architecture that provides i/o to the CPU before it asked for it, allowing uninterrupted processing - relativity_shifters: due to the affect that the time_travel_controllers have on the overall system, there was a need for a new set of relativity shifter drivers to accommodate the newly formed black holes that would threaten to suck CPUs into them. This subsystem handles this in a way to successfully neutralize the problems. There is a Kconfig option to force these to be enabled when needed, so problems should not occur. All of these patches have been successfully tested in the latest linux-next releases, and the original problems that it found have all been resolved (apologies to anyone living near Canberra for the lack of the Kconfig options in the earlier versions of the linux-next tree creations.) Signed-off-by: Your-name-here ”h]”hXChar/Misc patches for 4.15-rc1 Here is the big char/misc patch set for the 4.15-rc1 merge window. Contained in here is the normal set of new functions added to all of these crazy drivers, as well as the following brand new subsystems: - time_travel_controller: Finally a set of drivers for the latest time travel bus architecture that provides i/o to the CPU before it asked for it, allowing uninterrupted processing - relativity_shifters: due to the affect that the time_travel_controllers have on the overall system, there was a need for a new set of relativity shifter drivers to accommodate the newly formed black holes that would threaten to suck CPUs into them. This subsystem handles this in a way to successfully neutralize the problems. There is a Kconfig option to force these to be enabled when needed, so problems should not occur. All of these patches have been successfully tested in the latest linux-next releases, and the original problems that it found have all been resolved (apologies to anyone living near Canberra for the lack of the Kconfig options in the earlier versions of the linux-next tree creations.) Signed-off-by: Your-name-here ”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h K]hj hžhubh¸)”}”(hŒˆThe tag message format is just like a git commit id. One line at the top for a "summary subject" and be sure to sign-off at the bottom.”h]”hŒŒThe tag message format is just like a git commit id. One line at the top for a “summary subject†and be sure to sign-off at the bottom.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kyhj hžhubh¸)”}”(hŒ[Now that you have a local signed tag, you need to push it up to where it can be retrieved::”h]”hŒZNow that you have a local signed tag, you need to push it up to where it can be retrieved:”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K|hj hžhubhú)”}”(hŒ"git push origin char-misc-4.15-rc1”h]”hŒ"git push origin char-misc-4.15-rc1”…””}”hj.sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h Khj hžhubeh}”(h]”Œ create-branch”ah ]”h"]”Œ create branch”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒCreate Pull Request”h]”hŒCreate Pull Request”…””}”(hjGhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjDhžhhŸh¶h Kƒubh¸)”}”(hX]The last thing to do is create the pull request message. ``git`` handily will do this for you with the ``git request-pull`` command, but it needs a bit of help determining what you want to pull, and on what to base the pull against (to show the correct changes to be pulled and the diffstat). The following command(s) will generate a pull request::”h]”(hŒ:The last thing to do is create the pull request message. ”…””}”(hjUhžhhŸNh NubjA)”}”(hŒ``git``”h]”hŒgit”…””}”(hj]hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hjUubhŒ' handily will do this for you with the ”…””}”(hjUhžhhŸNh NubjA)”}”(hŒ``git request-pull``”h]”hŒgit request-pull”…””}”(hjohžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hjUubhŒà command, but it needs a bit of help determining what you want to pull, and on what to base the pull against (to show the correct changes to be pulled and the diffstat). The following command(s) will generate a pull request:”…””}”(hjUhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K…hjDhžhubhú)”}”(hŒngit request-pull master git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/ char-misc-4.15-rc1”h]”hŒngit request-pull master git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/ char-misc-4.15-rc1”…””}”hj‡sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h K‹hjDhžhubh¸)”}”(hŒQuoting Greg::”h]”hŒ Quoting Greg:”…””}”(hj•hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KhjDhžhubhú)”}”(hXÏThis is asking git to compare the difference from the 'char-misc-4.15-rc1' tag location, to the head of the 'master' branch (which in my case points to the last location in Linus's tree that I diverged from, usually a -rc release) and to use the git:// protocol to pull from. If you wish to use https://, that can be used here instead as well (but note that some people behind firewalls will have problems with https git pulls). If the char-misc-4.15-rc1 tag is not present in the repo that I am asking to be pulled from, git will complain saying it is not there, a handy way to remember to actually push it to a public location. The output of 'git request-pull' will contain the location of the git tree and specific tag to pull from, and the full text description of that tag (which is why you need to provide good information in that tag). It will also create a diffstat of the pull request, and a shortlog of the individual commits that the pull request will provide.”h]”hXÏThis is asking git to compare the difference from the 'char-misc-4.15-rc1' tag location, to the head of the 'master' branch (which in my case points to the last location in Linus's tree that I diverged from, usually a -rc release) and to use the git:// protocol to pull from. If you wish to use https://, that can be used here instead as well (but note that some people behind firewalls will have problems with https git pulls). If the char-misc-4.15-rc1 tag is not present in the repo that I am asking to be pulled from, git will complain saying it is not there, a handy way to remember to actually push it to a public location. The output of 'git request-pull' will contain the location of the git tree and specific tag to pull from, and the full text description of that tag (which is why you need to provide good information in that tag). It will also create a diffstat of the pull request, and a shortlog of the individual commits that the pull request will provide.”…””}”hj£sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h KhjDhžhubh¸)”}”(hXLinus responded that he tends to prefer the ``git://`` protocol. Other maintainers may have different preferences. Also, note that if you are creating pull requests without a signed tag then ``https://`` may be a better choice. Please see the original thread for the full discussion.”h]”(hŒ,Linus responded that he tends to prefer the ”…””}”(hj±hžhhŸNh NubjA)”}”(hŒ ``git://``”h]”hŒgit://”…””}”(hj¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hj±ubhŒ‰ protocol. Other maintainers may have different preferences. Also, note that if you are creating pull requests without a signed tag then ”…””}”(hj±hžhhŸNh NubjA)”}”(hŒ ``https://``”h]”hŒhttps://”…””}”(hjËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j@hj±ubhŒP may be a better choice. Please see the original thread for the full discussion.”…””}”(hj±hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K¢hjDhžhubeh}”(h]”Œcreate-pull-request”ah ]”h"]”Œcreate pull request”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kƒubh¢)”}”(hhh]”(h§)”}”(hŒSubmit Pull Request”h]”hŒSubmit Pull Request”…””}”(hjîhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjëhžhhŸh¶h K©ubh¸)”}”(hŒéA pull request is submitted in the same way as an ordinary patch. Send as inline email to the maintainer and CC LKML and any sub-system specific lists if required. Pull requests to Linus typically have a subject line something like::”h]”hŒèA pull request is submitted in the same way as an ordinary patch. Send as inline email to the maintainer and CC LKML and any sub-system specific lists if required. Pull requests to Linus typically have a subject line something like:”…””}”(hjühžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K«hjëhžhubhú)”}”(hŒ,[GIT PULL] changes for v4.15-rc1”h]”hŒ,[GIT PULL] changes for v4.15-rc1”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1hùhŸh¶h K°hjëhžhubeh}”(h]”Œsubmit-pull-request”ah ]”h"]”Œsubmit pull request”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K©ubeh}”(h]”Œcreating-pull-requests”ah ]”h"]”Œcreating pull requests”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jKŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j%j"jAj>jèjåjjuŒ nametypes”}”(j%‰jA‰jè‰j‰uh}”(j"h£j>j jåjDjjëuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.