[{"data":1,"prerenderedAt":1662},["ShallowReactive",2],{"navigation-docsEN":3,"docs-EN-/docs/digital-product-passport/dpp-resolution-flow":483,"docsNav-EN-/docs":1104,"docsSecNav-EN-/docs/digital-product-passport/dpp-resolution-flow":1243},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","/docs","docs",[9,21,39,51,72,86,112,126,153,164,179,203,391,467],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":14},"Documentation","docs/index","Introduction to documentation on EPCIS and OpenEPCIS tools","heroicons-outline:document-text",[15,16,17,18,19,20],"openepcis","epcis-2-0","epcis-documentation","epcis-standard","open-source","epcis-tools",{"title":22,"path":23,"stem":24,"children":25,"description":27,"icon":28,"tags":38},"Introduction","/docs/introduction","docs/01.introduction/index",[26],{"title":22,"path":23,"stem":24,"description":27,"icon":28,"tags":29},"Why EPCIS is necessary and how it can help organizations of all sizes and types.","heroicons-outline:globe-alt",[16,30,31,32,33,34,35,36,37],"epcis","epcis-1-2","gs1-epcis-standard","supply-chain","traceability","data-sharing","tracking","tracing",[16,30,31,32,33,34,35,36,37],{"title":40,"path":41,"stem":42,"children":43,"description":45,"icon":46,"tags":50},"EPCIS","/docs/epcis","docs/02.epcis/index",[44],{"title":40,"path":41,"stem":42,"description":45,"icon":46,"tags":47},"Discover the specifics of EPCIS, how it works, and what OpenEPCIS is.","i-custom-open-epcis",[16,30,31,32,48,49],"iso-iec-19987","iso-iec-19988",[16,30,31,32,48,49],{"title":52,"path":53,"stem":54,"children":55,"description":57,"icon":58,"tags":71},"Format Converter","/docs/format-converter","docs/03.format-converter/index",[56],{"title":52,"path":53,"stem":54,"description":57,"icon":58,"tags":59},"OpenEPCIS solution to convert EPCIS 2.0 and 1.2 document or single event from XML to JSON/JSON-LD and vice versa.","heroicons-outline:arrows-right-left",[16,60,61,62,63,64,65,20,66,67,68,69,70],"json","json-ld","xml","events","format-converter","convert","convert-epcis-events","format","converter","epcis-tool","tools",[16,60,61,62,63,64,65,20,66,67,68,69,70],{"title":73,"path":74,"stem":75,"children":76,"description":78,"icon":79,"tags":85},"Version Converter","/docs/version-converter","docs/04.version-converter/index",[77],{"title":73,"path":74,"stem":75,"description":78,"icon":79,"tags":80},"OpenEPCIS solution to convert EPCIS XML document from version 1.2 to 2.0 and vice versa.","heroicons:arrows-up-down",[16,31,60,61,62,63,81,65,20,82,83,84,68,69,70],"version-converter","convert-epcis-version","version","epcis-version",[16,31,60,61,62,63,81,65,20,82,83,84,68,69,70],{"title":87,"path":88,"stem":89,"children":90,"description":92,"icon":93,"tags":111},"Identifier Converter","/docs/identifier-converter","docs/05.identifier-converter/index",[91],{"title":87,"path":88,"stem":89,"description":92,"icon":93,"tags":94},"OpenEPCIS solution to convert EPCIS instance or class identifier from URN to digital link WebURI and vice versa.","i-heroicons-link",[16,95,96,97,98,99,20,100,101,102,103,104,105,106,107,108,109,110],"gs1-digital-link","urn-format","epc-uri","epc","weburi","gs1-standard","gs1","sscc","gtin","giai","grai","gdti","lgtin","sgtin","gln","gcp",[16,95,96,97,98,99,20,100,101,102,103,104,105,106,107,108,109,110],{"title":113,"path":114,"stem":115,"children":116,"description":118,"icon":119,"tags":125},"Event Hash Generator","/docs/event-hash-generator","docs/06.event-hash-generator/index",[117],{"title":113,"path":114,"stem":115,"description":118,"icon":119,"tags":120},"OpenEPCIS solution to generate unique event hash for EPCIS XML or JSON/JSON-LD document or event list.","heroicons-outline:finger-print",[16,121,60,61,62,63,20,122,123,124,69,70],"event-hash","event","hash","generator",[16,121,60,61,62,63,20,122,123,124,69,70],{"title":127,"path":128,"stem":129,"children":130,"description":132,"icon":133,"tags":152},"Test Data Generator","/docs/test-data-generator","docs/07.test-data-generator/index",[131,135],{"title":127,"path":128,"stem":129,"description":132,"icon":133,"tags":134},"OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases/supply chain requirements.","heroicons-outline:cog",[16,121,60,61,62,63,20,122,123,124,69,70],{"title":136,"path":137,"stem":138,"children":139,"description":132,"icon":141,"tags":151},"EPCIS Implementation Guidelines","/docs/test-data-generator/gs1-epcis-implementation-guidelines","docs/07.test-data-generator/01.gs1-epcis-implementation-guidelines/index",[140],{"title":136,"path":137,"stem":138,"description":132,"icon":141,"tags":142},"heroicons-outline:badge-check",[16,60,61,143,20,144,145,146,34,147,148,149,150],"testing","test-data-generator","design","design-template","process-automation","compliance","supply-chain-management","load-tests",[16,60,61,143,20,144,145,146,34,147,148,149,150],[16,121,60,61,62,63,20,122,123,124,69,70],{"title":154,"path":155,"stem":156,"children":157,"description":159,"icon":160,"tags":163},"Test Resource Management","/docs/test-resource-management","docs/08.test-resource-management/index",[158],{"title":154,"path":155,"stem":156,"description":159,"icon":160,"tags":161},"Collection of EPCIS 1.2/2.0 documents/events in XML/JSON/JSON-LD formats, intended for various testing purposes","heroicons-outline:archive-box",[16,60,61,143,20,162,34,147,148,149,150],"performance-tests",[16,60,61,143,20,162,34,147,148,149,150],{"title":165,"path":166,"stem":167,"children":168,"description":170,"icon":171,"tags":178},"Vocabulary Management","/docs/vocabulary-management","docs/09.vocabulary-management/index",[169],{"title":165,"path":166,"stem":167,"description":170,"icon":171,"tags":172},"Collection of standardized constants and strings for EPCIS event data.","heroicons-outline:book-open",[16,173,15,174,20,175,34,176,148,149,177],"constants","centralization","standardization","vocabulary","data-dictionary",[16,173,15,174,20,175,34,176,148,149,177],{"title":180,"path":181,"stem":182,"children":183,"description":185,"icon":186,"tags":202},"Dependency Management","/docs/dependency-management","docs/10.dependency-management/index",[184],{"title":180,"path":181,"stem":182,"description":185,"icon":186,"tags":187},"Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules.","heroicons-outline:folder",[188,15,189,190,191,192,193,30,194,195,196,197,198,199,200,201],"maven-bom","dependency-management","java-dependencies","pom","software-dependencies","version-control","open-source-java","build-management","modular-software","dependency-resolution","java-libraries","maven-project","centralized-dependencies","dependency-consistency",[188,15,189,190,191,192,193,30,194,195,196,197,198,199,200,201],{"title":204,"path":205,"stem":206,"children":207,"description":209,"icon":210,"tags":390},"Digital Product Passport","/docs/digital-product-passport","docs/11.digital-product-passport/index",[208,217,229,261,295,322,336,345,353,363],{"title":204,"path":205,"stem":206,"description":209,"icon":210,"tags":211},"Introduction to Digital Product Passport and how EPCIS enables product traceability for DPP compliance.","heroicons-outline:identification",[212,213,214,30,215,34,216],"digital-product-passport","dpp","eu-regulation","sustainability","circular-economy",{"title":218,"path":219,"stem":220,"children":221,"description":223,"icon":224,"tags":228},"ESPR Framework","/docs/digital-product-passport/espr-framework","docs/11.digital-product-passport/00.espr-framework/index",[222],{"title":218,"path":219,"stem":220,"description":223,"icon":224,"tags":225},"Guide to the EU Ecodesign for Sustainable Products Regulation (ESPR) 2024/1781 and how OpenEPCIS supports Digital Product Passport requirements.","heroicons-outline:shield-check",[226,227,215,213,214],"espr","ecodesign",[226,227,215,213,214],{"title":230,"path":231,"stem":232,"children":233,"description":235,"icon":236,"tags":260},"Battery DPP","/docs/digital-product-passport/battery-dpp","docs/11.digital-product-passport/01.battery-dpp/index",[234,240,245,251],{"title":230,"path":231,"stem":232,"description":235,"icon":236,"tags":237},"GS1-native implementation of EU Battery Regulation 2023/1542 Digital Product Passport using EPCIS 2.0","heroicons:battery-100",[238,239,213,30,101,34,215],"battery","eu-battery-regulation",{"title":241,"path":242,"stem":243,"description":244,"icon":171},"Implementation Guide","/docs/digital-product-passport/battery-dpp/implementation-guide","docs/11.digital-product-passport/01.battery-dpp/01.implementation-guide","Step-by-step guide for implementing a GS1-native Battery Digital Product Passport with OpenEPCIS extensions",{"title":246,"path":247,"stem":248,"description":249,"icon":250},"Event Types","/docs/digital-product-passport/battery-dpp/event-types","docs/11.digital-product-passport/01.battery-dpp/02.event-types","Complete reference for all EPCIS event types and sensor measurements in the Battery DPP","heroicons-outline:collection",{"title":252,"path":253,"stem":254,"description":255,"icon":13,"tags":256},"Complete Examples","/docs/digital-product-passport/battery-dpp/complete-examples","docs/11.digital-product-passport/01.battery-dpp/05.complete-examples","Reference Battery Digital Product Passport examples mapped to EU Battery Regulation 2023/1542 Annex XIII",[238,257,258,61,259],"examples","annex-xiii","carbon-footprint",[238,239,213,30,101,34,215],{"title":262,"path":263,"stem":264,"children":265,"description":267,"icon":268,"tags":294},"EUDR","/docs/digital-product-passport/eudr","docs/11.digital-product-passport/02.eudr/index",[266,273,278,282,287],{"title":262,"path":263,"stem":264,"description":267,"icon":268,"tags":269},"GS1-native implementation of EU Deforestation Regulation 2023/1115 compliance using EPCIS 2.0","heroicons-outline:globe-europe-africa",[270,271,272,213,30,101,34,215],"eudr","deforestation","timber",{"title":241,"path":274,"stem":275,"description":276,"icon":277},"/docs/digital-product-passport/eudr/implementation-guide","docs/11.digital-product-passport/02.eudr/01.implementation-guide","Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards",null,{"title":246,"path":279,"stem":280,"description":281,"icon":277},"/docs/digital-product-passport/eudr/event-types","docs/11.digital-product-passport/02.eudr/02.event-types","EPCIS event types for EU Deforestation Regulation compliance",{"title":283,"path":284,"stem":285,"description":286,"icon":277},"URL Patterns","/docs/digital-product-passport/eudr/url-patterns","docs/11.digital-product-passport/02.eudr/03.url-patterns","GS1 Digital Link URL patterns for EUDR implementations",{"title":252,"path":288,"stem":289,"description":290,"icon":13,"tags":291},"/docs/digital-product-passport/eudr/complete-examples","docs/11.digital-product-passport/02.eudr/04.complete-examples","Reference EUDR examples — timber product passport, derived product, regulatory notification, harvesting / origin-declaration / processing / supply-chain-transfer / exemption events",[270,257,272,292,293],"due-diligence","geolocation",[270,271,272,213,30,101,34,215],{"title":296,"path":297,"stem":298,"children":299,"description":301,"icon":302,"tags":321},"Textile DPP","/docs/digital-product-passport/textile","docs/11.digital-product-passport/03.textile/index",[300,308,315],{"title":296,"path":297,"stem":298,"description":301,"icon":302,"tags":303},"Digital Product Passport vocabulary for textiles and apparel under the EU Sustainable Textiles Strategy and ESPR 2024/1781.","heroicons-outline:sparkles",[304,305,306,213,215,307],"textile","apparel","footwear","fibre-composition",{"title":241,"path":309,"stem":310,"description":311,"icon":312,"tags":313},"/docs/digital-product-passport/textile/implementation-guide","docs/11.digital-product-passport/03.textile/01.implementation-guide","How to assemble a Textile Digital Product Passport against the published openepcis-dpp-ready textile vocabulary","heroicons-outline:scissors",[304,305,306,314],"implementation",{"title":252,"path":316,"stem":317,"description":318,"icon":13,"tags":319},"/docs/digital-product-passport/textile/complete-examples","docs/11.digital-product-passport/03.textile/02.complete-examples","Reference Textile Digital Product Passport documents covering apparel and footwear",[304,257,305,306,320,61],"fiber-composition",[304,305,306,213,215,307],{"title":323,"path":324,"stem":325,"children":326,"description":328,"icon":58,"tags":335},"Interoperability","/docs/digital-product-passport/interoperability","docs/11.digital-product-passport/04.interoperability/index",[327],{"title":323,"path":324,"stem":325,"description":328,"icon":58,"tags":329},"Guide to OpenEPCIS DPP interoperability with GS1, UNTP, CIRPASS2, and ESPR standards.",[330,331,101,332,226,333,334],"interoperability","untp","cirpass2","standards","alignment",[330,331,101,332,226,333,334],{"title":337,"path":338,"stem":339,"description":340,"icon":28,"tags":341},"DPP Resolution Flow","/docs/digital-product-passport/dpp-resolution-flow","docs/11.digital-product-passport/05.dpp-resolution-flow","How OpenEPCIS combined GS1 Digital Link, the IETF linkset format and content negotiation into one DPP resolution flow",[342,95,343,344],"walkthrough","linkset","content-negotiation",{"title":346,"path":347,"stem":348,"description":349,"icon":350,"tags":351},"Resolver Setup","/docs/digital-product-passport/resolver-setup","docs/11.digital-product-passport/06.resolver-setup","How to expose your DPP behind a GS1 Digital Link resolver","heroicons-outline:server",[352,95,343],"resolver",{"title":354,"path":355,"stem":356,"description":357,"icon":358,"tags":359},"Multi-Component Example","/docs/digital-product-passport/multi-component-example","docs/11.digital-product-passport/07.multi-component-example","How a composite product references separately-passported components via standard GS1 Digital Link and EPCIS aggregation","heroicons-outline:puzzle-piece",[360,361,362,332],"example","components","aggregation",{"title":364,"path":365,"stem":366,"children":367,"description":369,"icon":370,"tags":389},"Electronics DPP","/docs/digital-product-passport/electronics","docs/11.digital-product-passport/08.electronics/index",[368,377,382],{"title":364,"path":365,"stem":366,"description":369,"icon":370,"tags":371},"Digital Product Passport vocabulary for electronic devices under ESPR, the French Repairability Index, EU Right to Repair and WEEE.","heroicons-outline:device-phone-mobile",[372,373,374,375,376],"electronics","repairability","weee","energy-label","right-to-repair",{"title":241,"path":378,"stem":379,"description":380,"icon":171,"tags":381},"/docs/digital-product-passport/electronics/implementation-guide","docs/11.digital-product-passport/08.electronics/01.implementation-guide","How to assemble an Electronics Digital Product Passport against the published openepcis-dpp-ready electronics vocabulary",[372,314,373,374,375],{"title":252,"path":383,"stem":384,"description":385,"icon":13,"tags":386},"/docs/digital-product-passport/electronics/complete-examples","docs/11.digital-product-passport/08.electronics/02.complete-examples","Reference Electronics Digital Product Passport documents covering smartphone, laptop, display and server",[372,257,387,388,61],"smartphone","laptop",[372,373,374,375,376],[212,213,214,30,215,34,216],{"title":392,"path":393,"stem":394,"children":395,"description":397,"icon":398},"OpenEPCIS Overview","/docs/platform-overview","docs/14.platform-overview/index",[396,399,405,411,417],{"title":392,"path":393,"stem":394,"description":397,"icon":398},"A GS1-conformant supply-chain data platform — Resolver, Masterdata, EPCIS Events — in open source and business editions.","lucide:layout-dashboard",{"title":400,"path":401,"stem":402,"description":403,"icon":404},"Architecture","/docs/platform-overview/architecture","docs/14.platform-overview/01.architecture","How OpenEPCIS handles identity, isolation, events, and GS1 conformance — the four things that distinguish the platform.","lucide:cpu",{"title":406,"path":407,"stem":408,"description":409,"icon":410},"Feature Matrix","/docs/platform-overview/feature-matrix","docs/14.platform-overview/02.feature-matrix","OpenEPCIS capabilities by edition, aligned to the relevant GS1 standards.","lucide:check-square",{"title":412,"path":413,"stem":414,"description":415,"icon":416},"Roadmap","/docs/platform-overview/roadmap","docs/14.platform-overview/03.roadmap","Three horizons — Now, Next, Later. Skeleton awaiting user-confirmed dates.","lucide:map",{"title":418,"path":419,"stem":420,"children":421,"description":423,"icon":424},"Modules","/docs/platform-overview/modules","docs/14.platform-overview/modules/index",[422,425,431,437,443,449,455,461],{"title":418,"path":419,"stem":420,"description":423,"icon":424},"Seven module families that organise the OpenEPCIS platform — Resolver, Masterdata, EPCIS Events, Formats & Validation, Integration, Testdata, Platform.","lucide:layers",{"title":426,"path":427,"stem":428,"description":429,"icon":430},"GS1 Conformant Resolver","/docs/platform-overview/modules/resolver","docs/14.platform-overview/modules/01.resolver","Resolves GS1 Digital Link URIs to product information, masterdata, EPCIS endpoints, and twelve more standard link types.","lucide:link-2",{"title":432,"path":433,"stem":434,"description":435,"icon":436},"GS1 Web Vocabulary & Masterdata","/docs/platform-overview/modules/masterdata","docs/14.platform-overview/modules/02.masterdata","Web Vocabulary models, masterdata-to-resolver REST pattern, GS1 Germany Activate Plus / GEPIR sync, and the event-driven masterdata bus.","lucide:database",{"title":438,"path":439,"stem":440,"description":441,"icon":442},"EPCIS Events — Capture, Query, Subscriptions","/docs/platform-overview/modules/epcis-events","docs/14.platform-overview/modules/03.epcis-events","EPCIS 2.0 REST and SOAP, live streaming subscriptions, resilient pagination, OpenSearch event store.","lucide:activity",{"title":444,"path":445,"stem":446,"description":447,"icon":448},"Formats, Validation & Identity","/docs/platform-overview/modules/formats","docs/14.platform-overview/modules/04.formats","XML ↔ JSON-LD conversion, multi-layer validation, identifier translation, idempotent event hashing.","lucide:file-check",{"title":450,"path":451,"stem":452,"description":453,"icon":454},"Integration & Gateways","/docs/platform-overview/modules/integration","docs/14.platform-overview/modules/05.integration","Cloud storage, file service, natural-language AI assistant.","lucide:plug",{"title":456,"path":457,"stem":458,"description":459,"icon":460},"Testdata & Developer Tooling","/docs/platform-overview/modules/testdata","docs/14.platform-overview/modules/06.testdata","Synthetic EPCIS test event generation, reference event collections, conformance test suite, SDKs.","lucide:wrench",{"title":462,"path":463,"stem":464,"description":465,"icon":466},"Platform, Build & Observability","/docs/platform-overview/modules/platform","docs/14.platform-overview/modules/07.platform","How OpenEPCIS is built, deployed, and observed.","lucide:server",{"title":468,"path":469,"stem":470,"children":471,"description":473,"icon":28,"tags":482},"Vision","/docs/vision","docs/15.vision/index",[472],{"title":468,"path":469,"stem":470,"description":473,"icon":28,"tags":474},"How UNTP, DIDs, Verifiable Credentials, and EPCIS work together to create unified product identity infrastructure for the connected supply chain.",[475,476,477,478,331,479,480,481],"vision","digital-twin","did","verifiable-credentials","rfid","industry-4-0","web-3-0",[475,476,477,478,331,479,480,481],{"id":484,"title":485,"body":486,"description":340,"extension":1084,"icon":28,"lastUpdated":277,"meta":1085,"navigation":1096,"path":338,"seo":1098,"sitemap":1099,"stem":339,"__hash__":1103},"docsEN/docs/11.digital-product-passport/05.dpp-resolution-flow.md","DPP Resolution: How We Wired It Up",{"type":487,"value":488,"toc":1069},"minimark",[489,494,503,511,515,586,590,593,598,601,609,620,624,640,644,663,720,728,746,749,833,837,840,889,945,953,957,968,1000,1017,1021,1024,1035,1039,1065],[490,491,493],"h2",{"id":492},"what-this-page-is","What this page is",[495,496,497,498,502],"p",{},"A walkthrough of ",[499,500,501],"strong",{},"one way"," to take a scanned QR code on a product through to a typed DPP response — the way we did it with GS1 standards. It's not a finished cross-sector product offering and it's not the canonical flow for every regulator and every customer. It's a worked example that exercises the standard primitives in a single path, so a developer or compliance reviewer can see how the pieces fit together.",[495,504,505,506,510],{},"The standards that show up below — GS1 Digital Link, the GS1 Conformant Resolver discovery contract, IETF ",[507,508,509],"code",{},"application/linkset+json"," (RFC 9264), HTTP content negotiation, and ESPR Article 9 access tiers — are all published. The opinions in between are ours, and other implementations make different ones.",[490,512,514],{"id":513},"the-flow-at-a-glance","The flow at a glance",[516,517,522],"pre",{"className":518,"code":519,"language":520,"meta":521,"style":521},"language-mermaid shiki shiki-themes material-theme-lighter github-light github-dark monokai","flowchart TD\n    A[\"\u003Cb>Data carrier\u003C/b>\u003Cbr/>QR / NFC / RFID\u003Cbr/>https://id.gs1.org/01/&lt;GTIN&gt;/21/&lt;serial&gt;\"]\n    A --> B[\"\u003Cb>GS1 resolver\u003C/b>\u003Cbr/>id.gs1.org or self-hosted\u003Cbr/>looks up the linkset\"]\n    B --> C[\"\u003Cb>DPP endpoint\u003C/b>\u003Cbr/>content negotiation +\u003Cbr/>linkType routing\"]\n    C --> D{\"Access tier\u003Cbr/>(ESPR Art. 9)\"}\n    D -->|Public| E[\"Return data\"]\n    D -->|AuthorizedOnly| F[\"Verify credential\"]\n    F -->|Valid| E\n    F -->|Invalid| G[\"403 Forbidden\"]\n    E --> H[\"\u003Cb>Response\u003C/b>\u003Cbr/>JSON-LD / HTML /\u003Cbr/>RDF / EPCIS events\"]\n","mermaid","",[507,523,524,532,538,544,550,556,562,568,574,580],{"__ignoreMap":521},[525,526,529],"span",{"class":527,"line":528},"line",1,[525,530,531],{},"flowchart TD\n",[525,533,535],{"class":527,"line":534},2,[525,536,537],{},"    A[\"\u003Cb>Data carrier\u003C/b>\u003Cbr/>QR / NFC / RFID\u003Cbr/>https://id.gs1.org/01/&lt;GTIN&gt;/21/&lt;serial&gt;\"]\n",[525,539,541],{"class":527,"line":540},3,[525,542,543],{},"    A --> B[\"\u003Cb>GS1 resolver\u003C/b>\u003Cbr/>id.gs1.org or self-hosted\u003Cbr/>looks up the linkset\"]\n",[525,545,547],{"class":527,"line":546},4,[525,548,549],{},"    B --> C[\"\u003Cb>DPP endpoint\u003C/b>\u003Cbr/>content negotiation +\u003Cbr/>linkType routing\"]\n",[525,551,553],{"class":527,"line":552},5,[525,554,555],{},"    C --> D{\"Access tier\u003Cbr/>(ESPR Art. 9)\"}\n",[525,557,559],{"class":527,"line":558},6,[525,560,561],{},"    D -->|Public| E[\"Return data\"]\n",[525,563,565],{"class":527,"line":564},7,[525,566,567],{},"    D -->|AuthorizedOnly| F[\"Verify credential\"]\n",[525,569,571],{"class":527,"line":570},8,[525,572,573],{},"    F -->|Valid| E\n",[525,575,577],{"class":527,"line":576},9,[525,578,579],{},"    F -->|Invalid| G[\"403 Forbidden\"]\n",[525,581,583],{"class":527,"line":582},10,[525,584,585],{},"    E --> H[\"\u003Cb>Response\u003C/b>\u003Cbr/>JSON-LD / HTML /\u003Cbr/>RDF / EPCIS events\"]\n",[490,587,589],{"id":588},"walking-it-through-with-one-example","Walking it through with one example",[495,591,592],{},"The example below uses a serialised timber product — chosen because timber under EUDR exercises the access-tier surface (a customs officer needs more detail than a consumer). The same primitives apply when the product is a battery, a garment, a smartphone or a frying pan; only the linkset entries and the JSON-LD payloads change.",[594,595,597],"h3",{"id":596},"_1-the-digital-link-uri-on-the-carrier","1 — The Digital Link URI on the carrier",[495,599,600],{},"The QR code carries a GS1 Digital Link URI:",[516,602,607],{"className":603,"code":605,"language":606},[604],"language-text","https://id.gs1.org/01/09521234000020/21/LOG-2025-001\n        └────┬───┘ └──────┬─────┘ └──────┬─────┘\n          Base       GTIN (AI 01)   Serial (AI 21)\n","text",[507,608,605],{"__ignoreMap":521},[495,610,611,612,615,616,619],{},"Application Identifiers (",[507,613,614],{},"01",", ",[507,617,618],{},"21",", …) are the same primitives GS1 has used in barcodes for decades. Encoding them in a URL means the same identifier is scannable by a phone camera, queryable by a server, and visible in a browser bar.",[594,621,623],{"id":622},"_2-resolver-lookup","2 — Resolver lookup",[495,625,626,627,631,632,635,636,639],{},"The resolver matches the GTIN against its registry and returns an ",[499,628,629],{},[507,630,509],{}," document (IETF RFC 9264). One object per ",[507,633,634],{},"anchor",", GS1 link relations as full-IRI keys, link descriptors as values. The discovery contract that lets downstream registries find and validate the deployment is the GS1 Conformant Resolver standard — see ",[637,638,346],"a",{"href":347}," for the full shape and the hosting choices we considered.",[594,641,643],{"id":642},"_3-content-negotiation","3 — Content negotiation",[495,645,646,647,650,651,654,655,658,659,662],{},"The same Digital Link URL serves different representations depending on the ",[507,648,649],{},"Accept"," header. A consumer's phone browser sends ",[507,652,653],{},"text/html"," and lands on a passport web page. A downstream system asks for ",[507,656,657],{},"application/ld+json"," and gets a typed JSON-LD record. RDF tooling asks for ",[507,660,661],{},"text/turtle",". This is plain HTTP content negotiation, not anything GS1-specific:",[664,665,666,679],"table",{},[667,668,669],"thead",{},[670,671,672,676],"tr",{},[673,674,675],"th",{},"Accept header",[673,677,678],{},"Response",[680,681,682,692,701,711],"tbody",{},[670,683,684,689],{},[685,686,687],"td",{},[507,688,653],{},[685,690,691],{},"Consumer-facing passport page",[670,693,694,698],{},[685,695,696],{},[507,697,657],{},[685,699,700],{},"JSON-LD record",[670,702,703,708],{},[685,704,705],{},[507,706,707],{},"application/json",[685,709,710],{},"Plain JSON",[670,712,713,717],{},[685,714,715],{},[507,716,661],{},[685,718,719],{},"RDF / Turtle",[594,721,723,724,727],{"id":722},"_4-linktype-for-facet-selection","4 — ",[507,725,726],{},"linkType"," for facet selection",[495,729,730,731,733,734,737,738,741,742,745],{},"Layered on top of ",[507,732,649],{},", the ",[507,735,736],{},"?linkType="," query parameter requests a specific facet of the passport. Per the GS1 Digital Link spec the value is the ",[499,739,740],{},"bare"," relation name (the compact ",[507,743,744],{},"gs1:…"," form only appears as keys inside the linkset JSON itself).",[495,747,748],{},"The list below is the relations our resolver auto-derives today; a deployment can extend it with sector-specific relations as needed.",[664,750,751,762],{},[667,752,753],{},[670,754,755,759],{},[673,756,757],{},[507,758,736],{},[673,760,761],{},"What it returns",[680,763,764,774,783,793,803,813,823],{},[670,765,766,771],{},[685,767,768],{},[507,769,770],{},"pip",[685,772,773],{},"Product Information Page (default)",[670,775,776,780],{},[685,777,778],{},[507,779,30],{},[685,781,782],{},"EPCIS event history",[670,784,785,790],{},[685,786,787],{},[507,788,789],{},"certificationInfo",[685,791,792],{},"Certificates and declarations",[670,794,795,800],{},[685,796,797],{},[507,798,799],{},"safetyInfo",[685,801,802],{},"Safety data sheet",[670,804,805,810],{},[685,806,807],{},[507,808,809],{},"recipeInfo",[685,811,812],{},"Composition / BOM",[670,814,815,820],{},[685,816,817],{},[507,818,819],{},"serviceInfo",[685,821,822],{},"Service and repair",[670,824,825,830],{},[685,826,827],{},[507,828,829],{},"productSustainabilityInfo",[685,831,832],{},"Carbon footprint, recycling",[594,834,836],{"id":835},"_5-access-tier-espr-article-9","5 — Access tier (ESPR Article 9)",[495,838,839],{},"ESPR Article 9 defines three access tiers for DPP data. The resolver enforces them at the request boundary:",[516,841,843],{"className":518,"code":842,"language":520,"meta":521,"style":521},"flowchart TD\n    R[Request arrives at DPP endpoint] --> L{Data access\u003Cbr/>tier}\n    L -->|Public| Ret[Return]\n    L -->|AuthorizedOnly| Auth[Verify credential\u003Cbr/>or capability token]\n    L -->|Restricted| Agr[Check bilateral\u003Cbr/>agreement]\n    Auth -->|Valid| Ret\n    Auth -->|Invalid| Den[403 Forbidden]\n    Agr -->|Granted| Ret\n    Agr -->|Not granted| Den\n",[507,844,845,849,854,859,864,869,874,879,884],{"__ignoreMap":521},[525,846,847],{"class":527,"line":528},[525,848,531],{},[525,850,851],{"class":527,"line":534},[525,852,853],{},"    R[Request arrives at DPP endpoint] --> L{Data access\u003Cbr/>tier}\n",[525,855,856],{"class":527,"line":540},[525,857,858],{},"    L -->|Public| Ret[Return]\n",[525,860,861],{"class":527,"line":546},[525,862,863],{},"    L -->|AuthorizedOnly| Auth[Verify credential\u003Cbr/>or capability token]\n",[525,865,866],{"class":527,"line":552},[525,867,868],{},"    L -->|Restricted| Agr[Check bilateral\u003Cbr/>agreement]\n",[525,870,871],{"class":527,"line":558},[525,872,873],{},"    Auth -->|Valid| Ret\n",[525,875,876],{"class":527,"line":564},[525,877,878],{},"    Auth -->|Invalid| Den[403 Forbidden]\n",[525,880,881],{"class":527,"line":570},[525,882,883],{},"    Agr -->|Granted| Ret\n",[525,885,886],{"class":527,"line":576},[525,887,888],{},"    Agr -->|Not granted| Den\n",[664,890,891,904],{},[667,892,893],{},[670,894,895,898,901],{},[673,896,897],{},"Tier",[673,899,900],{},"Who can read it",[673,902,903],{},"Examples",[680,905,906,919,932],{},[670,907,908,913,916],{},[685,909,910],{},[499,911,912],{},"Public",[685,914,915],{},"Anyone",[685,917,918],{},"Product name, manufacturer, recycling instructions, headline specs",[670,920,921,926,929],{},[685,922,923],{},[499,924,925],{},"AuthorizedOnly",[685,927,928],{},"Market surveillance, customs, accredited recyclers",[685,930,931],{},"Test reports, compliance dossiers, detailed supply chain",[670,933,934,939,942],{},[685,935,936],{},[499,937,938],{},"Restricted",[685,940,941],{},"Named partners under agreement",[685,943,944],{},"Trade secrets, proprietary formulations, full BOM",[495,946,947,948,952],{},"In our implementation the Authorized and Restricted tiers reuse the same identity layer that gates the EPCIS REST surface — a Keycloak-issued credential, a capability token, or (where we've wired it up) a Verifiable Credential presented via OID4VP. See ",[637,949,951],{"href":950},"/docs/platform-overview/architecture#wallet-agnostic-verifiable-credentials-oid4vc","Architecture → Wallet-agnostic Verifiable Credentials",".",[490,954,956],{"id":955},"instance-uris-vs-vocabulary-uris","Instance URIs vs vocabulary URIs",[495,958,959,960,963,964,967],{},"The URIs that ",[499,961,962],{},"identify a specific product"," and the URIs that ",[499,965,966],{},"define what a property means"," are distinct, and confusing them is a common early mistake:",[969,970,971,982],"ul",{},[972,973,974,977,978,981],"li",{},[499,975,976],{},"Instance URI"," — ",[507,979,980],{},"https://id.gs1.org/01/09521234000020/21/LOG-2025-001"," resolves to this specific timber log's record.",[972,983,984,977,987,990,991,995,996,999],{},[499,985,986],{},"Vocabulary URI",[507,988,989],{},"https://ref.openepcis.io/extensions/eu/eudr/commodityType"," is a ",[992,993,994],"em",{},"definition"," of the ",[507,997,998],{},"commodityType"," term and resolves to documentation.",[495,1001,1002,1003,1006,1007,615,1010,1013,1014,952],{},"In a JSON-LD document the ",[507,1004,1005],{},"@id"," is an instance URI; predicates (",[507,1008,1009],{},"battery:stateOfHealth",[507,1011,1012],{},"eudr:commodityType",", …) expand to vocabulary URIs through the ",[507,1015,1016],{},"@context",[490,1018,1020],{"id":1019},"what-this-walkthrough-is-not","What this walkthrough is not",[495,1022,1023],{},"A few things this page deliberately doesn't claim:",[969,1025,1026,1029,1032],{},[972,1027,1028],{},"It isn't a finished product offering. We've built the resolution mechanism and exercised it; the per-sector DPP credentials and the regulator-side acceptance criteria still depend on the underlying regulation landing (ESPR delegated acts, EU Central DPP Registry, sector EN standards). Status notes live on the per-domain implementation pages.",[972,1030,1031],{},"It isn't the only valid resolution flow. Other implementations put the resolver on a brand-owned domain, redirect rather than serve, gate everything behind authentication, fall back to a static page, or short-circuit content negotiation entirely. Each makes different trade-offs.",[972,1033,1034],{},"It isn't sector-specific. The primitives — Digital Link URI, linkset, content negotiation, linkType, access tier — are sector-neutral. The per-sector work is which fields go in the JSON-LD payload, not how the URL gets resolved.",[490,1036,1038],{"id":1037},"next-steps","Next steps",[969,1040,1041,1047,1060],{},[972,1042,1043,1046],{},[637,1044,1045],{"href":347},"Resolver Setup Guide"," — hosting options and the linkset JSON shape.",[972,1048,1049,615,1052,615,1055,615,1057,1059],{},[637,1050,1051],{"href":242},"Battery DPP Implementation",[637,1053,1054],{"href":274},"EUDR Implementation",[637,1056,296],{"href":297},[637,1058,364],{"href":365}," — per-sector linksets and event types.",[972,1061,1062,1064],{},[637,1063,951],{"href":950}," — how access-tier enforcement plugs into the OID4VC layer when a presented credential is part of the request.",[1066,1067,1068],"style",{},"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 .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":521,"searchDepth":534,"depth":534,"links":1070},[1071,1072,1073,1081,1082,1083],{"id":492,"depth":534,"text":493},{"id":513,"depth":534,"text":514},{"id":588,"depth":534,"text":589,"children":1074},[1075,1076,1077,1078,1080],{"id":596,"depth":540,"text":597},{"id":622,"depth":540,"text":623},{"id":642,"depth":540,"text":643},{"id":722,"depth":540,"text":1079},"4 — linkType for facet selection",{"id":835,"depth":540,"text":836},{"id":955,"depth":534,"text":956},{"id":1019,"depth":534,"text":1020},{"id":1037,"depth":534,"text":1038},"md",{"head":1086,"readingTime":1091},{"meta":1087},[1088],{"name":1089,"content":1090},"keywords","DPP resolution walkthrough, GS1 Digital Link, content negotiation, linkset, RFC 9264",{"text":1092,"minutes":1093,"time":1094,"words":1095},"5 min read",4.38,262800,876,{"title":337,"tags":1097},[342,95,343,344],{"title":485,"description":340},{"loc":338,"lastmod":1100,"changefreq":1101,"priority":1102},"2026-05-12","monthly",0.8,"mxP1lepOeHDobxgdw40YPuD1tvyiSS3f07dEEiX-f-Y",[1105],{"title":5,"path":6,"stem":7,"children":1106},[1107,1109,1114,1119,1124,1129,1134,1139,1149,1154,1159,1164,1222,1238],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":1108},[15,16,17,18,19,20],{"title":22,"path":23,"stem":24,"children":1110,"description":27,"icon":28,"tags":1113},[1111],{"title":22,"path":23,"stem":24,"description":27,"icon":28,"tags":1112},[16,30,31,32,33,34,35,36,37],[16,30,31,32,33,34,35,36,37],{"title":40,"path":41,"stem":42,"children":1115,"description":45,"icon":46,"tags":1118},[1116],{"title":40,"path":41,"stem":42,"description":45,"icon":46,"tags":1117},[16,30,31,32,48,49],[16,30,31,32,48,49],{"title":52,"path":53,"stem":54,"children":1120,"description":57,"icon":58,"tags":1123},[1121],{"title":52,"path":53,"stem":54,"description":57,"icon":58,"tags":1122},[16,60,61,62,63,64,65,20,66,67,68,69,70],[16,60,61,62,63,64,65,20,66,67,68,69,70],{"title":73,"path":74,"stem":75,"children":1125,"description":78,"icon":79,"tags":1128},[1126],{"title":73,"path":74,"stem":75,"description":78,"icon":79,"tags":1127},[16,31,60,61,62,63,81,65,20,82,83,84,68,69,70],[16,31,60,61,62,63,81,65,20,82,83,84,68,69,70],{"title":87,"path":88,"stem":89,"children":1130,"description":92,"icon":93,"tags":1133},[1131],{"title":87,"path":88,"stem":89,"description":92,"icon":93,"tags":1132},[16,95,96,97,98,99,20,100,101,102,103,104,105,106,107,108,109,110],[16,95,96,97,98,99,20,100,101,102,103,104,105,106,107,108,109,110],{"title":113,"path":114,"stem":115,"children":1135,"description":118,"icon":119,"tags":1138},[1136],{"title":113,"path":114,"stem":115,"description":118,"icon":119,"tags":1137},[16,121,60,61,62,63,20,122,123,124,69,70],[16,121,60,61,62,63,20,122,123,124,69,70],{"title":127,"path":128,"stem":129,"children":1140,"description":132,"icon":133,"tags":1148},[1141,1143],{"title":127,"path":128,"stem":129,"description":132,"icon":133,"tags":1142},[16,121,60,61,62,63,20,122,123,124,69,70],{"title":136,"path":137,"stem":138,"children":1144,"description":132,"icon":141,"tags":1147},[1145],{"title":136,"path":137,"stem":138,"description":132,"icon":141,"tags":1146},[16,60,61,143,20,144,145,146,34,147,148,149,150],[16,60,61,143,20,144,145,146,34,147,148,149,150],[16,121,60,61,62,63,20,122,123,124,69,70],{"title":154,"path":155,"stem":156,"children":1150,"description":159,"icon":160,"tags":1153},[1151],{"title":154,"path":155,"stem":156,"description":159,"icon":160,"tags":1152},[16,60,61,143,20,162,34,147,148,149,150],[16,60,61,143,20,162,34,147,148,149,150],{"title":165,"path":166,"stem":167,"children":1155,"description":170,"icon":171,"tags":1158},[1156],{"title":165,"path":166,"stem":167,"description":170,"icon":171,"tags":1157},[16,173,15,174,20,175,34,176,148,149,177],[16,173,15,174,20,175,34,176,148,149,177],{"title":180,"path":181,"stem":182,"children":1160,"description":185,"icon":186,"tags":1163},[1161],{"title":180,"path":181,"stem":182,"description":185,"icon":186,"tags":1162},[188,15,189,190,191,192,193,30,194,195,196,197,198,199,200,201],[188,15,189,190,191,192,193,30,194,195,196,197,198,199,200,201],{"title":204,"path":205,"stem":206,"children":1165,"description":209,"icon":210,"tags":1221},[1166,1168,1173,1182,1192,1201,1206,1208,1210,1212],{"title":204,"path":205,"stem":206,"description":209,"icon":210,"tags":1167},[212,213,214,30,215,34,216],{"title":218,"path":219,"stem":220,"children":1169,"description":223,"icon":224,"tags":1172},[1170],{"title":218,"path":219,"stem":220,"description":223,"icon":224,"tags":1171},[226,227,215,213,214],[226,227,215,213,214],{"title":230,"path":231,"stem":232,"children":1174,"description":235,"icon":236,"tags":1181},[1175,1177,1178,1179],{"title":230,"path":231,"stem":232,"description":235,"icon":236,"tags":1176},[238,239,213,30,101,34,215],{"title":241,"path":242,"stem":243,"description":244,"icon":171},{"title":246,"path":247,"stem":248,"description":249,"icon":250},{"title":252,"path":253,"stem":254,"description":255,"icon":13,"tags":1180},[238,257,258,61,259],[238,239,213,30,101,34,215],{"title":262,"path":263,"stem":264,"children":1183,"description":267,"icon":268,"tags":1191},[1184,1186,1187,1188,1189],{"title":262,"path":263,"stem":264,"description":267,"icon":268,"tags":1185},[270,271,272,213,30,101,34,215],{"title":241,"path":274,"stem":275,"description":276,"icon":277},{"title":246,"path":279,"stem":280,"description":281,"icon":277},{"title":283,"path":284,"stem":285,"description":286,"icon":277},{"title":252,"path":288,"stem":289,"description":290,"icon":13,"tags":1190},[270,257,272,292,293],[270,271,272,213,30,101,34,215],{"title":296,"path":297,"stem":298,"children":1193,"description":301,"icon":302,"tags":1200},[1194,1196,1198],{"title":296,"path":297,"stem":298,"description":301,"icon":302,"tags":1195},[304,305,306,213,215,307],{"title":241,"path":309,"stem":310,"description":311,"icon":312,"tags":1197},[304,305,306,314],{"title":252,"path":316,"stem":317,"description":318,"icon":13,"tags":1199},[304,257,305,306,320,61],[304,305,306,213,215,307],{"title":323,"path":324,"stem":325,"children":1202,"description":328,"icon":58,"tags":1205},[1203],{"title":323,"path":324,"stem":325,"description":328,"icon":58,"tags":1204},[330,331,101,332,226,333,334],[330,331,101,332,226,333,334],{"title":337,"path":338,"stem":339,"description":340,"icon":28,"tags":1207},[342,95,343,344],{"title":346,"path":347,"stem":348,"description":349,"icon":350,"tags":1209},[352,95,343],{"title":354,"path":355,"stem":356,"description":357,"icon":358,"tags":1211},[360,361,362,332],{"title":364,"path":365,"stem":366,"children":1213,"description":369,"icon":370,"tags":1220},[1214,1216,1218],{"title":364,"path":365,"stem":366,"description":369,"icon":370,"tags":1215},[372,373,374,375,376],{"title":241,"path":378,"stem":379,"description":380,"icon":171,"tags":1217},[372,314,373,374,375],{"title":252,"path":383,"stem":384,"description":385,"icon":13,"tags":1219},[372,257,387,388,61],[372,373,374,375,376],[212,213,214,30,215,34,216],{"title":392,"path":393,"stem":394,"children":1223,"description":397,"icon":398},[1224,1225,1226,1227,1228],{"title":392,"path":393,"stem":394,"description":397,"icon":398},{"title":400,"path":401,"stem":402,"description":403,"icon":404},{"title":406,"path":407,"stem":408,"description":409,"icon":410},{"title":412,"path":413,"stem":414,"description":415,"icon":416},{"title":418,"path":419,"stem":420,"children":1229,"description":423,"icon":424},[1230,1231,1232,1233,1234,1235,1236,1237],{"title":418,"path":419,"stem":420,"description":423,"icon":424},{"title":426,"path":427,"stem":428,"description":429,"icon":430},{"title":432,"path":433,"stem":434,"description":435,"icon":436},{"title":438,"path":439,"stem":440,"description":441,"icon":442},{"title":444,"path":445,"stem":446,"description":447,"icon":448},{"title":450,"path":451,"stem":452,"description":453,"icon":454},{"title":456,"path":457,"stem":458,"description":459,"icon":460},{"title":462,"path":463,"stem":464,"description":465,"icon":466},{"title":468,"path":469,"stem":470,"children":1239,"description":473,"icon":28,"tags":1242},[1240],{"title":468,"path":469,"stem":470,"description":473,"icon":28,"tags":1241},[475,476,477,478,331,479,480,481],[475,476,477,478,331,479,480,481],{"id":484,"title":485,"body":1244,"description":340,"extension":1084,"icon":28,"lastUpdated":277,"meta":1653,"navigation":1658,"path":338,"seo":1660,"sitemap":1661,"stem":339,"__hash__":1103},{"type":487,"value":1245,"toc":1639},[1246,1248,1252,1256,1258,1302,1304,1306,1308,1310,1315,1321,1323,1333,1335,1345,1389,1393,1403,1405,1475,1477,1479,1519,1563,1567,1569,1575,1593,1603,1605,1607,1615,1617,1637],[490,1247,493],{"id":492},[495,1249,497,1250,502],{},[499,1251,501],{},[495,1253,505,1254,510],{},[507,1255,509],{},[490,1257,514],{"id":513},[516,1259,1260],{"className":518,"code":519,"language":520,"meta":521,"style":521},[507,1261,1262,1266,1270,1274,1278,1282,1286,1290,1294,1298],{"__ignoreMap":521},[525,1263,1264],{"class":527,"line":528},[525,1265,531],{},[525,1267,1268],{"class":527,"line":534},[525,1269,537],{},[525,1271,1272],{"class":527,"line":540},[525,1273,543],{},[525,1275,1276],{"class":527,"line":546},[525,1277,549],{},[525,1279,1280],{"class":527,"line":552},[525,1281,555],{},[525,1283,1284],{"class":527,"line":558},[525,1285,561],{},[525,1287,1288],{"class":527,"line":564},[525,1289,567],{},[525,1291,1292],{"class":527,"line":570},[525,1293,573],{},[525,1295,1296],{"class":527,"line":576},[525,1297,579],{},[525,1299,1300],{"class":527,"line":582},[525,1301,585],{},[490,1303,589],{"id":588},[495,1305,592],{},[594,1307,597],{"id":596},[495,1309,600],{},[516,1311,1313],{"className":1312,"code":605,"language":606},[604],[507,1314,605],{"__ignoreMap":521},[495,1316,611,1317,615,1319,619],{},[507,1318,614],{},[507,1320,618],{},[594,1322,623],{"id":622},[495,1324,626,1325,631,1329,635,1331,639],{},[499,1326,1327],{},[507,1328,509],{},[507,1330,634],{},[637,1332,346],{"href":347},[594,1334,643],{"id":642},[495,1336,646,1337,650,1339,654,1341,658,1343,662],{},[507,1338,649],{},[507,1340,653],{},[507,1342,657],{},[507,1344,661],{},[664,1346,1347,1355],{},[667,1348,1349],{},[670,1350,1351,1353],{},[673,1352,675],{},[673,1354,678],{},[680,1356,1357,1365,1373,1381],{},[670,1358,1359,1363],{},[685,1360,1361],{},[507,1362,653],{},[685,1364,691],{},[670,1366,1367,1371],{},[685,1368,1369],{},[507,1370,657],{},[685,1372,700],{},[670,1374,1375,1379],{},[685,1376,1377],{},[507,1378,707],{},[685,1380,710],{},[670,1382,1383,1387],{},[685,1384,1385],{},[507,1386,661],{},[685,1388,719],{},[594,1390,723,1391,727],{"id":722},[507,1392,726],{},[495,1394,730,1395,733,1397,737,1399,741,1401,745],{},[507,1396,649],{},[507,1398,736],{},[499,1400,740],{},[507,1402,744],{},[495,1404,748],{},[664,1406,1407,1417],{},[667,1408,1409],{},[670,1410,1411,1415],{},[673,1412,1413],{},[507,1414,736],{},[673,1416,761],{},[680,1418,1419,1427,1435,1443,1451,1459,1467],{},[670,1420,1421,1425],{},[685,1422,1423],{},[507,1424,770],{},[685,1426,773],{},[670,1428,1429,1433],{},[685,1430,1431],{},[507,1432,30],{},[685,1434,782],{},[670,1436,1437,1441],{},[685,1438,1439],{},[507,1440,789],{},[685,1442,792],{},[670,1444,1445,1449],{},[685,1446,1447],{},[507,1448,799],{},[685,1450,802],{},[670,1452,1453,1457],{},[685,1454,1455],{},[507,1456,809],{},[685,1458,812],{},[670,1460,1461,1465],{},[685,1462,1463],{},[507,1464,819],{},[685,1466,822],{},[670,1468,1469,1473],{},[685,1470,1471],{},[507,1472,829],{},[685,1474,832],{},[594,1476,836],{"id":835},[495,1478,839],{},[516,1480,1481],{"className":518,"code":842,"language":520,"meta":521,"style":521},[507,1482,1483,1487,1491,1495,1499,1503,1507,1511,1515],{"__ignoreMap":521},[525,1484,1485],{"class":527,"line":528},[525,1486,531],{},[525,1488,1489],{"class":527,"line":534},[525,1490,853],{},[525,1492,1493],{"class":527,"line":540},[525,1494,858],{},[525,1496,1497],{"class":527,"line":546},[525,1498,863],{},[525,1500,1501],{"class":527,"line":552},[525,1502,868],{},[525,1504,1505],{"class":527,"line":558},[525,1506,873],{},[525,1508,1509],{"class":527,"line":564},[525,1510,878],{},[525,1512,1513],{"class":527,"line":570},[525,1514,883],{},[525,1516,1517],{"class":527,"line":576},[525,1518,888],{},[664,1520,1521,1531],{},[667,1522,1523],{},[670,1524,1525,1527,1529],{},[673,1526,897],{},[673,1528,900],{},[673,1530,903],{},[680,1532,1533,1543,1553],{},[670,1534,1535,1539,1541],{},[685,1536,1537],{},[499,1538,912],{},[685,1540,915],{},[685,1542,918],{},[670,1544,1545,1549,1551],{},[685,1546,1547],{},[499,1548,925],{},[685,1550,928],{},[685,1552,931],{},[670,1554,1555,1559,1561],{},[685,1556,1557],{},[499,1558,938],{},[685,1560,941],{},[685,1562,944],{},[495,1564,947,1565,952],{},[637,1566,951],{"href":950},[490,1568,956],{"id":955},[495,1570,959,1571,963,1573,967],{},[499,1572,962],{},[499,1574,966],{},[969,1576,1577,1583],{},[972,1578,1579,977,1581,981],{},[499,1580,976],{},[507,1582,980],{},[972,1584,1585,977,1587,990,1589,995,1591,999],{},[499,1586,986],{},[507,1588,989],{},[992,1590,994],{},[507,1592,998],{},[495,1594,1002,1595,1006,1597,615,1599,1013,1601,952],{},[507,1596,1005],{},[507,1598,1009],{},[507,1600,1012],{},[507,1602,1016],{},[490,1604,1020],{"id":1019},[495,1606,1023],{},[969,1608,1609,1611,1613],{},[972,1610,1028],{},[972,1612,1031],{},[972,1614,1034],{},[490,1616,1038],{"id":1037},[969,1618,1619,1623,1633],{},[972,1620,1621,1046],{},[637,1622,1045],{"href":347},[972,1624,1625,615,1627,615,1629,615,1631,1059],{},[637,1626,1051],{"href":242},[637,1628,1054],{"href":274},[637,1630,296],{"href":297},[637,1632,364],{"href":365},[972,1634,1635,1064],{},[637,1636,951],{"href":950},[1066,1638,1068],{},{"title":521,"searchDepth":534,"depth":534,"links":1640},[1641,1642,1643,1650,1651,1652],{"id":492,"depth":534,"text":493},{"id":513,"depth":534,"text":514},{"id":588,"depth":534,"text":589,"children":1644},[1645,1646,1647,1648,1649],{"id":596,"depth":540,"text":597},{"id":622,"depth":540,"text":623},{"id":642,"depth":540,"text":643},{"id":722,"depth":540,"text":1079},{"id":835,"depth":540,"text":836},{"id":955,"depth":534,"text":956},{"id":1019,"depth":534,"text":1020},{"id":1037,"depth":534,"text":1038},{"head":1654,"readingTime":1657},{"meta":1655},[1656],{"name":1089,"content":1090},{"text":1092,"minutes":1093,"time":1094,"words":1095},{"title":337,"tags":1659},[342,95,343,344],{"title":485,"description":340},{"loc":338,"lastmod":1100,"changefreq":1101,"priority":1102},1779384036454]