[{"data":1,"prerenderedAt":728},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fauthentication":3,"docs-navigation":362,"docs-surround:\u002Fdocs\u002Fauthentication":501,"icon:building-bank":506,"icon:building-store":532,"icon:chart-bar":547,"icon:chart-pie":560,"icon:code":567,"icon:discount":577,"icon:heart-handshake":591,"icon:mail-forward":604,"icon:messages":617,"icon:microphone-2":624,"icon:photo":631,"icon:plug-connected":644,"icon:school":663,"icon:speakerphone":670,"icon:stethoscope":680,"icon:trophy":696,"icon:user-plus":715},{"id":4,"title":5,"body":6,"description":349,"extension":350,"group":351,"meta":352,"navTitle":353,"navigation":354,"path":355,"rawbody":356,"seo":357,"status":358,"stem":359,"updated":360,"__hash__":361},"docs\u002Fdocs\u002F03.authentication.md","Authentication",{"type":7,"value":8,"toc":341},"minimark",[9,13,96,104,108,124,192,199,204,218,224,237,240,243,265,282,297,300,308,312,331,337],[10,11,12],"p",{},"Wire2Air uses three kinds of credentials. Which one you send depends on the endpoint, not on your account type.",[14,15,16,32],"table",{},[17,18,19],"thead",{},[20,21,22,26,29],"tr",{},[23,24,25],"th",{},"Credential",[23,27,28],{},"Sent as",[23,30,31],{},"Used by",[33,34,35,55,79],"tbody",{},[20,36,37,45,52],{},[38,39,40],"td",{},[41,42,44],"a",{"href":43},"#rest-api-key","REST API key",[38,46,47,51],{},[48,49,50],"code",{},"apikey"," request header",[38,53,54],{},"Every REST API v1 endpoint",[20,56,57,63,76],{},[38,58,59],{},[41,60,62],{"href":61},"#user-id-password-and-vasid","User ID, password and VASID",[38,64,65,66,69,70,69,73],{},"Request parameters ",[48,67,68],{},"USERID",", ",[48,71,72],{},"PASSWORD",[48,74,75],{},"VASID",[38,77,78],{},"HTTP API: send SMS, send MMS, credit balance, keyword lookup, keyword register. Keyword credits takes user ID and password only",[20,80,81,87,93],{},[38,82,83],{},[41,84,86],{"href":85},"#app-key","App key",[38,88,89,90],{},"Request parameter ",[48,91,92],{},"APPKEY",[38,94,95],{},"HTTP API: carrier lookup, subscribe user, send invitation",[97,98,101],"callout",{"type":99,"question":100},"pending","OQ-5",[10,102,103],{},"How these credentials relate to each other (whether the app key, the VASID and the REST API keys belong to the same account login, and whether a key can be limited to some endpoints) is not documented yet.",[105,106,44],"h2",{"id":107},"rest-api-key",[10,109,110,111,115,116,120,121,123],{},"Create a key in the dashboard under ",[112,113,114],"strong",{},"Manage Account → Manage API Keys"," (",[41,117,119],{"href":118},"\u002Fdocs\u002Fgetting-started\u002F#rest-api-key","step by step","). Send it in the ",[48,122,50],{}," header of every request:",[125,126,132],"pre",{"className":127,"code":128,"filename":129,"language":130,"meta":131,"style":131},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","curl \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\" \\\n  -H \"apikey: YOUR_API_KEY\" \\\n  --data-urlencode \"to=12121234567\" \\\n  --data-urlencode \"from=27126\" \\\n  --data-urlencode \"text=Test message\"\n","cURL","bash","",[48,133,134,151,163,174,184],{"__ignoreMap":131},[135,136,139,143,147],"span",{"class":137,"line":138},"line",1,[135,140,142],{"class":141},"soyes","curl",[135,144,146],{"class":145},"sT6z2"," \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\"",[135,148,150],{"class":149},"sHUrx"," \\\n",[135,152,154,158,161],{"class":137,"line":153},2,[135,155,157],{"class":156},"s-5SL","  -H",[135,159,160],{"class":145}," \"apikey: YOUR_API_KEY\"",[135,162,150],{"class":149},[135,164,166,169,172],{"class":137,"line":165},3,[135,167,168],{"class":156},"  --data-urlencode",[135,170,171],{"class":145}," \"to=12121234567\"",[135,173,150],{"class":149},[135,175,177,179,182],{"class":137,"line":176},4,[135,178,168],{"class":156},[135,180,181],{"class":145}," \"from=27126\"",[135,183,150],{"class":149},[135,185,187,189],{"class":137,"line":186},5,[135,188,168],{"class":156},[135,190,191],{"class":145}," \"text=Test message\"\n",[10,193,194,195,198],{},"A missing or wrong key returns HTTP ",[48,196,197],{},"401 Unauthorized",".",[200,201,203],"h3",{"id":202},"query-string-keys","Query-string keys",[10,205,206,207,209,210,213,214,217],{},"The previous docs also allowed the key as an ",[48,208,50],{}," query parameter (",[48,211,212],{},"…\u002Frest\u002Fv1\u002Fmessage?apikey=YOUR_API_KEY","), and one example used ",[48,215,216],{},"authkey"," instead.",[97,219,221],{"type":220},"warning",[10,222,223],{},"Use the header. A key in a URL is written to server logs, proxy logs and browser history. If a key has ever been sent in a URL, generate a new one and delete the old one.",[97,225,227],{"type":99,"question":226},"OQ-6",[10,228,229,230,233,234,236],{},"Whether ",[48,231,232],{},"?apikey="," is still accepted, and whether ",[48,235,216],{}," is a real alias or a typo, has not been confirmed. These docs show the header only.",[105,238,62],{"id":239},"user-id-password-and-vasid",[10,241,242],{},"The legacy HTTP API takes your account login as request parameters:",[244,245,246,252,257],"ul",{},[247,248,249,251],"li",{},[48,250,68],{},": your Wire2Air user ID.",[247,253,254,256],{},[48,255,72],{},": your Wire2Air password.",[247,258,259,261,262,198],{},[48,260,75],{},": an account identifier shown under ",[112,263,264],{},"Manage Account → API Information",[10,266,267,268,271,272,275,276,279,280,198],{},"Send them in the body of a ",[48,269,270],{},"POST"," (as ",[48,273,274],{},"application\u002Fx-www-form-urlencoded","), never in a ",[48,277,278],{},"GET"," query string: a URL with a password in it ends up in logs. Every HTTP API example in these docs uses ",[48,281,270],{},[10,283,284,285,288,289,292,293,198],{},"A wrong login returns a plain-text error. The wording varies by endpoint: ",[48,286,287],{},"ERR: 301: Failed authentication"," on send SMS, send MMS and credit balance, ",[48,290,291],{},"Err:300:Invalid Userid or password"," on the keyword endpoints. See ",[41,294,296],{"href":295},"\u002Fdocs\u002Ferrors\u002F#http-api-error-codes","Errors",[105,298,86],{"id":299},"app-key",[10,301,302,303,305,306,198],{},"Some HTTP API endpoints take an app key in the ",[48,304,92],{}," parameter instead of a login. The carrier lookup page says it can be found under ",[112,307,264],{},[105,309,311],{"id":310},"keep-credentials-safe","Keep credentials safe",[244,313,314,317,320],{},[247,315,316],{},"Call the APIs from your server only. Never ship a key or password in browser JavaScript or a mobile app.",[247,318,319],{},"Load credentials from environment variables or a secret store, not from source code.",[247,321,322,323,326,327,330],{},"Use ",[48,324,325],{},"https:\u002F\u002F"," URLs. A few endpoints are documented over plain ",[48,328,329],{},"http:\u002F\u002F"," only; their pages say so.",[97,332,334],{"type":99,"question":333},"OQ-7",[10,335,336],{},"Key rotation and scoping (expiry, per-key permissions, revoking a key) are not described in the current documentation beyond creating keys in the dashboard.",[338,339,340],"style",{},"html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}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);}",{"title":131,"searchDepth":165,"depth":165,"links":342},[343,346,347,348],{"id":107,"depth":153,"text":44,"children":344},[345],{"id":202,"depth":165,"text":203},{"id":239,"depth":153,"text":62},{"id":299,"depth":153,"text":86},{"id":310,"depth":153,"text":311},"The three Wire2Air credentials (REST API key, user ID with password and VASID, and app key), which endpoint takes which, and how to keep them safe.","md","Getting started",{},null,true,"\u002Fdocs\u002Fauthentication","---\ntitle: Authentication\ndescription: The three Wire2Air credentials (REST API key, user ID with password and VASID, and app key), which endpoint takes which, and how to keep them safe.\ngroup: Getting started\nupdated: '2026-10-06'\n---\n\nWire2Air uses three kinds of credentials. Which one you send depends on the endpoint, not on your account type.\n\n| Credential | Sent as | Used by |\n|---|---|---|\n| [REST API key](#rest-api-key) | `apikey` request header | Every REST API v1 endpoint |\n| [User ID, password and VASID](#user-id-password-and-vasid) | Request parameters `USERID`, `PASSWORD`, `VASID` | HTTP API: send SMS, send MMS, credit balance, keyword lookup, keyword register. Keyword credits takes user ID and password only |\n| [App key](#app-key) | Request parameter `APPKEY` | HTTP API: carrier lookup, subscribe user, send invitation |\n\n::callout{type=\"pending\" question=\"OQ-5\"}\nHow these credentials relate to each other (whether the app key, the VASID and the REST API keys belong to the same account login, and whether a key can be limited to some endpoints) is not documented yet.\n::\n\n## REST API key\n\nCreate a key in the dashboard under **Manage Account → Manage API Keys** ([step by step](\u002Fdocs\u002Fgetting-started\u002F#rest-api-key)). Send it in the `apikey` header of every request:\n\n```bash [cURL]\ncurl \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\" \\\n  -H \"apikey: YOUR_API_KEY\" \\\n  --data-urlencode \"to=12121234567\" \\\n  --data-urlencode \"from=27126\" \\\n  --data-urlencode \"text=Test message\"\n```\n\nA missing or wrong key returns HTTP `401 Unauthorized`.\n\n### Query-string keys\n\nThe previous docs also allowed the key as an `apikey` query parameter (`…\u002Frest\u002Fv1\u002Fmessage?apikey=YOUR_API_KEY`), and one example used `authkey` instead.\n\n::callout{type=\"warning\"}\nUse the header. A key in a URL is written to server logs, proxy logs and browser history. If a key has ever been sent in a URL, generate a new one and delete the old one.\n::\n\n::callout{type=\"pending\" question=\"OQ-6\"}\nWhether `?apikey=` is still accepted, and whether `authkey` is a real alias or a typo, has not been confirmed. These docs show the header only.\n::\n\n## User ID, password and VASID\n\nThe legacy HTTP API takes your account login as request parameters:\n\n- `USERID`: your Wire2Air user ID.\n- `PASSWORD`: your Wire2Air password.\n- `VASID`: an account identifier shown under **Manage Account → API Information**.\n\nSend them in the body of a `POST` (as `application\u002Fx-www-form-urlencoded`), never in a `GET` query string: a URL with a password in it ends up in logs. Every HTTP API example in these docs uses `POST`.\n\nA wrong login returns a plain-text error. The wording varies by endpoint: `ERR: 301: Failed authentication` on send SMS, send MMS and credit balance, `Err:300:Invalid Userid or password` on the keyword endpoints. See [Errors](\u002Fdocs\u002Ferrors\u002F#http-api-error-codes).\n\n## App key\n\nSome HTTP API endpoints take an app key in the `APPKEY` parameter instead of a login. The carrier lookup page says it can be found under **Manage Account → API Information**.\n\n## Keep credentials safe\n\n- Call the APIs from your server only. Never ship a key or password in browser JavaScript or a mobile app.\n- Load credentials from environment variables or a secret store, not from source code.\n- Use `https:\u002F\u002F` URLs. A few endpoints are documented over plain `http:\u002F\u002F` only; their pages say so.\n\n::callout{type=\"pending\" question=\"OQ-7\"}\nKey rotation and scoping (expiry, per-key permissions, revoking a key) are not described in the current documentation beyond creating keys in the dashboard.\n::\n",{"title":5,"description":349},"current","docs\u002F03.authentication","2026-10-06","jRBHpY7oaqghcL1mrQucdfakEo-tGPEQ5BE1TN1Coqk",[363],{"title":364,"path":365,"stem":366,"children":367,"navTitle":369,"group":353,"status":358},"Wire2Air developer docs","\u002Fdocs","docs\u002F01.index",[368,370,373,374,377,381,400,423,441,484,497],{"title":364,"path":365,"stem":366,"navTitle":369,"group":353,"status":358},"Overview",{"title":351,"path":371,"stem":372,"navTitle":353,"group":351,"status":358},"\u002Fdocs\u002Fgetting-started","docs\u002F02.getting-started",{"title":5,"path":355,"stem":359,"navTitle":353,"group":351,"status":358},{"title":296,"path":375,"stem":376,"navTitle":353,"group":351,"status":358},"\u002Fdocs\u002Ferrors","docs\u002F04.errors",{"title":378,"path":379,"stem":380,"navTitle":353,"group":351,"status":358},"Rate limits","\u002Fdocs\u002Frate-limits","docs\u002F05.rate-limits",{"title":382,"navTitle":353,"group":353,"status":358,"path":383,"stem":384,"children":385,"page":399},"Guides","\u002Fdocs\u002Fguides","docs\u002F06.guides",[386,391,395],{"title":387,"path":388,"stem":389,"navTitle":390,"group":353,"status":358},"Character encoding and message length","\u002Fdocs\u002Fguides\u002Fencoding","docs\u002F06.guides\u002F01.encoding","Encoding and length",{"title":392,"path":393,"stem":394,"navTitle":353,"group":353,"status":358},"Bulk messaging","\u002Fdocs\u002Fguides\u002Fbulk-messaging","docs\u002F06.guides\u002F02.bulk-messaging",{"title":396,"path":397,"stem":398,"navTitle":353,"group":353,"status":358},"Scheduling messages","\u002Fdocs\u002Fguides\u002Fscheduling","docs\u002F06.guides\u002F03.scheduling",false,{"title":401,"path":402,"stem":403,"children":404,"navTitle":353,"group":353,"status":358},"REST API v1","\u002Fdocs\u002Frest","docs\u002F07.rest\u002F01.index",[405,406,419],{"title":401,"path":402,"stem":403,"navTitle":369,"group":353,"status":358},{"title":407,"navTitle":353,"group":353,"status":358,"path":408,"stem":409,"children":410,"page":399},"Messages","\u002Fdocs\u002Frest\u002Fmessages","docs\u002F07.rest\u002F02.messages",[411,415],{"title":412,"path":413,"stem":414,"navTitle":353,"group":353,"status":358},"Send a message","\u002Fdocs\u002Frest\u002Fmessages\u002Fsend","docs\u002F07.rest\u002F02.messages\u002F01.send",{"title":416,"path":417,"stem":418,"navTitle":353,"group":353,"status":358},"List received messages","\u002Fdocs\u002Frest\u002Fmessages\u002Flist","docs\u002F07.rest\u002F02.messages\u002F02.list",{"title":420,"path":421,"stem":422,"navTitle":353,"group":353,"status":358},"Campaigns","\u002Fdocs\u002Frest\u002Fcampaigns","docs\u002F07.rest\u002F03.campaigns",{"title":424,"path":425,"stem":426,"children":427,"navTitle":353,"group":353,"status":358},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F08.webhooks\u002F01.index",[428,429,433,437],{"title":424,"path":425,"stem":426,"navTitle":369,"group":353,"status":358},{"title":430,"path":431,"stem":432,"navTitle":353,"group":353,"status":358},"Inbound SMS","\u002Fdocs\u002Fwebhooks\u002Finbound-sms","docs\u002F08.webhooks\u002F02.inbound-sms",{"title":434,"path":435,"stem":436,"navTitle":353,"group":353,"status":358},"Inbound SMS and MMS","\u002Fdocs\u002Fwebhooks\u002Finbound-mms","docs\u002F08.webhooks\u002F03.inbound-mms",{"title":438,"path":439,"stem":440,"navTitle":353,"group":353,"status":358},"Delivery reports","\u002Fdocs\u002Fwebhooks\u002Fdelivery-reports","docs\u002F08.webhooks\u002F04.delivery-reports",{"title":442,"path":443,"stem":444,"children":445,"navTitle":353,"group":353,"status":447},"HTTP API","\u002Fdocs\u002Fhttp-api","docs\u002F09.http-api\u002F01.index",[446,448,452,456,460,464,468,472,476,480],{"title":442,"path":443,"stem":444,"navTitle":369,"group":353,"status":447},"legacy",{"title":449,"path":450,"stem":451,"navTitle":353,"group":353,"status":447},"Send SMS","\u002Fdocs\u002Fhttp-api\u002Fsend-sms","docs\u002F09.http-api\u002F02.send-sms",{"title":453,"path":454,"stem":455,"navTitle":353,"group":353,"status":447},"Send MMS","\u002Fdocs\u002Fhttp-api\u002Fsend-mms","docs\u002F09.http-api\u002F03.send-mms",{"title":457,"path":458,"stem":459,"navTitle":353,"group":353,"status":447},"Credit balance","\u002Fdocs\u002Fhttp-api\u002Fcredit-balance","docs\u002F09.http-api\u002F04.credit-balance",{"title":461,"path":462,"stem":463,"navTitle":353,"group":353,"status":447},"Carrier lookup","\u002Fdocs\u002Fhttp-api\u002Fcarrier-lookup","docs\u002F09.http-api\u002F05.carrier-lookup",{"title":465,"path":466,"stem":467,"navTitle":353,"group":353,"status":447},"Keyword lookup","\u002Fdocs\u002Fhttp-api\u002Fkeyword-lookup","docs\u002F09.http-api\u002F06.keyword-lookup",{"title":469,"path":470,"stem":471,"navTitle":353,"group":353,"status":447},"Keyword register","\u002Fdocs\u002Fhttp-api\u002Fkeyword-register","docs\u002F09.http-api\u002F07.keyword-register",{"title":473,"path":474,"stem":475,"navTitle":353,"group":353,"status":447},"Keyword credits","\u002Fdocs\u002Fhttp-api\u002Fkeyword-credits","docs\u002F09.http-api\u002F08.keyword-credits",{"title":477,"path":478,"stem":479,"navTitle":353,"group":353,"status":447},"Subscribe user","\u002Fdocs\u002Fhttp-api\u002Fsubscribe-user","docs\u002F09.http-api\u002F09.subscribe-user",{"title":481,"path":482,"stem":483,"navTitle":353,"group":353,"status":447},"Send invitation","\u002Fdocs\u002Fhttp-api\u002Fsend-invitation","docs\u002F09.http-api\u002F10.send-invitation",{"title":485,"navTitle":353,"group":353,"status":358,"path":486,"stem":487,"children":488,"page":399},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F10.integrations",[489,493],{"title":490,"path":491,"stem":492,"navTitle":353,"group":353,"status":358},"RSA Authentication Manager","\u002Fdocs\u002Fintegrations\u002Frsa-authentication-manager","docs\u002F10.integrations\u002F01.rsa-authentication-manager",{"title":494,"path":495,"stem":496,"navTitle":353,"group":353,"status":358},"Zapier","\u002Fdocs\u002Fintegrations\u002Fzapier","docs\u002F10.integrations\u002F02.zapier",{"title":498,"path":499,"stem":500,"navTitle":353,"group":353,"status":358},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F11.changelog",[502,504],{"title":351,"path":371,"stem":372,"description":503,"children":-1},"Get your Wire2Air API credentials, find the base URLs and send your first text message.",{"title":296,"path":375,"stem":376,"description":505,"children":-1},"HTTP status codes and application error codes for the REST API v1 and the legacy HTTP API, and how to handle them.",[507,511,514,517,520,523,526,529],[508,509],"path",{"d":510},"M3 21l18 0",[508,512],{"d":513},"M3 10l18 0",[508,515],{"d":516},"M5 6l7 -3l7 3",[508,518],{"d":519},"M4 10l0 11",[508,521],{"d":522},"M20 10l0 11",[508,524],{"d":525},"M8 14l0 3",[508,527],{"d":528},"M12 14l0 3",[508,530],{"d":531},"M16 14l0 3",[533,535,538,541,544],[508,534],{"d":510},[508,536],{"d":537},"M3 7v1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1h-18l2 -4h14l2 4",[508,539],{"d":540},"M5 21l0 -10.15",[508,542],{"d":543},"M19 21l0 -10.15",[508,545],{"d":546},"M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4",[548,551,554,557],[508,549],{"d":550},"M3 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -6",[508,552],{"d":553},"M15 9a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -10",[508,555],{"d":556},"M9 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -14",[508,558],{"d":559},"M4 20h14",[561,564],[508,562],{"d":563},"M10 3.2a9 9 0 1 0 10.8 10.8a1 1 0 0 0 -1 -1h-6.8a2 2 0 0 1 -2 -2v-7a.9 .9 0 0 0 -1 -.8",[508,565],{"d":566},"M15 3.5a9 9 0 0 1 5.5 5.5h-4.5a1 1 0 0 1 -1 -1v-4.5",[568,571,574],[508,569],{"d":570},"M7 8l-4 4l4 4",[508,572],{"d":573},"M17 8l4 4l-4 4",[508,575],{"d":576},"M14 4l-4 16",[578,581,585,588],[508,579],{"d":580},"M9 15l6 -6",[508,582],{"d":583,"fill":584},"M9 9.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0","currentColor",[508,586],{"d":587,"fill":584},"M14 14.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0",[508,589],{"d":590},"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",[592,595,598,601],[508,593],{"d":594},"M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572",[508,596],{"d":597},"M12 6l-3.293 3.293a1 1 0 0 0 0 1.414l.543 .543c.69 .69 1.81 .69 2.5 0l1 -1a3.182 3.182 0 0 1 4.5 0l2.25 2.25",[508,599],{"d":600},"M12.5 15.5l2 2",[508,602],{"d":603},"M15 13l2 2",[605,608,611,614],[508,606],{"d":607},"M12 18h-7a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",[508,609],{"d":610},"M3 6l9 6l9 -6",[508,612],{"d":613},"M15 18h6",[508,615],{"d":616},"M18 15l3 3l-3 3",[618,621],[508,619],{"d":620},"M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10",[508,622],{"d":623},"M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2",[625,628],[508,626],{"d":627},"M15 12.9a5 5 0 1 0 -3.902 -3.9",[508,629],{"d":630},"M15 12.9l-3.902 -3.899l-7.513 8.584a2 2 0 1 0 2.827 2.83l8.588 -7.515",[632,635,638,641],[508,633],{"d":634},"M15 8h.01",[508,636],{"d":637},"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12",[508,639],{"d":640},"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",[508,642],{"d":643},"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",[645,648,651,654,657,660],[508,646],{"d":647},"M7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1 -5 -5l1.5 -1.5",[508,649],{"d":650},"M17 12l-5 -5l1.5 -1.5a3.536 3.536 0 1 1 5 5l-1.5 1.5",[508,652],{"d":653},"M3 21l2.5 -2.5",[508,655],{"d":656},"M18.5 5.5l2.5 -2.5",[508,658],{"d":659},"M10 11l-2 2",[508,661],{"d":662},"M13 14l-2 2",[664,667],[508,665],{"d":666},"M22 9l-10 -4l-10 4l10 4l10 -4v6",[508,668],{"d":669},"M6 10.6v5.4a6 3 0 0 0 12 0v-5.4",[671,674,677],[508,672],{"d":673},"M18 8a3 3 0 0 1 0 6",[508,675],{"d":676},"M10 8v11a1 1 0 0 1 -1 1h-1a1 1 0 0 1 -1 -1v-5",[508,678],{"d":679},"M12 8l4.524 -3.77a.9 .9 0 0 1 1.476 .692v12.156a.9 .9 0 0 1 -1.476 .692l-4.524 -3.77h-8a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h8",[681,684,687,690,693],[508,682],{"d":683},"M6 4h-1a2 2 0 0 0 -2 2v3.5a5.5 5.5 0 0 0 11 0v-3.5a2 2 0 0 0 -2 -2h-1",[508,685],{"d":686},"M8 15a6 6 0 1 0 12 0v-3",[508,688],{"d":689},"M11 3v2",[508,691],{"d":692},"M6 3v2",[508,694],{"d":695},"M18 10a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[697,700,703,706,709,712],[508,698],{"d":699},"M8 21l8 0",[508,701],{"d":702},"M12 17l0 4",[508,704],{"d":705},"M7 4l10 0",[508,707],{"d":708},"M17 4v8a5 5 0 0 1 -10 0v-8",[508,710],{"d":711},"M3 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[508,713],{"d":714},"M17 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[716,719,722,725],[508,717],{"d":718},"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",[508,720],{"d":721},"M16 19h6",[508,723],{"d":724},"M19 16v6",[508,726],{"d":727},"M6 21v-2a4 4 0 0 1 4 -4h4",3529977955]