[{"data":1,"prerenderedAt":4344},["ShallowReactive",2],{"indicators:cookbook/series-address":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":11,"tree":12},"cookbook/series-address","cookbook/series-address.md",{"title":7,"description":8,"order":9,"section":10},"A series with an address","A package that reads a series by its address, plots it in the lower pane and keeps the latest reading in a status card. The series is one your own daemon…",70,"cookbook","---\ntitle: \"A series with an address\"\ndescription: \"A package that reads a series by its address, plots it in the lower pane and keeps the latest reading in a status card. The series is one your own daemon…\"\norder: 70\nsection: \"cookbook\"\n---\n\n\u003C!-- source: docs/indicators/cookbook/series-address.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# A series with an address\n\nA package that reads a series by its address, plots it in the lower pane and keeps the latest reading in a status card. The series is one your own daemon published: a watch that reads a number off a page each hour commits that number under a key, `om series create` turns the committed history into a series, `om series publish` gives it an address, and any package on any machine can name that address as an input. There is no kScript (legacy) precedent for this recipe; it is our own showcase of an input that is not a venue field.\n\nA series input has no code-first declaration, so this recipe is written metadata-first: the sheet (`wrun/metadata.json`) declares the inputs, the outputs and the card, and the source only computes. The two blocks under The Indicator are that sheet and that source, and `om wrun create` scaffolds both as the `series-address` template. The surfaces it uses: a `series` input carried forward between readings, two lines in the lower pane, and a card with a value row, an average row and a clock row.\n\n## Publish the series first\n\nA series is a watch's numeric history with an address. Any watch that commits a number under a key can become one: a page source in reading mode commits the number it read on every run, and a condition watch's fires carry the metric readings its rule read, by key. `om series create` snapshots that committed history under a local name, `om series publish` sends the snapshot to the registry as `@\u003Cyour username>/\u003Cname>` and advances the patch version whenever the content changed (unchanged content refuses), and `om install` lands the newest snapshot on any machine, yours included. The package reads an installed snapshot, never the registry, so install the series where the package runs. `@you` stands for your username: the scope defaults to the signed-in account, and `--scope` names another one you publish under.\n\n```bash\nom series create aqi-shanghai --watch aqi-shanghai --key aqi --title \"Shanghai AQI\" --cadence 1h\nom series publish aqi-shanghai --dry-run\nom series publish aqi-shanghai --yes\nom series show aqi-shanghai\nom install @you/aqi-shanghai\n```\n\n`om series show` prints the address, the cadence and the last five rows, so you can see what the package will read before you build it. The second address form, `watch/aqi-shanghai/aqi`, skips all of this: it reads your own watch's committed history live, with no snapshot and no publish, and it works only on the machine that runs the watch.\n\n## The Indicator\n\nThe sheet first, then the source. Both carry the same id, and the `series-address` template scaffolds them together.\n\n```json\n{\n  \"id\": \"series-address\",\n  \"name\": \"A series with an address\",\n  \"description\": \"Reads a published series by its address, plots it in the lower pane and shows the latest reading in a card.\",\n  \"overlay\": \"offchart\",\n  \"abi_version\": \"wrun-2\",\n  \"warmup_bars\": 7,\n  \"params\": [],\n  \"inputSources\": {\n    \"close\": { \"source\": \"ohlcv\", \"field\": \"close\" },\n    \"aqi\": { \"source\": \"series\", \"ref\": \"@you/aqi-shanghai\", \"missing\": \"carry\" }\n  },\n  \"inputs\": [\n    { \"index\": 0, \"name\": \"close\", \"description\": \"The chart's own candles: the grid every other input lines up on\" },\n    { \"index\": 1, \"name\": \"aqi\", \"description\": \"The series at @you/aqi-shanghai, its last reading carried forward\" }\n  ],\n  \"outputs\": [\n    { \"index\": 0, \"name\": \"aqi\", \"description\": \"The reading on each bar\", \"panel\": \"lower\", \"plot\": \"line\" },\n    { \"index\": 1, \"name\": \"aqi_ma\", \"description\": \"Rolling 7-bar average of the reading\", \"panel\": \"lower\", \"plot\": \"line\" }\n  ],\n  \"drawings\": [\n    {\n      \"kind\": \"card\",\n      \"name\": \"aqi_card\",\n      \"title\": \"Shanghai AQI\",\n      \"anchor\": \"top_right\",\n      \"rows\": [\n        { \"label\": \"AQI\", \"value\": { \"output\": \"aqi\", \"format\": \"int\" } },\n        { \"label\": \"7-bar avg\", \"value\": { \"output\": \"aqi_ma\", \"format\": \"auto\" } },\n        { \"label\": \"Updated\", \"clock\": true }\n      ]\n    }\n  ]\n}\n```\n\n```typescript\n// A series read by its address. The sheet (wrun/metadata.json) declares the inputs, the outputs and the\n// card; this file only computes. A series input is read through in_\u003Cname>() like any other input.\nimport { in_aqi, in_close } from \"./gen/inputs\"; // generated from the sheet: one in_ reader per input\nimport { emitRow, out_aqi, out_aqi_ma } from \"./gen/outputs\"; // generated: one out_ writer per output, plus emitRow\nimport { Sma } from \"./sdk/ta\"; // the rolling average over the readings\n\nconst average = new Sma(7); // seven bars of readings; the card's \"7-bar avg\" label is literal text in the sheet\nlet aqi: f64 = NaN; // the reading on this bar (missing: \"carry\" repeats the last one until a new one lands)\nlet avg: f64 = NaN; // its rolling average, NaN until seven readings are in\n\nexport function init(): void {}\nexport function state(): i32 { // once per bar, oldest first: read the candle and the reading, fold the average\n  aqi = in_aqi();\n  if (isNaN(in_close()) || isNaN(aqi)) return 0; // no candle, or no reading has arrived yet: this row abstains\n  avg = average.update(aqi);\n  return 1;\n}\nexport function finalize(): void { // the two outputs the sheet's draw.card reads from the newest complete row\n  out_aqi(aqi);\n  out_aqi_ma(avg);\n  emitRow();\n}\nexport function reset(): void { average.reset(); aqi = NaN; avg = NaN; } // back to the start, the ring cleared\n```\n\n## How it works\n\n**The address is the input.** `\"aqi\": { \"source\": \"series\", \"ref\": \"@you/aqi-shanghai\", \"missing\": \"carry\" }` is an input the way `close` is one. The daemon resolves the address to the newest installed snapshot (or, in the `watch/\u003Cslug>/\u003Ckey>` form, to the watch's own committed history), buckets its readings onto the chart's candles, and hands the source one number per bar through `in_aqi()`; the last reading in a bucket wins. A series can never be the primary input: `close` at index 0 defines the grid, and the series lines up on it. The address is the whole description, so a series input takes no `field`, no `symbol`, no `exchange` and no `interval`. Its `missing` policy is `carry` (the last reading repeats until a new one lands, so an hourly series reads as a step line on a 5-minute chart) or `nan` (a bar without a reading reads `NaN`); `zero` is refused, because a reading that did not happen is not zero.\n\n**Metadata-first, on purpose.** The declaring words in `./sdk/declare` cover venue fields, celled sources and the `time` source; there is no word for a series, so the sheet is hand-written and the source reads the generated accessors `in_aqi()`, `out_aqi(...)` and `out_aqi_ma(...)`. `om wrun build` regenerates `src/gen` from the sheet before every compile, so renaming an input in the sheet renames its accessor. `abi_version` is `wrun-2`, the first version with drawings, and `warmup_bars: 7` asks the daemon to feed seven bars ahead of the window you read, so a seven-bar average can be ready on the first row you see.\n\n**Readiness is per bar.** `state()` runs once per bar, oldest first. It reads the candle and the reading; while no reading has arrived yet (the bars before the series' first row) it returns `0`, so the row abstains and nothing is plotted. From the first reading on, every bar is ready: `aqi` is the reading carried onto that bar, `aqi_ma` its seven-bar `Sma`, `NaN` for the first six. A `NaN` output is a gap in the line, not a refusal.\n\n**The card reads outputs, not the source.** The card is a drawing in the sheet, and the source never touches it: the host takes the newest ready row where every referenced output is finite and prints `aqi` as an integer and `aqi_ma` with up to six significant digits. Until the average exists no row is complete, so the newest ready row supplies the card and the average prints empty. The `clock: true` row asks the chart to show its clock on that row, the one line on the card the package cannot compute: readings are per bar, the clock is now. `anchor: \"top_right\"` pins the card to the pane corner; `offset` and `z` move it and stack it.\n\n**Where it runs.** A series lives in daemon state, so this package is for your machine: `om wrun install`, then `om metric series`, or a watch on `wrun/@you/series-address/aqi`. The chart host cannot supply a series input. To see the raw series on a chart, `om chart series push --address @you/aqi-shanghai` plots the installed snapshot as a line. The market you read the package on names the grid: on `BTCUSDT` at `1h`, the AQI readings line up on hourly BTC candles, and the reading has nothing to do with the price.\n\n## What kScript (legacy) could not do\n\n- An input that is not a venue field. A kScript `source(...)` named a data type on a symbol at an exchange; an air-quality reading, a survey number or a count your watch produced had no way in. Here the input is an address, and the address is the whole description: no field, no symbol, no exchange, no interval.\n- A series published by a daemon. A kScript's numbers stayed on the chart that computed them. A watch's committed history becomes a series with one command, gets an address with another, and every package that names the address reads it.\n- A card with a clock. `plotTable` under `isLastBar` printed values the script computed; a row that shows the chart's clock (`clock: true`) or counts down to an output (`countdown_to`) is a card row here, drawn by the host from the sheet.\n- An address another user can install. `om install @you/aqi-shanghai` on any machine lands the snapshot, and a package that names it works there too. A kScript could not read anything another user published.\n\n## Customize it\n\n- **Read your own watch live.** Change `ref` to `watch/aqi-shanghai/aqi`: the daemon reads the watch's committed history directly, no snapshot, no publish, no install. It works only on the machine that runs the watch.\n- **Change the window.** `new Sma(7)` in the source and the `7-bar avg` label in the sheet are both literal; change them together, and keep `warmup_bars` at or above the window so the average is ready on the first row you read.\n- **Show gaps.** `\"missing\": \"nan\"` makes a bar without a reading read `NaN`: the line breaks between readings instead of stepping, and `state()` abstains on those bars as written.\n- **Add a spark row.** `{ \"label\": \"Last 24\", \"spark\": { \"output\": \"aqi\", \"window\": 24 } }` carries the last 24 ready readings on the card, oldest first; the window is 2 to 64.\n- **Move the card.** `anchor` takes the nine pane positions, `offset: [-12, 12]` nudges it by pixels (each from -200 to 200), and `z` stacks it over other drawings.\n\nScaffold, build, install, and read the reading on your machine (the series must be installed first, see above):\n\n```bash\nom wrun create @you/series-address ./series-address --template series-address\nom wrun build ./series-address\nom wrun install ./series-address --replace\nom metric series --metric wrun/@you/series-address/aqi --symbol BTCUSDT --exchange BINANCE_FUTURES --bars 20\n```\n\n## Concepts used\n\n- [Data sources](../core-concepts/data-sources.md) for the `missing` policies and how a secondary input lines up on the primary grid\n- [Drawing primitives](../functions/drawing-primitives.md) for status cards, their row keys, and the series input note\n- [Multi-source](../core-concepts/multi-source.md) for a second input on the chart's grid and arithmetic across inputs\n- [Execution model](../core-concepts/execution-model.md) for `state()` abstaining, `finalize()`, and where pins and series are honored\n- [Moving averages](../functions/moving-averages.md) for the `Sma` class and its `NaN` warm-up\n- [Limitations](../faq/limitations.md) for what the chart host cannot supply\n",{"type":13,"children":14,"data":4338,"position":4340},"root",[15,25,28,29,87,88,183,184,203,204,336,337,506,507,555,556,572,573,607,608,1602,1603,2246,2247,2264,2265,2573,2574,2800,2801,2967,2968,3115,3116,3262,3263,3280,3281,3472,3473,3489,3490,3871,3872,3885,3886,4033,4034,4049,4050],{"type":16,"value":17,"position":18},"comment"," source: docs/indicators/cookbook/series-address.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":19,"end":22},{"line":20,"column":20,"offset":21},1,0,{"line":20,"column":23,"offset":24},130,129,{"type":26,"value":27},"text","\n",{"type":26,"value":27},{"type":30,"tagName":31,"properties":32,"children":33,"position":84},"element","p",{},[34,43,57,64,77],{"type":26,"value":35,"position":36},"A package that reads a series by its address, plots it in the lower pane and keeps the latest reading in a status card. The series is one your own daemon published: a watch that reads a number off a page each hour commits that number under a key, ",{"start":37,"end":40},{"line":38,"column":20,"offset":39},5,159,{"line":38,"column":41,"offset":42},248,406,{"type":30,"tagName":44,"properties":45,"children":46,"position":54},"code",{},[47],{"type":26,"value":48,"position":49},"om series create",{"start":50,"end":51},{"line":38,"column":41,"offset":42},{"line":38,"column":52,"offset":53},266,424,{"start":55,"end":56},{"line":38,"column":41,"offset":42},{"line":38,"column":52,"offset":53},{"type":26,"value":58,"position":59}," turns the committed history into a series, ",{"start":60,"end":61},{"line":38,"column":52,"offset":53},{"line":38,"column":62,"offset":63},310,468,{"type":30,"tagName":44,"properties":65,"children":66,"position":74},{},[67],{"type":26,"value":68,"position":69},"om series publish",{"start":70,"end":71},{"line":38,"column":62,"offset":63},{"line":38,"column":72,"offset":73},329,487,{"start":75,"end":76},{"line":38,"column":62,"offset":63},{"line":38,"column":72,"offset":73},{"type":26,"value":78,"position":79}," gives it an address, and any package on any machine can name that address as an input. There is no kScript (legacy) precedent for this recipe; it is our own showcase of an input that is not a venue field.",{"start":80,"end":81},{"line":38,"column":72,"offset":73},{"line":38,"column":82,"offset":83},534,692,{"start":85,"end":86},{"line":38,"column":20,"offset":39},{"line":38,"column":82,"offset":83},{"type":26,"value":27},{"type":30,"tagName":31,"properties":89,"children":90,"position":180},{},[91,100,113,120,133,140,153,160,173],{"type":26,"value":92,"position":93},"A series input has no code-first declaration, so this recipe is written metadata-first: the sheet (",{"start":94,"end":97},{"line":95,"column":20,"offset":96},7,694,{"line":95,"column":98,"offset":99},100,793,{"type":30,"tagName":44,"properties":101,"children":102,"position":110},{},[103],{"type":26,"value":104,"position":105},"wrun/metadata.json",{"start":106,"end":107},{"line":95,"column":98,"offset":99},{"line":95,"column":108,"offset":109},120,813,{"start":111,"end":112},{"line":95,"column":98,"offset":99},{"line":95,"column":108,"offset":109},{"type":26,"value":114,"position":115},") declares the inputs, the outputs and the card, and the source only computes. The two blocks under The Indicator are that sheet and that source, and ",{"start":116,"end":117},{"line":95,"column":108,"offset":109},{"line":95,"column":118,"offset":119},270,963,{"type":30,"tagName":44,"properties":121,"children":122,"position":130},{},[123],{"type":26,"value":124,"position":125},"om wrun create",{"start":126,"end":127},{"line":95,"column":118,"offset":119},{"line":95,"column":128,"offset":129},286,979,{"start":131,"end":132},{"line":95,"column":118,"offset":119},{"line":95,"column":128,"offset":129},{"type":26,"value":134,"position":135}," scaffolds both as the ",{"start":136,"end":137},{"line":95,"column":128,"offset":129},{"line":95,"column":138,"offset":139},309,1002,{"type":30,"tagName":44,"properties":141,"children":142,"position":150},{},[143],{"type":26,"value":144,"position":145},"series-address",{"start":146,"end":147},{"line":95,"column":138,"offset":139},{"line":95,"column":148,"offset":149},325,1018,{"start":151,"end":152},{"line":95,"column":138,"offset":139},{"line":95,"column":148,"offset":149},{"type":26,"value":154,"position":155}," template. The surfaces it uses: a ",{"start":156,"end":157},{"line":95,"column":148,"offset":149},{"line":95,"column":158,"offset":159},360,1053,{"type":30,"tagName":44,"properties":161,"children":162,"position":170},{},[163],{"type":26,"value":164,"position":165},"series",{"start":166,"end":167},{"line":95,"column":158,"offset":159},{"line":95,"column":168,"offset":169},368,1061,{"start":171,"end":172},{"line":95,"column":158,"offset":159},{"line":95,"column":168,"offset":169},{"type":26,"value":174,"position":175}," input carried forward between readings, two lines in the lower pane, and a card with a value row, an average row and a clock row.",{"start":176,"end":177},{"line":95,"column":168,"offset":169},{"line":95,"column":178,"offset":179},498,1191,{"start":181,"end":182},{"line":95,"column":20,"offset":96},{"line":95,"column":178,"offset":179},{"type":26,"value":27},{"type":30,"tagName":185,"properties":186,"children":188,"position":199},"h2",{"id":187},"publish-the-series-first",[189],{"type":26,"value":190,"position":191},"Publish the series first",{"start":192,"end":196},{"line":193,"column":194,"offset":195},9,4,1196,{"line":193,"column":197,"offset":198},28,1220,{"start":200,"end":202},{"line":193,"column":20,"offset":201},1193,{"line":193,"column":197,"offset":198},{"type":26,"value":27},{"type":30,"tagName":31,"properties":205,"children":206,"position":333},{},[207,215,227,234,246,253,266,273,286,293,306,313,326],{"type":26,"value":208,"position":209},"A series is a watch's numeric history with an address. Any watch that commits a number under a key can become one: a page source in reading mode commits the number it read on every run, and a condition watch's fires carry the metric readings its rule read, by key. ",{"start":210,"end":213},{"line":211,"column":20,"offset":212},11,1222,{"line":211,"column":52,"offset":214},1487,{"type":30,"tagName":44,"properties":216,"children":217,"position":224},{},[218],{"type":26,"value":48,"position":219},{"start":220,"end":221},{"line":211,"column":52,"offset":214},{"line":211,"column":222,"offset":223},284,1505,{"start":225,"end":226},{"line":211,"column":52,"offset":214},{"line":211,"column":222,"offset":223},{"type":26,"value":228,"position":229}," snapshots that committed history under a local name, ",{"start":230,"end":231},{"line":211,"column":222,"offset":223},{"line":211,"column":232,"offset":233},338,1559,{"type":30,"tagName":44,"properties":235,"children":236,"position":243},{},[237],{"type":26,"value":68,"position":238},{"start":239,"end":240},{"line":211,"column":232,"offset":233},{"line":211,"column":241,"offset":242},357,1578,{"start":244,"end":245},{"line":211,"column":232,"offset":233},{"line":211,"column":241,"offset":242},{"type":26,"value":247,"position":248}," sends the snapshot to the registry as ",{"start":249,"end":250},{"line":211,"column":241,"offset":242},{"line":211,"column":251,"offset":252},396,1617,{"type":30,"tagName":44,"properties":254,"children":255,"position":263},{},[256],{"type":26,"value":257,"position":258},"@\u003Cyour username>/\u003Cname>",{"start":259,"end":260},{"line":211,"column":251,"offset":252},{"line":211,"column":261,"offset":262},421,1642,{"start":264,"end":265},{"line":211,"column":251,"offset":252},{"line":211,"column":261,"offset":262},{"type":26,"value":267,"position":268}," and advances the patch version whenever the content changed (unchanged content refuses), and ",{"start":269,"end":270},{"line":211,"column":261,"offset":262},{"line":211,"column":271,"offset":272},515,1736,{"type":30,"tagName":44,"properties":274,"children":275,"position":283},{},[276],{"type":26,"value":277,"position":278},"om install",{"start":279,"end":280},{"line":211,"column":271,"offset":272},{"line":211,"column":281,"offset":282},527,1748,{"start":284,"end":285},{"line":211,"column":271,"offset":272},{"line":211,"column":281,"offset":282},{"type":26,"value":287,"position":288}," lands the newest snapshot on any machine, yours included. The package reads an installed snapshot, never the registry, so install the series where the package runs. ",{"start":289,"end":290},{"line":211,"column":281,"offset":282},{"line":211,"column":291,"offset":292},693,1914,{"type":30,"tagName":44,"properties":294,"children":295,"position":303},{},[296],{"type":26,"value":297,"position":298},"@you",{"start":299,"end":300},{"line":211,"column":291,"offset":292},{"line":211,"column":301,"offset":302},699,1920,{"start":304,"end":305},{"line":211,"column":291,"offset":292},{"line":211,"column":301,"offset":302},{"type":26,"value":307,"position":308}," stands for your username: the scope defaults to the signed-in account, and ",{"start":309,"end":310},{"line":211,"column":301,"offset":302},{"line":211,"column":311,"offset":312},775,1996,{"type":30,"tagName":44,"properties":314,"children":315,"position":323},{},[316],{"type":26,"value":317,"position":318},"--scope",{"start":319,"end":320},{"line":211,"column":311,"offset":312},{"line":211,"column":321,"offset":322},784,2005,{"start":324,"end":325},{"line":211,"column":311,"offset":312},{"line":211,"column":321,"offset":322},{"type":26,"value":327,"position":328}," names another one you publish under.",{"start":329,"end":330},{"line":211,"column":321,"offset":322},{"line":211,"column":331,"offset":332},821,2042,{"start":334,"end":335},{"line":211,"column":20,"offset":212},{"line":211,"column":331,"offset":332},{"type":26,"value":27},{"type":13,"children":338},[339],{"type":30,"tagName":340,"properties":341,"children":345,"data":-1},"pre",{"class":342,"style":343,"tabindex":344},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[346],{"type":30,"tagName":44,"properties":347,"children":348},{},[349,416,417,442,443,467,468,488,489],{"type":30,"tagName":350,"properties":351,"children":353},"span",{"class":352},"line",[354,360,366,371,376,382,386,391,396,401,406,411],{"type":30,"tagName":350,"properties":355,"children":357},{"style":356},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[358],{"type":26,"value":359},"om",{"type":30,"tagName":350,"properties":361,"children":363},{"style":362},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[364],{"type":26,"value":365}," series",{"type":30,"tagName":350,"properties":367,"children":368},{"style":362},[369],{"type":26,"value":370}," create",{"type":30,"tagName":350,"properties":372,"children":373},{"style":362},[374],{"type":26,"value":375}," aqi-shanghai",{"type":30,"tagName":350,"properties":377,"children":379},{"style":378},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[380],{"type":26,"value":381}," --watch",{"type":30,"tagName":350,"properties":383,"children":384},{"style":362},[385],{"type":26,"value":375},{"type":30,"tagName":350,"properties":387,"children":388},{"style":378},[389],{"type":26,"value":390}," --key",{"type":30,"tagName":350,"properties":392,"children":393},{"style":362},[394],{"type":26,"value":395}," aqi",{"type":30,"tagName":350,"properties":397,"children":398},{"style":378},[399],{"type":26,"value":400}," --title",{"type":30,"tagName":350,"properties":402,"children":403},{"style":362},[404],{"type":26,"value":405}," \"Shanghai AQI\"",{"type":30,"tagName":350,"properties":407,"children":408},{"style":378},[409],{"type":26,"value":410}," --cadence",{"type":30,"tagName":350,"properties":412,"children":413},{"style":362},[414],{"type":26,"value":415}," 1h",{"type":26,"value":27},{"type":30,"tagName":350,"properties":418,"children":419},{"class":352},[420,424,428,433,437],{"type":30,"tagName":350,"properties":421,"children":422},{"style":356},[423],{"type":26,"value":359},{"type":30,"tagName":350,"properties":425,"children":426},{"style":362},[427],{"type":26,"value":365},{"type":30,"tagName":350,"properties":429,"children":430},{"style":362},[431],{"type":26,"value":432}," publish",{"type":30,"tagName":350,"properties":434,"children":435},{"style":362},[436],{"type":26,"value":375},{"type":30,"tagName":350,"properties":438,"children":439},{"style":378},[440],{"type":26,"value":441}," --dry-run",{"type":26,"value":27},{"type":30,"tagName":350,"properties":444,"children":445},{"class":352},[446,450,454,458,462],{"type":30,"tagName":350,"properties":447,"children":448},{"style":356},[449],{"type":26,"value":359},{"type":30,"tagName":350,"properties":451,"children":452},{"style":362},[453],{"type":26,"value":365},{"type":30,"tagName":350,"properties":455,"children":456},{"style":362},[457],{"type":26,"value":432},{"type":30,"tagName":350,"properties":459,"children":460},{"style":362},[461],{"type":26,"value":375},{"type":30,"tagName":350,"properties":463,"children":464},{"style":378},[465],{"type":26,"value":466}," --yes",{"type":26,"value":27},{"type":30,"tagName":350,"properties":469,"children":470},{"class":352},[471,475,479,484],{"type":30,"tagName":350,"properties":472,"children":473},{"style":356},[474],{"type":26,"value":359},{"type":30,"tagName":350,"properties":476,"children":477},{"style":362},[478],{"type":26,"value":365},{"type":30,"tagName":350,"properties":480,"children":481},{"style":362},[482],{"type":26,"value":483}," show",{"type":30,"tagName":350,"properties":485,"children":486},{"style":362},[487],{"type":26,"value":375},{"type":26,"value":27},{"type":30,"tagName":350,"properties":490,"children":491},{"class":352},[492,496,501],{"type":30,"tagName":350,"properties":493,"children":494},{"style":356},[495],{"type":26,"value":359},{"type":30,"tagName":350,"properties":497,"children":498},{"style":362},[499],{"type":26,"value":500}," install",{"type":30,"tagName":350,"properties":502,"children":503},{"style":362},[504],{"type":26,"value":505}," @you/aqi-shanghai",{"type":26,"value":27},{"type":30,"tagName":31,"properties":508,"children":509,"position":552},{},[510,525,532,545],{"type":30,"tagName":44,"properties":511,"children":512,"position":522},{},[513],{"type":26,"value":514,"position":515},"om series show",{"start":516,"end":519},{"line":517,"column":20,"offset":518},21,2289,{"line":517,"column":520,"offset":521},17,2305,{"start":523,"end":524},{"line":517,"column":20,"offset":518},{"line":517,"column":520,"offset":521},{"type":26,"value":526,"position":527}," prints the address, the cadence and the last five rows, so you can see what the package will read before you build it. The second address form, ",{"start":528,"end":529},{"line":517,"column":520,"offset":521},{"line":517,"column":530,"offset":531},162,2450,{"type":30,"tagName":44,"properties":533,"children":534,"position":542},{},[535],{"type":26,"value":536,"position":537},"watch/aqi-shanghai/aqi",{"start":538,"end":539},{"line":517,"column":530,"offset":531},{"line":517,"column":540,"offset":541},186,2474,{"start":543,"end":544},{"line":517,"column":530,"offset":531},{"line":517,"column":540,"offset":541},{"type":26,"value":546,"position":547},", skips all of this: it reads your own watch's committed history live, with no snapshot and no publish, and it works only on the machine that runs the watch.",{"start":548,"end":549},{"line":517,"column":540,"offset":541},{"line":517,"column":550,"offset":551},343,2631,{"start":553,"end":554},{"line":517,"column":20,"offset":518},{"line":517,"column":550,"offset":551},{"type":26,"value":27},{"type":30,"tagName":185,"properties":557,"children":559,"position":568},{"id":558},"the-indicator",[560],{"type":26,"value":561,"position":562},"The Indicator",{"start":563,"end":566},{"line":564,"column":194,"offset":565},23,2636,{"line":564,"column":520,"offset":567},2649,{"start":569,"end":571},{"line":564,"column":20,"offset":570},2633,{"line":564,"column":520,"offset":567},{"type":26,"value":27},{"type":30,"tagName":31,"properties":574,"children":575,"position":604},{},[576,585,597],{"type":26,"value":577,"position":578},"The sheet first, then the source. Both carry the same id, and the ",{"start":579,"end":582},{"line":580,"column":20,"offset":581},25,2651,{"line":580,"column":583,"offset":584},67,2717,{"type":30,"tagName":44,"properties":586,"children":587,"position":594},{},[588],{"type":26,"value":144,"position":589},{"start":590,"end":591},{"line":580,"column":583,"offset":584},{"line":580,"column":592,"offset":593},83,2733,{"start":595,"end":596},{"line":580,"column":583,"offset":584},{"line":580,"column":592,"offset":593},{"type":26,"value":598,"position":599}," template scaffolds them together.",{"start":600,"end":601},{"line":580,"column":592,"offset":593},{"line":580,"column":602,"offset":603},117,2767,{"start":605,"end":606},{"line":580,"column":20,"offset":581},{"line":580,"column":602,"offset":603},{"type":26,"value":27},{"type":13,"children":609},[610],{"type":30,"tagName":340,"properties":611,"children":612,"data":-1},{"class":342,"style":343,"tabindex":344},[613],{"type":30,"tagName":44,"properties":614,"children":615},{},[616,625,626,649,650,671,672,693,694,715,716,737,738,759,760,773,774,787,788,839,840,906,907,915,916,929,930,990,991,1049,1050,1058,1059,1071,1072,1164,1165,1254,1255,1262,1263,1275,1276,1284,1285,1306,1307,1328,1329,1350,1351,1372,1373,1385,1386,1457,1458,1523,1524,1566,1567,1575,1576,1584,1585,1593,1594],{"type":30,"tagName":350,"properties":617,"children":618},{"class":352},[619],{"type":30,"tagName":350,"properties":620,"children":622},{"style":621},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[623],{"type":26,"value":624},"{",{"type":26,"value":27},{"type":30,"tagName":350,"properties":627,"children":628},{"class":352},[629,634,639,644],{"type":30,"tagName":350,"properties":630,"children":631},{"style":378},[632],{"type":26,"value":633},"  \"id\"",{"type":30,"tagName":350,"properties":635,"children":636},{"style":621},[637],{"type":26,"value":638},": ",{"type":30,"tagName":350,"properties":640,"children":641},{"style":362},[642],{"type":26,"value":643},"\"series-address\"",{"type":30,"tagName":350,"properties":645,"children":646},{"style":621},[647],{"type":26,"value":648},",",{"type":26,"value":27},{"type":30,"tagName":350,"properties":651,"children":652},{"class":352},[653,658,662,667],{"type":30,"tagName":350,"properties":654,"children":655},{"style":378},[656],{"type":26,"value":657},"  \"name\"",{"type":30,"tagName":350,"properties":659,"children":660},{"style":621},[661],{"type":26,"value":638},{"type":30,"tagName":350,"properties":663,"children":664},{"style":362},[665],{"type":26,"value":666},"\"A series with an address\"",{"type":30,"tagName":350,"properties":668,"children":669},{"style":621},[670],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":673,"children":674},{"class":352},[675,680,684,689],{"type":30,"tagName":350,"properties":676,"children":677},{"style":378},[678],{"type":26,"value":679},"  \"description\"",{"type":30,"tagName":350,"properties":681,"children":682},{"style":621},[683],{"type":26,"value":638},{"type":30,"tagName":350,"properties":685,"children":686},{"style":362},[687],{"type":26,"value":688},"\"Reads a published series by its address, plots it in the lower pane and shows the latest reading in a card.\"",{"type":30,"tagName":350,"properties":690,"children":691},{"style":621},[692],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":695,"children":696},{"class":352},[697,702,706,711],{"type":30,"tagName":350,"properties":698,"children":699},{"style":378},[700],{"type":26,"value":701},"  \"overlay\"",{"type":30,"tagName":350,"properties":703,"children":704},{"style":621},[705],{"type":26,"value":638},{"type":30,"tagName":350,"properties":707,"children":708},{"style":362},[709],{"type":26,"value":710},"\"offchart\"",{"type":30,"tagName":350,"properties":712,"children":713},{"style":621},[714],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":717,"children":718},{"class":352},[719,724,728,733],{"type":30,"tagName":350,"properties":720,"children":721},{"style":378},[722],{"type":26,"value":723},"  \"abi_version\"",{"type":30,"tagName":350,"properties":725,"children":726},{"style":621},[727],{"type":26,"value":638},{"type":30,"tagName":350,"properties":729,"children":730},{"style":362},[731],{"type":26,"value":732},"\"wrun-2\"",{"type":30,"tagName":350,"properties":734,"children":735},{"style":621},[736],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":739,"children":740},{"class":352},[741,746,750,755],{"type":30,"tagName":350,"properties":742,"children":743},{"style":378},[744],{"type":26,"value":745},"  \"warmup_bars\"",{"type":30,"tagName":350,"properties":747,"children":748},{"style":621},[749],{"type":26,"value":638},{"type":30,"tagName":350,"properties":751,"children":752},{"style":378},[753],{"type":26,"value":754},"7",{"type":30,"tagName":350,"properties":756,"children":757},{"style":621},[758],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":761,"children":762},{"class":352},[763,768],{"type":30,"tagName":350,"properties":764,"children":765},{"style":378},[766],{"type":26,"value":767},"  \"params\"",{"type":30,"tagName":350,"properties":769,"children":770},{"style":621},[771],{"type":26,"value":772},": [],",{"type":26,"value":27},{"type":30,"tagName":350,"properties":775,"children":776},{"class":352},[777,782],{"type":30,"tagName":350,"properties":778,"children":779},{"style":378},[780],{"type":26,"value":781},"  \"inputSources\"",{"type":30,"tagName":350,"properties":783,"children":784},{"style":621},[785],{"type":26,"value":786},": {",{"type":26,"value":27},{"type":30,"tagName":350,"properties":789,"children":790},{"class":352},[791,796,801,806,810,815,820,825,829,834],{"type":30,"tagName":350,"properties":792,"children":793},{"style":378},[794],{"type":26,"value":795},"    \"close\"",{"type":30,"tagName":350,"properties":797,"children":798},{"style":621},[799],{"type":26,"value":800},": { ",{"type":30,"tagName":350,"properties":802,"children":803},{"style":378},[804],{"type":26,"value":805},"\"source\"",{"type":30,"tagName":350,"properties":807,"children":808},{"style":621},[809],{"type":26,"value":638},{"type":30,"tagName":350,"properties":811,"children":812},{"style":362},[813],{"type":26,"value":814},"\"ohlcv\"",{"type":30,"tagName":350,"properties":816,"children":817},{"style":621},[818],{"type":26,"value":819},", ",{"type":30,"tagName":350,"properties":821,"children":822},{"style":378},[823],{"type":26,"value":824},"\"field\"",{"type":30,"tagName":350,"properties":826,"children":827},{"style":621},[828],{"type":26,"value":638},{"type":30,"tagName":350,"properties":830,"children":831},{"style":362},[832],{"type":26,"value":833},"\"close\"",{"type":30,"tagName":350,"properties":835,"children":836},{"style":621},[837],{"type":26,"value":838}," },",{"type":26,"value":27},{"type":30,"tagName":350,"properties":841,"children":842},{"class":352},[843,848,852,856,860,865,869,874,878,883,887,892,896,901],{"type":30,"tagName":350,"properties":844,"children":845},{"style":378},[846],{"type":26,"value":847},"    \"aqi\"",{"type":30,"tagName":350,"properties":849,"children":850},{"style":621},[851],{"type":26,"value":800},{"type":30,"tagName":350,"properties":853,"children":854},{"style":378},[855],{"type":26,"value":805},{"type":30,"tagName":350,"properties":857,"children":858},{"style":621},[859],{"type":26,"value":638},{"type":30,"tagName":350,"properties":861,"children":862},{"style":362},[863],{"type":26,"value":864},"\"series\"",{"type":30,"tagName":350,"properties":866,"children":867},{"style":621},[868],{"type":26,"value":819},{"type":30,"tagName":350,"properties":870,"children":871},{"style":378},[872],{"type":26,"value":873},"\"ref\"",{"type":30,"tagName":350,"properties":875,"children":876},{"style":621},[877],{"type":26,"value":638},{"type":30,"tagName":350,"properties":879,"children":880},{"style":362},[881],{"type":26,"value":882},"\"@you/aqi-shanghai\"",{"type":30,"tagName":350,"properties":884,"children":885},{"style":621},[886],{"type":26,"value":819},{"type":30,"tagName":350,"properties":888,"children":889},{"style":378},[890],{"type":26,"value":891},"\"missing\"",{"type":30,"tagName":350,"properties":893,"children":894},{"style":621},[895],{"type":26,"value":638},{"type":30,"tagName":350,"properties":897,"children":898},{"style":362},[899],{"type":26,"value":900},"\"carry\"",{"type":30,"tagName":350,"properties":902,"children":903},{"style":621},[904],{"type":26,"value":905}," }",{"type":26,"value":27},{"type":30,"tagName":350,"properties":908,"children":909},{"class":352},[910],{"type":30,"tagName":350,"properties":911,"children":912},{"style":621},[913],{"type":26,"value":914},"  },",{"type":26,"value":27},{"type":30,"tagName":350,"properties":917,"children":918},{"class":352},[919,924],{"type":30,"tagName":350,"properties":920,"children":921},{"style":378},[922],{"type":26,"value":923},"  \"inputs\"",{"type":30,"tagName":350,"properties":925,"children":926},{"style":621},[927],{"type":26,"value":928},": [",{"type":26,"value":27},{"type":30,"tagName":350,"properties":931,"children":932},{"class":352},[933,938,943,947,951,955,960,964,968,972,977,981,986],{"type":30,"tagName":350,"properties":934,"children":935},{"style":621},[936],{"type":26,"value":937},"    { ",{"type":30,"tagName":350,"properties":939,"children":940},{"style":378},[941],{"type":26,"value":942},"\"index\"",{"type":30,"tagName":350,"properties":944,"children":945},{"style":621},[946],{"type":26,"value":638},{"type":30,"tagName":350,"properties":948,"children":949},{"style":378},[950],{"type":26,"value":344},{"type":30,"tagName":350,"properties":952,"children":953},{"style":621},[954],{"type":26,"value":819},{"type":30,"tagName":350,"properties":956,"children":957},{"style":378},[958],{"type":26,"value":959},"\"name\"",{"type":30,"tagName":350,"properties":961,"children":962},{"style":621},[963],{"type":26,"value":638},{"type":30,"tagName":350,"properties":965,"children":966},{"style":362},[967],{"type":26,"value":833},{"type":30,"tagName":350,"properties":969,"children":970},{"style":621},[971],{"type":26,"value":819},{"type":30,"tagName":350,"properties":973,"children":974},{"style":378},[975],{"type":26,"value":976},"\"description\"",{"type":30,"tagName":350,"properties":978,"children":979},{"style":621},[980],{"type":26,"value":638},{"type":30,"tagName":350,"properties":982,"children":983},{"style":362},[984],{"type":26,"value":985},"\"The chart's own candles: the grid every other input lines up on\"",{"type":30,"tagName":350,"properties":987,"children":988},{"style":621},[989],{"type":26,"value":838},{"type":26,"value":27},{"type":30,"tagName":350,"properties":992,"children":993},{"class":352},[994,998,1002,1006,1011,1015,1019,1023,1028,1032,1036,1040,1045],{"type":30,"tagName":350,"properties":995,"children":996},{"style":621},[997],{"type":26,"value":937},{"type":30,"tagName":350,"properties":999,"children":1000},{"style":378},[1001],{"type":26,"value":942},{"type":30,"tagName":350,"properties":1003,"children":1004},{"style":621},[1005],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1007,"children":1008},{"style":378},[1009],{"type":26,"value":1010},"1",{"type":30,"tagName":350,"properties":1012,"children":1013},{"style":621},[1014],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1016,"children":1017},{"style":378},[1018],{"type":26,"value":959},{"type":30,"tagName":350,"properties":1020,"children":1021},{"style":621},[1022],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1024,"children":1025},{"style":362},[1026],{"type":26,"value":1027},"\"aqi\"",{"type":30,"tagName":350,"properties":1029,"children":1030},{"style":621},[1031],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1033,"children":1034},{"style":378},[1035],{"type":26,"value":976},{"type":30,"tagName":350,"properties":1037,"children":1038},{"style":621},[1039],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1041,"children":1042},{"style":362},[1043],{"type":26,"value":1044},"\"The series at @you/aqi-shanghai, its last reading carried forward\"",{"type":30,"tagName":350,"properties":1046,"children":1047},{"style":621},[1048],{"type":26,"value":905},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1051,"children":1052},{"class":352},[1053],{"type":30,"tagName":350,"properties":1054,"children":1055},{"style":621},[1056],{"type":26,"value":1057},"  ],",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1060,"children":1061},{"class":352},[1062,1067],{"type":30,"tagName":350,"properties":1063,"children":1064},{"style":378},[1065],{"type":26,"value":1066},"  \"outputs\"",{"type":30,"tagName":350,"properties":1068,"children":1069},{"style":621},[1070],{"type":26,"value":928},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1073,"children":1074},{"class":352},[1075,1079,1083,1087,1091,1095,1099,1103,1107,1111,1115,1119,1124,1128,1133,1137,1142,1146,1151,1155,1160],{"type":30,"tagName":350,"properties":1076,"children":1077},{"style":621},[1078],{"type":26,"value":937},{"type":30,"tagName":350,"properties":1080,"children":1081},{"style":378},[1082],{"type":26,"value":942},{"type":30,"tagName":350,"properties":1084,"children":1085},{"style":621},[1086],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1088,"children":1089},{"style":378},[1090],{"type":26,"value":344},{"type":30,"tagName":350,"properties":1092,"children":1093},{"style":621},[1094],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1096,"children":1097},{"style":378},[1098],{"type":26,"value":959},{"type":30,"tagName":350,"properties":1100,"children":1101},{"style":621},[1102],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1104,"children":1105},{"style":362},[1106],{"type":26,"value":1027},{"type":30,"tagName":350,"properties":1108,"children":1109},{"style":621},[1110],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1112,"children":1113},{"style":378},[1114],{"type":26,"value":976},{"type":30,"tagName":350,"properties":1116,"children":1117},{"style":621},[1118],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1120,"children":1121},{"style":362},[1122],{"type":26,"value":1123},"\"The reading on each bar\"",{"type":30,"tagName":350,"properties":1125,"children":1126},{"style":621},[1127],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1129,"children":1130},{"style":378},[1131],{"type":26,"value":1132},"\"panel\"",{"type":30,"tagName":350,"properties":1134,"children":1135},{"style":621},[1136],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1138,"children":1139},{"style":362},[1140],{"type":26,"value":1141},"\"lower\"",{"type":30,"tagName":350,"properties":1143,"children":1144},{"style":621},[1145],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1147,"children":1148},{"style":378},[1149],{"type":26,"value":1150},"\"plot\"",{"type":30,"tagName":350,"properties":1152,"children":1153},{"style":621},[1154],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1156,"children":1157},{"style":362},[1158],{"type":26,"value":1159},"\"line\"",{"type":30,"tagName":350,"properties":1161,"children":1162},{"style":621},[1163],{"type":26,"value":838},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1166,"children":1167},{"class":352},[1168,1172,1176,1180,1184,1188,1192,1196,1201,1205,1209,1213,1218,1222,1226,1230,1234,1238,1242,1246,1250],{"type":30,"tagName":350,"properties":1169,"children":1170},{"style":621},[1171],{"type":26,"value":937},{"type":30,"tagName":350,"properties":1173,"children":1174},{"style":378},[1175],{"type":26,"value":942},{"type":30,"tagName":350,"properties":1177,"children":1178},{"style":621},[1179],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1181,"children":1182},{"style":378},[1183],{"type":26,"value":1010},{"type":30,"tagName":350,"properties":1185,"children":1186},{"style":621},[1187],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1189,"children":1190},{"style":378},[1191],{"type":26,"value":959},{"type":30,"tagName":350,"properties":1193,"children":1194},{"style":621},[1195],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1197,"children":1198},{"style":362},[1199],{"type":26,"value":1200},"\"aqi_ma\"",{"type":30,"tagName":350,"properties":1202,"children":1203},{"style":621},[1204],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1206,"children":1207},{"style":378},[1208],{"type":26,"value":976},{"type":30,"tagName":350,"properties":1210,"children":1211},{"style":621},[1212],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1214,"children":1215},{"style":362},[1216],{"type":26,"value":1217},"\"Rolling 7-bar average of the reading\"",{"type":30,"tagName":350,"properties":1219,"children":1220},{"style":621},[1221],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1223,"children":1224},{"style":378},[1225],{"type":26,"value":1132},{"type":30,"tagName":350,"properties":1227,"children":1228},{"style":621},[1229],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1231,"children":1232},{"style":362},[1233],{"type":26,"value":1141},{"type":30,"tagName":350,"properties":1235,"children":1236},{"style":621},[1237],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1239,"children":1240},{"style":378},[1241],{"type":26,"value":1150},{"type":30,"tagName":350,"properties":1243,"children":1244},{"style":621},[1245],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1247,"children":1248},{"style":362},[1249],{"type":26,"value":1159},{"type":30,"tagName":350,"properties":1251,"children":1252},{"style":621},[1253],{"type":26,"value":905},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1256,"children":1257},{"class":352},[1258],{"type":30,"tagName":350,"properties":1259,"children":1260},{"style":621},[1261],{"type":26,"value":1057},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1264,"children":1265},{"class":352},[1266,1271],{"type":30,"tagName":350,"properties":1267,"children":1268},{"style":378},[1269],{"type":26,"value":1270},"  \"drawings\"",{"type":30,"tagName":350,"properties":1272,"children":1273},{"style":621},[1274],{"type":26,"value":928},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1277,"children":1278},{"class":352},[1279],{"type":30,"tagName":350,"properties":1280,"children":1281},{"style":621},[1282],{"type":26,"value":1283},"    {",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1286,"children":1287},{"class":352},[1288,1293,1297,1302],{"type":30,"tagName":350,"properties":1289,"children":1290},{"style":378},[1291],{"type":26,"value":1292},"      \"kind\"",{"type":30,"tagName":350,"properties":1294,"children":1295},{"style":621},[1296],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1298,"children":1299},{"style":362},[1300],{"type":26,"value":1301},"\"card\"",{"type":30,"tagName":350,"properties":1303,"children":1304},{"style":621},[1305],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1308,"children":1309},{"class":352},[1310,1315,1319,1324],{"type":30,"tagName":350,"properties":1311,"children":1312},{"style":378},[1313],{"type":26,"value":1314},"      \"name\"",{"type":30,"tagName":350,"properties":1316,"children":1317},{"style":621},[1318],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1320,"children":1321},{"style":362},[1322],{"type":26,"value":1323},"\"aqi_card\"",{"type":30,"tagName":350,"properties":1325,"children":1326},{"style":621},[1327],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1330,"children":1331},{"class":352},[1332,1337,1341,1346],{"type":30,"tagName":350,"properties":1333,"children":1334},{"style":378},[1335],{"type":26,"value":1336},"      \"title\"",{"type":30,"tagName":350,"properties":1338,"children":1339},{"style":621},[1340],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1342,"children":1343},{"style":362},[1344],{"type":26,"value":1345},"\"Shanghai AQI\"",{"type":30,"tagName":350,"properties":1347,"children":1348},{"style":621},[1349],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1352,"children":1353},{"class":352},[1354,1359,1363,1368],{"type":30,"tagName":350,"properties":1355,"children":1356},{"style":378},[1357],{"type":26,"value":1358},"      \"anchor\"",{"type":30,"tagName":350,"properties":1360,"children":1361},{"style":621},[1362],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1364,"children":1365},{"style":362},[1366],{"type":26,"value":1367},"\"top_right\"",{"type":30,"tagName":350,"properties":1369,"children":1370},{"style":621},[1371],{"type":26,"value":648},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1374,"children":1375},{"class":352},[1376,1381],{"type":30,"tagName":350,"properties":1377,"children":1378},{"style":378},[1379],{"type":26,"value":1380},"      \"rows\"",{"type":30,"tagName":350,"properties":1382,"children":1383},{"style":621},[1384],{"type":26,"value":928},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1387,"children":1388},{"class":352},[1389,1394,1399,1403,1408,1412,1417,1421,1426,1430,1434,1438,1443,1447,1452],{"type":30,"tagName":350,"properties":1390,"children":1391},{"style":621},[1392],{"type":26,"value":1393},"        { ",{"type":30,"tagName":350,"properties":1395,"children":1396},{"style":378},[1397],{"type":26,"value":1398},"\"label\"",{"type":30,"tagName":350,"properties":1400,"children":1401},{"style":621},[1402],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1404,"children":1405},{"style":362},[1406],{"type":26,"value":1407},"\"AQI\"",{"type":30,"tagName":350,"properties":1409,"children":1410},{"style":621},[1411],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1413,"children":1414},{"style":378},[1415],{"type":26,"value":1416},"\"value\"",{"type":30,"tagName":350,"properties":1418,"children":1419},{"style":621},[1420],{"type":26,"value":800},{"type":30,"tagName":350,"properties":1422,"children":1423},{"style":378},[1424],{"type":26,"value":1425},"\"output\"",{"type":30,"tagName":350,"properties":1427,"children":1428},{"style":621},[1429],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1431,"children":1432},{"style":362},[1433],{"type":26,"value":1027},{"type":30,"tagName":350,"properties":1435,"children":1436},{"style":621},[1437],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1439,"children":1440},{"style":378},[1441],{"type":26,"value":1442},"\"format\"",{"type":30,"tagName":350,"properties":1444,"children":1445},{"style":621},[1446],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1448,"children":1449},{"style":362},[1450],{"type":26,"value":1451},"\"int\"",{"type":30,"tagName":350,"properties":1453,"children":1454},{"style":621},[1455],{"type":26,"value":1456}," } },",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1459,"children":1460},{"class":352},[1461,1465,1469,1473,1478,1482,1486,1490,1494,1498,1502,1506,1510,1514,1519],{"type":30,"tagName":350,"properties":1462,"children":1463},{"style":621},[1464],{"type":26,"value":1393},{"type":30,"tagName":350,"properties":1466,"children":1467},{"style":378},[1468],{"type":26,"value":1398},{"type":30,"tagName":350,"properties":1470,"children":1471},{"style":621},[1472],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1474,"children":1475},{"style":362},[1476],{"type":26,"value":1477},"\"7-bar avg\"",{"type":30,"tagName":350,"properties":1479,"children":1480},{"style":621},[1481],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1483,"children":1484},{"style":378},[1485],{"type":26,"value":1416},{"type":30,"tagName":350,"properties":1487,"children":1488},{"style":621},[1489],{"type":26,"value":800},{"type":30,"tagName":350,"properties":1491,"children":1492},{"style":378},[1493],{"type":26,"value":1425},{"type":30,"tagName":350,"properties":1495,"children":1496},{"style":621},[1497],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1499,"children":1500},{"style":362},[1501],{"type":26,"value":1200},{"type":30,"tagName":350,"properties":1503,"children":1504},{"style":621},[1505],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1507,"children":1508},{"style":378},[1509],{"type":26,"value":1442},{"type":30,"tagName":350,"properties":1511,"children":1512},{"style":621},[1513],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1515,"children":1516},{"style":362},[1517],{"type":26,"value":1518},"\"auto\"",{"type":30,"tagName":350,"properties":1520,"children":1521},{"style":621},[1522],{"type":26,"value":1456},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1525,"children":1526},{"class":352},[1527,1531,1535,1539,1544,1548,1553,1557,1562],{"type":30,"tagName":350,"properties":1528,"children":1529},{"style":621},[1530],{"type":26,"value":1393},{"type":30,"tagName":350,"properties":1532,"children":1533},{"style":378},[1534],{"type":26,"value":1398},{"type":30,"tagName":350,"properties":1536,"children":1537},{"style":621},[1538],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1540,"children":1541},{"style":362},[1542],{"type":26,"value":1543},"\"Updated\"",{"type":30,"tagName":350,"properties":1545,"children":1546},{"style":621},[1547],{"type":26,"value":819},{"type":30,"tagName":350,"properties":1549,"children":1550},{"style":378},[1551],{"type":26,"value":1552},"\"clock\"",{"type":30,"tagName":350,"properties":1554,"children":1555},{"style":621},[1556],{"type":26,"value":638},{"type":30,"tagName":350,"properties":1558,"children":1559},{"style":378},[1560],{"type":26,"value":1561},"true",{"type":30,"tagName":350,"properties":1563,"children":1564},{"style":621},[1565],{"type":26,"value":905},{"type":26,"value":27},{"type":30,"tagName":350,"properties":1568,"children":1569},{"class":352},[1570],{"type":30,"tagName":350,"properties":1571,"children":1572},{"style":621},[1573],{"type":26,"value":1574},"      ]",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1577,"children":1578},{"class":352},[1579],{"type":30,"tagName":350,"properties":1580,"children":1581},{"style":621},[1582],{"type":26,"value":1583},"    }",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1586,"children":1587},{"class":352},[1588],{"type":30,"tagName":350,"properties":1589,"children":1590},{"style":621},[1591],{"type":26,"value":1592},"  ]",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1595,"children":1596},{"class":352},[1597],{"type":30,"tagName":350,"properties":1598,"children":1599},{"style":621},[1600],{"type":26,"value":1601},"}",{"type":26,"value":27},{"type":13,"children":1604},[1605],{"type":30,"tagName":340,"properties":1606,"children":1607,"data":-1},{"class":342,"style":343,"tabindex":344},[1608],{"type":30,"tagName":44,"properties":1609,"children":1610},{},[1611,1620,1621,1629,1630,1664,1665,1695,1696,1726,1727,1730,1731,1778,1779,1819,1820,1857,1858,1861,1862,1899,1900,1939,1940,1963,1964,2030,2031,2058,2059,2077,2078,2085,2086,2123,2124,2136,2137,2150,2151,2163,2164,2171,2172],{"type":30,"tagName":350,"properties":1612,"children":1613},{"class":352},[1614],{"type":30,"tagName":350,"properties":1615,"children":1617},{"style":1616},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[1618],{"type":26,"value":1619},"// A series read by its address. The sheet (wrun/metadata.json) declares the inputs, the outputs and the",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1622,"children":1623},{"class":352},[1624],{"type":30,"tagName":350,"properties":1625,"children":1626},{"style":1616},[1627],{"type":26,"value":1628},"// card; this file only computes. A series input is read through in_\u003Cname>() like any other input.",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1631,"children":1632},{"class":352},[1633,1639,1644,1649,1654,1659],{"type":30,"tagName":350,"properties":1634,"children":1636},{"style":1635},"--shiki-dark:#F97583;--shiki-light:#D73A49",[1637],{"type":26,"value":1638},"import",{"type":30,"tagName":350,"properties":1640,"children":1641},{"style":621},[1642],{"type":26,"value":1643}," { in_aqi, in_close } ",{"type":30,"tagName":350,"properties":1645,"children":1646},{"style":1635},[1647],{"type":26,"value":1648},"from",{"type":30,"tagName":350,"properties":1650,"children":1651},{"style":362},[1652],{"type":26,"value":1653}," \"./gen/inputs\"",{"type":30,"tagName":350,"properties":1655,"children":1656},{"style":621},[1657],{"type":26,"value":1658},"; ",{"type":30,"tagName":350,"properties":1660,"children":1661},{"style":1616},[1662],{"type":26,"value":1663},"// generated from the sheet: one in_ reader per input",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1666,"children":1667},{"class":352},[1668,1672,1677,1681,1686,1690],{"type":30,"tagName":350,"properties":1669,"children":1670},{"style":1635},[1671],{"type":26,"value":1638},{"type":30,"tagName":350,"properties":1673,"children":1674},{"style":621},[1675],{"type":26,"value":1676}," { emitRow, out_aqi, out_aqi_ma } ",{"type":30,"tagName":350,"properties":1678,"children":1679},{"style":1635},[1680],{"type":26,"value":1648},{"type":30,"tagName":350,"properties":1682,"children":1683},{"style":362},[1684],{"type":26,"value":1685}," \"./gen/outputs\"",{"type":30,"tagName":350,"properties":1687,"children":1688},{"style":621},[1689],{"type":26,"value":1658},{"type":30,"tagName":350,"properties":1691,"children":1692},{"style":1616},[1693],{"type":26,"value":1694},"// generated: one out_ writer per output, plus emitRow",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1697,"children":1698},{"class":352},[1699,1703,1708,1712,1717,1721],{"type":30,"tagName":350,"properties":1700,"children":1701},{"style":1635},[1702],{"type":26,"value":1638},{"type":30,"tagName":350,"properties":1704,"children":1705},{"style":621},[1706],{"type":26,"value":1707}," { Sma } ",{"type":30,"tagName":350,"properties":1709,"children":1710},{"style":1635},[1711],{"type":26,"value":1648},{"type":30,"tagName":350,"properties":1713,"children":1714},{"style":362},[1715],{"type":26,"value":1716}," \"./sdk/ta\"",{"type":30,"tagName":350,"properties":1718,"children":1719},{"style":621},[1720],{"type":26,"value":1658},{"type":30,"tagName":350,"properties":1722,"children":1723},{"style":1616},[1724],{"type":26,"value":1725},"// the rolling average over the readings",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1728,"children":1729},{"class":352},[],{"type":26,"value":27},{"type":30,"tagName":350,"properties":1732,"children":1733},{"class":352},[1734,1739,1744,1749,1754,1759,1764,1768,1773],{"type":30,"tagName":350,"properties":1735,"children":1736},{"style":1635},[1737],{"type":26,"value":1738},"const",{"type":30,"tagName":350,"properties":1740,"children":1741},{"style":378},[1742],{"type":26,"value":1743}," average",{"type":30,"tagName":350,"properties":1745,"children":1746},{"style":1635},[1747],{"type":26,"value":1748}," =",{"type":30,"tagName":350,"properties":1750,"children":1751},{"style":1635},[1752],{"type":26,"value":1753}," new",{"type":30,"tagName":350,"properties":1755,"children":1756},{"style":356},[1757],{"type":26,"value":1758}," Sma",{"type":30,"tagName":350,"properties":1760,"children":1761},{"style":621},[1762],{"type":26,"value":1763},"(",{"type":30,"tagName":350,"properties":1765,"children":1766},{"style":378},[1767],{"type":26,"value":754},{"type":30,"tagName":350,"properties":1769,"children":1770},{"style":621},[1771],{"type":26,"value":1772},"); ",{"type":30,"tagName":350,"properties":1774,"children":1775},{"style":1616},[1776],{"type":26,"value":1777},"// seven bars of readings; the card's \"7-bar avg\" label is literal text in the sheet",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1780,"children":1781},{"class":352},[1782,1787,1791,1796,1801,1805,1810,1814],{"type":30,"tagName":350,"properties":1783,"children":1784},{"style":1635},[1785],{"type":26,"value":1786},"let",{"type":30,"tagName":350,"properties":1788,"children":1789},{"style":621},[1790],{"type":26,"value":395},{"type":30,"tagName":350,"properties":1792,"children":1793},{"style":1635},[1794],{"type":26,"value":1795},":",{"type":30,"tagName":350,"properties":1797,"children":1798},{"style":356},[1799],{"type":26,"value":1800}," f64",{"type":30,"tagName":350,"properties":1802,"children":1803},{"style":1635},[1804],{"type":26,"value":1748},{"type":30,"tagName":350,"properties":1806,"children":1807},{"style":378},[1808],{"type":26,"value":1809}," NaN",{"type":30,"tagName":350,"properties":1811,"children":1812},{"style":621},[1813],{"type":26,"value":1658},{"type":30,"tagName":350,"properties":1815,"children":1816},{"style":1616},[1817],{"type":26,"value":1818},"// the reading on this bar (missing: \"carry\" repeats the last one until a new one lands)",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1821,"children":1822},{"class":352},[1823,1827,1832,1836,1840,1844,1848,1852],{"type":30,"tagName":350,"properties":1824,"children":1825},{"style":1635},[1826],{"type":26,"value":1786},{"type":30,"tagName":350,"properties":1828,"children":1829},{"style":621},[1830],{"type":26,"value":1831}," avg",{"type":30,"tagName":350,"properties":1833,"children":1834},{"style":1635},[1835],{"type":26,"value":1795},{"type":30,"tagName":350,"properties":1837,"children":1838},{"style":356},[1839],{"type":26,"value":1800},{"type":30,"tagName":350,"properties":1841,"children":1842},{"style":1635},[1843],{"type":26,"value":1748},{"type":30,"tagName":350,"properties":1845,"children":1846},{"style":378},[1847],{"type":26,"value":1809},{"type":30,"tagName":350,"properties":1849,"children":1850},{"style":621},[1851],{"type":26,"value":1658},{"type":30,"tagName":350,"properties":1853,"children":1854},{"style":1616},[1855],{"type":26,"value":1856},"// its rolling average, NaN until seven readings are in",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1859,"children":1860},{"class":352},[],{"type":26,"value":27},{"type":30,"tagName":350,"properties":1863,"children":1864},{"class":352},[1865,1870,1875,1880,1885,1889,1894],{"type":30,"tagName":350,"properties":1866,"children":1867},{"style":1635},[1868],{"type":26,"value":1869},"export",{"type":30,"tagName":350,"properties":1871,"children":1872},{"style":1635},[1873],{"type":26,"value":1874}," function",{"type":30,"tagName":350,"properties":1876,"children":1877},{"style":356},[1878],{"type":26,"value":1879}," init",{"type":30,"tagName":350,"properties":1881,"children":1882},{"style":621},[1883],{"type":26,"value":1884},"()",{"type":30,"tagName":350,"properties":1886,"children":1887},{"style":1635},[1888],{"type":26,"value":1795},{"type":30,"tagName":350,"properties":1890,"children":1891},{"style":378},[1892],{"type":26,"value":1893}," void",{"type":30,"tagName":350,"properties":1895,"children":1896},{"style":621},[1897],{"type":26,"value":1898}," {}",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1901,"children":1902},{"class":352},[1903,1907,1911,1916,1920,1924,1929,1934],{"type":30,"tagName":350,"properties":1904,"children":1905},{"style":1635},[1906],{"type":26,"value":1869},{"type":30,"tagName":350,"properties":1908,"children":1909},{"style":1635},[1910],{"type":26,"value":1874},{"type":30,"tagName":350,"properties":1912,"children":1913},{"style":356},[1914],{"type":26,"value":1915}," state",{"type":30,"tagName":350,"properties":1917,"children":1918},{"style":621},[1919],{"type":26,"value":1884},{"type":30,"tagName":350,"properties":1921,"children":1922},{"style":1635},[1923],{"type":26,"value":1795},{"type":30,"tagName":350,"properties":1925,"children":1926},{"style":356},[1927],{"type":26,"value":1928}," i32",{"type":30,"tagName":350,"properties":1930,"children":1931},{"style":621},[1932],{"type":26,"value":1933}," { ",{"type":30,"tagName":350,"properties":1935,"children":1936},{"style":1616},[1937],{"type":26,"value":1938},"// once per bar, oldest first: read the candle and the reading, fold the average",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1941,"children":1942},{"class":352},[1943,1948,1953,1958],{"type":30,"tagName":350,"properties":1944,"children":1945},{"style":621},[1946],{"type":26,"value":1947},"  aqi ",{"type":30,"tagName":350,"properties":1949,"children":1950},{"style":1635},[1951],{"type":26,"value":1952},"=",{"type":30,"tagName":350,"properties":1954,"children":1955},{"style":356},[1956],{"type":26,"value":1957}," in_aqi",{"type":30,"tagName":350,"properties":1959,"children":1960},{"style":621},[1961],{"type":26,"value":1962},"();",{"type":26,"value":27},{"type":30,"tagName":350,"properties":1965,"children":1966},{"class":352},[1967,1972,1977,1982,1986,1991,1996,2001,2006,2011,2016,2021,2025],{"type":30,"tagName":350,"properties":1968,"children":1969},{"style":1635},[1970],{"type":26,"value":1971},"  if",{"type":30,"tagName":350,"properties":1973,"children":1974},{"style":621},[1975],{"type":26,"value":1976}," (",{"type":30,"tagName":350,"properties":1978,"children":1979},{"style":356},[1980],{"type":26,"value":1981},"isNaN",{"type":30,"tagName":350,"properties":1983,"children":1984},{"style":621},[1985],{"type":26,"value":1763},{"type":30,"tagName":350,"properties":1987,"children":1988},{"style":356},[1989],{"type":26,"value":1990},"in_close",{"type":30,"tagName":350,"properties":1992,"children":1993},{"style":621},[1994],{"type":26,"value":1995},"()) ",{"type":30,"tagName":350,"properties":1997,"children":1998},{"style":1635},[1999],{"type":26,"value":2000},"||",{"type":30,"tagName":350,"properties":2002,"children":2003},{"style":356},[2004],{"type":26,"value":2005}," isNaN",{"type":30,"tagName":350,"properties":2007,"children":2008},{"style":621},[2009],{"type":26,"value":2010},"(aqi)) ",{"type":30,"tagName":350,"properties":2012,"children":2013},{"style":1635},[2014],{"type":26,"value":2015},"return",{"type":30,"tagName":350,"properties":2017,"children":2018},{"style":378},[2019],{"type":26,"value":2020}," 0",{"type":30,"tagName":350,"properties":2022,"children":2023},{"style":621},[2024],{"type":26,"value":1658},{"type":30,"tagName":350,"properties":2026,"children":2027},{"style":1616},[2028],{"type":26,"value":2029},"// no candle, or no reading has arrived yet: this row abstains",{"type":26,"value":27},{"type":30,"tagName":350,"properties":2032,"children":2033},{"class":352},[2034,2039,2043,2048,2053],{"type":30,"tagName":350,"properties":2035,"children":2036},{"style":621},[2037],{"type":26,"value":2038},"  avg ",{"type":30,"tagName":350,"properties":2040,"children":2041},{"style":1635},[2042],{"type":26,"value":1952},{"type":30,"tagName":350,"properties":2044,"children":2045},{"style":621},[2046],{"type":26,"value":2047}," average.",{"type":30,"tagName":350,"properties":2049,"children":2050},{"style":356},[2051],{"type":26,"value":2052},"update",{"type":30,"tagName":350,"properties":2054,"children":2055},{"style":621},[2056],{"type":26,"value":2057},"(aqi);",{"type":26,"value":27},{"type":30,"tagName":350,"properties":2060,"children":2061},{"class":352},[2062,2067,2072],{"type":30,"tagName":350,"properties":2063,"children":2064},{"style":1635},[2065],{"type":26,"value":2066},"  return",{"type":30,"tagName":350,"properties":2068,"children":2069},{"style":378},[2070],{"type":26,"value":2071}," 1",{"type":30,"tagName":350,"properties":2073,"children":2074},{"style":621},[2075],{"type":26,"value":2076},";",{"type":26,"value":27},{"type":30,"tagName":350,"properties":2079,"children":2080},{"class":352},[2081],{"type":30,"tagName":350,"properties":2082,"children":2083},{"style":621},[2084],{"type":26,"value":1601},{"type":26,"value":27},{"type":30,"tagName":350,"properties":2087,"children":2088},{"class":352},[2089,2093,2097,2102,2106,2110,2114,2118],{"type":30,"tagName":350,"properties":2090,"children":2091},{"style":1635},[2092],{"type":26,"value":1869},{"type":30,"tagName":350,"properties":2094,"children":2095},{"style":1635},[2096],{"type":26,"value":1874},{"type":30,"tagName":350,"properties":2098,"children":2099},{"style":356},[2100],{"type":26,"value":2101}," finalize",{"type":30,"tagName":350,"properties":2103,"children":2104},{"style":621},[2105],{"type":26,"value":1884},{"type":30,"tagName":350,"properties":2107,"children":2108},{"style":1635},[2109],{"type":26,"value":1795},{"type":30,"tagName":350,"properties":2111,"children":2112},{"style":378},[2113],{"type":26,"value":1893},{"type":30,"tagName":350,"properties":2115,"children":2116},{"style":621},[2117],{"type":26,"value":1933},{"type":30,"tagName":350,"properties":2119,"children":2120},{"style":1616},[2121],{"type":26,"value":2122},"// the two outputs the sheet's draw.card reads from the newest complete row",{"type":26,"value":27},{"type":30,"tagName":350,"properties":2125,"children":2126},{"class":352},[2127,2132],{"type":30,"tagName":350,"properties":2128,"children":2129},{"style":356},[2130],{"type":26,"value":2131},"  out_aqi",{"type":30,"tagName":350,"properties":2133,"children":2134},{"style":621},[2135],{"type":26,"value":2057},{"type":26,"value":27},{"type":30,"tagName":350,"properties":2138,"children":2139},{"class":352},[2140,2145],{"type":30,"tagName":350,"properties":2141,"children":2142},{"style":356},[2143],{"type":26,"value":2144},"  out_aqi_ma",{"type":30,"tagName":350,"properties":2146,"children":2147},{"style":621},[2148],{"type":26,"value":2149},"(avg);",{"type":26,"value":27},{"type":30,"tagName":350,"properties":2152,"children":2153},{"class":352},[2154,2159],{"type":30,"tagName":350,"properties":2155,"children":2156},{"style":356},[2157],{"type":26,"value":2158},"  emitRow",{"type":30,"tagName":350,"properties":2160,"children":2161},{"style":621},[2162],{"type":26,"value":1962},{"type":26,"value":27},{"type":30,"tagName":350,"properties":2165,"children":2166},{"class":352},[2167],{"type":30,"tagName":350,"properties":2168,"children":2169},{"style":621},[2170],{"type":26,"value":1601},{"type":26,"value":27},{"type":30,"tagName":350,"properties":2173,"children":2174},{"class":352},[2175,2179,2183,2188,2192,2196,2200,2205,2210,2215,2219,2223,2228,2232,2236,2241],{"type":30,"tagName":350,"properties":2176,"children":2177},{"style":1635},[2178],{"type":26,"value":1869},{"type":30,"tagName":350,"properties":2180,"children":2181},{"style":1635},[2182],{"type":26,"value":1874},{"type":30,"tagName":350,"properties":2184,"children":2185},{"style":356},[2186],{"type":26,"value":2187}," reset",{"type":30,"tagName":350,"properties":2189,"children":2190},{"style":621},[2191],{"type":26,"value":1884},{"type":30,"tagName":350,"properties":2193,"children":2194},{"style":1635},[2195],{"type":26,"value":1795},{"type":30,"tagName":350,"properties":2197,"children":2198},{"style":378},[2199],{"type":26,"value":1893},{"type":30,"tagName":350,"properties":2201,"children":2202},{"style":621},[2203],{"type":26,"value":2204}," { average.",{"type":30,"tagName":350,"properties":2206,"children":2207},{"style":356},[2208],{"type":26,"value":2209},"reset",{"type":30,"tagName":350,"properties":2211,"children":2212},{"style":621},[2213],{"type":26,"value":2214},"(); aqi ",{"type":30,"tagName":350,"properties":2216,"children":2217},{"style":1635},[2218],{"type":26,"value":1952},{"type":30,"tagName":350,"properties":2220,"children":2221},{"style":378},[2222],{"type":26,"value":1809},{"type":30,"tagName":350,"properties":2224,"children":2225},{"style":621},[2226],{"type":26,"value":2227},"; avg ",{"type":30,"tagName":350,"properties":2229,"children":2230},{"style":1635},[2231],{"type":26,"value":1952},{"type":30,"tagName":350,"properties":2233,"children":2234},{"style":378},[2235],{"type":26,"value":1809},{"type":30,"tagName":350,"properties":2237,"children":2238},{"style":621},[2239],{"type":26,"value":2240},"; } ",{"type":30,"tagName":350,"properties":2242,"children":2243},{"style":1616},[2244],{"type":26,"value":2245},"// back to the start, the ring cleared",{"type":26,"value":27},{"type":30,"tagName":185,"properties":2248,"children":2250,"position":2260},{"id":2249},"how-it-works",[2251],{"type":26,"value":2252,"position":2253},"How it works",{"start":2254,"end":2257},{"line":2255,"column":194,"offset":2256},90,5519,{"line":2255,"column":2258,"offset":2259},16,5531,{"start":2261,"end":2263},{"line":2255,"column":20,"offset":2262},5516,{"line":2255,"column":2258,"offset":2259},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2266,"children":2267,"position":2570},{},[2268,2287,2294,2307,2314,2327,2334,2347,2354,2367,2374,2386,2393,2406,2413,2426,2432,2445,2452,2465,2472,2485,2492,2504,2511,2524,2531,2544,2550,2563],{"type":30,"tagName":2269,"properties":2270,"children":2271,"position":2281},"strong",{},[2272],{"type":26,"value":2273,"position":2274},"The address is the input.",{"start":2275,"end":2279},{"line":2276,"column":2277,"offset":2278},92,3,5535,{"line":2276,"column":197,"offset":2280},5560,{"start":2282,"end":2284},{"line":2276,"column":20,"offset":2283},5533,{"line":2276,"column":2285,"offset":2286},30,5562,{"type":26,"value":2288,"position":2289}," ",{"start":2290,"end":2291},{"line":2276,"column":2285,"offset":2286},{"line":2276,"column":2292,"offset":2293},31,5563,{"type":30,"tagName":44,"properties":2295,"children":2296,"position":2304},{},[2297],{"type":26,"value":2298,"position":2299},"\"aqi\": { \"source\": \"series\", \"ref\": \"@you/aqi-shanghai\", \"missing\": \"carry\" }",{"start":2300,"end":2301},{"line":2276,"column":2292,"offset":2293},{"line":2276,"column":2302,"offset":2303},110,5642,{"start":2305,"end":2306},{"line":2276,"column":2292,"offset":2293},{"line":2276,"column":2302,"offset":2303},{"type":26,"value":2308,"position":2309}," is an input the way ",{"start":2310,"end":2311},{"line":2276,"column":2302,"offset":2303},{"line":2276,"column":2312,"offset":2313},131,5663,{"type":30,"tagName":44,"properties":2315,"children":2316,"position":2324},{},[2317],{"type":26,"value":2318,"position":2319},"close",{"start":2320,"end":2321},{"line":2276,"column":2312,"offset":2313},{"line":2276,"column":2322,"offset":2323},138,5670,{"start":2325,"end":2326},{"line":2276,"column":2312,"offset":2313},{"line":2276,"column":2322,"offset":2323},{"type":26,"value":2328,"position":2329}," is one. The daemon resolves the address to the newest installed snapshot (or, in the ",{"start":2330,"end":2331},{"line":2276,"column":2322,"offset":2323},{"line":2276,"column":2332,"offset":2333},224,5756,{"type":30,"tagName":44,"properties":2335,"children":2336,"position":2344},{},[2337],{"type":26,"value":2338,"position":2339},"watch/\u003Cslug>/\u003Ckey>",{"start":2340,"end":2341},{"line":2276,"column":2332,"offset":2333},{"line":2276,"column":2342,"offset":2343},244,5776,{"start":2345,"end":2346},{"line":2276,"column":2332,"offset":2333},{"line":2276,"column":2342,"offset":2343},{"type":26,"value":2348,"position":2349}," form, to the watch's own committed history), buckets its readings onto the chart's candles, and hands the source one number per bar through ",{"start":2350,"end":2351},{"line":2276,"column":2342,"offset":2343},{"line":2276,"column":2352,"offset":2353},385,5917,{"type":30,"tagName":44,"properties":2355,"children":2356,"position":2364},{},[2357],{"type":26,"value":2358,"position":2359},"in_aqi()",{"start":2360,"end":2361},{"line":2276,"column":2352,"offset":2353},{"line":2276,"column":2362,"offset":2363},395,5927,{"start":2365,"end":2366},{"line":2276,"column":2352,"offset":2353},{"line":2276,"column":2362,"offset":2363},{"type":26,"value":2368,"position":2369},"; the last reading in a bucket wins. A series can never be the primary input: ",{"start":2370,"end":2371},{"line":2276,"column":2362,"offset":2363},{"line":2276,"column":2372,"offset":2373},473,6005,{"type":30,"tagName":44,"properties":2375,"children":2376,"position":2383},{},[2377],{"type":26,"value":2318,"position":2378},{"start":2379,"end":2380},{"line":2276,"column":2372,"offset":2373},{"line":2276,"column":2381,"offset":2382},480,6012,{"start":2384,"end":2385},{"line":2276,"column":2372,"offset":2373},{"line":2276,"column":2381,"offset":2382},{"type":26,"value":2387,"position":2388}," at index 0 defines the grid, and the series lines up on it. The address is the whole description, so a series input takes no ",{"start":2389,"end":2390},{"line":2276,"column":2381,"offset":2382},{"line":2276,"column":2391,"offset":2392},606,6138,{"type":30,"tagName":44,"properties":2394,"children":2395,"position":2403},{},[2396],{"type":26,"value":2397,"position":2398},"field",{"start":2399,"end":2400},{"line":2276,"column":2391,"offset":2392},{"line":2276,"column":2401,"offset":2402},613,6145,{"start":2404,"end":2405},{"line":2276,"column":2391,"offset":2392},{"line":2276,"column":2401,"offset":2402},{"type":26,"value":2407,"position":2408},", no ",{"start":2409,"end":2410},{"line":2276,"column":2401,"offset":2402},{"line":2276,"column":2411,"offset":2412},618,6150,{"type":30,"tagName":44,"properties":2414,"children":2415,"position":2423},{},[2416],{"type":26,"value":2417,"position":2418},"symbol",{"start":2419,"end":2420},{"line":2276,"column":2411,"offset":2412},{"line":2276,"column":2421,"offset":2422},626,6158,{"start":2424,"end":2425},{"line":2276,"column":2411,"offset":2412},{"line":2276,"column":2421,"offset":2422},{"type":26,"value":2407,"position":2427},{"start":2428,"end":2429},{"line":2276,"column":2421,"offset":2422},{"line":2276,"column":2430,"offset":2431},631,6163,{"type":30,"tagName":44,"properties":2433,"children":2434,"position":2442},{},[2435],{"type":26,"value":2436,"position":2437},"exchange",{"start":2438,"end":2439},{"line":2276,"column":2430,"offset":2431},{"line":2276,"column":2440,"offset":2441},641,6173,{"start":2443,"end":2444},{"line":2276,"column":2430,"offset":2431},{"line":2276,"column":2440,"offset":2441},{"type":26,"value":2446,"position":2447}," and no ",{"start":2448,"end":2449},{"line":2276,"column":2440,"offset":2441},{"line":2276,"column":2450,"offset":2451},649,6181,{"type":30,"tagName":44,"properties":2453,"children":2454,"position":2462},{},[2455],{"type":26,"value":2456,"position":2457},"interval",{"start":2458,"end":2459},{"line":2276,"column":2450,"offset":2451},{"line":2276,"column":2460,"offset":2461},659,6191,{"start":2463,"end":2464},{"line":2276,"column":2450,"offset":2451},{"line":2276,"column":2460,"offset":2461},{"type":26,"value":2466,"position":2467},". Its ",{"start":2468,"end":2469},{"line":2276,"column":2460,"offset":2461},{"line":2276,"column":2470,"offset":2471},665,6197,{"type":30,"tagName":44,"properties":2473,"children":2474,"position":2482},{},[2475],{"type":26,"value":2476,"position":2477},"missing",{"start":2478,"end":2479},{"line":2276,"column":2470,"offset":2471},{"line":2276,"column":2480,"offset":2481},674,6206,{"start":2483,"end":2484},{"line":2276,"column":2470,"offset":2471},{"line":2276,"column":2480,"offset":2481},{"type":26,"value":2486,"position":2487}," policy is ",{"start":2488,"end":2489},{"line":2276,"column":2480,"offset":2481},{"line":2276,"column":2490,"offset":2491},685,6217,{"type":30,"tagName":44,"properties":2493,"children":2494,"position":2501},{},[2495],{"type":26,"value":2496,"position":2497},"carry",{"start":2498,"end":2499},{"line":2276,"column":2490,"offset":2491},{"line":2276,"column":83,"offset":2500},6224,{"start":2502,"end":2503},{"line":2276,"column":2490,"offset":2491},{"line":2276,"column":83,"offset":2500},{"type":26,"value":2505,"position":2506}," (the last reading repeats until a new one lands, so an hourly series reads as a step line on a 5-minute chart) or ",{"start":2507,"end":2508},{"line":2276,"column":83,"offset":2500},{"line":2276,"column":2509,"offset":2510},807,6339,{"type":30,"tagName":44,"properties":2512,"children":2513,"position":2521},{},[2514],{"type":26,"value":2515,"position":2516},"nan",{"start":2517,"end":2518},{"line":2276,"column":2509,"offset":2510},{"line":2276,"column":2519,"offset":2520},812,6344,{"start":2522,"end":2523},{"line":2276,"column":2509,"offset":2510},{"line":2276,"column":2519,"offset":2520},{"type":26,"value":2525,"position":2526}," (a bar without a reading reads ",{"start":2527,"end":2528},{"line":2276,"column":2519,"offset":2520},{"line":2276,"column":2529,"offset":2530},844,6376,{"type":30,"tagName":44,"properties":2532,"children":2533,"position":2541},{},[2534],{"type":26,"value":2535,"position":2536},"NaN",{"start":2537,"end":2538},{"line":2276,"column":2529,"offset":2530},{"line":2276,"column":2539,"offset":2540},849,6381,{"start":2542,"end":2543},{"line":2276,"column":2529,"offset":2530},{"line":2276,"column":2539,"offset":2540},{"type":26,"value":1772,"position":2545},{"start":2546,"end":2547},{"line":2276,"column":2539,"offset":2540},{"line":2276,"column":2548,"offset":2549},852,6384,{"type":30,"tagName":44,"properties":2551,"children":2552,"position":2560},{},[2553],{"type":26,"value":2554,"position":2555},"zero",{"start":2556,"end":2557},{"line":2276,"column":2548,"offset":2549},{"line":2276,"column":2558,"offset":2559},858,6390,{"start":2561,"end":2562},{"line":2276,"column":2548,"offset":2549},{"line":2276,"column":2558,"offset":2559},{"type":26,"value":2564,"position":2565}," is refused, because a reading that did not happen is not zero.",{"start":2566,"end":2567},{"line":2276,"column":2558,"offset":2559},{"line":2276,"column":2568,"offset":2569},921,6453,{"start":2571,"end":2572},{"line":2276,"column":20,"offset":2283},{"line":2276,"column":2568,"offset":2569},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2575,"children":2576,"position":2797},{},[2577,2594,2601,2614,2621,2634,2641,2653,2659,2672,2678,2691,2698,2711,2718,2731,2738,2751,2758,2771,2777,2790],{"type":30,"tagName":2269,"properties":2578,"children":2579,"position":2588},{},[2580],{"type":26,"value":2581,"position":2582},"Metadata-first, on purpose.",{"start":2583,"end":2586},{"line":2584,"column":2277,"offset":2585},94,6457,{"line":2584,"column":2285,"offset":2587},6484,{"start":2589,"end":2591},{"line":2584,"column":20,"offset":2590},6455,{"line":2584,"column":2592,"offset":2593},32,6486,{"type":26,"value":2595,"position":2596}," The declaring words in ",{"start":2597,"end":2598},{"line":2584,"column":2592,"offset":2593},{"line":2584,"column":2599,"offset":2600},56,6510,{"type":30,"tagName":44,"properties":2602,"children":2603,"position":2611},{},[2604],{"type":26,"value":2605,"position":2606},"./sdk/declare",{"start":2607,"end":2608},{"line":2584,"column":2599,"offset":2600},{"line":2584,"column":2609,"offset":2610},71,6525,{"start":2612,"end":2613},{"line":2584,"column":2599,"offset":2600},{"line":2584,"column":2609,"offset":2610},{"type":26,"value":2615,"position":2616}," cover venue fields, celled sources and the ",{"start":2617,"end":2618},{"line":2584,"column":2609,"offset":2610},{"line":2584,"column":2619,"offset":2620},115,6569,{"type":30,"tagName":44,"properties":2622,"children":2623,"position":2631},{},[2624],{"type":26,"value":2625,"position":2626},"time",{"start":2627,"end":2628},{"line":2584,"column":2619,"offset":2620},{"line":2584,"column":2629,"offset":2630},121,6575,{"start":2632,"end":2633},{"line":2584,"column":2619,"offset":2620},{"line":2584,"column":2629,"offset":2630},{"type":26,"value":2635,"position":2636}," source; there is no word for a series, so the sheet is hand-written and the source reads the generated accessors ",{"start":2637,"end":2638},{"line":2584,"column":2629,"offset":2630},{"line":2584,"column":2639,"offset":2640},235,6689,{"type":30,"tagName":44,"properties":2642,"children":2643,"position":2650},{},[2644],{"type":26,"value":2358,"position":2645},{"start":2646,"end":2647},{"line":2584,"column":2639,"offset":2640},{"line":2584,"column":2648,"offset":2649},245,6699,{"start":2651,"end":2652},{"line":2584,"column":2639,"offset":2640},{"line":2584,"column":2648,"offset":2649},{"type":26,"value":819,"position":2654},{"start":2655,"end":2656},{"line":2584,"column":2648,"offset":2649},{"line":2584,"column":2657,"offset":2658},247,6701,{"type":30,"tagName":44,"properties":2660,"children":2661,"position":2669},{},[2662],{"type":26,"value":2663,"position":2664},"out_aqi(...)",{"start":2665,"end":2666},{"line":2584,"column":2657,"offset":2658},{"line":2584,"column":2667,"offset":2668},261,6715,{"start":2670,"end":2671},{"line":2584,"column":2657,"offset":2658},{"line":2584,"column":2667,"offset":2668},{"type":26,"value":2673,"position":2674}," and ",{"start":2675,"end":2676},{"line":2584,"column":2667,"offset":2668},{"line":2584,"column":52,"offset":2677},6720,{"type":30,"tagName":44,"properties":2679,"children":2680,"position":2688},{},[2681],{"type":26,"value":2682,"position":2683},"out_aqi_ma(...)",{"start":2684,"end":2685},{"line":2584,"column":52,"offset":2677},{"line":2584,"column":2686,"offset":2687},283,6737,{"start":2689,"end":2690},{"line":2584,"column":52,"offset":2677},{"line":2584,"column":2686,"offset":2687},{"type":26,"value":2692,"position":2693},". ",{"start":2694,"end":2695},{"line":2584,"column":2686,"offset":2687},{"line":2584,"column":2696,"offset":2697},285,6739,{"type":30,"tagName":44,"properties":2699,"children":2700,"position":2708},{},[2701],{"type":26,"value":2702,"position":2703},"om wrun build",{"start":2704,"end":2705},{"line":2584,"column":2696,"offset":2697},{"line":2584,"column":2706,"offset":2707},300,6754,{"start":2709,"end":2710},{"line":2584,"column":2696,"offset":2697},{"line":2584,"column":2706,"offset":2707},{"type":26,"value":2712,"position":2713}," regenerates ",{"start":2714,"end":2715},{"line":2584,"column":2706,"offset":2707},{"line":2584,"column":2716,"offset":2717},313,6767,{"type":30,"tagName":44,"properties":2719,"children":2720,"position":2728},{},[2721],{"type":26,"value":2722,"position":2723},"src/gen",{"start":2724,"end":2725},{"line":2584,"column":2716,"offset":2717},{"line":2584,"column":2726,"offset":2727},322,6776,{"start":2729,"end":2730},{"line":2584,"column":2716,"offset":2717},{"line":2584,"column":2726,"offset":2727},{"type":26,"value":2732,"position":2733}," from the sheet before every compile, so renaming an input in the sheet renames its accessor. ",{"start":2734,"end":2735},{"line":2584,"column":2726,"offset":2727},{"line":2584,"column":2736,"offset":2737},416,6870,{"type":30,"tagName":44,"properties":2739,"children":2740,"position":2748},{},[2741],{"type":26,"value":2742,"position":2743},"abi_version",{"start":2744,"end":2745},{"line":2584,"column":2736,"offset":2737},{"line":2584,"column":2746,"offset":2747},429,6883,{"start":2749,"end":2750},{"line":2584,"column":2736,"offset":2737},{"line":2584,"column":2746,"offset":2747},{"type":26,"value":2752,"position":2753}," is ",{"start":2754,"end":2755},{"line":2584,"column":2746,"offset":2747},{"line":2584,"column":2756,"offset":2757},433,6887,{"type":30,"tagName":44,"properties":2759,"children":2760,"position":2768},{},[2761],{"type":26,"value":2762,"position":2763},"wrun-2",{"start":2764,"end":2765},{"line":2584,"column":2756,"offset":2757},{"line":2584,"column":2766,"offset":2767},441,6895,{"start":2769,"end":2770},{"line":2584,"column":2756,"offset":2757},{"line":2584,"column":2766,"offset":2767},{"type":26,"value":2772,"position":2773},", the first version with drawings, and ",{"start":2774,"end":2775},{"line":2584,"column":2766,"offset":2767},{"line":2584,"column":2381,"offset":2776},6934,{"type":30,"tagName":44,"properties":2778,"children":2779,"position":2787},{},[2780],{"type":26,"value":2781,"position":2782},"warmup_bars: 7",{"start":2783,"end":2784},{"line":2584,"column":2381,"offset":2776},{"line":2584,"column":2785,"offset":2786},496,6950,{"start":2788,"end":2789},{"line":2584,"column":2381,"offset":2776},{"line":2584,"column":2785,"offset":2786},{"type":26,"value":2791,"position":2792}," asks the daemon to feed seven bars ahead of the window you read, so a seven-bar average can be ready on the first row you see.",{"start":2793,"end":2794},{"line":2584,"column":2785,"offset":2786},{"line":2584,"column":2795,"offset":2796},623,7077,{"start":2798,"end":2799},{"line":2584,"column":20,"offset":2590},{"line":2584,"column":2795,"offset":2796},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2802,"children":2803,"position":2964},{},[2804,2822,2828,2841,2848,2860,2867,2880,2887,2900,2907,2920,2926,2938,2945,2957],{"type":30,"tagName":2269,"properties":2805,"children":2806,"position":2816},{},[2807],{"type":26,"value":2808,"position":2809},"Readiness is per bar.",{"start":2810,"end":2813},{"line":2811,"column":2277,"offset":2812},96,7081,{"line":2811,"column":2814,"offset":2815},24,7102,{"start":2817,"end":2819},{"line":2811,"column":20,"offset":2818},7079,{"line":2811,"column":2820,"offset":2821},26,7104,{"type":26,"value":2288,"position":2823},{"start":2824,"end":2825},{"line":2811,"column":2820,"offset":2821},{"line":2811,"column":2826,"offset":2827},27,7105,{"type":30,"tagName":44,"properties":2829,"children":2830,"position":2838},{},[2831],{"type":26,"value":2832,"position":2833},"state()",{"start":2834,"end":2835},{"line":2811,"column":2826,"offset":2827},{"line":2811,"column":2836,"offset":2837},36,7114,{"start":2839,"end":2840},{"line":2811,"column":2826,"offset":2827},{"line":2811,"column":2836,"offset":2837},{"type":26,"value":2842,"position":2843}," runs once per bar, oldest first. It reads the candle and the reading; while no reading has arrived yet (the bars before the series' first row) it returns ",{"start":2844,"end":2845},{"line":2811,"column":2836,"offset":2837},{"line":2811,"column":2846,"offset":2847},191,7269,{"type":30,"tagName":44,"properties":2849,"children":2850,"position":2857},{},[2851],{"type":26,"value":344,"position":2852},{"start":2853,"end":2854},{"line":2811,"column":2846,"offset":2847},{"line":2811,"column":2855,"offset":2856},194,7272,{"start":2858,"end":2859},{"line":2811,"column":2846,"offset":2847},{"line":2811,"column":2855,"offset":2856},{"type":26,"value":2861,"position":2862},", so the row abstains and nothing is plotted. From the first reading on, every bar is ready: ",{"start":2863,"end":2864},{"line":2811,"column":2855,"offset":2856},{"line":2811,"column":2865,"offset":2866},287,7365,{"type":30,"tagName":44,"properties":2868,"children":2869,"position":2877},{},[2870],{"type":26,"value":2871,"position":2872},"aqi",{"start":2873,"end":2874},{"line":2811,"column":2865,"offset":2866},{"line":2811,"column":2875,"offset":2876},292,7370,{"start":2878,"end":2879},{"line":2811,"column":2865,"offset":2866},{"line":2811,"column":2875,"offset":2876},{"type":26,"value":2881,"position":2882}," is the reading carried onto that bar, ",{"start":2883,"end":2884},{"line":2811,"column":2875,"offset":2876},{"line":2811,"column":2885,"offset":2886},331,7409,{"type":30,"tagName":44,"properties":2888,"children":2889,"position":2897},{},[2890],{"type":26,"value":2891,"position":2892},"aqi_ma",{"start":2893,"end":2894},{"line":2811,"column":2885,"offset":2886},{"line":2811,"column":2895,"offset":2896},339,7417,{"start":2898,"end":2899},{"line":2811,"column":2885,"offset":2886},{"line":2811,"column":2895,"offset":2896},{"type":26,"value":2901,"position":2902}," its seven-bar ",{"start":2903,"end":2904},{"line":2811,"column":2895,"offset":2896},{"line":2811,"column":2905,"offset":2906},354,7432,{"type":30,"tagName":44,"properties":2908,"children":2909,"position":2917},{},[2910],{"type":26,"value":2911,"position":2912},"Sma",{"start":2913,"end":2914},{"line":2811,"column":2905,"offset":2906},{"line":2811,"column":2915,"offset":2916},359,7437,{"start":2918,"end":2919},{"line":2811,"column":2905,"offset":2906},{"line":2811,"column":2915,"offset":2916},{"type":26,"value":819,"position":2921},{"start":2922,"end":2923},{"line":2811,"column":2915,"offset":2916},{"line":2811,"column":2924,"offset":2925},361,7439,{"type":30,"tagName":44,"properties":2927,"children":2928,"position":2935},{},[2929],{"type":26,"value":2535,"position":2930},{"start":2931,"end":2932},{"line":2811,"column":2924,"offset":2925},{"line":2811,"column":2933,"offset":2934},366,7444,{"start":2936,"end":2937},{"line":2811,"column":2924,"offset":2925},{"line":2811,"column":2933,"offset":2934},{"type":26,"value":2939,"position":2940}," for the first six. A ",{"start":2941,"end":2942},{"line":2811,"column":2933,"offset":2934},{"line":2811,"column":2943,"offset":2944},388,7466,{"type":30,"tagName":44,"properties":2946,"children":2947,"position":2954},{},[2948],{"type":26,"value":2535,"position":2949},{"start":2950,"end":2951},{"line":2811,"column":2943,"offset":2944},{"line":2811,"column":2952,"offset":2953},393,7471,{"start":2955,"end":2956},{"line":2811,"column":2943,"offset":2944},{"line":2811,"column":2952,"offset":2953},{"type":26,"value":2958,"position":2959}," output is a gap in the line, not a refusal.",{"start":2960,"end":2961},{"line":2811,"column":2952,"offset":2953},{"line":2811,"column":2962,"offset":2963},437,7515,{"start":2965,"end":2966},{"line":2811,"column":20,"offset":2818},{"line":2811,"column":2962,"offset":2963},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2969,"children":2970,"position":3112},{},[2971,2989,2996,3008,3015,3027,3034,3047,3054,3067,3074,3087,3093,3106],{"type":30,"tagName":2269,"properties":2972,"children":2973,"position":2983},{},[2974],{"type":26,"value":2975,"position":2976},"The card reads outputs, not the source.",{"start":2977,"end":2980},{"line":2978,"column":2277,"offset":2979},98,7519,{"line":2978,"column":2981,"offset":2982},42,7558,{"start":2984,"end":2986},{"line":2978,"column":20,"offset":2985},7517,{"line":2978,"column":2987,"offset":2988},44,7560,{"type":26,"value":2990,"position":2991}," The card is a drawing in the sheet, and the source never touches it: the host takes the newest ready row where every referenced output is finite and prints ",{"start":2992,"end":2993},{"line":2978,"column":2987,"offset":2988},{"line":2978,"column":2994,"offset":2995},201,7717,{"type":30,"tagName":44,"properties":2997,"children":2998,"position":3005},{},[2999],{"type":26,"value":2871,"position":3000},{"start":3001,"end":3002},{"line":2978,"column":2994,"offset":2995},{"line":2978,"column":3003,"offset":3004},206,7722,{"start":3006,"end":3007},{"line":2978,"column":2994,"offset":2995},{"line":2978,"column":3003,"offset":3004},{"type":26,"value":3009,"position":3010}," as an integer and ",{"start":3011,"end":3012},{"line":2978,"column":3003,"offset":3004},{"line":2978,"column":3013,"offset":3014},225,7741,{"type":30,"tagName":44,"properties":3016,"children":3017,"position":3024},{},[3018],{"type":26,"value":2891,"position":3019},{"start":3020,"end":3021},{"line":2978,"column":3013,"offset":3014},{"line":2978,"column":3022,"offset":3023},233,7749,{"start":3025,"end":3026},{"line":2978,"column":3013,"offset":3014},{"line":2978,"column":3022,"offset":3023},{"type":26,"value":3028,"position":3029}," with up to six significant digits. Until the average exists no row is complete, so the newest ready row supplies the card and the average prints empty. The ",{"start":3030,"end":3031},{"line":2978,"column":3022,"offset":3023},{"line":2978,"column":3032,"offset":3033},390,7906,{"type":30,"tagName":44,"properties":3035,"children":3036,"position":3044},{},[3037],{"type":26,"value":3038,"position":3039},"clock: true",{"start":3040,"end":3041},{"line":2978,"column":3032,"offset":3033},{"line":2978,"column":3042,"offset":3043},403,7919,{"start":3045,"end":3046},{"line":2978,"column":3032,"offset":3033},{"line":2978,"column":3042,"offset":3043},{"type":26,"value":3048,"position":3049}," row asks the chart to show its clock on that row, the one line on the card the package cannot compute: readings are per bar, the clock is now. ",{"start":3050,"end":3051},{"line":2978,"column":3042,"offset":3043},{"line":2978,"column":3052,"offset":3053},547,8063,{"type":30,"tagName":44,"properties":3055,"children":3056,"position":3064},{},[3057],{"type":26,"value":3058,"position":3059},"anchor: \"top_right\"",{"start":3060,"end":3061},{"line":2978,"column":3052,"offset":3053},{"line":2978,"column":3062,"offset":3063},568,8084,{"start":3065,"end":3066},{"line":2978,"column":3052,"offset":3053},{"line":2978,"column":3062,"offset":3063},{"type":26,"value":3068,"position":3069}," pins the card to the pane corner; ",{"start":3070,"end":3071},{"line":2978,"column":3062,"offset":3063},{"line":2978,"column":3072,"offset":3073},603,8119,{"type":30,"tagName":44,"properties":3075,"children":3076,"position":3084},{},[3077],{"type":26,"value":3078,"position":3079},"offset",{"start":3080,"end":3081},{"line":2978,"column":3072,"offset":3073},{"line":2978,"column":3082,"offset":3083},611,8127,{"start":3085,"end":3086},{"line":2978,"column":3072,"offset":3073},{"line":2978,"column":3082,"offset":3083},{"type":26,"value":2673,"position":3088},{"start":3089,"end":3090},{"line":2978,"column":3082,"offset":3083},{"line":2978,"column":3091,"offset":3092},616,8132,{"type":30,"tagName":44,"properties":3094,"children":3095,"position":3103},{},[3096],{"type":26,"value":3097,"position":3098},"z",{"start":3099,"end":3100},{"line":2978,"column":3091,"offset":3092},{"line":2978,"column":3101,"offset":3102},619,8135,{"start":3104,"end":3105},{"line":2978,"column":3091,"offset":3092},{"line":2978,"column":3101,"offset":3102},{"type":26,"value":3107,"position":3108}," move it and stack it.",{"start":3109,"end":3110},{"line":2978,"column":3101,"offset":3102},{"line":2978,"column":2440,"offset":3111},8157,{"start":3113,"end":3114},{"line":2978,"column":20,"offset":2985},{"line":2978,"column":2440,"offset":3111},{"type":26,"value":27},{"type":30,"tagName":31,"properties":3117,"children":3118,"position":3259},{},[3119,3135,3142,3155,3162,3174,3181,3194,3201,3214,3220,3233,3239,3252],{"type":30,"tagName":2269,"properties":3120,"children":3121,"position":3129},{},[3122],{"type":26,"value":3123,"position":3124},"Where it runs.",{"start":3125,"end":3127},{"line":98,"column":2277,"offset":3126},8161,{"line":98,"column":520,"offset":3128},8175,{"start":3130,"end":3132},{"line":98,"column":20,"offset":3131},8159,{"line":98,"column":3133,"offset":3134},19,8177,{"type":26,"value":3136,"position":3137}," A series lives in daemon state, so this package is for your machine: ",{"start":3138,"end":3139},{"line":98,"column":3133,"offset":3134},{"line":98,"column":3140,"offset":3141},89,8247,{"type":30,"tagName":44,"properties":3143,"children":3144,"position":3152},{},[3145],{"type":26,"value":3146,"position":3147},"om wrun install",{"start":3148,"end":3149},{"line":98,"column":3140,"offset":3141},{"line":98,"column":3150,"offset":3151},106,8264,{"start":3153,"end":3154},{"line":98,"column":3140,"offset":3141},{"line":98,"column":3150,"offset":3151},{"type":26,"value":3156,"position":3157},", then ",{"start":3158,"end":3159},{"line":98,"column":3150,"offset":3151},{"line":98,"column":3160,"offset":3161},113,8271,{"type":30,"tagName":44,"properties":3163,"children":3164,"position":3171},{},[3165],{"type":26,"value":3166,"position":3167},"om metric series",{"start":3168,"end":3169},{"line":98,"column":3160,"offset":3161},{"line":98,"column":2312,"offset":3170},8289,{"start":3172,"end":3173},{"line":98,"column":3160,"offset":3161},{"line":98,"column":2312,"offset":3170},{"type":26,"value":3175,"position":3176},", or a watch on ",{"start":3177,"end":3178},{"line":98,"column":2312,"offset":3170},{"line":98,"column":3179,"offset":3180},147,8305,{"type":30,"tagName":44,"properties":3182,"children":3183,"position":3191},{},[3184],{"type":26,"value":3185,"position":3186},"wrun/@you/series-address/aqi",{"start":3187,"end":3188},{"line":98,"column":3179,"offset":3180},{"line":98,"column":3189,"offset":3190},177,8335,{"start":3192,"end":3193},{"line":98,"column":3179,"offset":3180},{"line":98,"column":3189,"offset":3190},{"type":26,"value":3195,"position":3196},". The chart host cannot supply a series input. To see the raw series on a chart, ",{"start":3197,"end":3198},{"line":98,"column":3189,"offset":3190},{"line":98,"column":3199,"offset":3200},258,8416,{"type":30,"tagName":44,"properties":3202,"children":3203,"position":3211},{},[3204],{"type":26,"value":3205,"position":3206},"om chart series push --address @you/aqi-shanghai",{"start":3207,"end":3208},{"line":98,"column":3199,"offset":3200},{"line":98,"column":3209,"offset":3210},308,8466,{"start":3212,"end":3213},{"line":98,"column":3199,"offset":3200},{"line":98,"column":3209,"offset":3210},{"type":26,"value":3215,"position":3216}," plots the installed snapshot as a line. The market you read the package on names the grid: on ",{"start":3217,"end":3218},{"line":98,"column":3209,"offset":3210},{"line":98,"column":3042,"offset":3219},8561,{"type":30,"tagName":44,"properties":3221,"children":3222,"position":3230},{},[3223],{"type":26,"value":3224,"position":3225},"BTCUSDT",{"start":3226,"end":3227},{"line":98,"column":3042,"offset":3219},{"line":98,"column":3228,"offset":3229},412,8570,{"start":3231,"end":3232},{"line":98,"column":3042,"offset":3219},{"line":98,"column":3228,"offset":3229},{"type":26,"value":3234,"position":3235}," at ",{"start":3236,"end":3237},{"line":98,"column":3228,"offset":3229},{"line":98,"column":2736,"offset":3238},8574,{"type":30,"tagName":44,"properties":3240,"children":3241,"position":3249},{},[3242],{"type":26,"value":3243,"position":3244},"1h",{"start":3245,"end":3246},{"line":98,"column":2736,"offset":3238},{"line":98,"column":3247,"offset":3248},420,8578,{"start":3250,"end":3251},{"line":98,"column":2736,"offset":3238},{"line":98,"column":3247,"offset":3248},{"type":26,"value":3253,"position":3254},", the AQI readings line up on hourly BTC candles, and the reading has nothing to do with the price.",{"start":3255,"end":3256},{"line":98,"column":3247,"offset":3248},{"line":98,"column":3257,"offset":3258},519,8677,{"start":3260,"end":3261},{"line":98,"column":20,"offset":3131},{"line":98,"column":3257,"offset":3258},{"type":26,"value":27},{"type":30,"tagName":185,"properties":3264,"children":3266,"position":3276},{"id":3265},"what-kscript-legacy-could-not-do",[3267],{"type":26,"value":3268,"position":3269},"What kScript (legacy) could not do",{"start":3270,"end":3273},{"line":3271,"column":194,"offset":3272},102,8682,{"line":3271,"column":3274,"offset":3275},38,8716,{"start":3277,"end":3279},{"line":3271,"column":20,"offset":3278},8679,{"line":3271,"column":3274,"offset":3275},{"type":26,"value":27},{"type":30,"tagName":3282,"properties":3283,"children":3284,"position":3469},"ul",{},[3285,3286,3322,3323,3339,3340,3432,3433,3468],{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3288,"children":3289,"position":3318},"li",{},[3290,3299,3312],{"type":26,"value":3291,"position":3292},"An input that is not a venue field. A kScript ",{"start":3293,"end":3296},{"line":3294,"column":2277,"offset":3295},104,8720,{"line":3294,"column":3297,"offset":3298},49,8766,{"type":30,"tagName":44,"properties":3300,"children":3301,"position":3309},{},[3302],{"type":26,"value":3303,"position":3304},"source(...)",{"start":3305,"end":3306},{"line":3294,"column":3297,"offset":3298},{"line":3294,"column":3307,"offset":3308},62,8779,{"start":3310,"end":3311},{"line":3294,"column":3297,"offset":3298},{"line":3294,"column":3307,"offset":3308},{"type":26,"value":3313,"position":3314}," named a data type on a symbol at an exchange; an air-quality reading, a survey number or a count your watch produced had no way in. Here the input is an address, and the address is the whole description: no field, no symbol, no exchange, no interval.",{"start":3315,"end":3316},{"line":3294,"column":3307,"offset":3308},{"line":3294,"column":2716,"offset":3317},9030,{"start":3319,"end":3321},{"line":3294,"column":20,"offset":3320},8718,{"line":3294,"column":2716,"offset":3317},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3324,"children":3325,"position":3335},{},[3326],{"type":26,"value":3327,"position":3328},"A series published by a daemon. A kScript's numbers stayed on the chart that computed them. A watch's committed history becomes a series with one command, gets an address with another, and every package that names the address reads it.",{"start":3329,"end":3332},{"line":3330,"column":2277,"offset":3331},105,9033,{"line":3330,"column":3333,"offset":3334},238,9268,{"start":3336,"end":3338},{"line":3330,"column":20,"offset":3337},9031,{"line":3330,"column":3333,"offset":3334},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3341,"children":3342,"position":3428},{},[3343,3350,3363,3369,3382,3389,3401,3408,3421],{"type":26,"value":3344,"position":3345},"A card with a clock. ",{"start":3346,"end":3348},{"line":3150,"column":2277,"offset":3347},9271,{"line":3150,"column":2814,"offset":3349},9292,{"type":30,"tagName":44,"properties":3351,"children":3352,"position":3360},{},[3353],{"type":26,"value":3354,"position":3355},"plotTable",{"start":3356,"end":3357},{"line":3150,"column":2814,"offset":3349},{"line":3150,"column":3358,"offset":3359},35,9303,{"start":3361,"end":3362},{"line":3150,"column":2814,"offset":3349},{"line":3150,"column":3358,"offset":3359},{"type":26,"value":3364,"position":3365}," under ",{"start":3366,"end":3367},{"line":3150,"column":3358,"offset":3359},{"line":3150,"column":2981,"offset":3368},9310,{"type":30,"tagName":44,"properties":3370,"children":3371,"position":3379},{},[3372],{"type":26,"value":3373,"position":3374},"isLastBar",{"start":3375,"end":3376},{"line":3150,"column":2981,"offset":3368},{"line":3150,"column":3377,"offset":3378},53,9321,{"start":3380,"end":3381},{"line":3150,"column":2981,"offset":3368},{"line":3150,"column":3377,"offset":3378},{"type":26,"value":3383,"position":3384}," printed values the script computed; a row that shows the chart's clock (",{"start":3385,"end":3386},{"line":3150,"column":3377,"offset":3378},{"line":3150,"column":3387,"offset":3388},126,9394,{"type":30,"tagName":44,"properties":3390,"children":3391,"position":3398},{},[3392],{"type":26,"value":3038,"position":3393},{"start":3394,"end":3395},{"line":3150,"column":3387,"offset":3388},{"line":3150,"column":3396,"offset":3397},139,9407,{"start":3399,"end":3400},{"line":3150,"column":3387,"offset":3388},{"line":3150,"column":3396,"offset":3397},{"type":26,"value":3402,"position":3403},") or counts down to an output (",{"start":3404,"end":3405},{"line":3150,"column":3396,"offset":3397},{"line":3150,"column":3406,"offset":3407},170,9438,{"type":30,"tagName":44,"properties":3409,"children":3410,"position":3418},{},[3411],{"type":26,"value":3412,"position":3413},"countdown_to",{"start":3414,"end":3415},{"line":3150,"column":3406,"offset":3407},{"line":3150,"column":3416,"offset":3417},184,9452,{"start":3419,"end":3420},{"line":3150,"column":3406,"offset":3407},{"line":3150,"column":3416,"offset":3417},{"type":26,"value":3422,"position":3423},") is a card row here, drawn by the host from the sheet.",{"start":3424,"end":3425},{"line":3150,"column":3416,"offset":3417},{"line":3150,"column":3426,"offset":3427},239,9507,{"start":3429,"end":3431},{"line":3150,"column":20,"offset":3430},9269,{"line":3150,"column":3426,"offset":3427},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3434,"children":3435,"position":3464},{},[3436,3445,3457],{"type":26,"value":3437,"position":3438},"An address another user can install. ",{"start":3439,"end":3442},{"line":3440,"column":2277,"offset":3441},107,9510,{"line":3440,"column":3443,"offset":3444},40,9547,{"type":30,"tagName":44,"properties":3446,"children":3447,"position":3454},{},[3448],{"type":26,"value":3449,"position":3450},"om install @you/aqi-shanghai",{"start":3451,"end":3452},{"line":3440,"column":3443,"offset":3444},{"line":3440,"column":9,"offset":3453},9577,{"start":3455,"end":3456},{"line":3440,"column":3443,"offset":3444},{"line":3440,"column":9,"offset":3453},{"type":26,"value":3458,"position":3459}," on any machine lands the snapshot, and a package that names it works there too. A kScript could not read anything another user published.",{"start":3460,"end":3461},{"line":3440,"column":9,"offset":3453},{"line":3440,"column":3462,"offset":3463},208,9715,{"start":3465,"end":3467},{"line":3440,"column":20,"offset":3466},9508,{"line":3440,"column":3462,"offset":3463},{"type":26,"value":27},{"start":3470,"end":3471},{"line":3294,"column":20,"offset":3320},{"line":3440,"column":3462,"offset":3463},{"type":26,"value":27},{"type":30,"tagName":185,"properties":3474,"children":3476,"position":3485},{"id":3475},"customize-it",[3477],{"type":26,"value":3478,"position":3479},"Customize it",{"start":3480,"end":3483},{"line":3481,"column":194,"offset":3482},109,9720,{"line":3481,"column":2258,"offset":3484},9732,{"start":3486,"end":3488},{"line":3481,"column":20,"offset":3487},9717,{"line":3481,"column":2258,"offset":3484},{"type":26,"value":27},{"type":30,"tagName":3282,"properties":3491,"children":3492,"position":3868},{},[3493,3494,3561,3562,3649,3650,3735,3736,3782,3783,3867],{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3495,"children":3496,"position":3557},{},[3497,3513,3519,3532,3538,3550],{"type":30,"tagName":2269,"properties":3498,"children":3499,"position":3508},{},[3500],{"type":26,"value":3501,"position":3502},"Read your own watch live.",{"start":3503,"end":3506},{"line":3504,"column":38,"offset":3505},111,9738,{"line":3504,"column":2285,"offset":3507},9763,{"start":3509,"end":3511},{"line":3504,"column":2277,"offset":3510},9736,{"line":3504,"column":2592,"offset":3512},9765,{"type":26,"value":3514,"position":3515}," Change ",{"start":3516,"end":3517},{"line":3504,"column":2592,"offset":3512},{"line":3504,"column":3443,"offset":3518},9773,{"type":30,"tagName":44,"properties":3520,"children":3521,"position":3529},{},[3522],{"type":26,"value":3523,"position":3524},"ref",{"start":3525,"end":3526},{"line":3504,"column":3443,"offset":3518},{"line":3504,"column":3527,"offset":3528},45,9778,{"start":3530,"end":3531},{"line":3504,"column":3443,"offset":3518},{"line":3504,"column":3527,"offset":3528},{"type":26,"value":3533,"position":3534}," to ",{"start":3535,"end":3536},{"line":3504,"column":3527,"offset":3528},{"line":3504,"column":3297,"offset":3537},9782,{"type":30,"tagName":44,"properties":3539,"children":3540,"position":3547},{},[3541],{"type":26,"value":536,"position":3542},{"start":3543,"end":3544},{"line":3504,"column":3297,"offset":3537},{"line":3504,"column":3545,"offset":3546},73,9806,{"start":3548,"end":3549},{"line":3504,"column":3297,"offset":3537},{"line":3504,"column":3545,"offset":3546},{"type":26,"value":3551,"position":3552},": the daemon reads the watch's committed history directly, no snapshot, no publish, no install. It works only on the machine that runs the watch.",{"start":3553,"end":3554},{"line":3504,"column":3545,"offset":3546},{"line":3504,"column":3555,"offset":3556},218,9951,{"start":3558,"end":3560},{"line":3504,"column":20,"offset":3559},9734,{"line":3504,"column":3555,"offset":3556},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3563,"children":3564,"position":3645},{},[3565,3581,3586,3598,3605,3618,3625,3638],{"type":30,"tagName":2269,"properties":3566,"children":3567,"position":3576},{},[3568],{"type":26,"value":3569,"position":3570},"Change the window.",{"start":3571,"end":3574},{"line":3572,"column":38,"offset":3573},112,9956,{"line":3572,"column":564,"offset":3575},9974,{"start":3577,"end":3579},{"line":3572,"column":2277,"offset":3578},9954,{"line":3572,"column":580,"offset":3580},9976,{"type":26,"value":2288,"position":3582},{"start":3583,"end":3584},{"line":3572,"column":580,"offset":3580},{"line":3572,"column":2820,"offset":3585},9977,{"type":30,"tagName":44,"properties":3587,"children":3588,"position":3595},{},[3589],{"type":26,"value":3590,"position":3591},"new Sma(7)",{"start":3592,"end":3593},{"line":3572,"column":2820,"offset":3585},{"line":3572,"column":3274,"offset":3594},9989,{"start":3596,"end":3597},{"line":3572,"column":2820,"offset":3585},{"line":3572,"column":3274,"offset":3594},{"type":26,"value":3599,"position":3600}," in the source and the ",{"start":3601,"end":3602},{"line":3572,"column":3274,"offset":3594},{"line":3572,"column":3603,"offset":3604},61,10012,{"type":30,"tagName":44,"properties":3606,"children":3607,"position":3615},{},[3608],{"type":26,"value":3609,"position":3610},"7-bar avg",{"start":3611,"end":3612},{"line":3572,"column":3603,"offset":3604},{"line":3572,"column":3613,"offset":3614},72,10023,{"start":3616,"end":3617},{"line":3572,"column":3603,"offset":3604},{"line":3572,"column":3613,"offset":3614},{"type":26,"value":3619,"position":3620}," label in the sheet are both literal; change them together, and keep ",{"start":3621,"end":3622},{"line":3572,"column":3613,"offset":3614},{"line":3572,"column":3623,"offset":3624},141,10092,{"type":30,"tagName":44,"properties":3626,"children":3627,"position":3635},{},[3628],{"type":26,"value":3629,"position":3630},"warmup_bars",{"start":3631,"end":3632},{"line":3572,"column":3623,"offset":3624},{"line":3572,"column":3633,"offset":3634},154,10105,{"start":3636,"end":3637},{"line":3572,"column":3623,"offset":3624},{"line":3572,"column":3633,"offset":3634},{"type":26,"value":3639,"position":3640}," at or above the window so the average is ready on the first row you read.",{"start":3641,"end":3642},{"line":3572,"column":3633,"offset":3634},{"line":3572,"column":3643,"offset":3644},228,10179,{"start":3646,"end":3648},{"line":3572,"column":20,"offset":3647},9952,{"line":3572,"column":3643,"offset":3644},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3651,"children":3652,"position":3731},{},[3653,3669,3675,3687,3693,3705,3712,3724],{"type":30,"tagName":2269,"properties":3654,"children":3655,"position":3664},{},[3656],{"type":26,"value":3657,"position":3658},"Show gaps.",{"start":3659,"end":3661},{"line":3160,"column":38,"offset":3660},10184,{"line":3160,"column":3662,"offset":3663},15,10194,{"start":3665,"end":3667},{"line":3160,"column":2277,"offset":3666},10182,{"line":3160,"column":520,"offset":3668},10196,{"type":26,"value":2288,"position":3670},{"start":3671,"end":3672},{"line":3160,"column":520,"offset":3668},{"line":3160,"column":3673,"offset":3674},18,10197,{"type":30,"tagName":44,"properties":3676,"children":3677,"position":3684},{},[3678],{"type":26,"value":3679,"position":3680},"\"missing\": \"nan\"",{"start":3681,"end":3682},{"line":3160,"column":3673,"offset":3674},{"line":3160,"column":2836,"offset":3683},10215,{"start":3685,"end":3686},{"line":3160,"column":3673,"offset":3674},{"line":3160,"column":2836,"offset":3683},{"type":26,"value":3688,"position":3689}," makes a bar without a reading read ",{"start":3690,"end":3691},{"line":3160,"column":2836,"offset":3683},{"line":3160,"column":3613,"offset":3692},10251,{"type":30,"tagName":44,"properties":3694,"children":3695,"position":3702},{},[3696],{"type":26,"value":2535,"position":3697},{"start":3698,"end":3699},{"line":3160,"column":3613,"offset":3692},{"line":3160,"column":3700,"offset":3701},77,10256,{"start":3703,"end":3704},{"line":3160,"column":3613,"offset":3692},{"line":3160,"column":3700,"offset":3701},{"type":26,"value":3706,"position":3707},": the line breaks between readings instead of stepping, and ",{"start":3708,"end":3709},{"line":3160,"column":3700,"offset":3701},{"line":3160,"column":3710,"offset":3711},137,10316,{"type":30,"tagName":44,"properties":3713,"children":3714,"position":3721},{},[3715],{"type":26,"value":2832,"position":3716},{"start":3717,"end":3718},{"line":3160,"column":3710,"offset":3711},{"line":3160,"column":3719,"offset":3720},146,10325,{"start":3722,"end":3723},{"line":3160,"column":3710,"offset":3711},{"line":3160,"column":3719,"offset":3720},{"type":26,"value":3725,"position":3726}," abstains on those bars as written.",{"start":3727,"end":3728},{"line":3160,"column":3719,"offset":3720},{"line":3160,"column":3729,"offset":3730},181,10360,{"start":3732,"end":3734},{"line":3160,"column":20,"offset":3733},10180,{"line":3160,"column":3729,"offset":3730},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3737,"children":3738,"position":3778},{},[3739,3755,3760,3772],{"type":30,"tagName":2269,"properties":3740,"children":3741,"position":3750},{},[3742],{"type":26,"value":3743,"position":3744},"Add a spark row.",{"start":3745,"end":3748},{"line":3746,"column":38,"offset":3747},114,10365,{"line":3746,"column":517,"offset":3749},10381,{"start":3751,"end":3753},{"line":3746,"column":2277,"offset":3752},10363,{"line":3746,"column":564,"offset":3754},10383,{"type":26,"value":2288,"position":3756},{"start":3757,"end":3758},{"line":3746,"column":564,"offset":3754},{"line":3746,"column":2814,"offset":3759},10384,{"type":30,"tagName":44,"properties":3761,"children":3762,"position":3769},{},[3763],{"type":26,"value":3764,"position":3765},"{ \"label\": \"Last 24\", \"spark\": { \"output\": \"aqi\", \"window\": 24 } }",{"start":3766,"end":3767},{"line":3746,"column":2814,"offset":3759},{"line":3746,"column":2276,"offset":3768},10452,{"start":3770,"end":3771},{"line":3746,"column":2814,"offset":3759},{"line":3746,"column":2276,"offset":3768},{"type":26,"value":3773,"position":3774}," carries the last 24 ready readings on the card, oldest first; the window is 2 to 64.",{"start":3775,"end":3776},{"line":3746,"column":2276,"offset":3768},{"line":3746,"column":3189,"offset":3777},10537,{"start":3779,"end":3781},{"line":3746,"column":20,"offset":3780},10361,{"line":3746,"column":3189,"offset":3777},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":3784,"children":3785,"position":3863},{},[3786,3801,3807,3819,3825,3838,3844,3856],{"type":30,"tagName":2269,"properties":3787,"children":3788,"position":3796},{},[3789],{"type":26,"value":3790,"position":3791},"Move the card.",{"start":3792,"end":3794},{"line":2619,"column":38,"offset":3793},10542,{"line":2619,"column":3133,"offset":3795},10556,{"start":3797,"end":3799},{"line":2619,"column":2277,"offset":3798},10540,{"line":2619,"column":517,"offset":3800},10558,{"type":26,"value":2288,"position":3802},{"start":3803,"end":3804},{"line":2619,"column":517,"offset":3800},{"line":2619,"column":3805,"offset":3806},22,10559,{"type":30,"tagName":44,"properties":3808,"children":3809,"position":3816},{},[3810],{"type":26,"value":3811,"position":3812},"anchor",{"start":3813,"end":3814},{"line":2619,"column":3805,"offset":3806},{"line":2619,"column":2285,"offset":3815},10567,{"start":3817,"end":3818},{"line":2619,"column":3805,"offset":3806},{"line":2619,"column":2285,"offset":3815},{"type":26,"value":3820,"position":3821}," takes the nine pane positions, ",{"start":3822,"end":3823},{"line":2619,"column":2285,"offset":3815},{"line":2619,"column":3307,"offset":3824},10599,{"type":30,"tagName":44,"properties":3826,"children":3827,"position":3835},{},[3828],{"type":26,"value":3829,"position":3830},"offset: [-12, 12]",{"start":3831,"end":3832},{"line":2619,"column":3307,"offset":3824},{"line":2619,"column":3833,"offset":3834},81,10618,{"start":3836,"end":3837},{"line":2619,"column":3307,"offset":3824},{"line":2619,"column":3833,"offset":3834},{"type":26,"value":3839,"position":3840}," nudges it by pixels (each from -200 to 200), and ",{"start":3841,"end":3842},{"line":2619,"column":3833,"offset":3834},{"line":2619,"column":2312,"offset":3843},10668,{"type":30,"tagName":44,"properties":3845,"children":3846,"position":3853},{},[3847],{"type":26,"value":3097,"position":3848},{"start":3849,"end":3850},{"line":2619,"column":2312,"offset":3843},{"line":2619,"column":3851,"offset":3852},134,10671,{"start":3854,"end":3855},{"line":2619,"column":2312,"offset":3843},{"line":2619,"column":3851,"offset":3852},{"type":26,"value":3857,"position":3858}," stacks it over other drawings.",{"start":3859,"end":3860},{"line":2619,"column":3851,"offset":3852},{"line":2619,"column":3861,"offset":3862},165,10702,{"start":3864,"end":3866},{"line":2619,"column":20,"offset":3865},10538,{"line":2619,"column":3861,"offset":3862},{"type":26,"value":27},{"start":3869,"end":3870},{"line":3504,"column":20,"offset":3559},{"line":2619,"column":3861,"offset":3862},{"type":26,"value":27},{"type":30,"tagName":31,"properties":3873,"children":3874,"position":3882},{},[3875],{"type":26,"value":3876,"position":3877},"Scaffold, build, install, and read the reading on your machine (the series must be installed first, see above):",{"start":3878,"end":3880},{"line":602,"column":20,"offset":3879},10704,{"line":602,"column":3572,"offset":3881},10815,{"start":3883,"end":3884},{"line":602,"column":20,"offset":3879},{"line":602,"column":3572,"offset":3881},{"type":26,"value":27},{"type":13,"children":3887},[3888],{"type":30,"tagName":340,"properties":3889,"children":3890,"data":-1},{"class":342,"style":343,"tabindex":344},[3891],{"type":30,"tagName":44,"properties":3892,"children":3893},{},[3894,3930,3931,3951,3952,3976,3977],{"type":30,"tagName":350,"properties":3895,"children":3896},{"class":352},[3897,3901,3906,3910,3915,3920,3925],{"type":30,"tagName":350,"properties":3898,"children":3899},{"style":356},[3900],{"type":26,"value":359},{"type":30,"tagName":350,"properties":3902,"children":3903},{"style":362},[3904],{"type":26,"value":3905}," wrun",{"type":30,"tagName":350,"properties":3907,"children":3908},{"style":362},[3909],{"type":26,"value":370},{"type":30,"tagName":350,"properties":3911,"children":3912},{"style":362},[3913],{"type":26,"value":3914}," @you/series-address",{"type":30,"tagName":350,"properties":3916,"children":3917},{"style":362},[3918],{"type":26,"value":3919}," ./series-address",{"type":30,"tagName":350,"properties":3921,"children":3922},{"style":378},[3923],{"type":26,"value":3924}," --template",{"type":30,"tagName":350,"properties":3926,"children":3927},{"style":362},[3928],{"type":26,"value":3929}," series-address",{"type":26,"value":27},{"type":30,"tagName":350,"properties":3932,"children":3933},{"class":352},[3934,3938,3942,3947],{"type":30,"tagName":350,"properties":3935,"children":3936},{"style":356},[3937],{"type":26,"value":359},{"type":30,"tagName":350,"properties":3939,"children":3940},{"style":362},[3941],{"type":26,"value":3905},{"type":30,"tagName":350,"properties":3943,"children":3944},{"style":362},[3945],{"type":26,"value":3946}," build",{"type":30,"tagName":350,"properties":3948,"children":3949},{"style":362},[3950],{"type":26,"value":3919},{"type":26,"value":27},{"type":30,"tagName":350,"properties":3953,"children":3954},{"class":352},[3955,3959,3963,3967,3971],{"type":30,"tagName":350,"properties":3956,"children":3957},{"style":356},[3958],{"type":26,"value":359},{"type":30,"tagName":350,"properties":3960,"children":3961},{"style":362},[3962],{"type":26,"value":3905},{"type":30,"tagName":350,"properties":3964,"children":3965},{"style":362},[3966],{"type":26,"value":500},{"type":30,"tagName":350,"properties":3968,"children":3969},{"style":362},[3970],{"type":26,"value":3919},{"type":30,"tagName":350,"properties":3972,"children":3973},{"style":378},[3974],{"type":26,"value":3975}," --replace",{"type":26,"value":27},{"type":30,"tagName":350,"properties":3978,"children":3979},{"class":352},[3980,3984,3989,3993,3998,4003,4008,4013,4018,4023,4028],{"type":30,"tagName":350,"properties":3981,"children":3982},{"style":356},[3983],{"type":26,"value":359},{"type":30,"tagName":350,"properties":3985,"children":3986},{"style":362},[3987],{"type":26,"value":3988}," metric",{"type":30,"tagName":350,"properties":3990,"children":3991},{"style":362},[3992],{"type":26,"value":365},{"type":30,"tagName":350,"properties":3994,"children":3995},{"style":378},[3996],{"type":26,"value":3997}," --metric",{"type":30,"tagName":350,"properties":3999,"children":4000},{"style":362},[4001],{"type":26,"value":4002}," wrun/@you/series-address/aqi",{"type":30,"tagName":350,"properties":4004,"children":4005},{"style":378},[4006],{"type":26,"value":4007}," --symbol",{"type":30,"tagName":350,"properties":4009,"children":4010},{"style":362},[4011],{"type":26,"value":4012}," BTCUSDT",{"type":30,"tagName":350,"properties":4014,"children":4015},{"style":378},[4016],{"type":26,"value":4017}," --exchange",{"type":30,"tagName":350,"properties":4019,"children":4020},{"style":362},[4021],{"type":26,"value":4022}," BINANCE_FUTURES",{"type":30,"tagName":350,"properties":4024,"children":4025},{"style":378},[4026],{"type":26,"value":4027}," --bars",{"type":30,"tagName":350,"properties":4029,"children":4030},{"style":378},[4031],{"type":26,"value":4032}," 20",{"type":26,"value":27},{"type":30,"tagName":185,"properties":4035,"children":4037,"position":4045},{"id":4036},"concepts-used",[4038],{"type":26,"value":4039,"position":4040},"Concepts used",{"start":4041,"end":4043},{"line":3387,"column":194,"offset":4042},11094,{"line":3387,"column":520,"offset":4044},11107,{"start":4046,"end":4048},{"line":3387,"column":20,"offset":4047},11091,{"line":3387,"column":520,"offset":4044},{"type":26,"value":27},{"type":30,"tagName":3282,"properties":4051,"children":4052,"position":4335},{},[4053,4054,4106,4107,4138,4139,4168,4169,4236,4237,4303,4304,4334],{"type":26,"value":27},{"type":30,"tagName":3287,"properties":4055,"children":4056,"position":4102},{},[4057,4076,4083,4095],{"type":30,"tagName":4058,"properties":4059,"children":4061,"position":4070},"a",{"href":4060},"../core-concepts/data-sources.md",[4062],{"type":26,"value":4063,"position":4064},"Data sources",{"start":4065,"end":4068},{"line":4066,"column":194,"offset":4067},128,11112,{"line":4066,"column":2258,"offset":4069},11124,{"start":4071,"end":4073},{"line":4066,"column":2277,"offset":4072},11111,{"line":4066,"column":4074,"offset":4075},51,11159,{"type":26,"value":4077,"position":4078}," for the ",{"start":4079,"end":4080},{"line":4066,"column":4074,"offset":4075},{"line":4066,"column":4081,"offset":4082},60,11168,{"type":30,"tagName":44,"properties":4084,"children":4085,"position":4092},{},[4086],{"type":26,"value":2476,"position":4087},{"start":4088,"end":4089},{"line":4066,"column":4081,"offset":4082},{"line":4066,"column":4090,"offset":4091},69,11177,{"start":4093,"end":4094},{"line":4066,"column":4081,"offset":4082},{"line":4066,"column":4090,"offset":4091},{"type":26,"value":4096,"position":4097}," policies and how a secondary input lines up on the primary grid",{"start":4098,"end":4099},{"line":4066,"column":4090,"offset":4091},{"line":4066,"column":4100,"offset":4101},133,11241,{"start":4103,"end":4105},{"line":4066,"column":20,"offset":4104},11109,{"line":4066,"column":4100,"offset":4101},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":4108,"children":4109,"position":4134},{},[4110,4127],{"type":30,"tagName":4058,"properties":4111,"children":4113,"position":4121},{"href":4112},"../functions/drawing-primitives.md",[4114],{"type":26,"value":4115,"position":4116},"Drawing primitives",{"start":4117,"end":4119},{"line":24,"column":194,"offset":4118},11245,{"line":24,"column":3805,"offset":4120},11263,{"start":4122,"end":4124},{"line":24,"column":2277,"offset":4123},11244,{"line":24,"column":4125,"offset":4126},59,11300,{"type":26,"value":4128,"position":4129}," for status cards, their row keys, and the series input note",{"start":4130,"end":4131},{"line":24,"column":4125,"offset":4126},{"line":24,"column":4132,"offset":4133},119,11360,{"start":4135,"end":4137},{"line":24,"column":20,"offset":4136},11242,{"line":24,"column":4132,"offset":4133},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":4140,"children":4141,"position":4164},{},[4142,4158],{"type":30,"tagName":4058,"properties":4143,"children":4145,"position":4153},{"href":4144},"../core-concepts/multi-source.md",[4146],{"type":26,"value":4147,"position":4148},"Multi-source",{"start":4149,"end":4151},{"line":23,"column":194,"offset":4150},11364,{"line":23,"column":2258,"offset":4152},11376,{"start":4154,"end":4156},{"line":23,"column":2277,"offset":4155},11363,{"line":23,"column":4074,"offset":4157},11411,{"type":26,"value":4159,"position":4160}," for a second input on the chart's grid and arithmetic across inputs",{"start":4161,"end":4162},{"line":23,"column":4074,"offset":4157},{"line":23,"column":4132,"offset":4163},11479,{"start":4165,"end":4167},{"line":23,"column":20,"offset":4166},11361,{"line":23,"column":4132,"offset":4163},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":4170,"children":4171,"position":4232},{},[4172,4189,4195,4206,4213,4225],{"type":30,"tagName":4058,"properties":4173,"children":4175,"position":4183},{"href":4174},"../core-concepts/execution-model.md",[4176],{"type":26,"value":4177,"position":4178},"Execution model",{"start":4179,"end":4181},{"line":2312,"column":194,"offset":4180},11483,{"line":2312,"column":3133,"offset":4182},11498,{"start":4184,"end":4186},{"line":2312,"column":2277,"offset":4185},11482,{"line":2312,"column":4187,"offset":4188},57,11536,{"type":26,"value":4190,"position":4191}," for ",{"start":4192,"end":4193},{"line":2312,"column":4187,"offset":4188},{"line":2312,"column":3307,"offset":4194},11541,{"type":30,"tagName":44,"properties":4196,"children":4197,"position":4203},{},[4198],{"type":26,"value":2832,"position":4199},{"start":4200,"end":4201},{"line":2312,"column":3307,"offset":4194},{"line":2312,"column":2609,"offset":4202},11550,{"start":4204,"end":4205},{"line":2312,"column":3307,"offset":4194},{"line":2312,"column":2609,"offset":4202},{"type":26,"value":4207,"position":4208}," abstaining, ",{"start":4209,"end":4210},{"line":2312,"column":2609,"offset":4202},{"line":2312,"column":4211,"offset":4212},84,11563,{"type":30,"tagName":44,"properties":4214,"children":4215,"position":4222},{},[4216],{"type":26,"value":4217,"position":4218},"finalize()",{"start":4219,"end":4220},{"line":2312,"column":4211,"offset":4212},{"line":2312,"column":2811,"offset":4221},11575,{"start":4223,"end":4224},{"line":2312,"column":4211,"offset":4212},{"line":2312,"column":2811,"offset":4221},{"type":26,"value":4226,"position":4227},", and where pins and series are honored",{"start":4228,"end":4229},{"line":2312,"column":2811,"offset":4221},{"line":2312,"column":4230,"offset":4231},135,11614,{"start":4233,"end":4235},{"line":2312,"column":20,"offset":4234},11480,{"line":2312,"column":4230,"offset":4231},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":4238,"children":4239,"position":4299},{},[4240,4257,4262,4273,4280,4292],{"type":30,"tagName":4058,"properties":4241,"children":4243,"position":4252},{"href":4242},"../functions/moving-averages.md",[4244],{"type":26,"value":4245,"position":4246},"Moving averages",{"start":4247,"end":4250},{"line":4248,"column":194,"offset":4249},132,11618,{"line":4248,"column":3133,"offset":4251},11633,{"start":4253,"end":4255},{"line":4248,"column":2277,"offset":4254},11617,{"line":4248,"column":3377,"offset":4256},11667,{"type":26,"value":4077,"position":4258},{"start":4259,"end":4260},{"line":4248,"column":3377,"offset":4256},{"line":4248,"column":3307,"offset":4261},11676,{"type":30,"tagName":44,"properties":4263,"children":4264,"position":4270},{},[4265],{"type":26,"value":2911,"position":4266},{"start":4267,"end":4268},{"line":4248,"column":3307,"offset":4261},{"line":4248,"column":583,"offset":4269},11681,{"start":4271,"end":4272},{"line":4248,"column":3307,"offset":4261},{"line":4248,"column":583,"offset":4269},{"type":26,"value":4274,"position":4275}," class and its ",{"start":4276,"end":4277},{"line":4248,"column":583,"offset":4269},{"line":4248,"column":4278,"offset":4279},82,11696,{"type":30,"tagName":44,"properties":4281,"children":4282,"position":4289},{},[4283],{"type":26,"value":2535,"position":4284},{"start":4285,"end":4286},{"line":4248,"column":4278,"offset":4279},{"line":4248,"column":4287,"offset":4288},87,11701,{"start":4290,"end":4291},{"line":4248,"column":4278,"offset":4279},{"line":4248,"column":4287,"offset":4288},{"type":26,"value":4293,"position":4294}," warm-up",{"start":4295,"end":4296},{"line":4248,"column":4287,"offset":4288},{"line":4248,"column":4297,"offset":4298},95,11709,{"start":4300,"end":4302},{"line":4248,"column":20,"offset":4301},11615,{"line":4248,"column":4297,"offset":4298},{"type":26,"value":27},{"type":30,"tagName":3287,"properties":4305,"children":4306,"position":4330},{},[4307,4324],{"type":30,"tagName":4058,"properties":4308,"children":4310,"position":4318},{"href":4309},"../faq/limitations.md",[4311],{"type":26,"value":4312,"position":4313},"Limitations",{"start":4314,"end":4316},{"line":4100,"column":194,"offset":4315},11713,{"line":4100,"column":3662,"offset":4317},11724,{"start":4319,"end":4321},{"line":4100,"column":2277,"offset":4320},11712,{"line":4100,"column":4322,"offset":4323},39,11748,{"type":26,"value":4325,"position":4326}," for what the chart host cannot supply",{"start":4327,"end":4328},{"line":4100,"column":4322,"offset":4323},{"line":4100,"column":3700,"offset":4329},11786,{"start":4331,"end":4333},{"line":4100,"column":20,"offset":4332},11710,{"line":4100,"column":3700,"offset":4329},{"type":26,"value":27},{"start":4336,"end":4337},{"line":4066,"column":20,"offset":4104},{"line":4100,"column":3700,"offset":4329},{"quirksMode":4339},false,{"start":4341,"end":4342},{"line":20,"column":20,"offset":21},{"line":3851,"column":20,"offset":4343},11787,1790157170270]