1"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[409],{J2Jz(e,t,i){i.d(t,{A:()=>E});var n=i("f0Wu"),a=i.n(n),o=i("17x9"),r=i.n(o),s=i("q1tI"),l=i("R9gW"),d=i("1rrs"),c=i("2OET"),p=i("sYBo"),m=i("iyQ/"),h=i("s5b1"),u=i("TEHa"),y=i("ZIaf"),g=i("ofNd"),f=i("4WQX"),D=i("1xF0"),x=i("bC0J"),w=i("90FR");const Caption=e=>{const t=(0,D.c)(5),i=e.date,n=e.formatMessage;let o;t[0]!==i||t[1]!==n?(o=i?a()(i).format(w.rM):n(y.dv.empty),t[0]=i,t[1]=n,t[2]=o):o=t[2];const r=o;let l;return t[3]!==r?(l=s.createElement("div",{className:"DayPicker-Caption"},s.createElement("span",{className:"DayPicker-Caption--text"},r)),t[3]=r,t[4]=l):l=t[4],l},Weekday=e=>{const t=(0,D.c)(11),i=e.weekday,n=e.className,a=e.localeUtils,o=e.locale;let r,l,d,c;if(t[0]!==n||t[1]!==o||t[2]!==a||t[3]!==i){const e=a.formatWeekdayLong(i,o);r=n,l=e,d=e.slice(0,1),t[0]=n,t[1]=o,t[2]=a,t[3]=i,t[4]=r,t[5]=l,t[6]=d}else r=t[4],l=t[5],d=t[6];return t[7]!==r||t[8]!==l||t[9]!==d?(c=s.createElement("div",{className:r,title:l},d),t[7]=r,t[8]=l,t[9]=d,t[10]=c):c=t[10],c},P=(0,m.default)(g.A).withConfig({componentId:"sc-12do8ll-0"})(["transform:rotate(",");"," "," ",";"],e=>e.prev?"90deg":"-90deg",e=>e.prev&&"\n left: 18px;\n ",e=>e.next&&"\n right: 18px;\n ",e=>e.disabled&&"\n display: none;\n "),Navbar=e=>{const t=(0,D.c)(14),i=e.onPreviousClick,n=e.onNextClick,a=e.className,o=e.showNextButton,r=!e.showPreviousButton,l=!o;let d,c,p,m,h;return t[0]!==i?(d=e=>(e.stopPropagation(),i()),t[0]=i,t[1]=d):d=t[1],t[2]!==r||t[3]!==d?(c=s.createElement(P,{icon:g.Z.ARROW_DOWN,iconWidth:"12px",iconHeight:"12px",prev:!0,disabled:r,"data-qa":"day-picker-navbar-prev",className:"DayPicker-NavButton DayPicker-NavButton--prev",onClick:d}),t[2]=r,t[3]=d,t[4]=c):c=t[4],t[5]!==n?(p=e=>(e.stopPropagation(),n()),t[5]=n,t[6]=p):p=t[6],t[7]!==l||t[8]!==p?(m=s.createElement(P,{icon:g.Z.ARROW_DOWN,iconWidth:"12px",iconHeight:"12px",next:!0,disabled:l,"data-qa":"day-picker-navbar-next",className:"DayPicker-NavButton DayPicker-NavButton--next",onClick:p}),t[7]=l,t[8]=p,t[9]=m):m=t[9],t[10]!==a||t[11]!==c||t[12]!==m?(h=s.createElement("div",{className:a},c,m),t[10]=a,t[11]=c,t[12]=m,t[13]=h):h=t[13],h},backgroundColor=e=>"availabilitySearchControlBar"===e.custom?(0,x.themeGet)("colors.neutral.70"):(0,x.themeGet)("colors.orange.50"),b=m.createGlobalStyle` 2 /* DayPicker styles */ 3 4 .DayPicker { 5 display: flex; 6 flex-wrap: wrap; 7 justify-content: center; 8 position: relative; 9 padding: 16px 0 0; 10 user-select: none; 11 overflow: hidden; 12 width: 100%; 13 } 14 15 .DayPicker:focus { 16 outline: 0; 17 } 18 19 .DayPicker-wrapper { 20 width: 100%; 21 } 22 23 .DayPicker-wrapper:focus { 24 outline: none; 25 } 26 27 .DayPicker-Month { 28 display: table; 29 border-collapse: collapse; 30 border-spacing: 0; 31 user-select: none; 32 width: 100%; 33 margin: 0; 34 margin-top: 35px; 35 } 36 37 .DayPicker-NavBar { 38 position: absolute; 39 left: 0; 40 right: 0; 41 padding: 0 8px; 42 } 43 44 .DayPicker-NavButton { 45 position: absolute; 46 top: 0; 47 margin-top: -4px; 48 width: 12px; 49 height: 30px; 50 opacity: .5; 51 cursor: pointer; 52 } 53 54 .DayPicker-Caption { 55 position: absolute; 56 top: 16px; 57 width: 100%; 58 height: 30px; 59 margin-bottom: 7px; 60 text-align: center; 61 font-size: 14px; 62 font-weight: 500; 63 line-height: 24px; 64 color: #212121; 65 overflow: hidden; 66 z-index: -1; 67 } 68 69 .DayPicker-Caption--text { 70 display: inline-block; 71 } 72 73 .DayPicker-Weekdays { 74 display: table-header-group; 75 } 76 77 .DayPicker-WeekdaysRow { 78 display: table-row; 79 } 80 81 .DayPicker-Weekday { 82 display: table-cell; 83 padding: 8px; 84 font-size: 12px; 85 text-align: center; 86 color: #bdbdbd; 87 text-transform: uppercase; 88 font-weight: 400; 89 } 90 91 .DayPicker-Body { 92 display: table-row-group; 93 } 94 95 .DayPicker-Week { 96 display: table-row; 97 height: 41px; 98 } 99 100 .DayPicker-Day { 101 position: relative; 102 display: table-cell; 103 width: calc(100% / 7); 104 height: 40px; 105 min-width: 40px; 106 font-size: 12px; 107 font-weight: 400; 108 text-align: center; 109 cursor: pointer; 110 vertical-align: middle; 111 outline: none; 112 z-index: 1; 113 } 114 115 .DayPicker-Day::after { 116 content: ''; 117 position: absolute; 118 width: 40px; 119 height: 40px; 120 top: 0; 121 left: calc((100% - 40px) / 2); 122 background-color: #f5f5f5; 123 border-radius: 50%; 124 z-index: -1; 125 opacity: 0; 126 } 127 128 @media (min-width: 1024px) and (max-width: 1239px) { 129 .DayPicker-Week { 130 height: 36px; 131 } 132 133 .DayPicker-Day { 134 min-width: 0; 135 height: 35px; 136 } 137 138 .DayPicker-Day::after { 139 width: 35px; 140 height: 35px; 141 left: calc((100% - 35px) / 2); 142 } 143 144 .DayPicker-NavButton--prev { 145 left: 12px; 146 } 147 148 .DayPicker-NavButton--next { 149 right: 12px; 150 } 151 } 152 153 .DayPicker-Day:hover { 154 background-color: transparent; 155 } 156 157 .DayPicker-Day:hover::after { 158 opacity: 1; 159 transform: scale(1); 160 transition: background .2s ease-in-out, transform 0s; 161 } 162 163 .DayPicker--interactionDisabled .DayPicker-Day { 164 cursor: default; 165 } 166 167 /* Default modifiers */ 168 169 .DayPicker-Day--today { 170 color: ${backgroundColor}; 171 background-color: transparent; 172 } 173 174 .DayPicker-Day--selected { 175 color: #fff; 176 background-color: transparent; 177 transition: color .2s ease-in-out; 178 } 179 180 .DayPicker-Day--selected:not(.DayPicker-Day--outside)::after { 181 opacity: 1; 182 background-color: ${backgroundColor}; 183 animation: scaleFromCenter .2s; 184 transform-origin: center; 185 } 186 187 .DayPicker-Day--disabled { 188 color: #dce0e0; 189 cursor: default; 190 pointer-events: none; 191 } 192 193 .DayPicker-Day--outside { 194 pointer-events: none; 195 } 196 197 @keyframes scaleFromCenter { 198 from { 199 transform: scale(0); 200 } 201 to { 202 transform: scale(1); 203 } 204 } 205 206 /* Example modifiers */ 207 208 .DayPicker-Day--sunday { 209 background-color: #f7f8f8; 210 } 211 212 .DayPicker-Day--sunday:not(.DayPicker-Day--today) { 213 color: #dce0e0; 214 } 215`,k=m.createGlobalStyle` 216 /* Step 1: Slide body & caption elements out of sight */ 217 .DayPickerAnimation-Step1--FromRight .DayPicker-Body { 218 transform: translateX(-200px); transition: transform 400ms; 219 } 220 .DayPickerAnimation-Step1--FromLeft .DayPicker-Body {
221 transform: translateX(200px); transition: transform 400ms; 222 } 223 .DayPickerAnimation-Step1--FromRight .DayPicker-Caption--text { 224 transform: translateY(-80px); transition: transform 200ms; 225 } 226 .DayPickerAnimation-Step1--FromLeft .DayPicker-Caption--text { 227 transform: translateY(80px); transition: transform 200ms; 228 } 229 230 /* Step 2: After body moved out: 231 * Move elements to the other side - without animation 232 */ 233 .DayPickerAnimation-Step2--FromRight .DayPicker-Body { 234 transform: translateX(20px); 235 } 236 .DayPickerAnimation-Step2--FromLeft .DayPicker-Body { 237 transform: translateX(-20px); 238 } 239 .DayPickerAnimation-Step2--FromRight .DayPicker-Caption--text { 240 transform: translateY(80px); 241 } 242 .DayPickerAnimation-Step2--FromLeft .DayPicker-Caption--text { 243 transform: translateY(-80px); 244 } 245 246 /* Step 3: Quickly slide body and caption back in */ 247 .DayPickerAnimation-Step3--FromRight .DayPicker-Body, 248 .DayPickerAnimation-Step3--FromLeft .DayPicker-Body { 249 transform: translateX(0); transition: transform 400ms; 250 } 251 .DayPickerAnimation-Step3--FromRight .DayPicker-Caption--text, 252 .DayPickerAnimation-Step3--FromLeft .DayPicker-Caption--text { 253 transform: translateY(0); transition: transform 200ms; 254 } 255`,v=["date","className","formattedMessages","selectedDateFormat","datePickerMonth","dateFormat","intl","dropDown
255Height","innerDropDownSidePadding","searchWithAvailability","custom","timezone","toggleRef","onToggle"];function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},_extends.apply(null,arguments)}function _objectWithoutProperties(e,t){if(null==e)return{};var i,n,a=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)i=o[n],-1===t.indexOf(i)&&{}.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var i={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;i[n]=e[n]}return i}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}const S=new Date,C=m.default.div.withConfig({componentId:"zfg9f1-0"})(["width:100%;"]),getAnimationBEM=(e,t)=>`DayPickerAnimation-Step${e}--From${t?"Right":"Left"} `;class _ extends s.Component{constructor(){super(...arguments),_defineProperty(this,"state",{currentlyShownDate:(0,u.Ru)(S,this.props.timezone),animationClassName:getAnimationBEM(3)}),_defineProperty(this,"monthChanged",e=>{const t=this.state.currentlyShownDate,i=a()(e).isAfter(t,"month");a()(e).isSame(t,"month")||this.animateDatepicker(i),this.setState({currentlyShownDate:e}),this.props.monthChanged(e)}),_defineProperty(this,"animateDatepicker",e=>{clearTimeout(this.animationTimeout),this.setState({animationClassName:getAnimationBEM(1,e)}),this.animationTimeout=setTimeout(()=>{this.setState({animationClassName:getAnimationBEM(2,e)}),this.animationTimeout=setTimeout(()=>{this.setState({animationClassName:getAnimationBEM(3,e)})},30)},100)})}render(){const e=this.props,t=e.date,i=e.className,n=e.formattedMessages,o=e.selectedDateFormat,r=e.datePickerMonth,c=e.dateFormat,p=e.intl,m=p.formatMessage,D=p.locale,x=e.dropDownHeight,w=e.innerDropDownSidePadding,P=e.searchWithAvailability,S=e.custom,_=e.timezone,E=e.toggleRef,N=e.onToggle,A=_objectWithoutProperties(e,v),R=this.state.animationClassName;function valentinesDayMiddleware(e){return function(){return this.isSame(a()("2020-02-14"),"day")?`[${m(y.dv.valentines)}] (${c})`:e}}const B={sameDay:valentinesDayMiddleware(`[${m(y.dv.today)}] (dddd)`),nextDay:valentinesDayMiddleware(`[${m(y.dv.tomorrow)}] (dddd)`),lastDay:valentinesDayMiddleware(`[${m(y.dv.yesterday)}]`),lastWeek:valentinesDayMiddleware(`[${m(y.dv.last)}] dddd`),nextWeek:valentinesDayMiddleware(`dddd (${c})`),sameElse:valentinesDayMiddleware(c)};let O=m(y.dv.empty);return t&&n?O=a()((0,u.Ru)(t,_)).calendar(null,B):t&&P&&(O=a()(t).format(o)),s.createElement(C,{className:[R,"widget-date-picker-wrapper"].join(" ")},s.createElement(f.A,{className:i,icon:g.Z.CALENDAR,textValue:O,dataQa:"widget-date-picker",dropDownHeight:x,innerDropDownSidePadding:w,custom:S,toggleRef:E,onToggle:N},s.createElement(k,null),s.createElement(b,{custom:S}),s.createElement(l.Ay,_extends({captionElement:s.createElement(Caption,{date:t,formatMessage:m}),weekdayElement:s.createElement(Weekday,null),navbarElement:s.createElement(Navbar,null),renderDay:e=>{const i=_?a().utc(e).tz(_).format("DD"):e.getDate();return e.getDate()===(null==t?void 0:t.getDate())&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()?s.createElement("span",{"data-qa":"day-picker-selected-day"},i):i},selectedDays:a()(P?t:(0,u.Ru)(t,_)).toDate(),onMonthChange:this.monthChanged,month:r,locale:(0,h.pY)(D),localeUtils:d.default,firstDayOfWeek:1},A))))}}_.propTypes={intl:r().object,date:r().any,className:r().string,monthChanged:r().func,formattedMessages:r().bool,selectedDateFormat:r().str
255ing,dateFormat:r().string.isRequired,innerDropDownSidePadding:r().string,datePickerMonth:r().instanceOf(Date),dropDownHeight:r().string.isRequired,custom:r().string,searchWithAvailability:r().bool,toggleRef:r().func,onToggle:r().func,timezone:r().string},_.defaultProps={monthChanged:()=>{},selectedDateFormat:"",formattedMessages:!0,innerDropDownSidePadding:"",custom:"",searchWithAvailability:!1};const E=(0,p.Zz)(c.Ay,m.withTheme)(_)},"4WQX"(e,t,i){i("p8tg");var n=i("bC0J"),a=i("17x9"),o=i.n(a),r=i("q1tI"),s=i("iyQ/"),l=i("Se6f"),d=(i("90FR"),i("1Kwn")),c=i("MHun"),p=i("ZR15"),m=i("ofNd");function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(0,n.themeGet)("colors.text.interactive");const h=s.default.div.withConfig({componentId:"mx6ydz-0"})(["position:relative;width:100%;height:",";",";"],e=>e.dropDownHeight,e=>"availabilitySearchControlBar"===e.custom&&"\n &::after {\n position: absolute;\n right: 0;\n top: 4px;\n content: '';\n border-right: 1px solid #eee;\n height: calc(100% - 8px);\n }\n "),u=s.default.div.withConfig({componentId:"mx6ydz-1"})(["position:absolute;left:",";width:",";background-color:",";box-shadow:none;z-index:0;border-radius:",";overflow:hidden;transition:max-height 0.5s ease;display:flex;flex-direction:column;justify-content:center;align-items:center;",";",";"],e=>e.innerDropDownSidePadding?`calc(-${e.innerDropDownSidePadding} / 2)`:"-1px",e=>e.innerDropDownSidePadding?`calc(100% + ${e.innerDropDownSidePadding})`:"100%",e=>e.isOpen?(0,n.themeGet)("colors.background.default"):"transparent",e=>"availabilitySearchControlBar"===e.custom?"6px":"2px",e=>e.isOpen&&`\n max-height: 420px;\n min-width: 233px;\n z-index: 30;\n box-shadow: ${(0,n.themeGet)("elevations.2")(e)};\n `,e=>"availabilitySearchControlBar"===e.custom&&"\n padding: 0 16px;\n "),y=s.default.div.withConfig({componentId:"mx6ydz-2"})(["user-select:none;width:",";height:",";display:flex;align-items:",";z-index:28;"," @media ","{height:",";}"],e=>e.innerDropDownSidePadding?`calc(100% - ${e.innerDropDownSidePadding})`:"100%",e=>e.dropDownHeight,e=>"availabilitySearchControlBar"===e.custom?"center":"flex-start",e=>!e.isDisabled&&"\n &:hover {\n cursor: pointer;\n }\n ",d.ND.OVER_1024,e=>e.dropDownHeight),g=(0,s.css)([""," "," "," ",";"],e=>"availabilitySearchControlBar"===e.custom?"0":"20px",e=>e.innerDropDownSidePadding?`calc(${e.innerDropDownSidePadding} / 2)`:"0",e=>e.isOpen?"16px":0,e=>e.innerDropDownSidePadding?`calc(${e.innerDropDownSidePadding} / 2)`:"0"),f=s.default.div.withConfig({componentId:"mx6ydz-3"})(["position:relative;display:",";flex-wrap:wrap;padding:",";user-select:none;",""],e=>e.isOpen?"flex":"none",g,e=>e.scrollable&&(0,s.css)(["overflow-y:auto;max-height:",";"],"355px")),D=s.default.div.withConfig({componentId:"mx6ydz-4"})(["color:",";font-weight:bold;font-size:",";flex-grow:1;"],e=>"availabilitySearchControlBar"===e.custom?(0,n.themeGet)("colors.text.default")(e):e.isDisabled?"#919191":(0,n.themeGet)("colors.orange.50"),e=>"availabilitySearchControlBar"===e.custom?"14px":"16px"),x=s.default.div.withConfig({componentId:"mx6ydz-5"})(["position:relative;display:flex;flex-basis:100%;align-items:center;justify-content:space-between;height:100%;margin-left:",";&::after{position:absolute;bottom:10px;left:0;content:'';width:100%;border-bottom:",";}"],e=>"availabilitySearchControlBar"===e.custom?"8px":"20px",e=>"availabilitySearchControlBar"===e.custom?"none":`1px solid ${(0,n.themeGet)("colors.border.default")}`),w=(0,s.default)(m.A).withConfig({componentId:"mx6ydz-6"})(["transition:transform 0.2s ease-in-out;",";",";"],e=>e.isOpen&&"\n transform: rotate(180deg);\n ",e=>"availabilitySearchControlBar"===e.custom&&"display: none");class P extends r.Component{constructor(e){super(e),_defineProperty(this,"toggle",(e,t)=>{this.setState(e=>{var i,n;const a=[!0,!1].includes(t)?t:!e.open;return null===(i=(n=this.props).onToggle)||void 0===i||i.call(n,a),{open:a}})}),_defineProperty(this,"_handleDocumentClick",e=>{const t=this.widgetDropdownRef.current;t===e.target||t.contains(e.target)||this.toggle(e,!1)}),_defineProperty(this,"_handleEscape",e=>{e.keyCode&&e.keyCode===p.J.ESCAPE&&this.toggle(e,!1)}),_defineProperty(this,"calculateDropdownHeight",()=>{this.__inner&&this.__dropdownBody&&this.props.callbackParent(this.state.open)}),this.state={open:!1},this.widgetDropdownRef=r.createRef()}componentDidMount(){var e,t;this.calculateDropdownHeight(),null===(e=(t=this.props).toggleRef)||void 0===e||e.call(t,this.toggle)}componentDidUpdate(e,t){e.textValue!==this.props.textValue&&setTimeout(this.toggle,200,null,!1);const i=this.state.open;i!==t.open&&i&&(this.calculateDropdownHeight(),this.props.callbackParent(i))}shouldComponentUpdate(e,t){return e.textValue!==this.props.textValue||t.open!==this.state.open||e.isDisabled!==this.props.isDisabled}render(){const e=this.props,t=e.icon,i=e.fill,n=e.textValue,a=e.children,o=e.dataQa,s=e.className,d=e.isDisabled,p=e.dropDown
255Height,g=e.innerDropDownSidePadding,P=e.custom,b=e.scrollable,k=this.state.open;return r.createElement(h,{className:s,dropDownHeight:p,innerDropDownSidePadding:g,custom:P,ref:this.widgetDropdownRef},this.state.open&&r.createElement(l.A,{keydown:this._handleEscape,touchend:(0,c.uR)()&&this._handleDocumentClick,click:!(0,c.uR)()&&this._handleDocumentClick,resize:this.calculateDropdownHeight}),r.createElement(u,{ref:e=>this.__inner=e,isOpen:k,innerDropDownSidePadding:this.props.innerDropDownSidePadding,custom:P},r.createElement(y,{isDisabled:d,onClick:()=>{d||this.toggle()},"data-qa":o,dropDownHeight:this.props.dropDownHeight,innerDropDownSidePadding:this.props.innerDropDownSidePadding,custom:P},r.createElement(m.A,{icon:t,iconFill:i,iconColor:"#919191",iconWidth:"availabilitySearchControlBar"===P?"16px":"24px",iconHeight:"100%"}),r.createElement(x,{custom:P},r.createElement(D,{isDisabled:d,custom:P,"data-qa":`${o}-selection`},n),!d&&r.createElement(w,{custom:P,icon:m.Z.ARROW_DOWN,iconWidth:"11px",iconHeight:"11px",isOpen:k,"data-qa":"widget-guest-icon-arrow-down"}))),!d&&r.createElement(f,{innerDropDownSidePadding:this.props.innerDropDownSidePadding,ref:e=>this.__dropdownBody=e,isOpen:k,"data-qa":`${o}-expanded`,custom:P,scrollable:b},a)))}}P.propTypes={icon:o().node.isRequired,children:o().node,textValue:o().string.isRequired,dataQa:o().string,callbackParent:o().func,className:o().string,isDisabled:o().bool,fill:o().string,dropDownHeight:o().string.isRequired,innerDropDownSidePadding:o().string,custom:o().string,scrollable:o().bool,onToggle:o().func,toggleRef:o().func},P.defaultProps={className:"",callbackParent:()=>{},isDisabled:!1,innerDropDownSidePadding:"",custom:"",dataQa:"widget-drop-down",scrollable:!1};const b=P;i.d(t,["A",0,b])}}]);
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.