[{"data":1,"prerenderedAt":962},["ShallowReactive",2],{"navigation":3,"api-navigation":184,"\u002Flearn\u002Fconcepts\u002Flazy-construction":206,"docyard:crossref-index":961},[4,8,155,174,180],{"title":5,"path":6,"stem":7},"Getting Started","\u002Fgetting-started","1.getting-started",{"title":9,"path":10,"stem":11,"children":12},"Learn","\u002Flearn","2.learn",[13,15,66,99,133],{"title":9,"path":10,"stem":14},"2.learn\u002Findex",{"title":16,"path":17,"stem":18,"children":19},"Tutorials","\u002Flearn\u002Ftutorials","2.learn\u002F1.tutorials\u002Findex",[20,21,26,30,34,38,42,46,50,54,58,62],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24,"icon":25},"Why Laco?","\u002Flearn\u002Ftutorials\u002Fwhy-laco","2.learn\u002F1.tutorials\u002F01.why-laco","i-lucide-notebook",{"title":27,"path":28,"stem":29,"icon":25},"First Steps with Laco","\u002Flearn\u002Ftutorials\u002Ffirst-steps","2.learn\u002F1.tutorials\u002F02.first-steps",{"title":31,"path":32,"stem":33,"icon":25},"Lazy Call and Partial","\u002Flearn\u002Ftutorials\u002Flazy-call-and-partial","2.learn\u002F1.tutorials\u002F03.lazy-call-and-partial",{"title":35,"path":36,"stem":37,"icon":25},"Hyperparameters and Interpolation","\u002Flearn\u002Ftutorials\u002Fhyperparameters-and-interpolation","2.learn\u002F1.tutorials\u002F04.hyperparameters-and-interpolation",{"title":39,"path":40,"stem":41,"icon":25},"Loading, Saving, and the CLI","\u002Flearn\u002Ftutorials\u002Floading-saving-cli","2.learn\u002F1.tutorials\u002F05.loading-saving-cli",{"title":43,"path":44,"stem":45,"icon":25},"Nested Configs and Containers","\u002Flearn\u002Ftutorials\u002Fnested-configs-and-containers","2.learn\u002F1.tutorials\u002F06.nested-configs-and-containers",{"title":47,"path":48,"stem":49,"icon":25},"Typed Groups and Schemas","\u002Flearn\u002Ftutorials\u002Ftyped-groups-and-schemas","2.learn\u002F1.tutorials\u002F07.typed-groups-and-schemas",{"title":51,"path":52,"stem":53,"icon":25},"Pipeline Configs","\u002Flearn\u002Ftutorials\u002Fpipeline-configs","2.learn\u002F1.tutorials\u002F08.pipeline-configs",{"title":55,"path":56,"stem":57,"icon":25},"Tasks and the App Loop","\u002Flearn\u002Ftutorials\u002Ftasks-and-app-loop","2.learn\u002F1.tutorials\u002F09.tasks-and-app-loop",{"title":59,"path":60,"stem":61,"icon":25},"Tracing","\u002Flearn\u002Ftutorials\u002Ftracing","2.learn\u002F1.tutorials\u002F10.tracing",{"title":63,"path":64,"stem":65,"icon":25},"Production Patterns","\u002Flearn\u002Ftutorials\u002Fproduction-patterns","2.learn\u002F1.tutorials\u002F11.production-patterns",{"title":67,"path":68,"stem":69,"children":70},"Concepts","\u002Flearn\u002Fconcepts","2.learn\u002F2.concepts\u002Findex",[71,72,76,80,84,88,92,95],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Config as Python","\u002Flearn\u002Fconcepts\u002Fconfig-as-python","2.learn\u002F2.concepts\u002F1.config-as-python",{"title":77,"path":78,"stem":79},"Lazy Construction","\u002Flearn\u002Fconcepts\u002Flazy-construction","2.learn\u002F2.concepts\u002F2.lazy-construction",{"title":81,"path":82,"stem":83},"Lie-Typing","\u002Flearn\u002Fconcepts\u002Flie-typing","2.learn\u002F2.concepts\u002F3.lie-typing",{"title":85,"path":86,"stem":87},"Interpolation","\u002Flearn\u002Fconcepts\u002Finterpolation","2.learn\u002F2.concepts\u002F4.interpolation",{"title":89,"path":90,"stem":91},"Typed Groups","\u002Flearn\u002Fconcepts\u002Ftyped-groups","2.learn\u002F2.concepts\u002F5.typed-groups",{"title":59,"path":93,"stem":94},"\u002Flearn\u002Fconcepts\u002Ftracing","2.learn\u002F2.concepts\u002F6.tracing",{"title":96,"path":97,"stem":98},"App Loop","\u002Flearn\u002Fconcepts\u002Fapp-loop","2.learn\u002F2.concepts\u002F7.app-loop",{"title":100,"path":101,"stem":102,"children":103},"How-To Guides","\u002Flearn\u002Fhow-to","2.learn\u002F3.how-to\u002Findex",[104,105,109,113,117,121,125,129],{"title":100,"path":101,"stem":102},{"title":106,"path":107,"stem":108},"Override Configs","\u002Flearn\u002Fhow-to\u002Foverride-configs","2.learn\u002F3.how-to\u002F1.override-configs",{"title":110,"path":111,"stem":112},"Safe Loading","\u002Flearn\u002Fhow-to\u002Fsafe-loading","2.learn\u002F3.how-to\u002F2.safe-loading",{"title":114,"path":115,"stem":116},"Custom Resolvers","\u002Flearn\u002Fhow-to\u002Fcustom-resolvers","2.learn\u002F3.how-to\u002F3.custom-resolvers",{"title":118,"path":119,"stem":120},"Lint and Strict Mode","\u002Flearn\u002Fhow-to\u002Flint-and-strict","2.learn\u002F3.how-to\u002F4.lint-and-strict",{"title":122,"path":123,"stem":124},"Publishing a reproducible app with laco app","\u002Flearn\u002Fhow-to\u002Flaco-app","2.learn\u002F3.how-to\u002F5.laco-app",{"title":126,"path":127,"stem":128},"Reproduce an Experiment","\u002Flearn\u002Fhow-to\u002Freproduce-experiment","2.learn\u002F3.how-to\u002F6.reproduce-experiment",{"title":130,"path":131,"stem":132},"Migrate from argparse","\u002Flearn\u002Fhow-to\u002Fmigrate-from-argparse","2.learn\u002F3.how-to\u002F7.migrate-from-argparse",{"title":134,"path":135,"stem":136,"children":137},"Examples Curriculum","\u002Flearn\u002Fexamples","2.learn\u002F4.examples\u002Findex",[138,139,143,147,151],{"title":134,"path":135,"stem":136},{"title":140,"path":141,"stem":142},"Foundation Examples","\u002Flearn\u002Fexamples\u002Ffoundations","2.learn\u002F4.examples\u002F1.foundations",{"title":144,"path":145,"stem":146},"Building Blocks","\u002Flearn\u002Fexamples\u002Fbuilding-blocks","2.learn\u002F4.examples\u002F2.building-blocks",{"title":148,"path":149,"stem":150},"Typed-Group Variants","\u002Flearn\u002Fexamples\u002Ftyped-variants","2.learn\u002F4.examples\u002F3.typed-variants",{"title":152,"path":153,"stem":154},"End-to-End Pipelines","\u002Flearn\u002Fexamples\u002Fpipelines","2.learn\u002F4.examples\u002F4.pipelines",{"title":156,"path":157,"stem":158,"children":159},"Resources","\u002Fresources","3.resources",[160,162,166,170],{"title":156,"path":157,"stem":161},"3.resources\u002Findex",{"title":163,"path":164,"stem":165},"Integrations","\u002Fresources\u002Fintegrations","3.resources\u002F1.integrations",{"title":167,"path":168,"stem":169},"Migration guide: Laco 0.x → 1.0","\u002Fresources\u002Fmigration-0.x-to-1.0","3.resources\u002F2.migration-0.x-to-1.0",{"title":171,"path":172,"stem":173},"Laco vs hydra-zen","\u002Fresources\u002Flaco-vs-hydra-zen","3.resources\u002F3.laco-vs-hydra-zen",{"title":175,"path":176,"stem":177,"children":178},"API Reference","\u002Fapi","4.api\u002Findex",[179],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183},"Lazy Configuration for Python","\u002F","index",[185,188,191,194,197,200,203],{"title":186,"path":187},"cli","\u002Fapi\u002Fcli",{"title":189,"path":190},"compat","\u002Fapi\u002Fcompat",{"title":192,"path":193},"handler","\u002Fapi\u002Fhandler",{"title":195,"path":196},"keys","\u002Fapi\u002Fkeys",{"title":198,"path":199},"language","\u002Fapi\u002Flanguage",{"title":201,"path":202},"ops","\u002Fapi\u002Fops",{"title":204,"path":205},"utils","\u002Fapi\u002Futils",{"id":207,"title":77,"body":208,"description":254,"extension":957,"meta":958,"navigation":310,"path":78,"seo":959,"stem":79,"__hash__":960},"content\u002F2.learn\u002F2.concepts\u002F2.lazy-construction.md",{"type":209,"value":210,"toc":949},"minimark",[211,215,243,248,389,392,398,469,475,478,516,524,532,547,561,567,666,684,691,697,743,753,760,766,828,847,852,877,899,929,935,945],[212,213,77],"h1",{"id":214},"lazy-construction",[216,217,218],"blockquote",{},[219,220,221,225,226,230,231,234,225,237,239,240],"p",{},[222,223,224],"strong",{},"Tutorial:"," ",[227,228,229],"a",{"href":28},"First Steps",",\n",[227,232,233],{"href":44},"Nested Composition",[222,235,236],{},"See also:",[227,238,81],{"href":82},", ",[227,241,242],{"href":176},"API: language",[244,245,247],"h2",{"id":246},"eager-vs-lazy","Eager vs Lazy",[249,250,255],"pre",{"className":251,"code":252,"language":253,"meta":254,"style":254},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","# Eager: object exists now, no config possible\nmodel = nn.Linear(784, 10)\n\n# Lazy: DictConfig exists now, object constructed on demand\nmodel_cfg = L.call(nn.Linear)(in_features=784, out_features=10)\nmodel = laco.instantiate(model_cfg)\n","python","",[256,257,258,267,305,312,318,367],"code",{"__ignoreMap":254},[259,260,263],"span",{"class":261,"line":262},"line",1,[259,264,266],{"class":265},"sutJx","# Eager: object exists now, no config possible\n",[259,268,270,274,278,281,285,289,292,296,299,302],{"class":261,"line":269},2,[259,271,273],{"class":272},"su5hD","model ",[259,275,277],{"class":276},"smGrS","=",[259,279,280],{"class":272}," nn",[259,282,284],{"class":283},"sP7_E",".",[259,286,288],{"class":287},"slqww","Linear",[259,290,291],{"class":283},"(",[259,293,295],{"class":294},"srdBf","784",[259,297,298],{"class":283},",",[259,300,301],{"class":294}," 10",[259,303,304],{"class":283},")\n",[259,306,308],{"class":261,"line":307},3,[259,309,311],{"emptyLinePlaceholder":310},true,"\n",[259,313,315],{"class":261,"line":314},4,[259,316,317],{"class":265},"# Lazy: DictConfig exists now, object constructed on demand\n",[259,319,321,324,326,329,331,334,336,339,341,344,347,351,353,355,357,360,362,365],{"class":261,"line":320},5,[259,322,323],{"class":272},"model_cfg ",[259,325,277],{"class":276},[259,327,328],{"class":272}," L",[259,330,284],{"class":283},[259,332,333],{"class":287},"call",[259,335,291],{"class":283},[259,337,338],{"class":287},"nn",[259,340,284],{"class":283},[259,342,288],{"class":343},"skxfh",[259,345,346],{"class":283},")(",[259,348,350],{"class":349},"s99_P","in_features",[259,352,277],{"class":276},[259,354,295],{"class":294},[259,356,298],{"class":283},[259,358,359],{"class":349}," out_features",[259,361,277],{"class":276},[259,363,364],{"class":294},"10",[259,366,304],{"class":283},[259,368,370,372,374,377,379,382,384,387],{"class":261,"line":369},6,[259,371,273],{"class":272},[259,373,277],{"class":276},[259,375,376],{"class":272}," laco",[259,378,284],{"class":283},[259,380,381],{"class":287},"instantiate",[259,383,291],{"class":283},[259,385,386],{"class":287},"model_cfg",[259,388,304],{"class":283},[219,390,391],{},"The lazy version can be serialized, overridden, merged, and reproduced.",[244,393,395],{"id":394},"lcall",[256,396,397],{},"L.call",[249,399,401],{"className":251,"code":400,"language":253,"meta":254,"style":254},"L.call(target, *, strict=True, convert=\"none\", recursive=True, **meta)\n",[256,402,403],{"__ignoreMap":254},[259,404,405,408,410,412,414,417,419,422,424,427,429,433,435,438,440,444,448,450,452,455,457,459,461,464,467],{"class":261,"line":262},[259,406,407],{"class":272},"L",[259,409,284],{"class":283},[259,411,333],{"class":287},[259,413,291],{"class":283},[259,415,416],{"class":287},"target",[259,418,298],{"class":283},[259,420,421],{"class":276}," *",[259,423,298],{"class":283},[259,425,426],{"class":349}," strict",[259,428,277],{"class":276},[259,430,432],{"class":431},"s39Yj","True",[259,434,298],{"class":283},[259,436,437],{"class":349}," convert",[259,439,277],{"class":276},[259,441,443],{"class":442},"sjJ54","\"",[259,445,447],{"class":446},"s_sjI","none",[259,449,443],{"class":442},[259,451,298],{"class":283},[259,453,454],{"class":349}," recursive",[259,456,277],{"class":276},[259,458,432],{"class":431},[259,460,298],{"class":283},[259,462,463],{"class":276}," **",[259,465,466],{"class":287},"meta",[259,468,304],{"class":283},[219,470,471,472,284],{},"Returns a callable that accepts keyword arguments and produces a ",[256,473,474],{},"DictConfig",[219,476,477],{},"The wire format is a Hydra-compatible dict:",[249,479,483],{"className":480,"code":481,"language":482,"meta":254,"style":254},"language-yaml shiki shiki-themes material-theme-lighter github-light github-dark","_target_: torch.nn.Linear\nin_features: 784\nout_features: 10\n","yaml",[256,484,485,497,506],{"__ignoreMap":254},[259,486,487,491,494],{"class":261,"line":262},[259,488,490],{"class":489},"sQzsp","_target_",[259,492,493],{"class":283},":",[259,495,496],{"class":446}," torch.nn.Linear\n",[259,498,499,501,503],{"class":261,"line":269},[259,500,350],{"class":489},[259,502,493],{"class":283},[259,504,505],{"class":294}," 784\n",[259,507,508,511,513],{"class":261,"line":307},[259,509,510],{"class":489},"out_features",[259,512,493],{"class":283},[259,514,515],{"class":294}," 10\n",[219,517,518,523],{},[222,519,520],{},[256,521,522],{},"strict=True"," (default): validates kwargs against the target's signature at\nconfig-construction time, catching typos before training starts.",[219,525,526,531],{},[222,527,528],{},[256,529,530],{},"strict=False",": disables validation, useful for C-extension targets whose\nsignatures cannot be introspected.",[219,533,534,539,540,543,544,546],{},[222,535,536],{},[256,537,538],{},"convert",": controls how Hydra converts structured configs on instantiation.\nDefaults to ",[256,541,542],{},"\"none\""," (preserve ",[256,545,474],{}," wrappers).",[219,548,549,554,555,557,558,560],{},[222,550,551],{},[256,552,553],{},"recursive",": if ",[256,556,432],{}," (default), Hydra recursively instantiates nested\n",[256,559,490],{}," nodes.",[244,562,564],{"id":563},"lpartial",[256,565,566],{},"L.partial",[249,568,570],{"className":251,"code":569,"language":253,"meta":254,"style":254},"optimizer_cfg = L.partial(torch.optim.Adam)(lr=1e-3)\noptimizer = laco.instantiate(optimizer_cfg)\n# optimizer is functools.partial(Adam, lr=1e-3)\noptimizer_with_params = optimizer(params=model.parameters())\n",[256,571,572,613,633,638],{"__ignoreMap":254},[259,573,574,577,579,581,583,586,588,591,593,596,598,601,603,606,608,611],{"class":261,"line":262},[259,575,576],{"class":272},"optimizer_cfg ",[259,578,277],{"class":276},[259,580,328],{"class":272},[259,582,284],{"class":283},[259,584,585],{"class":287},"partial",[259,587,291],{"class":283},[259,589,590],{"class":287},"torch",[259,592,284],{"class":283},[259,594,595],{"class":343},"optim",[259,597,284],{"class":283},[259,599,600],{"class":343},"Adam",[259,602,346],{"class":283},[259,604,605],{"class":349},"lr",[259,607,277],{"class":276},[259,609,610],{"class":294},"1e-3",[259,612,304],{"class":283},[259,614,615,618,620,622,624,626,628,631],{"class":261,"line":269},[259,616,617],{"class":272},"optimizer ",[259,619,277],{"class":276},[259,621,376],{"class":272},[259,623,284],{"class":283},[259,625,381],{"class":287},[259,627,291],{"class":283},[259,629,630],{"class":287},"optimizer_cfg",[259,632,304],{"class":283},[259,634,635],{"class":261,"line":307},[259,636,637],{"class":265},"# optimizer is functools.partial(Adam, lr=1e-3)\n",[259,639,640,643,645,648,650,653,655,658,660,663],{"class":261,"line":314},[259,641,642],{"class":272},"optimizer_with_params ",[259,644,277],{"class":276},[259,646,647],{"class":287}," optimizer",[259,649,291],{"class":283},[259,651,652],{"class":349},"params",[259,654,277],{"class":276},[259,656,657],{"class":287},"model",[259,659,284],{"class":283},[259,661,662],{"class":287},"parameters",[259,664,665],{"class":283},"())\n",[219,667,668,669,671,672,675,676,679,680,683],{},"Equivalent to ",[256,670,397],{}," but sets ",[256,673,674],{},"_partial_: true"," in the wire format, so\n",[256,677,678],{},"laco.instantiate"," returns a ",[256,681,682],{},"functools.partial"," rather than calling the target.",[219,685,686,687,690],{},"Common pattern: store the partial in the config; bind ",[256,688,689],{},"params="," at training time.",[244,692,694],{"id":693},"ljust",[256,695,696],{},"L.just",[249,698,700],{"className":251,"code":699,"language":253,"meta":254,"style":254},"node = L.just(42)\nlaco.instantiate(node)  # → 42\n",[256,701,702,723],{"__ignoreMap":254},[259,703,704,707,709,711,713,716,718,721],{"class":261,"line":262},[259,705,706],{"class":272},"node ",[259,708,277],{"class":276},[259,710,328],{"class":272},[259,712,284],{"class":283},[259,714,715],{"class":287},"just",[259,717,291],{"class":283},[259,719,720],{"class":294},"42",[259,722,304],{"class":283},[259,724,725,728,730,732,734,737,740],{"class":261,"line":269},[259,726,727],{"class":272},"laco",[259,729,284],{"class":283},[259,731,381],{"class":287},[259,733,291],{"class":283},[259,735,736],{"class":287},"node",[259,738,739],{"class":283},")",[259,741,742],{"class":265},"  # → 42\n",[219,744,745,746,748,749,752],{},"Wraps an already-constructed value in a ",[256,747,474],{}," so it survives\nserialization. Serializes to a ",[256,750,751],{},"_target_: laco.ops.identity"," node.",[219,754,755,756,759],{},"Note: non-serializable objects (tensors, file handles) will fail on\n",[256,757,758],{},"laco.dump",". For those, store a path or descriptor instead.",[244,761,763],{"id":762},"lrequiredt",[256,764,765],{},"L.required[T]()",[249,767,769],{"className":251,"code":768,"language":253,"meta":254,"style":254},"@L.params\nclass hps:\n    vocab_size: int = L.required[int]()\n",[256,770,771,785,798],{"__ignoreMap":254},[259,772,773,777,780,782],{"class":261,"line":262},[259,774,776],{"class":775},"stp6e","@",[259,778,407],{"class":779},"sGLFI",[259,781,284],{"class":775},[259,783,784],{"class":779},"params\n",[259,786,787,791,795],{"class":261,"line":269},[259,788,790],{"class":789},"sbsja","class",[259,792,794],{"class":793},"sbgvK"," hps",[259,796,797],{"class":283},":\n",[259,799,800,803,805,809,812,814,816,819,822,825],{"class":261,"line":307},[259,801,802],{"class":272},"    vocab_size",[259,804,493],{"class":283},[259,806,808],{"class":807},"sZMiF"," int",[259,810,811],{"class":276}," =",[259,813,328],{"class":272},[259,815,284],{"class":283},[259,817,818],{"class":343},"required",[259,820,821],{"class":283},"[",[259,823,824],{"class":807},"int",[259,826,827],{"class":283},"]()\n",[219,829,830,831,834,835,838,839,842,843,846],{},"Produces the OmegaConf ",[256,832,833],{},"MISSING"," sentinel (",[256,836,837],{},"???"," in YAML). Accessing an\nunset required field raises ",[256,840,841],{},"MissingMandatoryValue",". The generic subscript\n",[256,844,845],{},"[int]"," is for the type-checker; it has no runtime effect.",[244,848,850],{"id":849},"lacoinstantiate",[256,851,678],{},[249,853,855],{"className":251,"code":854,"language":253,"meta":254,"style":254},"result = laco.instantiate(cfg)\n",[256,856,857],{"__ignoreMap":254},[259,858,859,862,864,866,868,870,872,875],{"class":261,"line":262},[259,860,861],{"class":272},"result ",[259,863,277],{"class":276},[259,865,376],{"class":272},[259,867,284],{"class":283},[259,869,381],{"class":287},[259,871,291],{"class":283},[259,873,874],{"class":287},"cfg",[259,876,304],{"class":283},[219,878,879,880,883,884,239,886,239,889,239,892,239,895,898],{},"Thin wrapper around ",[256,881,882],{},"hydra.utils.instantiate",". Honors all Hydra knobs\n(",[256,885,490],{},[256,887,888],{},"_args_",[256,890,891],{},"_partial_",[256,893,894],{},"_convert_",[256,896,897],{},"_recursive_",").",[219,900,901,902,239,904,239,907,239,910,239,913,239,916,230,919,239,922,239,925,928],{},"Primitive top-level values (",[256,903,824],{},[256,905,906],{},"float",[256,908,909],{},"str",[256,911,912],{},"bool",[256,914,915],{},"None",[256,917,918],{},"set",[256,920,921],{},"frozenset",[256,923,924],{},"bytes",[256,926,927],{},"type",", functions) are returned unchanged: callers\ndo not need to check the type before passing a leaf.",[219,930,931,934],{},[256,932,933],{},"LACO_TRACE=1"," logs the full config tree before each instantiation.",[219,936,937,938,941,942,284],{},"Cyclic configuration graphs raise ",[256,939,940],{},"LacoCycleError",". See ",[227,943,944],{"href":176},"API: instantiate",[946,947,948],"style",{},"html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .stp6e, html code.shiki .stp6e{--shiki-light:#39ADB5;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":254,"searchDepth":307,"depth":307,"links":950},[951,952,953,954,955,956],{"id":246,"depth":269,"text":247},{"id":394,"depth":269,"text":397},{"id":563,"depth":269,"text":566},{"id":693,"depth":269,"text":696},{"id":762,"depth":269,"text":765},{"id":849,"depth":269,"text":678},"md",{},{"title":77,"description":254},"0of0LifAqj33zbZ4wQuIVvUcAPYujNXy5h80nAZfZ7g",{},1785687300519]