1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7561],{50947:function(e,t,n){n.d(t,{P:function(){return o}});var r=n(91642);const o={headtags:r.Ps` 2 fragment HeadTags on PageMetadata { 3 headTag { 4 title 5 hasAggregateOfferSchema 6 description 7 keywords 8 image 9 robots 10 favicon 11 canonical { 12 url 13 alternate { 14 url 15 hreflang 16 } 17 } 18 contentLanguage 19 } 20 } 21 `,pageContext:r.Ps` 22 fragment PageContext on PageContext { 23 type 24 geolocation 25 vacationsTenantCode 26 airline { 27 code 28 name 29 } 30 geo { 31 language { 32 lang 33 languageBeforeMarket 34 separator 35 siteEditionLanguage 36 siteEditionMarket 37 site_edition 38 site_edition_country_geo_id 39 uppercaseLanguage 40 uppercaseMarket 41 textDirection 42 } 43 location { 44 destination_geo_id 45 level_destination 46 level_origin 47 origin_geo_id 48 user_input_destination_airport_code 49 user_input_destination_city_name 50 user_input_destination_country_name 51 user_input_origin_airport_code 52 user_input_origin_city_name 53 user_input_origin_country_name 54 user_input_origin_state_name 55 user_input_destination_state_name 56 origin_city_preposition_from 57 origin_state_preposition_from 58 origin_country_preposition_from 59 destination_city_preposition_from 60 destination_state_preposition_from 61 destination_country_preposition_from 62 origin_city_preposition_to 63 origin_state_preposition_to 64 origin_country_preposition_to 65 destination_city_preposition_to 66 destination_state_preposition_to 67 destination_country_preposition_to 68 level_property 69 user_input_property_code 70 user_input_property_name 71 user_input_property_city_name 72 user_input_property_country_name 73 user_input_property_country_code 74 user_input_property_state_name 75 user_input_property_region_name 76 } 77 } 78 datasource { 79 step 80 customPageId 81 variables 82 hostname 83 pathname 84 referrer 85 type 86 url 87 template_id 88 } 89 audience { 90 browser 91 device_category 92 language 93 city 94 country 95 } 96 extra_info { 97 airports { 98 origin 99 destination 100 } 101 route { 102 status 103 } 104 properties{ 105 codes 106 } 107 } 108 dynamicContext { 109 budgetMaximumAmount 110 budgetRedemptionUnit 111 isRedemption 112 passengerCount 113 productCategory 114 productType 115 isFlexibleDates 116 discountCode 117 departureDate 118 returnDate 119 originLocation 120 destinationLocation 121 originLocations 122 destinationLocations 123 defaultMonth 124 experience { 125 name 126 type 127 } 128 event { 129 location 130 date 131 session 132 time 133 } 134 } 135 } 136`}},50959:function(e,t,n){n.d(t,{eO:function(){return i},eX:function(){return a},wn:function(){return s},qc:function(){return u},_o:function(){return c},D4:function(){return p},Kr:function(){return l},mo:function(){return g},Be:function(){return d},Ud:function(){return m},kS:function(){return f},Y0:function(){return y}});var r=n(91642),o=n(50947);const i=r.Ps` 137 query GetHeader_layout($page: PageInput!) { 138 layout(page : $page){ 139 header { 140 logo { 141 link 142 desktop 143 mobile 144 } 145 mainMenu { 146 url 147 name 148 html 149 subMenu { 150 url 151 name 152 html 153 } 154 } 155 secondaryMenu { 156 url 157 name 158 html 159 subMenu { 160 url 161 name 162 html 163 } 164 } 165 layoutSettings { 166 variation 167 topSectionAlignment 168 bottomSectionAlignment 169 mainSectionAlignment 170 menuIconAlignment 171 isFullWidth 172 isLanguageToggleEnabled 173 mobileLogoAlignment 174 showMainNavigationIcons 175 showLanguageToggleFlags 176 desktopLogoWidth 177 mobileLogoWidth 178 desktopLogoHeight 179 mainOpenNewTab 180 secondaryOpenNewTab 181 } 182 } 183 } 184 } 185`,a=r.Ps` 186 query GetFooter_layout($page: PageInput!) { 187 layout(page : $page){ 188 footer { 189 layoutSettings { 190 variation 191 topSectionAlignment 192 bottomSectionAlignment 193 useAccordionOnMobile 194 socialMediaIconHasBorder 195 isSocialMediaIconFilled 196 socialMediaIconSizeLarge 197 socialMediaIconSizeSmall 198 } 199 mainMenu { 200 name 201 href 202 openNewTab 203 includeExternalLinkIcon 204 subMenu { 205 url 206 name 207 html 208 openNewTab 209 includeExternalLinkIcon 210 } 211 } 212 appSection{ 213 title 214 apps{ 215 name 216 href 217 iconUrl 218 altText 219 openNewTab 220 } 221 } 222 socialSection 223 imagesSection { 224 images { 225 src 226 altText 227 href 228 openNewTab 229 } 230 } 231 copyrightSection 232 logosSection 233 } 234 } 235 } 236`,s=r.Ps` 237{ 238 page @client{ 239 tenant 240 siteEdition 241 slug 242 pageType 243 pageNumber 244 deviceType 245 languageCode 246 queryParams 247 } 248}`,u=r.Ps` 249 query GetBestOffer($page: PageInput!) { 250 lowestFare(page:$page){ 251 formattedTotalPrice 252 currencyCode 253 fullPrice 254 totalPrice 255 } 256 } 257`,c=r.Ps` 258 query GetPackageLowestFare($page: PageInput!) { 259 packageLowestFare(page:$page){ 260 currencyCode 261 totalPrice 262 formattedTotalPrice 263 } 264 } 265`,p=r.Ps` 266 query GetLabels($page: PageInput!) { 267 labels(page: $page) 268 } 269 `,l=r.Ps` 270 query GetContext($page: PageInput!) { 271 pageContext(page:$page){ 272 ...PageContext 273 } 274 }
275 ${o.P.pageContext} 276`,g=r.Ps` 277 query GetDeepLink($deepLinkParams: DeepLinkInput!) { 278 deepLink(deepLinkParams: $deepLinkParams) { 279 url 280 method 281 formData 282 headers 283 }, 284} 285`,d=r.Ps` 286 query GetRedirectInfo($page: RedirectInput!) { 287 redirect(page:$page){ 288 fullUrl 289 protocol 290 domain 291 subfolder 292 siteEdition 293 slug 294 originalRedirectUrl 295 } 296 } 297`,m=r.Ps` 298 query GetDocumentMetaData($page: PageInput!) { 299 pageMetadata(page: $page) { 300 headTag{ 301 hasAggregateOfferSchema 302 customScript1 303 customScript2 304 customDataLayer{ 305 name 306 data 307 gtm_datalayer 308 clientSideFields 309 } 310 emDataLayer{ 311 airline{ 312 name 313 iataCode 314 } 315 tenant{ 316 name 317 code 318 type 319 } 320 product{ 321 name 322 } 323 page{ 324 author 325 pageName 326 url 327 hostname 328 uri 329 fullURL 330 typeName 331 languageIsoCode 332 countryIsoCode 333 siteEdition 334 dateCreated 335 countryCurrencyCode 336 typeCode 337 } 338 originCity{ 339 name 340 cityCode 341 } 342 destinationCity{ 343 name 344 cityCode 345 } 346 originCountry{ 347 name 348 isoCode 349 } 350 destinationCountry{ 351 name 352 isoCode 353 } 354 originAirport{ 355 iataCode 356 } 357 destinationAirport{ 358 iataCode 359 } 360 device 361 extraInfo 362 property{ 363 name 364 code 365 } 366 city{ 367 name 368 cityCode 369 } 370 country{ 371 name 372 isoCode 373 } 374 region{ 375 name 376 } 377 } 378 } 379 bodyTag { 380 customScript3 381 customScript4 382 customScript5 383 } 384 } 385 pageInfo(page: $page) { 386 languageCode 387 textDirection 388 } 389 pageTitleH1(page: $page){ 390 title 391 } 392 } 393`,f=r.Ps` 394 query GetNearestOriginAirport($page: PageInput!, $geo: CoordinatesInput, $language: String, $market: String, $template: String, $product: String, $countryGeoId: String) { 395 geoLocation(page: $page, geo: $geo, language: $language, market: $market, template: $template, product: $product, countryGeoId: $countryGeoId){ 396 nearestOriginAirport { 397 iataCode 398 geoId 399 } 400 } 401 } 402`,y=r.Ps` 403 query GetOrganizationAdvConfig($page: PageInput!) { 404 organizationAdvConfig(page: $page){ 405 directDeeplink 406 geoLocation 407 } 408 } 409`},27057:function(e,t,n){n.d(t,{mR:function(){return H},YN:function(){return U},d9:function(){return O},EP:function(){return J},Jl:function(){return x},RV:function(){return M},Ox:function(){return ee},DF:function(){return y},ep:function(){return ne},g7:function(){return T},fx:function(){return te},sk:function(){return k},yk:function(){return I},hi:function(){return D},sD:function(){return N},bJ:function(){return W},Qr:function(){return z},RT:function(){return F},hj:function(){return G},yF:function(){return w},HD:function(){return R},Dc:function(){return $},gI:function(){return Y},zO:function(){return q},Hy:function(){return X},rg:function(){return L},U3:function(){return V},oV:function(){return B},uz:function(){return K},DD:function(){return v},TU:function(){return E},ud:function(){return S},vQ:function(){return Z},SG:function(){return j},mN:function(){return A},_r:function(){return C},nt:function(){return Q}});var r=n(10219),o=n(92809),i=n(67294),a=n(4298),s=n(9008),u=n(47311),c=n(93967),p=n.n(c),l=n(83465),g=n.n(l),d=n(75934),m=n.n(d),f=n(34155);const y=(e,{quality:t=80,height:n=500,fit:r="crop",format:o="auto"})=>{if(!e)return"";if(e.includes("/media-em/"))try{const r=new URL(e);return`${f.env.USE_RELATIVE_IMGS?r.pathname:e}?height=${n}&quality=${t}&format=${o}&opt=true`}catch(i){console.error("Error when creating the image source",i)}return`https://assets.airtrfx.com/cdn-cgi/image/height=${n},quality=${t},format=${o}/${e}`};var _=n(35944);
409const h=["skip"];function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const k=(e={},t=[])=>"object"===typeof e&&Array.isArray(t)&&t.length?Object.keys(e).reduce(((n,r)=>t.includes(r)?(n[r]=e[r],n):n),{}):{},O=e=>g()(e),v=e=>{Object.keys(e).forEach((t=>{e[t]&&"object"===typeof e[t]?v(e[t]):null==e[t]&&delete e[t]}))},C=e=>{const t=O(e);return t.toJSON=()=>null,t},w=()=>!1,$=e=>e&&Array.isArray(e.match(/.svg$/)),S=(e,t)=>{for(const n in e)n===t?delete e[n]:"object"===typeof e[n]&&S(e[n],t)},T=(e,t)=>{if(t&&t.length)return t.reduce(((t,n)=>(t[n]=(null===e||void 0===e?void 0:e[n])||n,t)),{})},E=e=>e&&e.replace(/<!--(.*?)-->/g,""),L=(e,{staticAttributes:t={},replace:n={},removeComments:r=!0,renderWidget:o,preflightClasses:c=!0}={})=>{const l={replace:({children:e,name:r,data:u,attribs:g={}},d)=>{if(!r)return u;if(g.vg_widget&&"function"===typeof o)return o(g);const m={style:()=>{if(null!==e&&void 0!==e&&e.length){const t=e.map((e=>e.data)).join("");return(0,_.tZ)(s.default,{children:(0,_.tZ)("style",{type:"text/css",children:t})})}},script:()=>g.src?(0,_.tZ)(a.default,{src:g.src,type:"text/javascript",onError:e=>console.error("Custom Script Error",e)},g.src):null!==e&&void 0!==e&&e.length?(0,_.tZ)(a.default,P(P({},g),{},{dangerouslySetInnerHTML:{__html:`${e[0].data}`}})):void 0};if(m[r]){const e=m[r]();if(e)return e}const f=P(P({},g),t);null!=d&&(f.key=d);const y=f.onclick||f.onClick;y&&(f.onClick=new Function("event",y),delete f.onclick),f.className=p()(c&&"__pfs",f.class||"",c&&!f.vg_widget&&"__bss",t.className||""),f.style&&(f.style=f.style.split(";").filter((e=>e.split(":")[0]&&e.split(":")[1])).map((e=>[e.split(":")[0].trim().replace(/-./g,(e=>e.substr(1).toUpperCase())),e.split(":").slice(1).join(":").trim()])).reduce(((e,t)=>P(P({},e),{},{[t[0]]:t[1]})),{})),delete f.class;const h=r;let b=null!==e&&void 0!==e&&e.length?e.map(((e,t)=>l.replace(e,t))):u;return"function"===typeof n[h]?n[h](f,b):i.createElement(h,f,b)}};let g=e;return r&&(g=E(e)),g&&(0,u.ZP)(g,l)},j=(e,t)=>(e&&(e=e.replace("**Flights.FromLowestPrice**",t).trim()),e),A=e=>{let t=e&&e.split("{price_modifier}").map((e=>e.trim()));return!t&&(t=[]),t},I=e=>e&&-1!==e.indexOf("{price_modifier}"),D=e=>{const t=new RegExp("\\*\\*[^*]+\\*\\*","g");return e.search(t)>=0},x=()=>{document.documentElement.style.overflow="hidden",document.body.style.overflow="hidden"},M=()=>{document.body.style.overflow="auto",document.documentElement.style.overflow="auto"},F=e=>/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/.test(e),N=e=>e&&(e.startsWith("https://")||e.startsWith("http://")||e.startsWith("//")),q=()=>window.performance&&performance.now&&performance.now()||Date.now(),G=e=>"number"===typeof e&&e===e&&e!==1/0&&e!==-1/0,R=e=>"string"===typeof e,W=e=>e&&null!==e.match(/^[a-z0-9]+$/i),Z=e=>Object.entries(e).reduce(((e,[t,n])=>null!=n?(e[t]=n,e):e),{}),H=(e,t,n)=>{const r=n=>String.prototype.split.call(t,n).filter(Boolean).reduce(((e,t)=>null!==e&&void 0!==e&&null!==e?e[t]:e),e),o=r(/[,[\]]+?/)||r(/[,[\].]+?/);return""===o||void 0===o||o===e?n:o},U=(e,t,n)=>{if(null==e)return e;const r=/^(?:0|[1-9]\d*)$/,o=e=>"__proto__"===e||"constructor"===e||"prototype"===e,i=(e=>{if(Array.isArray(e))return e.slice();const t=[];return String(e).replace(/[^.[\]]+|\[(?:([^"'\[\]]+)|(["'])(.*?)\2)\]/g,((e,n,r,o)=>(t.push(void 0!==n?n:void 0!==o?o:e),""))),t})(t);let a=e;for(let u=0;u<i.length;u++){const t=i[u];if(o(t))return e;if(u===i.length-1)a[t]=n;else{const n=i[u+1];if(o(n))return e;const c="number"===typeof(s=n)&&s>=0&&s%1===0||"string"===typeof s&&r.test(s);null!=a[t]&&"object"===typeof a[t]||(a[t]=c?[]:{}),a=a[t]}}var s;return e},z=(e={})=>e&&0===Object.keys(e).length&&e.constructor===Object,J=e=>{const t="string"===typeof e?e:null;return t&&new Date(t).toISOString().split("T")[0]||null},Q=e=>new Promise((t=>setTimeout(t,e))),V=(e=0,t="",n="")=>e>1?n:t,B=({client:e,query:t,options:n})=>{const{skip:o}=n,i=(0,r.Z)(n,h);return o?Promise.resolve({loading:!1,skip:!0}):e.query(P({query:t},i))},Y=e=>/^[a-z]{2}([-_][a-zA-Z]{2,4}){0,2}$/.test(e),K=(e,t,n)=>{const r=[{regex:t,fn:n}];return m()(r)(e)},X=e=>JSON.stringify(e).replace("{"," ").replace("}"," ").replace(/"/g,"").replace(/,/g,", "),ee=(e="id")=>`${e}-${Math.random().toString(36).substring(2,6)}-${Math.random().toString(36).substring(2,10)}`,te=({page:{tenant:e,slug:t,siteEdition:n,pageType:r,pageNumber:o,deviceType:i,languageCode:a}={}})=>({tenant:e,slug:t,siteEdition:n,pageType:r,pageNumber:o,deviceType:i,languageCode:a}),ne=(e,t)=>t?[`_ctaSelector.${t}`]:[`${e}`]},52058:function(e,t,n){n.d(t,{Z:function(){return T}});var r=n(92809),o=n(46706),i=n(4372),a=n(36689),s=n(8056),u=n(83536),c=n(13984),p=n(49066),l=n.n(p),g=n(38070),d=n(14846),m=JSON.parse('{"J":{"V":[{"kind":"INTERFACE","name":"Link","possibleTypes":[{"name":"BreadCrumb"},{"name":"MenuItem"},{"name":"RelatedRoutesLink"},{"name":"Item"}]},{"kind":"INTERFACE","name":"DestinationRoutesLink","possibleTypes":[{"name":"CityLink"},{"name":"CountryLink"},{"name":"PropertyLink"},{"name":"StateLink"}]},{"kind":"INTERFACE","name":"FareModule","possibleTypes":[{"name":"FareModuleAggregationGroupRoute"},{"name":"FareModuleHistogram"}]},{"kind":"INTERFACE","name":"LanguageToggle","possibleTypes":[{"name":"CountryToggleSelector"},{"name":"EmptyToggleSelector"},{"name":"LanguageToggleSelector"}]}]}}'),f=n(27057);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const _={CityLink:{keyFields:["url","name"]},CountryLink:{keyFields:["url","name"]},CmpConfig:{keyFields:["cmpConfig",["cmp"]]},Query:{fields:{standardFareModule:{keyArgs:["id"]}
409,sfmHospitality:{keyArgs:["id"]},pageContext:{keyArgs:["page",["tenant","siteEdition","slug"]]},weather:{keyArgs:["page",["tenant","siteEdition","slug"]]},promoWidget:{keyArgs:["id"]},layout:{keyArgs:["page",["tenant","siteEdition","slug"]]},dpaHeadline:{keyArgs:["id"]},dpaVacations:{keyArgs:["id"]}}},StandardFareModule:{keyFields:["id"],fields:{fares:{keyArgs:!1,merge(e=[],t,{args:{pageNumber:n,limit:r,urlParameters:o,nearestOriginAirport:i}}){if(!(0,f.Qr)(o)&&1===n||!(0,f.Qr)(i)&&1===n)return t;const a=(n-1)*r,s=e?e.slice(0):[];for(let u=0;u<=t.length-1;u++)s[a+u]=t[u];return s}}}},SFMHospitality:{keyFields:["id"],fields:{rates:{keyArgs:!1,merge:(e=[],t,{args:{pageNumber:n}})=>1===n?[...t]:[...e,...t]}}},DpaVacations:{keyFields:["id"],fields:{rates:{keyArgs:!1,merge:(e=[],t,{args:{pageNumber:n,limit:r,urlParameters:o}})=>(0,f.Qr)(o)||1!==n?1===n?[...t]:[...e,...t]:t}}},PromoWidget:{keyFields:["id"],fields:{offers:{keyArgs:!1,read(e,{args:{offset:t=0,limit:n=10}={}}){const r=t+n,o=e&&e.slice(t,r);if(o&&o.length>0)return o},merge(e=[],t=[],{args:{offset:n=0,limit:r=10}={}}){const o=e?e.slice(0):[],i=n+Math.min(r,null===t||void 0===t?void 0:t.length);for(let a=n;a<i;++a)o[a]=t[a-n];return o}}}}},h={};
409m.J.V.forEach((e=>{e.possibleTypes&&(h[e.name]=e.possibleTypes.map((e=>e.name)))}));const b=(e={})=>new d.h({possibleTypes:h,typePolicies:_}).restore(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e));var P=n(11585),k=n(35944),O=n(34155);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const w=new o.i(((e,t)=>(O.env.DEBUG,t(e).map((e=>e))))),$=(0,c.q)((({graphQLErrors:e,networkError:t})=>{e&&e.forEach((({message:e,locations:t,path:n})=>console.error(`[GraphQL error]: Message: ${e}, Location: ${t}, Path: ${n}`))),t&&console.error(`[Network error]: ${t}`)})),S=new o.i(((e,t)=>{let n;O.env.DEVELOPMENT_JWT?n=O.env.DEVELOPMENT_JWT:n=(0,P.LP)();if(n){const t=e.getContext().headers||{};e.setContext({headers:C(C({},t),{},{authorization:`Bearer ${n}`})})}return t(e)}));var T=({page:e,resolvers:t,typeDefs:n})=>l()((({initialState:e,ctx:r})=>new i.f({ssrMode:!1,link:o.i.from([new o.i(((e,t)=>(r&&e.setContext({ctx:r}),t(e)))),S,w,$,new u.W({delay:{initial:300,max:2e4,jitter:!0},attempts:{max:2}}),new s.A({credentials:"same-origin",uri:"https://vg-api.airtrfx.com/graphql",useGETForQueries:!1,batchMax:20,batchInterval:30})]),cache:b(e),typeDefs:n,resolvers:t})),{render:({Page:e,props:t})=>(0,k.tZ)(a.e,{client:t.apollo,children:(0,k.tZ)(e,C({},t))}),getDataFromTree:g.J})(e)},11585:function(e,t,n){n.d(t,{LP:function(){return a},o4:function(){return s},W2:function(){return u}});let r=null,o=null;function i(){o&&(clearTimeout(o),o=null)}const a=()=>r,s=e=>(r=e,e&&function(){i();const e=parseInt(720);o=setTimeout((()=>{window.location.reload()}),60*(e-1)*1e3)}(),e),u=e=>e&&e.query?e.query.jwt:null}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.