[{"data":1,"prerenderedAt":1036},["ShallowReactive",2],{"docs:\u002Fen\u002Fguide\u002Fgetting-started":3},{"page":4,"untranslated":1035,"translated":255},{"id":5,"title":6,"body":7,"description":1026,"extension":1027,"meta":1028,"navigation":255,"path":1029,"publishedAt":1030,"seo":1031,"stem":1032,"updatedAt":1033,"__hash__":1034},"docs_en\u002Fen\u002Fguide\u002Fgetting-started.md","Getting Started",{"type":8,"value":9,"toc":1016},"minimark",[10,14,19,32,36,88,92,108,136,156,184,197,200,219,382,388,405,411,449,453,471,857,885,888,912,933,936,950,985,988,1012],[11,12,6],"h1",{"id":13},"getting-started",[15,16,18],"h2",{"id":17},"前提条件","Prerequisites",[20,21,22,23,26,27,31],"p",{},"You need a Cloudflare account with the Workers Paid plan enabled.",[24,25],"br",{},"\nSet ",[28,29,30],"code",{},"compatibility_date"," to 2025-11-17 or later.",[15,33,35],{"id":34},"インストール","Installation",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-bash shiki shiki-themes github-light github-dark","pnpm create cloudflare@latest my-jobs --type=hello-world\ncd my-jobs\npnpm add tsumugi\n","bash","",[28,44,45,68,77],{"__ignoreMap":42},[46,47,50,54,58,61,64],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"sScJk","pnpm",[46,55,57],{"class":56},"sZZnC"," create",[46,59,60],{"class":56}," cloudflare@latest",[46,62,63],{"class":56}," my-jobs",[46,65,67],{"class":66},"sj4cs"," --type=hello-world\n",[46,69,71,74],{"class":48,"line":70},2,[46,72,73],{"class":66},"cd",[46,75,76],{"class":56}," my-jobs\n",[46,78,80,82,85],{"class":48,"line":79},3,[46,81,53],{"class":52},[46,83,84],{"class":56}," add",[46,86,87],{"class":56}," tsumugi\n",[15,89,91],{"id":90},"セットアップ","Setup",[37,93,95],{"className":39,"code":94,"language":41,"meta":42,"style":42},"npx tsumugi init\n",[28,96,97],{"__ignoreMap":42},[46,98,99,102,105],{"class":48,"line":49},[46,100,101],{"class":52},"npx",[46,103,104],{"class":56}," tsumugi",[46,106,107],{"class":56}," init\n",[20,109,110,111,114,115,118,119,118,122,125,126,129,130,132,133,135],{},"When you run ",[28,112,113],{},"init"," in a new project, it creates the required Cloudflare resources and generates ",[28,116,117],{},"wrangler.jsonc",", ",[28,120,121],{},"src\u002Findex.ts",[28,123,124],{},"src\u002Fperformers\u002F",", and ",[28,127,128],{},".dev.vars",".",[24,131],{},"\nFinally, it applies the database migrations and exits.",[24,134],{},"\nIf a step fails partway through, it prints a warning along with the command to run again.",[20,137,138,139,141,142,144,145,147,148,150,151,129],{},"If a wrangler configuration file already exists, ",[28,140,113],{}," does not rewrite it and instead prints the content you need to add.",[24,143],{},"\nIn this case, migrations are not applied either.",[24,146],{},"\nAfter you edit the configuration file, apply the migrations by following the printed steps.",[24,149],{},"\nThe options and generated files are described in ",[152,153,155],"a",{"href":154},"\u002Fen\u002Freference\u002Fcli","CLI",[20,157,158,159,162,163,165,166,168,169,171,172,118,176,125,180,129],{},"The ",[28,160,161],{},"TSUMUGI_METRICS"," binding is optional.",[24,164],{},"\nIf you do not set it, metrics are not recorded, but nothing else changes.",[24,167],{},"\nIf you use Flow and scheduled execution, set additional bindings.",[24,170],{},"\nThe configuration is described in ",[152,173,175],{"href":174},"\u002Fen\u002Freference\u002Fconfig#wrangler%E3%81%AEbinding","wranglerのbinding",[152,177,179],{"href":178},"\u002Fen\u002Fguide\u002Fflow#%E8%A8%AD%E5%AE%9A","Flowの設定",[152,181,183],{"href":182},"\u002Fen\u002Fguide\u002Fschedule#%E8%A8%AD%E5%AE%9A","定期実行の設定",[185,186,188],"callout",{"type":187},"warning",[20,189,190,191,193,194,196],{},"After you update Tsumugi, apply the migrations again.",[24,192],{},"\nNew versions may add migrations.",[24,195],{},"\nIf unapplied migrations remain, the REST API responds with 503 and includes the names of the unapplied files in the response body.",[15,198,199],{"id":199},"performer",[20,201,202,203,205,208,209,211,212,214,215,218],{},"You define job processing as a performer.",[24,204],{},[28,206,207],{},"src\u002Fperformers\u002Fhello.ts",", generated by ",[28,210,113],{},", is the smallest example.",[24,213],{},"\nRewrite the ",[28,216,217],{},"perform"," logic and the payload type to suit your use case.",[37,220,224],{"className":221,"code":222,"language":223,"meta":42,"style":42},"language-ts shiki shiki-themes github-light github-dark","\u002F\u002F src\u002Fperformers\u002Fhello.ts\nimport { Performer } from 'tsumugi\u002Fperformer';\n\nexport class Hello extends Performer\u003C{ name: string }, void, {}, Env> {\n  async perform(payload: { name: string }): Promise\u003Cvoid> {\n    console.log(`hello, ${payload.name}`);\n  }\n}\n","ts",[28,225,226,232,251,257,303,344,370,376],{"__ignoreMap":42},[46,227,228],{"class":48,"line":49},[46,229,231],{"class":230},"sJ8bj","\u002F\u002F src\u002Fperformers\u002Fhello.ts\n",[46,233,234,238,242,245,248],{"class":48,"line":70},[46,235,237],{"class":236},"szBVR","import",[46,239,241],{"class":240},"sVt8B"," { Performer } ",[46,243,244],{"class":236},"from",[46,246,247],{"class":56}," 'tsumugi\u002Fperformer'",[46,249,250],{"class":240},";\n",[46,252,253],{"class":48,"line":79},[46,254,256],{"emptyLinePlaceholder":255},true,"\n",[46,258,260,263,266,269,272,275,278,282,285,288,291,294,297,300],{"class":48,"line":259},4,[46,261,262],{"class":236},"export",[46,264,265],{"class":236}," class",[46,267,268],{"class":52}," Hello",[46,270,271],{"class":236}," extends",[46,273,274],{"class":52}," Performer",[46,276,277],{"class":240},"\u003C{ ",[46,279,281],{"class":280},"s4XuR","name",[46,283,284],{"class":236},":",[46,286,287],{"class":66}," string",[46,289,290],{"class":240}," }, ",[46,292,293],{"class":66},"void",[46,295,296],{"class":240},", {}, ",[46,298,299],{"class":52},"Env",[46,301,302],{"class":240},"> {\n",[46,304,306,309,312,315,318,320,323,325,327,329,332,334,337,340,342],{"class":48,"line":305},5,[46,307,308],{"class":236},"  async",[46,310,311],{"class":52}," perform",[46,313,314],{"class":240},"(",[46,316,317],{"class":280},"payload",[46,319,284],{"class":236},[46,321,322],{"class":240}," { ",[46,324,281],{"class":280},[46,326,284],{"class":236},[46,328,287],{"class":66},[46,330,331],{"class":240}," })",[46,333,284],{"class":236},[46,335,336],{"class":52}," Promise",[46,338,339],{"class":240},"\u003C",[46,341,293],{"class":66},[46,343,302],{"class":240},[46,345,347,350,353,355,358,360,362,364,367],{"class":48,"line":346},6,[46,348,349],{"class":240},"    console.",[46,351,352],{"class":52},"log",[46,354,314],{"class":240},[46,356,357],{"class":56},"`hello, ${",[46,359,317],{"class":240},[46,361,129],{"class":56},[46,363,281],{"class":240},[46,365,366],{"class":56},"}`",[46,368,369],{"class":240},");\n",[46,371,373],{"class":48,"line":372},7,[46,374,375],{"class":240},"  }\n",[46,377,379],{"class":48,"line":378},8,[46,380,381],{"class":240},"}\n",[20,383,384,385,129],{},"To add a performer, run ",[28,386,387],{},"add-performer",[37,389,391],{"className":39,"code":390,"language":41,"meta":42,"style":42},"npx tsumugi add-performer send-mail\n",[28,392,393],{"__ignoreMap":42},[46,394,395,397,399,402],{"class":48,"line":49},[46,396,101],{"class":52},[46,398,104],{"class":56},[46,400,401],{"class":56}," add-performer",[46,403,404],{"class":56}," send-mail\n",[20,406,407,408,129],{},"This generates the performer file and appends one export line to ",[28,409,410],{},"src\u002Fperformers\u002Findex.ts",[37,412,414],{"className":221,"code":413,"language":223,"meta":42,"style":42},"\u002F\u002F src\u002Fperformers\u002Findex.ts\nexport { Hello } from '.\u002Fhello.js';\nexport { SendMail } from '.\u002Fsend-mail.js';\n",[28,415,416,421,435],{"__ignoreMap":42},[46,417,418],{"class":48,"line":49},[46,419,420],{"class":230},"\u002F\u002F src\u002Fperformers\u002Findex.ts\n",[46,422,423,425,428,430,433],{"class":48,"line":70},[46,424,262],{"class":236},[46,426,427],{"class":240}," { Hello } ",[46,429,244],{"class":236},[46,431,432],{"class":56}," '.\u002Fhello.js'",[46,434,250],{"class":240},[46,436,437,439,442,444,447],{"class":48,"line":79},[46,438,262],{"class":236},[46,440,441],{"class":240}," { SendMail } ",[46,443,244],{"class":236},[46,445,446],{"class":56}," '.\u002Fsend-mail.js'",[46,448,250],{"class":240},[15,450,452],{"id":451},"worker","Worker",[20,454,455,457,458,460,461,463,464,466,467,129],{},[28,456,113],{}," generates ",[28,459,121],{}," with the following content.",[24,462],{},"\nExport performers from the Worker's entry point, and the exported name is used as the binding name.",[24,465],{},"\nThe rules for binding names are described in ",[152,468,470],{"href":469},"\u002Fen\u002Fguide\u002Fperformer#binding%E5%90%8D","binding名",[37,472,474],{"className":221,"code":473,"language":223,"meta":42,"style":42},"import { bearerAuth, defineTsumugi } from 'tsumugi';\nimport { ui } from 'tsumugi\u002Fui';\nimport * as performers from '.\u002Fperformers\u002Findex.js';\n\nexport * from '.\u002Fperformers\u002Findex.js';\n\nconst tsumugi = defineTsumugi({\n  performers,\n  \u002F\u002F Read from a secret; a hard-coded value would remain in the repository and the bundle\n  auth: bearerAuth((env: Env) => env.TSUMUGI_TOKEN, { cookie: 'tsumugi_token' }),\n  ui: ui({ tokenCookie: 'tsumugi_token' }),\n});\n\n\u002F\u002F The Durable Object class must be re-exported\nexport { TsumugiJobShard } from 'tsumugi';\n\nexport default {\n  ...tsumugi,\n  async fetch(request, env, ctx) {\n    const { pathname } = new URL(request.url);\n    if (pathname === '\u002Fenqueue') {\n      const id = await tsumugi.enqueue(env, { binding: 'Hello', payload: { name: 'world' } });\n      return Response.json({ id });\n    }\n    \u002F\u002F Pass everything else to the dashboard and the REST API\n    return tsumugi.fetch!(request, env, ctx);\n  },\n} satisfies ExportedHandler\u003CEnv>;\n",[28,475,476,490,504,524,528,541,545,561,566,572,613,629,635,640,646,660,665,676,685,710,736,753,788,803,809,815,832,838],{"__ignoreMap":42},[46,477,478,480,483,485,488],{"class":48,"line":49},[46,479,237],{"class":236},[46,481,482],{"class":240}," { bearerAuth, defineTsumugi } ",[46,484,244],{"class":236},[46,486,487],{"class":56}," 'tsumugi'",[46,489,250],{"class":240},[46,491,492,494,497,499,502],{"class":48,"line":70},[46,493,237],{"class":236},[46,495,496],{"class":240}," { ui } ",[46,498,244],{"class":236},[46,500,501],{"class":56}," 'tsumugi\u002Fui'",[46,503,250],{"class":240},[46,505,506,508,511,514,517,519,522],{"class":48,"line":79},[46,507,237],{"class":236},[46,509,510],{"class":66}," *",[46,512,513],{"class":236}," as",[46,515,516],{"class":240}," performers ",[46,518,244],{"class":236},[46,520,521],{"class":56}," '.\u002Fperformers\u002Findex.js'",[46,523,250],{"class":240},[46,525,526],{"class":48,"line":259},[46,527,256],{"emptyLinePlaceholder":255},[46,529,530,532,534,537,539],{"class":48,"line":305},[46,531,262],{"class":236},[46,533,510],{"class":66},[46,535,536],{"class":236}," from",[46,538,521],{"class":56},[46,540,250],{"class":240},[46,542,543],{"class":48,"line":346},[46,544,256],{"emptyLinePlaceholder":255},[46,546,547,550,552,555,558],{"class":48,"line":372},[46,548,549],{"class":236},"const",[46,551,104],{"class":66},[46,553,554],{"class":236}," =",[46,556,557],{"class":52}," defineTsumugi",[46,559,560],{"class":240},"({\n",[46,562,563],{"class":48,"line":378},[46,564,565],{"class":240},"  performers,\n",[46,567,569],{"class":48,"line":568},9,[46,570,571],{"class":230},"  \u002F\u002F Read from a secret; a hard-coded value would remain in the repository and the bundle\n",[46,573,575,578,581,584,587,589,592,595,598,601,604,607,610],{"class":48,"line":574},10,[46,576,577],{"class":240},"  auth: ",[46,579,580],{"class":52},"bearerAuth",[46,582,583],{"class":240},"((",[46,585,586],{"class":280},"env",[46,588,284],{"class":236},[46,590,591],{"class":52}," Env",[46,593,594],{"class":240},") ",[46,596,597],{"class":236},"=>",[46,599,600],{"class":240}," env.",[46,602,603],{"class":66},"TSUMUGI_TOKEN",[46,605,606],{"class":240},", { cookie: ",[46,608,609],{"class":56},"'tsumugi_token'",[46,611,612],{"class":240}," }),\n",[46,614,616,619,622,625,627],{"class":48,"line":615},11,[46,617,618],{"class":240},"  ui: ",[46,620,621],{"class":52},"ui",[46,623,624],{"class":240},"({ tokenCookie: ",[46,626,609],{"class":56},[46,628,612],{"class":240},[46,630,632],{"class":48,"line":631},12,[46,633,634],{"class":240},"});\n",[46,636,638],{"class":48,"line":637},13,[46,639,256],{"emptyLinePlaceholder":255},[46,641,643],{"class":48,"line":642},14,[46,644,645],{"class":230},"\u002F\u002F The Durable Object class must be re-exported\n",[46,647,649,651,654,656,658],{"class":48,"line":648},15,[46,650,262],{"class":236},[46,652,653],{"class":240}," { TsumugiJobShard } ",[46,655,244],{"class":236},[46,657,487],{"class":56},[46,659,250],{"class":240},[46,661,663],{"class":48,"line":662},16,[46,664,256],{"emptyLinePlaceholder":255},[46,666,668,670,673],{"class":48,"line":667},17,[46,669,262],{"class":236},[46,671,672],{"class":236}," default",[46,674,675],{"class":240}," {\n",[46,677,679,682],{"class":48,"line":678},18,[46,680,681],{"class":236},"  ...",[46,683,684],{"class":240},"tsumugi,\n",[46,686,688,690,693,695,698,700,702,704,707],{"class":48,"line":687},19,[46,689,308],{"class":236},[46,691,692],{"class":52}," fetch",[46,694,314],{"class":240},[46,696,697],{"class":280},"request",[46,699,118],{"class":240},[46,701,586],{"class":280},[46,703,118],{"class":240},[46,705,706],{"class":280},"ctx",[46,708,709],{"class":240},") {\n",[46,711,713,716,718,721,724,727,730,733],{"class":48,"line":712},20,[46,714,715],{"class":236},"    const",[46,717,322],{"class":240},[46,719,720],{"class":66},"pathname",[46,722,723],{"class":240}," } ",[46,725,726],{"class":236},"=",[46,728,729],{"class":236}," new",[46,731,732],{"class":52}," URL",[46,734,735],{"class":240},"(request.url);\n",[46,737,739,742,745,748,751],{"class":48,"line":738},21,[46,740,741],{"class":236},"    if",[46,743,744],{"class":240}," (pathname ",[46,746,747],{"class":236},"===",[46,749,750],{"class":56}," '\u002Fenqueue'",[46,752,709],{"class":240},[46,754,756,759,762,764,767,770,773,776,779,782,785],{"class":48,"line":755},22,[46,757,758],{"class":236},"      const",[46,760,761],{"class":66}," id",[46,763,554],{"class":236},[46,765,766],{"class":236}," await",[46,768,769],{"class":240}," tsumugi.",[46,771,772],{"class":52},"enqueue",[46,774,775],{"class":240},"(env, { binding: ",[46,777,778],{"class":56},"'Hello'",[46,780,781],{"class":240},", payload: { name: ",[46,783,784],{"class":56},"'world'",[46,786,787],{"class":240}," } });\n",[46,789,791,794,797,800],{"class":48,"line":790},23,[46,792,793],{"class":236},"      return",[46,795,796],{"class":240}," Response.",[46,798,799],{"class":52},"json",[46,801,802],{"class":240},"({ id });\n",[46,804,806],{"class":48,"line":805},24,[46,807,808],{"class":240},"    }\n",[46,810,812],{"class":48,"line":811},25,[46,813,814],{"class":230},"    \u002F\u002F Pass everything else to the dashboard and the REST API\n",[46,816,818,821,823,826,829],{"class":48,"line":817},26,[46,819,820],{"class":236},"    return",[46,822,769],{"class":240},[46,824,825],{"class":52},"fetch",[46,827,828],{"class":236},"!",[46,830,831],{"class":240},"(request, env, ctx);\n",[46,833,835],{"class":48,"line":834},27,[46,836,837],{"class":240},"  },\n",[46,839,841,844,847,850,852,854],{"class":48,"line":840},28,[46,842,843],{"class":240},"} ",[46,845,846],{"class":236},"satisfies",[46,848,849],{"class":52}," ExportedHandler",[46,851,339],{"class":240},[46,853,299],{"class":52},[46,855,856],{"class":240},">;\n",[20,858,859,860,863,864,118,866,125,869,872,873,875,876,880,881,129],{},"The return value of ",[28,861,862],{},"defineTsumugi"," includes the ",[28,865,825],{},[28,867,868],{},"queue",[28,870,871],{},"scheduled"," handlers, as well as functions for enqueuing jobs and starting a Flow.",[24,874],{},"\nThe full list of return values is in ",[152,877,879],{"href":878},"\u002Fen\u002Freference\u002Fconfig#definetsumugi","設定",", and the differences between enqueue methods are in ",[152,882,884],{"href":883},"\u002Fen\u002Fguide\u002Fenqueue#%E6%8A%95%E5%85%A5%E6%96%B9%E6%B3%95","ジョブの投入",[15,886,887],{"id":887},"トークンの設定",[20,889,890,891,118,894,897,898,900,901,903,904,906,907,129,909,911],{},"If you do not specify ",[28,892,893],{},"auth",[28,895,896],{},"tsumugi.fetch"," responds to every request with 404.",[24,899],{},"\nThe example above uses ",[28,902,580],{},". In the local environment, it reads ",[28,905,603],{}," defined in ",[28,908,128],{},[24,910],{},"\nIn production, register the secret by running the following command.",[37,913,915],{"className":39,"code":914,"language":41,"meta":42,"style":42},"pnpm wrangler secret put TSUMUGI_TOKEN\n",[28,916,917],{"__ignoreMap":42},[46,918,919,921,924,927,930],{"class":48,"line":49},[46,920,53],{"class":52},[46,922,923],{"class":56}," wrangler",[46,925,926],{"class":56}," secret",[46,928,929],{"class":56}," put",[46,931,932],{"class":56}," TSUMUGI_TOKEN\n",[15,934,935],{"id":935},"動作確認",[37,937,939],{"className":39,"code":938,"language":41,"meta":42,"style":42},"pnpm wrangler dev\n",[28,940,941],{"__ignoreMap":42},[46,942,943,945,947],{"class":48,"line":49},[46,944,53],{"class":52},[46,946,923],{"class":56},[46,948,949],{"class":56}," dev\n",[20,951,952,953,956,957,960,961,963,964,967,968,970,971,973,974,129,976,978,979,981,982,129],{},"When you access ",[28,954,955],{},"\u002Fenqueue",", a Hello job is enqueued, and you receive a response of the form ",[28,958,959],{},"{ \"id\": \"...\" }"," containing the job ID.",[24,962],{},"\nThe enqueued job appears in the list on the dashboard (",[28,965,966],{},"\u002F",").",[24,969],{},"\nWhen prompted for a token, enter the value of ",[28,972,603],{}," in ",[28,975,128],{},[24,977],{},"\nImmediately after ",[28,980,113],{}," generates it, the value is ",[28,983,984],{},"dev-token",[15,986,987],{"id":987},"次に参照するページ",[989,990,991,999,1005],"ul",{},[992,993,994,998],"li",{},[152,995,997],{"href":996},"\u002Fen\u002Fguide\u002Fperformer","Performer",": Define how jobs are processed.",[992,1000,1001,1004],{},[152,1002,884],{"href":1003},"\u002Fen\u002Fguide\u002Fenqueue",": Scheduled execution, priority, and deduplication",[992,1006,1007,1011],{},[152,1008,1010],{"href":1009},"\u002Fen\u002Fguide\u002Fexecution","実行の制御",": Describes job state management, retry settings, execution rate limits, and execution guarantees.",[1013,1014,1015],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":42,"searchDepth":79,"depth":79,"links":1017},[1018,1019,1020,1021,1022,1023,1024,1025],{"id":17,"depth":70,"text":18},{"id":34,"depth":70,"text":35},{"id":90,"depth":70,"text":91},{"id":199,"depth":70,"text":199},{"id":451,"depth":70,"text":452},{"id":887,"depth":70,"text":887},{"id":935,"depth":70,"text":935},{"id":987,"depth":70,"text":987},"From installing Tsumugi to verifying a Worker that defines a performer","md",{},"\u002Fen\u002Fguide\u002Fgetting-started","2026-07-22",{"title":6,"description":1026},"en\u002Fguide\u002Fgetting-started","2026-10-25","74OhJDS6CTfLbHDY7lVZFynsiR300VshZUi34gqgeS4",false,1794027568575]