RAGflow/agent/templates/websearch_assistant.json

997 lines
65 KiB
JSON
Raw Normal View History

2025-03-24 11:19:28 +08:00
{
"id": 0,
"title": "WebSearch Assistant",
"description": "A chat assistant template that integrates information extracted from a knowledge base and web searches to respond to queries. Let's begin by setting up your knowledge base in 'Retrieval'!",
"canvas_type": "chatbot",
"dsl": {
"answer": [],
"components": {
"Answer:PoorMapsCover": {
"downstream": [
"RewriteQuestion:OrangeBottlesSwim"
],
"obj": {
"component_name": "Answer",
"inputs": [],
"output": null,
"params": {
"debug_inputs": [],
"inputs": [],
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"post_answers": [],
"query": []
}
},
"upstream": [
"begin",
"Generate:ItchyRiversDrum"
]
},
"Baidu:OliveAreasCall": {
"downstream": [
"Generate:ItchyRiversDrum"
],
"obj": {
"component_name": "Baidu",
"inputs": [],
"output": null,
"params": {
"debug_inputs": [],
"inputs": [],
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"query": [
{
"component_id": "KeywordExtract:BeigeTipsStand",
"type": "reference"
}
],
"top_n": 2
}
},
"upstream": [
"KeywordExtract:BeigeTipsStand"
]
},
"DuckDuckGo:SoftButtonsRefuse": {
"downstream": [
"Generate:ItchyRiversDrum"
],
"obj": {
"component_name": "DuckDuckGo",
"inputs": [],
"output": null,
"params": {
"channel": "text",
"debug_inputs": [],
"inputs": [],
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"query": [
{
"component_id": "KeywordExtract:BeigeTipsStand",
"type": "reference"
}
],
"top_n": 2
}
},
"upstream": [
"KeywordExtract:BeigeTipsStand"
]
},
"Generate:ItchyRiversDrum": {
"downstream": [
"Answer:PoorMapsCover"
],
"obj": {
"component_name": "Generate",
"inputs": [],
"output": null,
"params": {
"cite": true,
"debug_inputs": [],
"frequency_penalty": 0.7,
"inputs": [],
"llm_id": "deepseek-chat@DeepSeek",
"max_tokens": 0,
"message_history_window_size": 12,
"output": null,
"output_var_name": "output",
"parameters": [],
"presence_penalty": 0.4,
"prompt": "Role: You are an intelligent assistant. \nTask: Chat with user. Answer the question based on the provided content from: Knowledge Base, Wikipedia, Duckduckgo, Baidu.\nRequirements:\n - Answer should be in markdown format.\n - Answer should include all sources(Knowledge Base, Wikipedia, Duckduckgo, Baidu) as long as they are relevant, and label the sources of the cited content separately.\n - Attach URL links to the content which is quoted from Wikipedia, DuckDuckGo or Baidu.\n - Do not make thing up when there's no relevant information to user's question. \n\n## Knowledge base content\n{Retrieval:SilentCamelsStick}\n\n\n## Wikipedia content\n{Wikipedia:WittyRiceLearn}\n\n\n## Duckduckgo content\n{DuckDuckGo:SoftButtonsRefuse}\n\n\n## Baidu content\n{Baidu:OliveAreasCall}\n\n",
"query": [],
"temperature": 0.1,
"top_p": 0.3
}
},
"upstream": [
"Retrieval:SilentCamelsStick",
"Wikipedia:WittyRiceLearn",
"Baidu:OliveAreasCall",
"DuckDuckGo:SoftButtonsRefuse"
]
},
"KeywordExtract:BeigeTipsStand": {
"downstream": [
"Baidu:OliveAreasCall",
"DuckDuckGo:SoftButtonsRefuse",
"Wikipedia:WittyRiceLearn"
],
"obj": {
"component_name": "KeywordExtract",
"inputs": [],
"output": null,
"params": {
"cite": true,
"debug_inputs": [],
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"inputs": [],
"llm_id": "deepseek-chat@DeepSeek",
"maxTokensEnabled": true,
"max_tokens": 256,
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"parameter": "Precise",
"parameters": [],
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"prompt": "",
"query": [],
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_n": 2,
"top_p": 0.3
}
},
"upstream": [
"RewriteQuestion:OrangeBottlesSwim"
]
},
"Retrieval:SilentCamelsStick": {
"downstream": [
"Generate:ItchyRiversDrum"
],
"obj": {
"component_name": "Retrieval",
"inputs": [],
"output": null,
"params": {
"debug_inputs": [],
"empty_response": "The answer you want was not found in the knowledge base!",
"inputs": [],
"kb_ids": [],
"keywords_similarity_weight": 0.3,
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"query": [],
"rerank_id": "",
"similarity_threshold": 0.2,
"top_k": 1024,
"top_n": 8
}
},
"upstream": [
"RewriteQuestion:OrangeBottlesSwim"
]
},
"RewriteQuestion:OrangeBottlesSwim": {
"downstream": [
"KeywordExtract:BeigeTipsStand",
"Retrieval:SilentCamelsStick"
],
"obj": {
"component_name": "RewriteQuestion",
"inputs": [],
"output": null,
"params": {
"cite": true,
"debug_inputs": [],
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"inputs": [],
"llm_id": "deepseek-chat@DeepSeek",
"loop": 1,
"maxTokensEnabled": true,
"max_tokens": 256,
"message_history_window_size": 6,
"output": null,
"output_var_name": "output",
"parameter": "Precise",
"parameters": [],
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"prompt": "",
"query": [],
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_p": 0.3
}
},
"upstream": [
"Answer:PoorMapsCover"
]
},
"Wikipedia:WittyRiceLearn": {
"downstream": [
"Generate:ItchyRiversDrum"
],
"obj": {
"component_name": "Wikipedia",
"inputs": [],
"output": null,
"params": {
"debug_inputs": [],
"inputs": [],
"language": "en",
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"query": [
{
"component_id": "KeywordExtract:BeigeTipsStand",
"type": "reference"
}
],
"top_n": 2
}
},
"upstream": [
"KeywordExtract:BeigeTipsStand"
]
},
"begin": {
"downstream": [
"Answer:PoorMapsCover"
],
"obj": {
"component_name": "Begin",
"inputs": [],
"output": null,
"params": {
"debug_inputs": [],
"inputs": [],
"message_history_window_size": 22,
"output": null,
"output_var_name": "output",
"prologue": "Hi! I'm your smart assistant. What can I do for you?",
"query": []
}
},
"upstream": []
}
},
"embed_id": "",
"graph": {
"edges": [
{
"id": "reactflow__edge-begin-Answer:PoorMapsCoverc",
"markerEnd": "logo",
"source": "begin",
"sourceHandle": null,
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Answer:PoorMapsCover",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Answer:PoorMapsCoverb-RewriteQuestion:OrangeBottlesSwimc",
"markerEnd": "logo",
"source": "Answer:PoorMapsCover",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "RewriteQuestion:OrangeBottlesSwim",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-RewriteQuestion:OrangeBottlesSwimb-KeywordExtract:BeigeTipsStandc",
"markerEnd": "logo",
"source": "RewriteQuestion:OrangeBottlesSwim",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "KeywordExtract:BeigeTipsStand",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-KeywordExtract:BeigeTipsStandb-Baidu:OliveAreasCallc",
"markerEnd": "logo",
"source": "KeywordExtract:BeigeTipsStand",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Baidu:OliveAreasCall",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-KeywordExtract:BeigeTipsStandb-DuckDuckGo:SoftButtonsRefusec",
"markerEnd": "logo",
"source": "KeywordExtract:BeigeTipsStand",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "DuckDuckGo:SoftButtonsRefuse",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-KeywordExtract:BeigeTipsStandb-Wikipedia:WittyRiceLearnc",
"markerEnd": "logo",
"source": "KeywordExtract:BeigeTipsStand",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Wikipedia:WittyRiceLearn",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-RewriteQuestion:OrangeBottlesSwimb-Retrieval:SilentCamelsStickc",
"markerEnd": "logo",
"source": "RewriteQuestion:OrangeBottlesSwim",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Retrieval:SilentCamelsStick",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "xy-edge__Generate:ItchyRiversDrumc-Answer:PoorMapsCoverc",
"markerEnd": "logo",
"source": "Generate:ItchyRiversDrum",
"sourceHandle": "c",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Answer:PoorMapsCover",
"targetHandle": "c",
"type": "buttonEdge",
"zIndex": 1001
},
{
"id": "xy-edge__Retrieval:SilentCamelsStickb-Generate:ItchyRiversDrumb",
"markerEnd": "logo",
"source": "Retrieval:SilentCamelsStick",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:ItchyRiversDrum",
"targetHandle": "b",
"type": "buttonEdge",
"zIndex": 1001
},
{
"id": "xy-edge__Wikipedia:WittyRiceLearnb-Generate:ItchyRiversDrumb",
"markerEnd": "logo",
"source": "Wikipedia:WittyRiceLearn",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:ItchyRiversDrum",
"targetHandle": "b",
"type": "buttonEdge",
"zIndex": 1001
},
{
"id": "xy-edge__Baidu:OliveAreasCallb-Generate:ItchyRiversDrumb",
"markerEnd": "logo",
"source": "Baidu:OliveAreasCall",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:ItchyRiversDrum",
"targetHandle": "b",
"type": "buttonEdge",
"zIndex": 1001
},
{
"id": "xy-edge__DuckDuckGo:SoftButtonsRefuseb-Generate:ItchyRiversDrumb",
"markerEnd": "logo",
"source": "DuckDuckGo:SoftButtonsRefuse",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:ItchyRiversDrum",
"targetHandle": "b",
"type": "buttonEdge",
"zIndex": 1001
}
],
"nodes": [
{
"data": {
"label": "Begin",
"name": "opening"
},
"dragging": false,
"height": 44,
"id": "begin",
"measured": {
"height": 44,
"width": 100
},
"position": {
"x": -1469.1118402678153,
"y": -138.55389910599428
},
"positionAbsolute": {
"x": -1379.627471412851,
"y": -135.63593055637585
},
"selected": false,
"sourcePosition": "left",
"targetPosition": "right",
"type": "beginNode"
},
{
"data": {
"form": {},
"label": "Answer",
"name": "interface"
},
"dragging": false,
"height": 44,
"id": "Answer:PoorMapsCover",
"measured": {
"height": 44,
"width": 200
},
"position": {
"x": -1172.8677760724227,
"y": -134.7856818291531
},
"positionAbsolute": {
"x": -1172.8677760724227,
"y": -134.7856818291531
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 200
},
{
"data": {
"form": {
"language": "en",
"query": [
{
"component_id": "KeywordExtract:BeigeTipsStand",
"type": "reference"
}
],
"top_n": 2
},
"label": "Wikipedia",
"name": "Wikipedia"
},
"dragging": false,
"height": 44,
"id": "Wikipedia:WittyRiceLearn",
"measured": {
"height": 44,
"width": 200
},
"position": {
"x": -406.9217458441634,
"y": -54.01023495053805
},
"positionAbsolute": {
"x": -406.9217458441634,
"y": -54.01023495053805
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "ragNode",
"width": 200
},
{
"data": {
"form": {
"query": [
{
"component_id": "KeywordExtract:BeigeTipsStand",
"type": "reference"
}
],
"top_n": 2
},
"label": "Baidu",
"name": "Baidu"
},
"dragging": false,
"height": 44,
"id": "Baidu:OliveAreasCall",
"measured": {
"height": 44,
"width": 200
},
"position": {
"x": -334.8102520664264,
"y": -142.4206828864257
},
"positionAbsolute": {
"x": -334.8102520664264,
"y": -142.4206828864257
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "ragNode",
"width": 200
},
{
"data": {
"form": {
"channel": "text",
"query": [
{
"component_id": "KeywordExtract:BeigeTipsStand",
"type": "reference"
}
],
"top_n": 2
},
"label": "DuckDuckGo",
"name": "DuckDuckGo"
},
"dragging": false,
"height": 44,
"id": "DuckDuckGo:SoftButtonsRefuse",
"measured": {
"height": 44,
"width": 200
},
"position": {
"x": -241.42135935727495,
"y": -227.69429585279033
},
"positionAbsolute": {
"x": -241.42135935727495,
"y": -227.69429585279033
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "ragNode",
"width": 200
},
{
"data": {
"form": {
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat@DeepSeek",
"loop": 1,
"maxTokensEnabled": true,
"max_tokens": 256,
"message_history_window_size": 6,
"parameter": "Precise",
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_p": 0.3
},
"label": "RewriteQuestion",
"name": "Refine Question"
},
"dragging": false,
"height": 86,
"id": "RewriteQuestion:OrangeBottlesSwim",
"measured": {
"height": 86,
"width": 200
},
"position": {
"x": -926.3250837910092,
"y": -156.41315582042822
},
"positionAbsolute": {
"x": -926.3250837910092,
"y": -156.41315582042822
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "rewriteNode",
"width": 200
},
{
"data": {
"form": {
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat@DeepSeek",
"maxTokensEnabled": true,
"max_tokens": 256,
"parameter": "Precise",
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_n": 2,
"top_p": 0.3
},
"label": "KeywordExtract",
"name": "Get keywords"
},
"dragging": false,
"height": 86,
"id": "KeywordExtract:BeigeTipsStand",
"measured": {
"height": 86,
"width": 200
},
"position": {
"x": -643.95039088561,
"y": -160.37167955274685
},
"positionAbsolute": {
"x": -643.95039088561,
"y": -160.37167955274685
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "keywordNode",
"width": 200
},
{
"data": {
"form": {
"empty_response": "The answer you want was not found in the knowledge base!",
"kb_ids": [],
"keywords_similarity_weight": 0.3,
"similarity_threshold": 0.2,
"top_n": 8
},
"label": "Retrieval",
"name": "Search KB"
},
"dragging": false,
"height": 46,
"id": "Retrieval:SilentCamelsStick",
"measured": {
"height": 46,
"width": 200
},
"position": {
"x": -641.3113750640641,
"y": -4.669746081545384
},
"positionAbsolute": {
"x": -641.3113750640641,
"y": -4.669746081545384
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "retrievalNode",
"width": 200
},
{
"data": {
"form": {
"text": "The large model answers the user's query based on the content retrieved from different search engines and knowledge bases, returning an answer to the user's question."
},
"label": "Note",
"name": "N: LLM"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 144,
"id": "Note:CuteSchoolsWear",
"measured": {
"height": 144,
"width": 443
},
"position": {
"x": -628.5256394373041,
"y": 412.60472782016245
},
"positionAbsolute": {
"x": -628.5256394373041,
"y": 412.60472782016245
},
"resizing": false,
"selected": false,
"sourcePosition": "right",
"style": {
"height": 144,
"width": 443
},
"targetPosition": "left",
"type": "noteNode",
"width": 443
},
{
"data": {
"form": {
"text": "Complete questions by conversation history.\nUser: What's RAGFlow?\nAssistant: RAGFlow is xxx.\nUser: How to deloy it?\n\nRefine it: How to deploy RAGFlow?"
},
"label": "Note",
"name": "N: Refine question"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 209,
"id": "Note:CuteRavensBehave",
"measured": {
"height": 209,
"width": 266
},
"position": {
"x": -921.2271023677847,
"y": -381.3182401779728
},
"positionAbsolute": {
"x": -921.2271023677847,
"y": -381.3182401779728
},
"resizing": false,
"selected": false,
"sourcePosition": "right",
"style": {
"height": 209,
"width": 266
},
"targetPosition": "left",
"type": "noteNode",
"width": 266
},
{
"data": {
"form": {
"text": "Based on the user's question, searches the knowledge base and returns the retrieved content."
},
"label": "Note",
"name": "N: Search KB"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 128,
"id": "Note:RudeRulesLeave",
"measured": {
"height": 128,
"width": 269
},
"position": {
"x": -917.896611693436,
"y": -3.570404025438563
},
"positionAbsolute": {
"x": -917.896611693436,
"y": -3.570404025438563
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "noteNode",
"width": 269
},
{
"data": {
"form": {
"text": "Based on the keywords, searches on Wikipedia and returns the found content."
},
"label": "Note",
"name": "N: Wikipedia"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 128,
"id": "Note:DryActorsTry",
"measured": {
"height": 128,
"width": 281
},
"position": {
"x": 49.68127281474659,
"y": -16.899164744846445
},
"positionAbsolute": {
"x": 49.68127281474659,
"y": -16.899164744846445
},
"resizing": false,
"selected": false,
"sourcePosition": "right",
"style": {
"height": 128,
"width": 281
},
"targetPosition": "left",
"type": "noteNode",
"width": 281
},
{
"data": {
"form": {
"text": "Based on the keywords, searches on Baidu and returns the found content."
},
"label": "Note",
"name": "N :Baidu"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 128,
"id": "Note:HonestShirtsNail",
"measured": {
"height": 128,
"width": 269
},
"position": {
"x": 43.964372149616565,
"y": -151.26282396084338
},
"positionAbsolute": {
"x": 43.964372149616565,
"y": -151.26282396084338
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "noteNode",
"width": 269
},
{
"data": {
"form": {
"text": "Based on the keywords, searches on DuckDuckGo and returns the found content."
},
"label": "Note",
"name": "N: DuckduckGo"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 145,
"id": "Note:OddBreadsFix",
"measured": {
"height": 145,
"width": 201
},
"position": {
"x": -237.54626926201882,
"y": -381.56637252684175
},
"positionAbsolute": {
"x": -237.54626926201882,
"y": -381.56637252684175
},
"resizing": false,
"selected": false,
"sourcePosition": "right",
"style": {
"height": 145,
"width": 201
},
"targetPosition": "left",
"type": "noteNode",
"width": 201
},
{
"data": {
"form": {
"text": "The large model generates keywords based on the user's question for better retrieval."
},
"label": "Note",
"name": "N: Get keywords"
},
"dragHandle": ".note-drag-handle",
"dragging": false,
"height": 162,
"id": "Note:GentleWorldsDesign",
"measured": {
"height": 162,
"width": 201
},
"position": {
"x": -646.3211655055846,
"y": -334.10598887579624
},
"positionAbsolute": {
"x": -646.3211655055846,
"y": -334.10598887579624
},
"resizing": false,
"selected": false,
"sourcePosition": "right",
"style": {
"height": 162,
"width": 201
},
"targetPosition": "left",
"type": "noteNode",
"width": 201
},
{
"data": {
"form": {
"cite": true,
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat@DeepSeek",
"maxTokensEnabled": false,
"max_tokens": 256,
"message_history_window_size": 12,
"parameter": "Precise",
"parameters": [],
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"prompt": "Role: You are an intelligent assistant. \nTask: Chat with user. Answer the question based on the provided content from: Knowledge Base, Wikipedia, Duckduckgo, Baidu.\nRequirements:\n - Answer should be in markdown format.\n - Answer should include all sources(Knowledge Base, Wikipedia, Duckduckgo, Baidu) as long as they are relevant, and label the sources of the cited content separately.\n - Attach URL links to the content which is quoted from Wikipedia, DuckDuckGo or Baidu.\n - Do not make thing up when there's no relevant information to user's question. \n\n## Knowledge base content\n{Retrieval:SilentCamelsStick}\n\n\n## Wikipedia content\n{Wikipedia:WittyRiceLearn}\n\n\n## Duckduckgo content\n{DuckDuckGo:SoftButtonsRefuse}\n\n\n## Baidu content\n{Baidu:OliveAreasCall}\n\n",
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_p": 0.3
},
"label": "Generate",
"name": "LLM"
},
"dragging": false,
"id": "Generate:ItchyRiversDrum",
"measured": {
"height": 108,
"width": 200
},
"position": {
"x": -636.2454246475879,
"y": 282.00479262604443
},
"selected": true,
"sourcePosition": "right",
"targetPosition": "left",
"type": "generateNode"
}
]
},
"history": [],
"messages": [],
"path": [],
"reference": []
},
"avatar": "data:image/png;base64,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
}