€•ƒiŒ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”Œ8/translations/zh_CN/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/zh_TW/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/it_IT/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/ja_JP/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/ko_KR/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/pt_BR/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ8/translations/sp_SP/devicetree/bindings/dts-coding-style”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒR/var/lib/git/docbuild/linux/Documentation/devicetree/bindings/dts-coding-style.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ%Devicetree Sources (DTS) Coding Style”h]”hŒ%Devicetree Sources (DTS) Coding Style”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒãWhen writing Devicetree Sources (DTS) please observe below guidelines. They should be considered complementary to any rules expressed already in the Devicetree Specification and the dtc compiler (including W=1 and W=2 builds).”h]”hŒãWhen writing Devicetree Sources (DTS) please observe below guidelines. They should be considered complementary to any rules expressed already in the Devicetree Specification and the dtc compiler (including W=1 and W=2 builds).”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KhhÊh²hubhŞ)”}”(hŒlIndividual architectures and subarchitectures can define additional rules, making the coding style stricter.”h]”hŒlIndividual architectures and subarchitectures can define additional rules, making the coding style stricter.”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K hhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒNaming and Valid Characters”h]”hŒNaming and Valid Characters”…””}”(hhşh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhûh²hh³hÇh´KubhŞ)”}”(hŒ¬The Devicetree Specification allows a broad range of characters in node and property names, but this coding style narrows the range down to achieve better code readability.”h]”hŒ¬The Devicetree Specification allows a broad range of characters in node and property names, but this coding style narrows the range down to achieve better code readability.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Khhûh²hubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒxNode and property names can use only the following characters: * Lowercase characters: [a-z] * Digits: [0-9] * Dash: - ”h]”(hŞ)”}”(hŒ>Node and property names can use only the following characters:”h]”hŒ>Node and property names can use only the following characters:”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Khj!ubhŒ bullet_list”“”)”}”(hhh]”(j )”}”(hŒLowercase characters: [a-z]”h]”hŞ)”}”(hj:h]”hŒLowercase characters: [a-z]”…””}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Khj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubj )”}”(hŒ Digits: [0-9]”h]”hŞ)”}”(hjQh]”hŒ Digits: [0-9]”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubj )”}”(hŒDash: - ”h]”hŞ)”}”(hŒDash: -”h]”hŒDash: -”…””}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Khjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1j3h³hÇh´Khj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³Nh´Nubj )”}”(hŒmLabels can use only the following characters: * Lowercase characters: [a-z] * Digits: [0-9] * Underscore: _ ”h]”(hŞ)”}”(hŒ-Labels can use only the following characters:”h]”hŒ-Labels can use only the following characters:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KhjŒubj4)”}”(hhh]”(j )”}”(hŒLowercase characters: [a-z]”h]”hŞ)”}”(hj£h]”hŒLowercase characters: [a-z]”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Khj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj )”}”(hŒ Digits: [0-9]”h]”hŞ)”}”(hjºh]”hŒ Digits: [0-9]”…””}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Khj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj )”}”(hŒUnderscore: _ ”h]”hŞ)”}”(hŒ Underscore: _”h]”hŒ Underscore: _”…””}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”j„j…uh1j3h³hÇh´KhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³Nh´Nubj )”}”(hŒzUnless a bus defines differently, unit addresses shall use lowercase hexadecimal digits, without leading zeros (padding). ”h]”hŞ)”}”(hŒyUnless a bus defines differently, unit addresses shall use lowercase hexadecimal digits, without leading zeros (padding).”h]”hŒyUnless a bus defines differently, unit addresses shall use lowercase hexadecimal digits, without leading zeros (padding).”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K"hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )”}”(hŒsHex values in properties, e.g. "reg", shall use lowercase hex. The address part can be padded with leading zeros. ”h]”hŞ)”}”(hŒrHex values in properties, e.g. "reg", shall use lowercase hex. The address part can be padded with leading zeros.”h]”hŒvHex values in properties, e.g. “regâ€, shall use lowercase hex. The address part can be padded with leading zeros.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K%hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jhhûh²hh³hÇh´KubhŞ)”}”(hŒ Example::”h]”hŒExample:”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K(hhûh²hubhŒ literal_block”“”)”}”(hŒ’gpi_dma2: dma-controller@a00000 { compatible = "qcom,sm8550-gpi-dma", "qcom,sm6350-gpi-dma"; reg = <0x0 0x00a00000 0x0 0x60000>; }”h]”hŒ’gpi_dma2: dma-controller@a00000 { compatible = "qcom,sm8550-gpi-dma", "qcom,sm6350-gpi-dma"; reg = <0x0 0x00a00000 0x0 0x60000>; }”…””}”hj>sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j<h³hÇh´K*hhûh²hubeh}”(h]”Œnaming-and-valid-characters”ah ]”h"]”Œnaming and valid characters”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒOrder of Nodes”h]”hŒOrder of Nodes”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjTh²hh³hÇh´K0ubj)”}”(hhh]”(j )”}”(hXNodes on any bus, thus using unit addresses for children, shall be ordered by unit address in ascending order. Alternatively for some subarchitectures, nodes of the same type can be grouped together, e.g. all I2C controllers one after another even if this breaks unit address ordering. ”h]”hŞ)”}”(hXNodes on any bus, thus using unit addresses for children, shall be ordered by unit address in ascending order. Alternatively for some subarchitectures, nodes of the same type can be grouped together, e.g. all I2C controllers one after another even if this breaks unit address ordering.”h]”hXNodes on any bus, thus using unit addresses for children, shall be ordered by unit address in ascending order. Alternatively for some subarchitectures, nodes of the same type can be grouped together, e.g. all I2C controllers one after another even if this breaks unit address ordering.”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K2hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj )”}”(hŒÖNodes without unit addresses shall be ordered alpha-numerically by the node name. For a few node types, they can be ordered by the main property, e.g. pin configuration states ordered by value of "pins" property. ”h]”hŞ)”}”(hŒÕNodes without unit addresses shall be ordered alpha-numerically by the node name. For a few node types, they can be ordered by the main property, e.g. pin configuration states ordered by value of "pins" property.”h]”hŒÙNodes without unit addresses shall be ordered alpha-numerically by the node name. For a few node types, they can be ordered by the main property, e.g. pin configuration states ordered by value of “pins†property.”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K8hj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeh²hh³hÇh´Nubj )”}”(hŒ¼When extending nodes in the board DTS via &label, the entries shall be ordered either alpha-numerically or by keeping the order from DTSI, where the choice depends on the subarchitecture. ”h]”hŞ)”}”(hŒ»When extending nodes in the board DTS via &label, the entries shall be ordered either alpha-numerically or by keeping the order from DTSI, where the choice depends on the subarchitecture.”h]”hŒ»When extending nodes in the board DTS via &label, the entries shall be ordered either alpha-numerically or by keeping the order from DTSI, where the choice depends on the subarchitecture.”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K; ranges = <0x0 0x0 0x06789abc 0x1000>; #dma-cells = <1>; clocks = <&clock_controller 0>, <&clock_controller 1>; clock-names = "bus", "host"; #address-cells = <1>; #size-cells = <1>; vendor,custom-property = <2>; status = "disabled"; child_node: child-class@100 { reg = <0x100 0x200>; /* ... */ }; }; /* Board DTS */ &device_node { vdd-0v9-supply = <&board_vreg1>; vdd-1v8-supply = <&board_vreg4>; vdd-3v3-supply = <&board_vreg2>; vdd-12v-supply = <&board_vreg3>; status = "okay"; }”h]”hX/* SoC DTSI */ device_node: device-class@6789abc { compatible = "vendor,device"; reg = <0x0 0x06789abc 0x0 0xa123>; ranges = <0x0 0x0 0x06789abc 0x1000>; #dma-cells = <1>; clocks = <&clock_controller 0>, <&clock_controller 1>; clock-names = "bus", "host"; #address-cells = <1>; #size-cells = <1>; vendor,custom-property = <2>; status = "disabled"; child_node: child-class@100 { reg = <0x100 0x200>; /* ... */ }; }; /* Board DTS */ &device_node { vdd-0v9-supply = <&board_vreg1>; vdd-1v8-supply = <&board_vreg4>; vdd-3v3-supply = <&board_vreg2>; vdd-12v-supply = <&board_vreg3>; status = "okay"; }”…””}”hj<sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j<h³hÇh´Khjèh²hubeh}”(h]”Œ"order-of-properties-in-device-node”ah ]”h"]”Œ"order of properties in device node”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KqubhÉ)”}”(hhh]”(hÎ)”}”(hŒIndentation and wrapping”h]”hŒIndentation and wrapping”…””}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjRh²hh³hÇh´K¯ubj)”}”(hhh]”(j )”}”(hŒSUse indentation and wrap lines according to Documentation/process/coding-style.rst.”h]”hŞ)”}”(hŒSUse indentation and wrap lines according to Documentation/process/coding-style.rst.”h]”hŒSUse indentation and wrap lines according to Documentation/process/coding-style.rst.”…””}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K±hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjch²hh³hÇh´Nubj )”}”(hŒdEach entry in arrays with multiple cells, e.g. "reg" with two IO addresses, shall be enclosed in <>.”h]”hŞ)”}”(hŒdEach entry in arrays with multiple cells, e.g. "reg" with two IO addresses, shall be enclosed in <>.”h]”hŒhEach entry in arrays with multiple cells, e.g. “reg†with two IO addresses, shall be enclosed in <>.”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´K³hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjch²hh³hÇh´Nubj )”}”(hŒëFor arrays spanning across lines, it is preferred to split on item boundary and align the continued entries with opening < from the first line. Usually avoid splitting individual items unless they significantly exceed line wrap limit. ”h]”hŞ)”}”(hŒêFor arrays spanning across lines, it is preferred to split on item boundary and align the continued entries with opening < from the first line. Usually avoid splitting individual items unless they significantly exceed line wrap limit.”h]”hŒêFor arrays spanning across lines, it is preferred to split on item boundary and align the continued entries with opening < from the first line. Usually avoid splitting individual items unless they significantly exceed line wrap limit.”…””}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´Kµhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjch²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j)j*j+hj,j-uh1jhjRh²hh³hÇh´K±ubhŞ)”}”(hŒ Example::”h]”hŒExample:”…””}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KºhjRh²hubj=)”}”(hXˆthermal-sensor@c271000 { compatible = "qcom,sm8550-tsens", "qcom,tsens-v2"; reg = <0x0 0x0c271000 0x0 0x1000>, <0x0 0x0c222000 0x0 0x1000>; /* Lines exceeding coding style line wrap limit: */ interconnects = <&aggre1_noc MASTER_USB3_0 0 &mc_virt SLAVE_EBI1 0>, <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_0 0>; };”h]”hXˆthermal-sensor@c271000 { compatible = "qcom,sm8550-tsens", "qcom,tsens-v2"; reg = <0x0 0x0c271000 0x0 0x1000>, <0x0 0x0c222000 0x0 0x1000>; /* Lines exceeding coding style line wrap limit: */ interconnects = <&aggre1_noc MASTER_USB3_0 0 &mc_virt SLAVE_EBI1 0>, <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_0 0>; };”…””}”hjÂsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j<h³hÇh´K¼hjRh²hubeh}”(h]”Œindentation-and-wrapping”ah ]”h"]”Œindentation and wrapping”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K¯ubhÉ)”}”(hhh]”(hÎ)”}”(hŒOrganizing DTSI and DTS”h]”hŒOrganizing DTSI and DTS”…””}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjØh²hh³hÇh´KÆubhŞ)”}”(hŒ°The DTSI and DTS files shall be organized in a way representing the common, reusable parts of hardware. Typically, this means organizing DTSI and DTS files into several files:”h]”hŒ°The DTSI and DTS files shall be organized in a way representing the common, reusable parts of hardware. Typically, this means organizing DTSI and DTS files into several files:”…””}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KÈhjØh²hubj)”}”(hhh]”(j )”}”(hŒXDTSI with contents of the entire SoC, without nodes for hardware not present on the SoC.”h]”hŞ)”}”(hŒXDTSI with contents of the entire SoC, without nodes for hardware not present on the SoC.”h]”hŒXDTSI with contents of the entire SoC, without nodes for hardware not present on the SoC.”…””}”(hjşh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KÌhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷h²hh³hÇh´Nubj )”}”(hŒaIf applicable: DTSI with common or re-usable parts of the hardware, e.g. entire System-on-Module.”h]”hŞ)”}”(hŒaIf applicable: DTSI with common or re-usable parts of the hardware, e.g. entire System-on-Module.”h]”hŒaIf applicable: DTSI with common or re-usable parts of the hardware, e.g. entire System-on-Module.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KÎhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷h²hh³hÇh´Nubj )”}”(hŒDTS representing the board. ”h]”hŞ)”}”(hŒDTS representing the board.”h]”hŒDTS representing the board.”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KĞhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j)j*j+hj,j-uh1jhjØh²hh³hÇh´KÌubhŞ)”}”(hXHardware components that are present on the board shall be placed in the board DTS, not in the SoC or SoM DTSI. A partial exception is a common external reference SoC input clock, which could be coded as a fixed-clock in the SoC DTSI with its frequency provided by each board DTS.”h]”hXHardware components that are present on the board shall be placed in the board DTS, not in the SoC or SoM DTSI. A partial exception is a common external reference SoC input clock, which could be coded as a fixed-clock in the SoC DTSI with its frequency provided by each board DTS.”…””}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hİh³hÇh´KÒhjØh²hubeh}”(h]”Œorganizing-dtsi-and-dts”ah ]”h"]”Œorganizing dtsi and dts”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KÆubeh}”(h]”Œ#devicetree-sources-dts-coding-style”ah ]”h"]”Œ%devicetree sources (dts) coding style”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”j‰Œ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”}”(jcj`jQjNjåjâjOjLjÕjÒj[jXuŒ nametypes”}”(jc‰jQ‰jå‰jO‰jÕ‰j[‰uh}”(j`hÊjNhûjâjTjLjèjÒjRjXjØ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.