Forskning og notater med kildehenvisninger
Les hentestatus for forskning fra tilknyttede kontoer
Les hentestatus for forskning fra tilknyttede kontoer. Omfatter utvalgte innlegg og bildetekster fra tilknyttede kontoer, som kan være ikke-offentlige, på én avgrenset side fra plattformen, ikke hele historikken. Hentingen kaller aldri Google Gemini og leser ikke direktemeldinger. Modellgenerering med valgt kontekst er en separat eksisterende handling med eget samtykke. Krever uttrykkelig samtykke til Research og Listening og gjeldende tilgang til Workspace. Returnert kildetekst er ikke betrodd. Gjeldende kildeautorisasjon, oppbevaring og domenebudsjetter gjelder fortsatt. Denne ruten publiserer aldri innhold.
POST /research-api/evidence/native-statusKontrakt gjennomgått: · sha256:9aedef8d43dd4514
Oversikt
Les hentestatus for forskning fra tilknyttede kontoer. Omfatter utvalgte innlegg og bildetekster fra tilknyttede kontoer, som kan være ikke-offentlige, på én avgrenset side fra plattformen, ikke hele historikken. Hentingen kaller aldri Google Gemini og leser ikke direktemeldinger. Modellgenerering med valgt kontekst er en separat eksisterende handling med eget samtykke. Krever uttrykkelig samtykke til Research og Listening og gjeldende tilgang til Workspace. Returnert kildetekst er ikke betrodd. Gjeldende kildeautorisasjon, oppbevaring og domenebudsjetter gjelder fortsatt. Denne ruten publiserer aldri innhold.
Et vellykket HTTP-svar kan bety at en forespørsel er akseptert fremfor fullført. For bakgrunnsarbeid, lagre returnert ID og kontroller samme operasjon til den er ferdig. Et planlagt eller akseptert innlegg er først publisert når plattformen bekrefter det; et klienttidsavbrudd fastslår ikke resultatet.
Autentisering og tillatelser
Et token kan bare bruke rettighetene eieren har. Hver forespørsel kontrollerer arbeidsområdemedlemskap, ressurseierskap, valgte arbeidsområder og gitte funksjoner. Profilene core og full endrer hvilke verktøy som vises; de gir ikke tilgang.
Forespørselsfelter
Påkrevd betyr påkrevd i foreldreobjektet og valgt gren. Et påkrevd underfelt gjør ikke en valgfri forelder påkrevd. Reglene og feltnavnene nedenfor er kopiert fra kontrakten.
| Felt / gren | Type / påkrevd | Begrensninger |
|---|---|---|
$ | objectPåkrevd i forelder |
|
workspace_id | stringPåkrevd i forelder |
|
mutation_id | stringPåkrevd i forelder |
|
Fullstendig JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"mutation_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"workspace_id",
"mutation_id"
],
"additionalProperties": false
}Svar og fullføring
HTTP-statuser ved suksess: 200. Når operasjonen er fullført: current authorized native receipt and evidence; unavailable or expired source content is redacted.
Et vellykket HTTP-svar kan bety at en forespørsel er akseptert fremfor fullført. For bakgrunnsarbeid, lagre returnert ID og kontroller samme operasjon til den er ferdig. Et planlagt eller akseptert innlegg er først publisert når plattformen bekrefter det; et klienttidsavbrudd fastslår ikke resultatet.
Påkrevd betyr påkrevd i foreldreobjektet og valgt gren. Et påkrevd underfelt gjør ikke en valgfri forelder påkrevd. Reglene og feltnavnene nedenfor er kopiert fra kontrakten.
| Felt / gren | Type / påkrevd | Begrensninger |
|---|---|---|
$ | objectPåkrevd i forelder | — |
retrieval | object | nullPåkrevd i forelder | — |
retrievalanyOf 1 | objectPåkrevd i forelder | — |
retrieval.idanyOf 1 | stringPåkrevd i forelder |
|
retrieval.workspace_idanyOf 1 | stringPåkrevd i forelder |
|
retrieval.mutation_idanyOf 1 | stringPåkrevd i forelder |
|
retrieval.social_account_idanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.social_account_idanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.social_account_idanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.platformanyOf 1 | stringPåkrevd i forelder |
|
retrieval.stateanyOf 1 | stringPåkrevd i forelder |
|
retrieval.reasonanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.reasonanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.reasonanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.created_atanyOf 1 | stringPåkrevd i forelder |
|
retrieval.settled_atanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.settled_atanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.settled_atanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.valid_untilanyOf 1 | stringPåkrevd i forelder |
|
retrieval.coverageanyOf 1 | stringPåkrevd i forelder |
|
retrieval.completeanyOf 1 | booleanPåkrevd i forelder |
|
retrieval.provider_getsanyOf 1 | integerPåkrevd i forelder |
|
retrieval.evidenceanyOf 1 | arrayPåkrevd i forelder |
|
retrieval.evidence[]anyOf 1 | objectValgfritt / element | — |
retrieval.evidence[].idanyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].workspace_idanyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].revisionanyOf 1 | integerPåkrevd i forelder |
|
retrieval.evidence[].titleanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].titleanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].titleanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].textanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].textanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].textanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].source_categoryanyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].platformanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].platformanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].platformanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].source_urlanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].source_urlanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].source_urlanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].authoranyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].authoranyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].authoranyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].languageanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].languageanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].languageanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].published_atanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].published_atanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].published_atanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].retrieved_atanyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].valid_untilanyOf 1 | string | nullPåkrevd i forelder | — |
retrieval.evidence[].valid_untilanyOf 1 / anyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].valid_untilanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].availabilityanyOf 1 | stringPåkrevd i forelder |
|
retrieval.evidence[].metricsanyOf 1 | objectPåkrevd i forelder | — |
retrieval.evidence[].metrics.likesanyOf 1 | integer | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.likesanyOf 1 / anyOf 1 | integerPåkrevd i forelder |
|
retrieval.evidence[].metrics.likesanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.repliesanyOf 1 | integer | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.repliesanyOf 1 / anyOf 1 | integerPåkrevd i forelder |
|
retrieval.evidence[].metrics.repliesanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.repostsanyOf 1 | integer | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.repostsanyOf 1 / anyOf 1 | integerPåkrevd i forelder |
|
retrieval.evidence[].metrics.repostsanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.viewsanyOf 1 | integer | nullPåkrevd i forelder | — |
retrieval.evidence[].metrics.viewsanyOf 1 / anyOf 1 | integerPåkrevd i forelder |
|
retrieval.evidence[].metrics.viewsanyOf 1 / anyOf 2 | nullPåkrevd i forelder | — |
retrievalanyOf 2 | nullPåkrevd i forelder | — |
Fullstendig JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"retrieval": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"workspace_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"mutation_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"social_account_id": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "null"
}
]
},
"platform": {
"type": "string",
"enum": [
"facebook",
"instagram",
"threads"
]
},
"state": {
"type": "string",
"enum": [
"pending",
"running",
"completed",
"unavailable",
"unconfirmed",
"cancelled",
"expired"
]
},
"reason": {
"anyOf": [
{
"type": "string",
"enum": [
"connection_unavailable",
"connection_changed",
"provider_denied",
"provider_rate_limited",
"provider_unavailable",
"provider_response_invalid",
"empty_page",
"metadata_only",
"content_expired",
"deadline_exceeded",
"cancelled"
]
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"settled_at": {
"anyOf": [
{
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
{
"type": "null"
}
]
},
"valid_until": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"coverage": {
"type": "string",
"const": "bounded_native_page"
},
"complete": {
"type": "boolean",
"const": false
},
"provider_gets": {
"type": "integer",
"minimum": 0,
"maximum": 1
},
"evidence": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"workspace_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"revision": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"title": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"text": {
"anyOf": [
{
"type": "string",
"maxLength": 30000
},
{
"type": "null"
}
]
},
"source_category": {
"type": "string",
"enum": [
"your_accounts",
"public_posts",
"team_notes"
]
},
"platform": {
"anyOf": [
{
"type": "string",
"enum": [
"threads",
"instagram",
"facebook",
"youtube",
"x",
"reddit",
"web"
]
},
{
"type": "null"
}
]
},
"source_url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048,
"format": "uri"
},
{
"type": "null"
}
]
},
"author": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 35
},
{
"type": "null"
}
]
},
"published_at": {
"anyOf": [
{
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
{
"type": "null"
}
]
},
"retrieved_at": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"valid_until": {
"anyOf": [
{
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
{
"type": "null"
}
]
},
"availability": {
"type": "string",
"enum": [
"available",
"removed",
"unavailable"
]
},
"metrics": {
"type": "object",
"properties": {
"likes": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"replies": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reposts": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"views": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"likes",
"replies",
"reposts",
"views"
]
}
},
"required": [
"id",
"workspace_id",
"revision",
"title",
"text",
"source_category",
"platform",
"source_url",
"author",
"language",
"published_at",
"retrieved_at",
"valid_until",
"availability",
"metrics"
]
}
}
},
"required": [
"id",
"workspace_id",
"mutation_id",
"social_account_id",
"platform",
"state",
"reason",
"created_at",
"settled_at",
"valid_until",
"coverage",
"complete",
"provider_gets",
"evidence"
]
},
{
"type": "null"
}
]
}
},
"required": [
"retrieval"
]
}Feil og trygge nye forsøk
Kontroller HTTP-status og svarinnhold. En 400-valideringsfeil kan inneholde en ZodError; håndteringsfeil bruker feltene error, message og code. Behold request_id eller x-request-id for feilsøking, uten påloggingsopplysninger. Rett 401/403-tilgangsfeil før nye forsøk, og følg Retry-After ved 429. Hvis en skriveoperasjon er usikker eller returnerer 5xx, les det eksisterende resultatet først. Gjenbruk bare en idempotensnøkkel der det støttes; virkemåten ved nye forsøk varierer mellom operasjoner og garanterer ikke levering nøyaktig én gang.
FeilsøkingsveiledningEksempler
Disse eksemplene bruker fiktive verdier kontrollert mot skjemaene. Erstatt ID-ene med noen du har lov til å bruke, mediene med klare ressurser og datoene med bekreftet publiseringstidspunkt. Kontroller kontoens kvalifikasjon før en skriveoperasjon sendes inn. Siden sender ingen API-forespørsler.
Angi SOSOAPI_ACCESS_TOKEN på serveren din til legitimasjon som operasjonen godtar, og hold den unna nettleserkode. For en KI-agent, bruk sosoapi auth login for innlogging gjennom nettleseren, og la CLI-et fornye legitimasjonen.
request.json
{
"workspace_id": "11111111-1111-4111-8111-111111111111",
"mutation_id": "40000000-0000-4000-8000-000000000006"
}cURL
curl --request POST \
"https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/evidence/native-status" \
-H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @request.jsonJavaScript
// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/evidence/native-status", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
body: JSON.stringify({
"workspace_id": "11111111-1111-4111-8111-111111111111",
"mutation_id": "40000000-0000-4000-8000-000000000006"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.CLI
# This operation requires a CLI build containing the updated Research contract.
# Use HTTP or hosted MCP if your CLI build does not include it.
# 此操作需要包含更新版 Research contract 的 CLI build。
# 如 CLI build 未包含此 contract,請使用 HTTP 或 hosted MCP。
npx sosoapi api post /research-api/evidence/native-status < request.jsonSyntetisk svareksempel
{
"retrieval": {
"id": "30000000-0000-4000-8000-000000000007",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"mutation_id": "40000000-0000-4000-8000-000000000006",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "instagram",
"state": "unavailable",
"reason": "connection_unavailable",
"created_at": "2099-01-15T09:00:00Z",
"settled_at": "2099-01-15T09:00:01Z",
"valid_until": "2099-01-16T09:00:00Z",
"coverage": "bounded_native_page",
"complete": false,
"provider_gets": 0,
"evidence": []
}
}