stand_socotra_policy_transformer 3.0.6 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,6 @@ const { package_version } = require("../src/index");
2
2
 
3
3
  describe("Version", () => {
4
4
  test('Prints current version', () => {
5
- expect(package_version).toBe("3.0.6")
5
+ expect(package_version).toBe("3.0.8")
6
6
  });
7
7
  });
@@ -0,0 +1,230 @@
1
+ const { SocotraEntry, SocotraGroupEntry } = require("../../src/retool_utils/socotra_structure_helper");
2
+ const { load_payload } = require("../__utils__/load_payload");
3
+
4
+ describe("socotraGroupEntry update operations for exposure.dwelling.fields.group", () => {
5
+ // Define schemas at the test suite level
6
+ let socotra_schema;
7
+ let retool_schema;
8
+ let sge;
9
+
10
+ beforeEach(() => {
11
+ // Initialize fresh instances before each test to prevent cross-contamination
12
+ socotra_schema = {
13
+ type: ":type",
14
+ name: ":name",
15
+ street_address: ":street_address",
16
+ street_address2: ":street_address2",
17
+ city: ":city",
18
+ state: ":state",
19
+ zip: ":zip",
20
+ description: ":description",
21
+ loan_number: ":loan_number"
22
+ };
23
+
24
+ retool_schema = {
25
+ zip: ":zip",
26
+ street_address: ":street_address",
27
+ loan_number: ":loan_number",
28
+ city: ":city",
29
+ street_address2: ":street_address2",
30
+ state: ":state",
31
+ type: ":type"
32
+ };
33
+
34
+ // Initialize with exposure.dwelling.fields.group instead of policy.fields.group
35
+ sge = new SocotraGroupEntry("additional_insured_data.additionalInterest", "additional_insured", "exposure.dwelling.fields.group", socotra_schema, retool_schema);
36
+ });
37
+
38
+ test('Add field groups - should add new field groups to the template for exposure', () => {
39
+ // Create an update template with exposures
40
+ let template = SocotraEntry.socotra_create_update_template("exposure_locator");
41
+ template.updateExposures = [{}];
42
+
43
+ // Create a payload with addFieldGroups
44
+ let retool_payload = {
45
+ additional_insured_data: {
46
+ "additionalInterest": [
47
+ {
48
+ "zip": "94104",
49
+ "street_address": "548 Market Street",
50
+ "loan_number": "1231312",
51
+ "city": "San Francisco",
52
+ "street_address2": "PMB 70879",
53
+ "state": "California",
54
+ "type": "Mortgagee"
55
+ }
56
+ ]
57
+ }
58
+ };
59
+
60
+ // Call the method to test
61
+ sge.socotra_update(retool_payload, template);
62
+
63
+ // Verify that updateExposures[0].addFieldGroups is populated correctly
64
+ expect(template.updateExposures[0].addFieldGroups).toBeDefined();
65
+ expect(template.updateExposures[0].addFieldGroups.length).toBe(1);
66
+ expect(template.updateExposures[0].addFieldGroups[0]).toEqual({
67
+ fieldName: "additional_insured",
68
+ fieldValues: {
69
+ type: "Mortgagee",
70
+ street_address: "548 Market Street",
71
+ street_address2: "PMB 70879",
72
+ city: "San Francisco",
73
+ state: "California",
74
+ zip: "94104",
75
+ loan_number: "1231312"
76
+ }
77
+ });
78
+ });
79
+
80
+ test('Remove field groups - should remove field groups from the template for exposure', () => {
81
+ // Create an update template with exposures
82
+ let template = SocotraEntry.socotra_create_update_template("exposure_locator");
83
+ template.updateExposures = [{}];
84
+
85
+ // Create a payload with removeFieldGroups
86
+ let retool_payload = {
87
+ additional_insured_data: {
88
+ "additionalInterest": [
89
+ {
90
+ "locator": "fg-123",
91
+ "remove": true
92
+ },
93
+ {
94
+ "locator": "fg-456",
95
+ "remove": true
96
+ }
97
+ ]
98
+ }
99
+ };
100
+
101
+ // Call the method to test
102
+ sge.socotra_update(retool_payload, template);
103
+
104
+ // Verify that updateExposures[0].removeFieldGroups is populated correctly
105
+ expect(template.updateExposures[0].removeFieldGroups).toBeDefined();
106
+ expect(template.updateExposures[0].removeFieldGroups.length).toBe(2);
107
+ expect(template.updateExposures[0].removeFieldGroups).toContain("fg-123");
108
+ expect(template.updateExposures[0].removeFieldGroups).toContain("fg-456");
109
+ });
110
+
111
+ test('With old_payload - should remove entities only in old payload for exposure', () => {
112
+ // Create an update template with exposures
113
+ let template = SocotraEntry.socotra_create_update_template("exposure_locator");
114
+ template.updateExposures = [{}];
115
+
116
+ // Create a new payload with no items
117
+ let retool_payload = {
118
+ additional_insured_data: {
119
+ "additionalInterest": []
120
+ }
121
+ };
122
+
123
+ // Create an old payload with an item
124
+ let old_payload = {
125
+ additional_insured_data: {
126
+ "additionalInterest": [
127
+ {
128
+ "zip": "98107",
129
+ "street_address": "3430 NW 62nd st",
130
+ "city": "Seattle",
131
+ "state": "WA",
132
+ "type": "LLC as Additional Insured",
133
+ "socotra_field_locator": "fg-456"
134
+ }
135
+ ]
136
+ }
137
+ };
138
+
139
+ // Call the method to test
140
+ sge.socotra_update(retool_payload, template, old_payload);
141
+
142
+ // Verify that the old item is removed
143
+ expect(template.updateExposures[0].addFieldGroups).toBeUndefined();
144
+ expect(template.updateExposures[0].removeFieldGroups).toBeDefined();
145
+ expect(template.updateExposures[0].removeFieldGroups.length).toBe(1);
146
+ expect(template.updateExposures[0].removeFieldGroups).toContain("fg-456");
147
+ });
148
+
149
+ test('With old_payload - should handle mixed scenarios for exposure', () => {
150
+ // Create an update template with exposures
151
+ let template = SocotraEntry.socotra_create_update_template("exposure_locator");
152
+ template.updateExposures = [{}];
153
+
154
+ // Create a new payload with mixed items (one match, one new)
155
+ let retool_payload = {
156
+ additional_insured_data: {
157
+ "additionalInterest": [
158
+ // This item matches an item in old_payload
159
+ {
160
+ "zip": "98107",
161
+ "street_address": "3430 NW 62nd st",
162
+ "city": "Seattle",
163
+ "state": "WA",
164
+ "type": "LLC as Additional Insured"
165
+ },
166
+ // This is a new item
167
+ {
168
+ "zip": "94104",
169
+ "street_address": "New Address",
170
+ "loan_number": "1231312",
171
+ "city": "San Francisco",
172
+ "street_address2": "PMB 70879",
173
+ "state": "California",
174
+ "type": "Mortgagee"
175
+ }
176
+ ]
177
+ }
178
+ };
179
+
180
+ // Create an old payload with mixed items (one match, one to be removed)
181
+ let old_payload = {
182
+ additional_insured_data: {
183
+ "additionalInterest": [
184
+ // This item matches an item in retool_payload
185
+ {
186
+ "zip": "98107",
187
+ "street_address": "3430 NW 62nd st",
188
+ "city": "Seattle",
189
+ "state": "WA",
190
+ "type": "LLC as Additional Insured",
191
+ "socotra_field_locator": "fg-456"
192
+ },
193
+ // This item is only in old_payload
194
+ {
195
+ "zip": "94104",
196
+ "street_address": "548 Market Street",
197
+ "loan_number": "8200867399",
198
+ "city": "San Francisco",
199
+ "street_address2": "PMB 70879",
200
+ "state": "California",
201
+ "type": "Mortgagee",
202
+ "socotra_field_locator": "fg-123"
203
+ }
204
+ ]
205
+ }
206
+ };
207
+
208
+ // Call the method to test
209
+ sge.socotra_update(retool_payload, template, old_payload);
210
+
211
+ // Verify that the new item is added and the old item is removed
212
+ expect(template.updateExposures[0].addFieldGroups).toBeDefined();
213
+ expect(template.updateExposures[0].addFieldGroups.length).toBe(1);
214
+ expect(template.updateExposures[0].addFieldGroups[0]).toEqual({
215
+ fieldName: "additional_insured",
216
+ fieldValues: {
217
+ type: "Mortgagee",
218
+ street_address: "New Address",
219
+ street_address2: "PMB 70879",
220
+ city: "San Francisco",
221
+ state: "California",
222
+ zip: "94104",
223
+ loan_number: "1231312"
224
+ }
225
+ });
226
+ expect(template.updateExposures[0].removeFieldGroups).toBeDefined();
227
+ expect(template.updateExposures[0].removeFieldGroups.length).toBe(1);
228
+ expect(template.updateExposures[0].removeFieldGroups).toContain("fg-123");
229
+ });
230
+ });
@@ -209,6 +209,7 @@ describe("Update Socotra Quote", () => {
209
209
 
210
210
  expect(res.payload.updateExposures[0]).toHaveProperty("addFieldGroups")
211
211
  expect(res.payload.updateExposures[0]).not.toHaveProperty("removeFieldGroups")
212
+ expect(res.payload.updateExposures[0].fieldValues.has_any_claim_history).toBe('Yes')
212
213
  expect(res.error_message).toBe("")
213
214
  expect(res.status).toBe("success")
214
215
  });
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.stand_underwriter=t():e.stand_underwriter=t()}(this,(()=>{return e={10:e=>{e.exports={is_vacant:function(e){return"No"===e?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home is vacant"}:{decision:"reject",note:"Vacant must be yes or no"}},under_renovation:function(e){return"No"===e?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home is under renovation"}:{decision:"reject",note:"Under renovation must be yes or no"}},plumbing_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Plumbing input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-30,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Plumbing must have been updated in the last 30 years"}):{decision:"reject",note:"Plumbing year must be an integer"}},water_heater_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Water heater input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-10,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Water heater must have been updated in the last 10 years"}):{decision:"reject",note:"Water heater year must be an integer"}},electrical_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Electrical input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-30,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Electrical must have been updated in the last 30 years"}):{decision:"reject",note:"Electrical year must be an integer"}},home_heating_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Home heating input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-30,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Home heating must have been updated in the last 30 years"}):{decision:"reject",note:"Home heating year must be an integer"}},heating_source:function(e){return heating_type_enum=["central gas heat","thermostatically controlled electrical heat","wood","coal","pellet stove"],"string"!=typeof e?{decision:"reject",note:"Home heating year must be a string"}:heating_type_enum.includes(e)?["wood","coal","pellet stove"].includes(e)?{decision:"refer",note:null}:{decision:"accept",note:null}:{decision:"reject",note:"Heat source must be in [central gas heat, thermostatically controlled electrical heat, wood, coal, pellet stove]"}},has_underground_fuel_tank:function(e){return"No"===e?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home has underground fuel tank"}:{decision:"reject",note:"Underground fuel tank must be yes or no"}},has_steel_braided_hose:function(e){return"Yes"===e?{decision:"accept",note:null}:"No"===e?{decision:"refer",note:null}:{decision:"reject",note:"Steel braided hose must be yes or no"}},has_water_shutoff:function(e){return"Yes"===e?{decision:"accept",note:null}:"No"===e?{decision:"refer",note:null}:{decision:"reject",note:"Water shutoff must be yes or no"}},has_circuit_breaker:function(e,t){return"No"===e||t>=1980?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home built before 1980 cannot have circuit breakers"}:{decision:"reject",note:"Circuit breaker must be yes or no"}}}},44:(e,t,i)=>{const{underwrite:s,knockout_names:n}=i(273),{SocotraPayloadConverter:r}=i(991),{entries_v1:o}=i(401),{entries_v2:a}=i(540),{entries_v3:l}=i(271),{version:c}=i(330),u={1:new r(o),2:new r(a),3:new r(l)};e.exports={underwrite:s,knockout_names:n,transformer_hash:u,package_version:c}},66:e=>{e.exports={multi_family_unit_count:function(e){return Number.isInteger(e)?e>2?{decision:"reject",note:"We only allow homes with two units or less."}:e<=0?{decision:"reject",note:"Number of units must be greater than 0"}:{decision:"accept",note:null}:{decision:"reject",note:"Number of units must be an integer"}},primary_dwelling_is_insured:function(e){return"No"==e?{decision:"refer",note:null}:"Yes"==e?{decision:"accept",note:null}:{decision:"reject",note:"Primary dwelling insured value must be in ['yes', 'no']"}},full_replacement_value:function(e){return Number.isInteger(e)?e>6e6?{decision:"refer",note:null}:e<2e6?{decision:"reject",note:"We only insure homes greater than $1M"}:{decision:"accept",note:null}:{decision:"reject",note:"Full replacement value must be an integer"}},prior_carrier:function(e){return""===e?{decision:"refer",note:null}:"string"==typeof e?{decision:"accept",note:null}:{decision:"reject",note:"Prior Carrier Must be a string"}},occupation:function(e){return"string"!=typeof e?{decision:"reject",note:"Occupation must be a string"}:["Professional Athlete","Entertainer","Journalist"," Politician"].includes(e)?{decision:"refer",note:null}:{decision:"accept",note:null}}}},78:(e,t,i)=>{const{multi_family_unit_count:s,primary_dwelling_is_insured:n,full_replacement_value:r,prior_carrier:o,occupation:a}=i(66),{wf_variance:l,stand_wf_knockout:c}=i(575),{distance_to_coast:u,pool_features:d,farming_type:f,has_attractive_nuisance:p,degree_of_slope:m,flood_score:_}=i(752),{number_of_dogs:h,dog_history:y,dog_breeds:w,exotic_pets:g,number_of_mortgages:b,number_of_bankruptcies_judgements_or_liens:v,home_business_type:k,home_rental_type:x,same_address:S}=i(729),{is_vacant:N,under_renovation:O,plumbing_last_update_year:T,water_heater_last_update_year:F,electrical_last_update_year:I,home_heating_last_update_year:D,heating_source:j,has_underground_fuel_tank:E,has_steel_braided_hose:M,has_water_shutoff:V,has_circuit_breaker:C}=i(10),{construction_type:$,siding_material:W,protection_class:z,roof_material:L,foundation_type:Z,has_slab_foundation_plumbing:A,fire_protective_devices:q,theft_protective_devices:G,has_class_a_roof:Y}=i(479),{check_claims_history:H}=i(529),P={multi_family_unit_count:s,primary_dwelling_insured:n,full_replacement_value:r,prior_carrier:o,wf_variance:l,flood_score:_,distance_to_coast:u,pool_features:d,number_of_dogs:h,dog_history:y,dog_breeds:w,exotic_pets:g,farming_type:f,number_of_mortgages:b,number_of_bankruptcies_judgements_or_liens:v,is_vacant:N,under_renovation:O,plumbing_last_update_year:T,water_heater_last_update_year:F,electrical_last_update_year:I,home_heating_last_update_year:D,heating_source:j,has_underground_fuel_tank:E,has_steel_braided_hose:M,has_water_shutoff:V,home_business_type:k,has_attractive_nuisance:p,home_rental_type:x,degree_of_slope:m,construction_type:$,siding_material:W,protection_class:z,roof_material:L,foundation_type:Z,has_slab_foundation_plumbing:A,fire_protective_devices:q,theft_protective_devices:G,occupation:a};e.exports={knockout:function(e,t){return P.hasOwnProperty(e)?P[e](t):{decision:"question_not_found",note:null}},has_circuit_breaker:C,same_address:S,knockout_names:function(){return Object.keys(P)},stand_wf_knockout:c,has_class_a_roof:Y,check_claims_history:H}},169:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class i extends Error{}class s extends i{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class n extends i{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class r extends i{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class o extends i{}class a extends i{constructor(e){super(`Invalid unit ${e}`)}}class l extends i{}class c extends i{constructor(){super("Zone is an abstract class")}}const u="numeric",d="short",f="long",p={year:u,month:u,day:u},m={year:u,month:d,day:u},_={year:u,month:d,day:u,weekday:d},h={year:u,month:f,day:u},y={year:u,month:f,day:u,weekday:f},w={hour:u,minute:u},g={hour:u,minute:u,second:u},b={hour:u,minute:u,second:u,timeZoneName:d},v={hour:u,minute:u,second:u,timeZoneName:f},k={hour:u,minute:u,hourCycle:"h23"},x={hour:u,minute:u,second:u,hourCycle:"h23"},S={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:d},N={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:f},O={year:u,month:u,day:u,hour:u,minute:u},T={year:u,month:u,day:u,hour:u,minute:u,second:u},F={year:u,month:d,day:u,hour:u,minute:u},I={year:u,month:d,day:u,hour:u,minute:u,second:u},D={year:u,month:d,day:u,weekday:d,hour:u,minute:u},j={year:u,month:f,day:u,hour:u,minute:u,timeZoneName:d},E={year:u,month:f,day:u,hour:u,minute:u,second:u,timeZoneName:d},M={year:u,month:f,day:u,weekday:f,hour:u,minute:u,timeZoneName:f},V={year:u,month:f,day:u,weekday:f,hour:u,minute:u,second:u,timeZoneName:f};class C{get type(){throw new c}get name(){throw new c}get ianaName(){return this.name}get isUniversal(){throw new c}offsetName(e,t){throw new c}formatOffset(e,t){throw new c}offset(e){throw new c}equals(e){throw new c}get isValid(){throw new c}}let $=null;class W extends C{static get instance(){return null===$&&($=new W),$}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return st(e,t,i)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return"system"===e.type}get isValid(){return!0}}const z=new Map,L={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6},Z=new Map;class A extends C{static create(e){let t=Z.get(e);return void 0===t&&Z.set(e,t=new A(e)),t}static resetCache(){Z.clear(),z.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}}constructor(e){super(),this.zoneName=e,this.valid=A.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return st(e,t,i,this.name)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){if(!this.valid)return NaN;const t=new Date(e);if(isNaN(t))return NaN;const i=function(e){let t=z.get(e);return void 0===t&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),z.set(e,t)),t}(this.name);let[s,n,r,o,a,l,c]=i.formatToParts?function(e,t){const i=e.formatToParts(t),s=[];for(let e=0;e<i.length;e++){const{type:t,value:n}=i[e],r=L[t];"era"===t?s[r]=n:$e(r)||(s[r]=parseInt(n,10))}return s}(i,t):function(e,t){const i=e.format(t).replace(/\u200E/g,""),s=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(i),[,n,r,o,a,l,c,u]=s;return[o,n,r,a,l,c,u]}(i,t);"BC"===o&&(s=1-Math.abs(s));let u=+t;const d=u%1e3;return u-=d>=0?d:1e3+d,(Ke({year:s,month:n,day:r,hour:24===a?0:a,minute:l,second:c,millisecond:0})-u)/6e4}equals(e){return"iana"===e.type&&e.name===this.name}get isValid(){return this.valid}}let q={};const G=new Map;function Y(e,t={}){const i=JSON.stringify([e,t]);let s=G.get(i);return void 0===s&&(s=new Intl.DateTimeFormat(e,t),G.set(i,s)),s}const H=new Map,P=new Map;let U=null;const R=new Map;function J(e){let t=R.get(e);return void 0===t&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),R.set(e,t)),t}const B=new Map;function X(e,t,i,s){const n=e.listingMode();return"error"===n?null:"en"===n?i(t):s(t)}class Q{constructor(e,t,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;const{padTo:s,floor:n,...r}=i;if(!t||Object.keys(r).length>0){const t={useGrouping:!1,...i};i.padTo>0&&(t.minimumIntegerDigits=i.padTo),this.inf=function(e,t={}){const i=JSON.stringify([e,t]);let s=H.get(i);return void 0===s&&(s=new Intl.NumberFormat(e,t),H.set(i,s)),s}(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}return He(this.floor?Math.floor(e):Je(e,3),this.padTo)}}class K{constructor(e,t,i){let s;if(this.opts=i,this.originalZone=void 0,this.opts.timeZone)this.dt=e;else if("fixed"===e.zone.type){const t=e.offset/60*-1,i=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;0!==e.offset&&A.create(i).valid?(s=i,this.dt=e):(s="UTC",this.dt=0===e.offset?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else"system"===e.zone.type?this.dt=e:"iana"===e.zone.type?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const n={...this.opts};n.timeZone=n.timeZone||s,this.dtf=Y(t,n)}format(){return this.originalZone?this.formatToParts().map((({value:e})=>e)).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map((e=>{if("timeZoneName"===e.type){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}return e})):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class ee{constructor(e,t,i){this.opts={style:"long",...i},!t&&Le()&&(this.rtf=function(e,t={}){const{base:i,...s}=t,n=JSON.stringify([e,s]);let r=P.get(n);return void 0===r&&(r=new Intl.RelativeTimeFormat(e,t),P.set(n,r)),r}(e,i))}format(e,t){return this.rtf?this.rtf.format(e,t):function(e,t,i="always",s=!1){const n={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},r=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===i&&r){const i="days"===e;switch(t){case 1:return i?"tomorrow":`next ${n[e][0]}`;case-1:return i?"yesterday":`last ${n[e][0]}`;case 0:return i?"today":`this ${n[e][0]}`}}const o=Object.is(t,-0)||t<0,a=Math.abs(t),l=1===a,c=n[e],u=s?l?c[1]:c[2]||c[1]:l?n[e][0]:e;return o?`${a} ${u} ago`:`in ${a} ${u}`}(t,e,this.opts.numeric,"long"!==this.opts.style)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}const te={firstDay:1,minimalDays:4,weekend:[6,7]};class ie{static fromOpts(e){return ie.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,i,s,n=!1){const r=e||be.defaultLocale,o=r||(n?"en-US":U||(U=(new Intl.DateTimeFormat).resolvedOptions().locale,U)),a=t||be.defaultNumberingSystem,l=i||be.defaultOutputCalendar,c=Ge(s)||be.defaultWeekSettings;return new ie(o,a,l,c,r)}static resetCache(){U=null,G.clear(),H.clear(),P.clear(),R.clear(),B.clear()}static fromObject({locale:e,numberingSystem:t,outputCalendar:i,weekSettings:s}={}){return ie.create(e,t,i,s)}constructor(e,t,i,s,n){const[r,o,a]=function(e){const t=e.indexOf("-x-");-1!==t&&(e=e.substring(0,t));const i=e.indexOf("-u-");if(-1===i)return[e];{let t,s;try{t=Y(e).resolvedOptions(),s=e}catch(n){const r=e.substring(0,i);t=Y(r).resolvedOptions(),s=r}const{numberingSystem:n,calendar:r}=t;return[s,n,r]}}(e);this.locale=r,this.numberingSystem=t||o||null,this.outputCalendar=i||a||null,this.weekSettings=s,this.intl=function(e,t,i){return i||t?(e.includes("-u-")||(e+="-u"),i&&(e+=`-ca-${i}`),t&&(e+=`-nu-${t}`),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=n,this.fastNumbersCached=null}get fastNumbers(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===J(e.locale).numberingSystem)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return e&&t?"en":"intl"}clone(e){return e&&0!==Object.getOwnPropertyNames(e).length?ie.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Ge(e.weekSettings)||this.weekSettings,e.defaultToEN||!1):this}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return X(this,e,ft,(()=>{const i=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=function(e){const t=[];for(let i=1;i<=12;i++){const s=fs.utc(2009,i,1);t.push(e(s))}return t}((e=>this.extract(e,i,"month")))),this.monthsCache[s][e]}))}weekdays(e,t=!1){return X(this,e,ht,(()=>{const i=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=t?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=function(e){const t=[];for(let i=1;i<=7;i++){const s=fs.utc(2016,11,13+i);t.push(e(s))}return t}((e=>this.extract(e,i,"weekday")))),this.weekdaysCache[s][e]}))}meridiems(){return X(this,void 0,(()=>yt),(()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[fs.utc(2016,11,13,9),fs.utc(2016,11,13,19)].map((t=>this.extract(t,e,"dayperiod")))}return this.meridiemCache}))}eras(e){return X(this,e,vt,(()=>{const t={era:e};return this.eraCache[e]||(this.eraCache[e]=[fs.utc(-40,1,1),fs.utc(2017,1,1)].map((e=>this.extract(e,t,"era")))),this.eraCache[e]}))}extract(e,t,i){const s=this.dtFormatter(e,t).formatToParts().find((e=>e.type.toLowerCase()===i));return s?s.value:null}numberFormatter(e={}){return new Q(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new K(e,this.intl,t)}relFormatter(e={}){return new ee(this.intl,this.isEnglish(),e)}listFormatter(e={}){return function(e,t={}){const i=JSON.stringify([e,t]);let s=q[i];return s||(s=new Intl.ListFormat(e,t),q[i]=s),s}(this.intl,e)}isEnglish(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||J(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Ze()?function(e){let t=B.get(e);if(!t){const i=new Intl.Locale(e);t="getWeekInfo"in i?i.getWeekInfo():i.weekInfo,"minimalDays"in t||(t={...te,...t}),B.set(e,t)}return t}(this.locale):te}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let se=null;class ne extends C{static get utcInstance(){return null===se&&(se=new ne(0)),se}static instance(e){return 0===e?ne.utcInstance:new ne(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new ne(nt(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return 0===this.fixed?"UTC":`UTC${at(this.fixed,"narrow")}`}get ianaName(){return 0===this.fixed?"Etc/UTC":`Etc/GMT${at(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return at(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return"fixed"===e.type&&e.fixed===this.fixed}get isValid(){return!0}}class re extends C{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function oe(e,t){if($e(e)||null===e)return t;if(e instanceof C)return e;if("string"==typeof e){const i=e.toLowerCase();return"default"===i?t:"local"===i||"system"===i?W.instance:"utc"===i||"gmt"===i?ne.utcInstance:ne.parseSpecifier(i)||A.create(e)}return We(e)?ne.instance(e):"object"==typeof e&&"offset"in e&&"function"==typeof e.offset?e:new re(e)}const ae={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},le={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},ce=ae.hanidec.replace(/[\[|\]]/g,"").split(""),ue=new Map;function de({numberingSystem:e},t=""){const i=e||"latn";let s=ue.get(i);void 0===s&&(s=new Map,ue.set(i,s));let n=s.get(t);return void 0===n&&(n=new RegExp(`${ae[i]}${t}`),s.set(t,n)),n}let fe,pe=()=>Date.now(),me="system",_e=null,he=null,ye=null,we=60,ge=null;class be{static get now(){return pe}static set now(e){pe=e}static set defaultZone(e){me=e}static get defaultZone(){return oe(me,W.instance)}static get defaultLocale(){return _e}static set defaultLocale(e){_e=e}static get defaultNumberingSystem(){return he}static set defaultNumberingSystem(e){he=e}static get defaultOutputCalendar(){return ye}static set defaultOutputCalendar(e){ye=e}static get defaultWeekSettings(){return ge}static set defaultWeekSettings(e){ge=Ge(e)}static get twoDigitCutoffYear(){return we}static set twoDigitCutoffYear(e){we=e%100}static get throwOnInvalid(){return fe}static set throwOnInvalid(e){fe=e}static resetCaches(){ie.resetCache(),A.resetCache(),fs.resetCache(),ue.clear()}}class ve{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const ke=[0,31,59,90,120,151,181,212,243,273,304,334],xe=[0,31,60,91,121,152,182,213,244,274,305,335];function Se(e,t){return new ve("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Ne(e,t,i){const s=new Date(Date.UTC(e,t-1,i));e<100&&e>=0&&s.setUTCFullYear(s.getUTCFullYear()-1900);const n=s.getUTCDay();return 0===n?7:n}function Oe(e,t,i){return i+(Be(e)?xe:ke)[t-1]}function Te(e,t){const i=Be(e)?xe:ke,s=i.findIndex((e=>e<t));return{month:s+1,day:t-i[s]}}function Fe(e,t){return(e-t+7)%7+1}function Ie(e,t=4,i=1){const{year:s,month:n,day:r}=e,o=Oe(s,n,r),a=Fe(Ne(s,n,r),i);let l,c=Math.floor((o-a+14-t)/7);return c<1?(l=s-1,c=tt(l,t,i)):c>tt(s,t,i)?(l=s+1,c=1):l=s,{weekYear:l,weekNumber:c,weekday:a,...lt(e)}}function De(e,t=4,i=1){const{weekYear:s,weekNumber:n,weekday:r}=e,o=Fe(Ne(s,1,t),i),a=Xe(s);let l,c=7*n+r-o-7+t;c<1?(l=s-1,c+=Xe(l)):c>a?(l=s+1,c-=Xe(s)):l=s;const{month:u,day:d}=Te(l,c);return{year:l,month:u,day:d,...lt(e)}}function je(e){const{year:t,month:i,day:s}=e;return{year:t,ordinal:Oe(t,i,s),...lt(e)}}function Ee(e){const{year:t,ordinal:i}=e,{month:s,day:n}=Te(t,i);return{year:t,month:s,day:n,...lt(e)}}function Me(e,t){if(!$e(e.localWeekday)||!$e(e.localWeekNumber)||!$e(e.localWeekYear)){if(!$e(e.weekday)||!$e(e.weekNumber)||!$e(e.weekYear))throw new o("Cannot mix locale-based week fields with ISO-based week fields");return $e(e.localWeekday)||(e.weekday=e.localWeekday),$e(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),$e(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}return{minDaysInFirstWeek:4,startOfWeek:1}}function Ve(e){const t=ze(e.year),i=Ye(e.month,1,12),s=Ye(e.day,1,Qe(e.year,e.month));return t?i?!s&&Se("day",e.day):Se("month",e.month):Se("year",e.year)}function Ce(e){const{hour:t,minute:i,second:s,millisecond:n}=e,r=Ye(t,0,23)||24===t&&0===i&&0===s&&0===n,o=Ye(i,0,59),a=Ye(s,0,59),l=Ye(n,0,999);return r?o?a?!l&&Se("millisecond",n):Se("second",s):Se("minute",i):Se("hour",t)}function $e(e){return void 0===e}function We(e){return"number"==typeof e}function ze(e){return"number"==typeof e&&e%1==0}function Le(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function Ze(){try{return"undefined"!=typeof Intl&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return!1}}function Ae(e,t,i){if(0!==e.length)return e.reduce(((e,s)=>{const n=[t(s),s];return e&&i(e[0],n[0])===e[0]?e:n}),null)[1]}function qe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ge(e){if(null==e)return null;if("object"!=typeof e)throw new l("Week settings must be an object");if(!Ye(e.firstDay,1,7)||!Ye(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some((e=>!Ye(e,1,7))))throw new l("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Ye(e,t,i){return ze(e)&&e>=t&&e<=i}function He(e,t=2){let i;return i=e<0?"-"+(""+-e).padStart(t,"0"):(""+e).padStart(t,"0"),i}function Pe(e){return $e(e)||null===e||""===e?void 0:parseInt(e,10)}function Ue(e){return $e(e)||null===e||""===e?void 0:parseFloat(e)}function Re(e){if(!$e(e)&&null!==e&&""!==e){const t=1e3*parseFloat("0."+e);return Math.floor(t)}}function Je(e,t,i=!1){const s=10**t;return(i?Math.trunc:Math.round)(e*s)/s}function Be(e){return e%4==0&&(e%100!=0||e%400==0)}function Xe(e){return Be(e)?366:365}function Qe(e,t){const i=(s=t-1)-12*Math.floor(s/12)+1;var s;return 2===i?Be(e+(t-i)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][i-1]}function Ke(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function et(e,t,i){return-Fe(Ne(e,1,t),i)+t-1}function tt(e,t=4,i=1){const s=et(e,t,i),n=et(e+1,t,i);return(Xe(e)-s+n)/7}function it(e){return e>99?e:e>be.twoDigitCutoffYear?1900+e:2e3+e}function st(e,t,i,s=null){const n=new Date(e),r={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};s&&(r.timeZone=s);const o={timeZoneName:t,...r},a=new Intl.DateTimeFormat(i,o).formatToParts(n).find((e=>"timezonename"===e.type.toLowerCase()));return a?a.value:null}function nt(e,t){let i=parseInt(e,10);Number.isNaN(i)&&(i=0);const s=parseInt(t,10)||0;return 60*i+(i<0||Object.is(i,-0)?-s:s)}function rt(e){const t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new l(`Invalid unit value ${e}`);return t}function ot(e,t){const i={};for(const s in e)if(qe(e,s)){const n=e[s];if(null==n)continue;i[t(s)]=rt(n)}return i}function at(e,t){const i=Math.trunc(Math.abs(e/60)),s=Math.trunc(Math.abs(e%60)),n=e>=0?"+":"-";switch(t){case"short":return`${n}${He(i,2)}:${He(s,2)}`;case"narrow":return`${n}${i}${s>0?`:${s}`:""}`;case"techie":return`${n}${He(i,2)}${He(s,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function lt(e){return function(e){return["hour","minute","second","millisecond"].reduce(((t,i)=>(t[i]=e[i],t)),{})}(e)}const ct=["January","February","March","April","May","June","July","August","September","October","November","December"],ut=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dt=["J","F","M","A","M","J","J","A","S","O","N","D"];function ft(e){switch(e){case"narrow":return[...dt];case"short":return[...ut];case"long":return[...ct];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const pt=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],mt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],_t=["M","T","W","T","F","S","S"];function ht(e){switch(e){case"narrow":return[..._t];case"short":return[...mt];case"long":return[...pt];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const yt=["AM","PM"],wt=["Before Christ","Anno Domini"],gt=["BC","AD"],bt=["B","A"];function vt(e){switch(e){case"narrow":return[...bt];case"short":return[...gt];case"long":return[...wt];default:return null}}function kt(e,t){let i="";for(const s of e)s.literal?i+=s.val:i+=t(s.val);return i}const xt={D:p,DD:m,DDD:h,DDDD:y,t:w,tt:g,ttt:b,tttt:v,T:k,TT:x,TTT:S,TTTT:N,f:O,ff:F,fff:j,ffff:M,F:T,FF:I,FFF:E,FFFF:V};class St{static create(e,t={}){return new St(e,t)}static parseFormat(e){let t=null,i="",s=!1;const n=[];for(let r=0;r<e.length;r++){const o=e.charAt(r);"'"===o?(i.length>0&&n.push({literal:s||/^\s+$/.test(i),val:i}),t=null,i="",s=!s):s||o===t?i+=o:(i.length>0&&n.push({literal:/^\s+$/.test(i),val:i}),i=o,t=o)}return i.length>0&&n.push({literal:s||/^\s+$/.test(i),val:i}),n}static macroTokenToFormatOpts(e){return xt[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return He(e,t);const i={...this.opts};return t>0&&(i.padTo=t),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){const i="en"===this.loc.listingMode(),s=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,n=(t,i)=>this.loc.extract(e,t,i),r=t=>e.isOffsetFixed&&0===e.offset&&t.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,t.format):"",o=(t,s)=>i?function(e,t){return ft(t)[e.month-1]}(e,t):n(s?{month:t}:{month:t,day:"numeric"},"month"),a=(t,s)=>i?function(e,t){return ht(t)[e.weekday-1]}(e,t):n(s?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),l=t=>{const i=St.macroTokenToFormatOpts(t);return i?this.formatWithSystemDefault(e,i):t},c=t=>i?function(e,t){return vt(t)[e.year<0?0:1]}(e,t):n({era:t},"era");return kt(St.parseFormat(t),(t=>{switch(t){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12==0?12:e.hour%12);case"hh":return this.num(e.hour%12==0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return r({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return r({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return r({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return i?function(e){return yt[e.hour<12?0:1]}(e):n({hour:"numeric",hourCycle:"h12"},"dayperiod");case"d":return s?n({day:"numeric"},"day"):this.num(e.day);case"dd":return s?n({day:"2-digit"},"day"):this.num(e.day,2);case"c":case"E":return this.num(e.weekday);case"ccc":return a("short",!0);case"cccc":return a("long",!0);case"ccccc":return a("narrow",!0);case"EEE":return a("short",!1);case"EEEE":return a("long",!1);case"EEEEE":return a("narrow",!1);case"L":return s?n({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?n({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return o("short",!0);case"LLLL":return o("long",!0);case"LLLLL":return o("narrow",!0);case"M":return s?n({month:"numeric"},"month"):this.num(e.month);case"MM":return s?n({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return o("short",!1);case"MMMM":return o("long",!1);case"MMMMM":return o("narrow",!1);case"y":return s?n({year:"numeric"},"year"):this.num(e.year);case"yy":return s?n({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?n({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?n({year:"numeric"},"year"):this.num(e.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(t)}}))}formatDurationFromString(e,t){const i=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=St.parseFormat(t),n=s.reduce(((e,{literal:t,val:i})=>t?e:e.concat(i)),[]);return kt(s,(e=>t=>{const s=i(t);return s?this.num(e.get(s),t.length):t})(e.shiftTo(...n.map(i).filter((e=>e)))))}}const Nt=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Ot(...e){const t=e.reduce(((e,t)=>e+t.source),"");return RegExp(`^${t}$`)}function Tt(...e){return t=>e.reduce((([e,i,s],n)=>{const[r,o,a]=n(t,s);return[{...e,...r},o||i,a]}),[{},null,1]).slice(0,2)}function Ft(e,...t){if(null==e)return[null,null];for(const[i,s]of t){const t=i.exec(e);if(t)return s(t)}return[null,null]}function It(...e){return(t,i)=>{const s={};let n;for(n=0;n<e.length;n++)s[e[n]]=Pe(t[i+n]);return[s,null,i+n]}}const Dt=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,jt=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Et=RegExp(`${jt.source}(?:${Dt.source}?(?:\\[(${Nt.source})\\])?)?`),Mt=RegExp(`(?:T${Et.source})?`),Vt=It("weekYear","weekNumber","weekDay"),Ct=It("year","ordinal"),$t=RegExp(`${jt.source} ?(?:${Dt.source}|(${Nt.source}))?`),Wt=RegExp(`(?: ${$t.source})?`);function zt(e,t,i){const s=e[t];return $e(s)?i:Pe(s)}function Lt(e,t){return[{hours:zt(e,t,0),minutes:zt(e,t+1,0),seconds:zt(e,t+2,0),milliseconds:Re(e[t+3])},null,t+4]}function Zt(e,t){const i=!e[t]&&!e[t+1],s=nt(e[t+1],e[t+2]);return[{},i?null:ne.instance(s),t+3]}function At(e,t){return[{},e[t]?A.create(e[t]):null,t+1]}const qt=RegExp(`^T?${jt.source}$`),Gt=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Yt(e){const[t,i,s,n,r,o,a,l,c]=e,u="-"===t[0],d=l&&"-"===l[0],f=(e,t=!1)=>void 0!==e&&(t||e&&u)?-e:e;return[{years:f(Ue(i)),months:f(Ue(s)),weeks:f(Ue(n)),days:f(Ue(r)),hours:f(Ue(o)),minutes:f(Ue(a)),seconds:f(Ue(l),"-0"===l),milliseconds:f(Re(c),d)}]}const Ht={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Pt(e,t,i,s,n,r,o){const a={year:2===t.length?it(Pe(t)):Pe(t),month:ut.indexOf(i)+1,day:Pe(s),hour:Pe(n),minute:Pe(r)};return o&&(a.second=Pe(o)),e&&(a.weekday=e.length>3?pt.indexOf(e)+1:mt.indexOf(e)+1),a}const Ut=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Rt(e){const[,t,i,s,n,r,o,a,l,c,u,d]=e,f=Pt(t,n,s,i,r,o,a);let p;return p=l?Ht[l]:c?0:nt(u,d),[f,new ne(p)]}const Jt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Bt=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Xt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Qt(e){const[,t,i,s,n,r,o,a]=e;return[Pt(t,n,s,i,r,o,a),ne.utcInstance]}function Kt(e){const[,t,i,s,n,r,o,a]=e;return[Pt(t,a,i,s,n,r,o),ne.utcInstance]}const ei=Ot(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Mt),ti=Ot(/(\d{4})-?W(\d\d)(?:-?(\d))?/,Mt),ii=Ot(/(\d{4})-?(\d{3})/,Mt),si=Ot(Et),ni=Tt((function(e,t){return[{year:zt(e,t),month:zt(e,t+1,1),day:zt(e,t+2,1)},null,t+3]}),Lt,Zt,At),ri=Tt(Vt,Lt,Zt,At),oi=Tt(Ct,Lt,Zt,At),ai=Tt(Lt,Zt,At),li=Tt(Lt),ci=Ot(/(\d{4})-(\d\d)-(\d\d)/,Wt),ui=Ot($t),di=Tt(Lt,Zt,At),fi="Invalid Duration",pi={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},mi={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6},...pi},_i={years:{quarters:4,months:12,weeks:52.1775,days:365.2425,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:30.436875,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3},...pi},hi=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],yi=hi.slice(0).reverse();function wi(e,t,i=!1){const s={values:i?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new vi(s)}function gi(e,t){var i;let s=null!=(i=t.milliseconds)?i:0;for(const i of yi.slice(1))t[i]&&(s+=t[i]*e[i].milliseconds);return s}function bi(e,t){const i=gi(e,t)<0?-1:1;hi.reduceRight(((s,n)=>{if($e(t[n]))return s;if(s){const r=t[s]*i,o=e[n][s],a=Math.floor(r/o);t[n]+=a*i,t[s]-=a*o*i}return n}),null),hi.reduce(((i,s)=>{if($e(t[s]))return i;if(i){const n=t[i]%1;t[i]-=n,t[s]+=n*e[i][s]}return s}),null)}class vi{constructor(e){const t="longterm"===e.conversionAccuracy||!1;let i=t?_i:mi;e.matrix&&(i=e.matrix),this.values=e.values,this.loc=e.loc||ie.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(e,t){return vi.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(null==e||"object"!=typeof e)throw new l("Duration.fromObject: argument expected to be an object, got "+(null===e?"null":typeof e));return new vi({values:ot(e,vi.normalizeUnit),loc:ie.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(We(e))return vi.fromMillis(e);if(vi.isDuration(e))return e;if("object"==typeof e)return vi.fromObject(e);throw new l(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[i]=function(e){return Ft(e,[Gt,Yt])}(e);return i?vi.fromObject(i,t):vi.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[i]=function(e){return Ft(e,[qt,li])}(e);return i?vi.fromObject(i,t):vi.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new l("need to specify a reason the Duration is invalid");const i=e instanceof ve?e:new ve(e,t);if(be.throwOnInvalid)throw new r(i);return new vi({invalid:i})}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new a(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const i={...t,floor:!1!==t.round&&!1!==t.floor};return this.isValid?St.create(this.loc,i).formatDurationFromString(this,e):fi}toHuman(e={}){if(!this.isValid)return fi;const t=hi.map((t=>{const i=this.values[t];return $e(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(i)})).filter((e=>e));return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=Je(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},fs.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?gi(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=vi.fromDurationLike(e),i={};for(const e of hi)(qe(t.values,e)||qe(this.values,e))&&(i[e]=t.get(e)+this.get(e));return wi(this,{values:i},!0)}minus(e){if(!this.isValid)return this;const t=vi.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const i of Object.keys(this.values))t[i]=rt(e(this.values[i],i));return wi(this,{values:t},!0)}get(e){return this[vi.normalizeUnit(e)]}set(e){return this.isValid?wi(this,{values:{...this.values,...ot(e,vi.normalizeUnit)}}):this}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:i,matrix:s}={}){return wi(this,{loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:s,conversionAccuracy:i})}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return bi(this.matrix,e),wi(this,{values:e},!0)}rescale(){return this.isValid?wi(this,{values:function(e){const t={};for(const[i,s]of Object.entries(e))0!==s&&(t[i]=s);return t}(this.normalize().shiftToAll().toObject())},!0):this}shiftTo(...e){if(!this.isValid)return this;if(0===e.length)return this;e=e.map((e=>vi.normalizeUnit(e)));const t={},i={},s=this.toObject();let n;for(const r of hi)if(e.indexOf(r)>=0){n=r;let e=0;for(const t in i)e+=this.matrix[t][r]*i[t],i[t]=0;We(s[r])&&(e+=s[r]);const o=Math.trunc(e);t[r]=o,i[r]=(1e3*e-1e3*o)/1e3}else We(s[r])&&(i[r]=s[r]);for(const e in i)0!==i[e]&&(t[n]+=e===n?i[e]:i[e]/this.matrix[n][e]);return bi(this.matrix,t),wi(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values))e[t]=0===this.values[t]?0:-this.values[t];return wi(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid)return!1;if(!this.loc.equals(e.loc))return!1;for(const s of hi)if(t=this.values[s],i=e.values[s],!(void 0===t||0===t?void 0===i||0===i:t===i))return!1;var t,i;return!0}}const ki="Invalid Interval";class xi{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,t=null){if(!e)throw new l("need to specify a reason the Interval is invalid");const i=e instanceof ve?e:new ve(e,t);if(be.throwOnInvalid)throw new n(i);return new xi({invalid:i})}static fromDateTimes(e,t){const i=ps(e),s=ps(t),n=function(e,t){return e&&e.isValid?t&&t.isValid?t<e?xi.invalid("end before start",`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null:xi.invalid("missing or invalid end"):xi.invalid("missing or invalid start")}(i,s);return null==n?new xi({start:i,end:s}):n}static after(e,t){const i=vi.fromDurationLike(t),s=ps(e);return xi.fromDateTimes(s,s.plus(i))}static before(e,t){const i=vi.fromDurationLike(t),s=ps(e);return xi.fromDateTimes(s.minus(i),s)}static fromISO(e,t){const[i,s]=(e||"").split("/",2);if(i&&s){let e,n,r,o;try{e=fs.fromISO(i,t),n=e.isValid}catch(s){n=!1}try{r=fs.fromISO(s,t),o=r.isValid}catch(s){o=!1}if(n&&o)return xi.fromDateTimes(e,r);if(n){const i=vi.fromISO(s,t);if(i.isValid)return xi.after(e,i)}else if(o){const e=vi.fromISO(i,t);if(e.isValid)return xi.before(r,e)}}return xi.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return null===this.invalidReason}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",t){if(!this.isValid)return NaN;const i=this.start.startOf(e,t);let s;return s=null!=t&&t.useLocaleWeeks?this.end.reconfigure({locale:i.locale}):this.end,s=s.startOf(e,t),Math.floor(s.diff(i,e).get(e))+(s.valueOf()!==this.end.valueOf())}hasSame(e){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,e))}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return!!this.isValid&&this.s>e}isBefore(e){return!!this.isValid&&this.e<=e}contains(e){return!!this.isValid&&this.s<=e&&this.e>e}set({start:e,end:t}={}){return this.isValid?xi.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];const t=e.map(ps).filter((e=>this.contains(e))).sort(((e,t)=>e.toMillis()-t.toMillis())),i=[];let{s}=this,n=0;for(;s<this.e;){const e=t[n]||this.e,r=+e>+this.e?this.e:e;i.push(xi.fromDateTimes(s,r)),s=r,n+=1}return i}splitBy(e){const t=vi.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];let i,{s}=this,n=1;const r=[];for(;s<this.e;){const e=this.start.plus(t.mapUnits((e=>e*n)));i=+e>+this.e?this.e:e,r.push(xi.fromDateTimes(s,i)),s=i,n+=1}return r}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return!!this.isValid&&+this.e==+e.s}abutsEnd(e){return!!this.isValid&&+e.e==+this.s}engulfs(e){return!!this.isValid&&this.s<=e.s&&this.e>=e.e}equals(e){return!(!this.isValid||!e.isValid)&&this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,i=this.e<e.e?this.e:e.e;return t>=i?null:xi.fromDateTimes(t,i)}union(e){if(!this.isValid)return this;const t=this.s<e.s?this.s:e.s,i=this.e>e.e?this.e:e.e;return xi.fromDateTimes(t,i)}static merge(e){const[t,i]=e.sort(((e,t)=>e.s-t.s)).reduce((([e,t],i)=>t?t.overlaps(i)||t.abutsStart(i)?[e,t.union(i)]:[e.concat([t]),i]:[e,i]),[[],null]);return i&&t.push(i),t}static xor(e){let t=null,i=0;const s=[],n=e.map((e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}])),r=Array.prototype.concat(...n).sort(((e,t)=>e.time-t.time));for(const e of r)i+="s"===e.type?1:-1,1===i?t=e.time:(t&&+t!=+e.time&&s.push(xi.fromDateTimes(t,e.time)),t=null);return xi.merge(s)}difference(...e){return xi.xor([this].concat(e)).map((e=>this.intersection(e))).filter((e=>e&&!e.isEmpty()))}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:ki}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=p,t={}){return this.isValid?St.create(this.s.loc.clone(t),e).formatInterval(this):ki}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:ki}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ki}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:ki}toFormat(e,{separator:t=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:ki}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):vi.invalid(this.invalidReason)}mapEndpoints(e){return xi.fromDateTimes(e(this.s),e(this.e))}}class Si{static hasDST(e=be.defaultZone){const t=fs.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return A.isValidZone(e)}static normalizeZone(e){return oe(e,be.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||ie.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||ie.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||ie.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||ie.create(t,i,n)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||ie.create(t,i,n)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ie.create(t,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ie.create(t,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ie.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ie.create(t,null,"gregory").eras(e)}static features(){return{relative:Le(),localeWeek:Ze()}}}function Ni(e,t){const i=e=>e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),s=i(t)-i(e);return Math.floor(vi.fromMillis(s).as("days"))}function Oi(e,t=e=>e){return{regex:e,deser:([e])=>t(function(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let i=0;i<e.length;i++){const s=e.charCodeAt(i);if(-1!==e[i].search(ae.hanidec))t+=ce.indexOf(e[i]);else for(const e in le){const[i,n]=le[e];s>=i&&s<=n&&(t+=s-i)}}return parseInt(t,10)}return t}(e))}}const Ti=`[ ${String.fromCharCode(160)}]`,Fi=new RegExp(Ti,"g");function Ii(e){return e.replace(/\./g,"\\.?").replace(Fi,Ti)}function Di(e){return e.replace(/\./g,"").replace(Fi," ").toLowerCase()}function ji(e,t){return null===e?null:{regex:RegExp(e.map(Ii).join("|")),deser:([i])=>e.findIndex((e=>Di(i)===Di(e)))+t}}function Ei(e,t){return{regex:e,deser:([,e,t])=>nt(e,t),groups:t}}function Mi(e){return{regex:e,deser:([e])=>e}}const Vi={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};let Ci=null;function $i(e,t){return Array.prototype.concat(...e.map((e=>function(e,t){if(e.literal)return e;const i=Li(St.macroTokenToFormatOpts(e.val),t);return null==i||i.includes(void 0)?e:i}(e,t))))}class Wi{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=$i(St.parseFormat(t),e),this.units=this.tokens.map((t=>function(e,t){const i=de(t),s=de(t,"{2}"),n=de(t,"{3}"),r=de(t,"{4}"),o=de(t,"{6}"),a=de(t,"{1,2}"),l=de(t,"{1,3}"),c=de(t,"{1,6}"),u=de(t,"{1,9}"),d=de(t,"{2,4}"),f=de(t,"{4,6}"),p=e=>{return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:([e])=>e,literal:!0};var t},m=(m=>{if(e.literal)return p(m);switch(m.val){case"G":return ji(t.eras("short"),0);case"GG":return ji(t.eras("long"),0);case"y":return Oi(c);case"yy":case"kk":return Oi(d,it);case"yyyy":case"kkkk":return Oi(r);case"yyyyy":return Oi(f);case"yyyyyy":return Oi(o);case"M":case"L":case"d":case"H":case"h":case"m":case"q":case"s":case"W":return Oi(a);case"MM":case"LL":case"dd":case"HH":case"hh":case"mm":case"qq":case"ss":case"WW":return Oi(s);case"MMM":return ji(t.months("short",!0),1);case"MMMM":return ji(t.months("long",!0),1);case"LLL":return ji(t.months("short",!1),1);case"LLLL":return ji(t.months("long",!1),1);case"o":case"S":return Oi(l);case"ooo":case"SSS":return Oi(n);case"u":return Mi(u);case"uu":return Mi(a);case"uuu":case"E":case"c":return Oi(i);case"a":return ji(t.meridiems(),0);case"EEE":return ji(t.weekdays("short",!1),1);case"EEEE":return ji(t.weekdays("long",!1),1);case"ccc":return ji(t.weekdays("short",!0),1);case"cccc":return ji(t.weekdays("long",!0),1);case"Z":case"ZZ":return Ei(new RegExp(`([+-]${a.source})(?::(${s.source}))?`),2);case"ZZZ":return Ei(new RegExp(`([+-]${a.source})(${s.source})?`),2);case"z":return Mi(/[a-z_+-/]{1,256}?/i);case" ":return Mi(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:"missing Intl.DateTimeFormat.formatToParts support"};return m.token=e,m}(t,e))),this.disqualifyingUnit=this.units.find((e=>e.invalidReason)),!this.disqualifyingUnit){const[e,t]=[`^${(i=this.units).map((e=>e.regex)).reduce(((e,t)=>`${e}(${t.source})`),"")}$`,i];this.regex=RegExp(e,"i"),this.handlers=t}var i}explainFromTokens(e){if(this.isValid){const[t,i]=function(e,t,i){const s=e.match(t);if(s){const e={};let t=1;for(const n in i)if(qe(i,n)){const r=i[n],o=r.groups?r.groups+1:1;!r.literal&&r.token&&(e[r.token.val[0]]=r.deser(s.slice(t,t+o))),t+=o}return[s,e]}return[s,{}]}(e,this.regex,this.handlers),[s,n,r]=i?function(e){let t,i=null;return $e(e.z)||(i=A.create(e.z)),$e(e.Z)||(i||(i=new ne(e.Z)),t=e.Z),$e(e.q)||(e.M=3*(e.q-1)+1),$e(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),$e(e.u)||(e.S=Re(e.u)),[Object.keys(e).reduce(((t,i)=>{const s=(e=>{switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}})(i);return s&&(t[s]=e[i]),t}),{}),i,t]}(i):[null,null,void 0];if(qe(i,"a")&&qe(i,"H"))throw new o("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:i,result:s,zone:n,specificOffset:r}}return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function zi(e,t,i){return new Wi(e,i).explainFromTokens(t)}function Li(e,t){if(!e)return null;const i=St.create(t,e).dtFormatter((Ci||(Ci=fs.fromMillis(1555555555555)),Ci)),s=i.formatToParts(),n=i.resolvedOptions();return s.map((t=>function(e,t,i){const{type:s,value:n}=e;if("literal"===s){const e=/^\s+$/.test(n);return{literal:!e,val:e?" ":n}}const r=t[s];let o=s;"hour"===s&&(o=null!=t.hour12?t.hour12?"hour12":"hour24":null!=t.hourCycle?"h11"===t.hourCycle||"h12"===t.hourCycle?"hour12":"hour24":i.hour12?"hour12":"hour24");let a=Vi[o];if("object"==typeof a&&(a=a[r]),a)return{literal:!1,val:a}}(t,e,n)))}const Zi="Invalid DateTime",Ai=864e13;function qi(e){return new ve("unsupported zone",`the zone "${e.name}" is not supported`)}function Gi(e){return null===e.weekData&&(e.weekData=Ie(e.c)),e.weekData}function Yi(e){return null===e.localWeekData&&(e.localWeekData=Ie(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function Hi(e,t){const i={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new fs({...i,...t,old:i})}function Pi(e,t,i){let s=e-60*t*1e3;const n=i.offset(s);if(t===n)return[s,t];s-=60*(n-t)*1e3;const r=i.offset(s);return n===r?[s,n]:[e-60*Math.min(n,r)*1e3,Math.max(n,r)]}function Ui(e,t){const i=new Date(e+=60*t*1e3);return{year:i.getUTCFullYear(),month:i.getUTCMonth()+1,day:i.getUTCDate(),hour:i.getUTCHours(),minute:i.getUTCMinutes(),second:i.getUTCSeconds(),millisecond:i.getUTCMilliseconds()}}function Ri(e,t,i){return Pi(Ke(e),t,i)}function Ji(e,t){const i=e.o,s=e.c.year+Math.trunc(t.years),n=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),r={...e.c,year:s,month:n,day:Math.min(e.c.day,Qe(s,n))+Math.trunc(t.days)+7*Math.trunc(t.weeks)},o=vi.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),a=Ke(r);let[l,c]=Pi(a,i,e.zone);return 0!==o&&(l+=o,c=e.zone.offset(l)),{ts:l,o:c}}function Bi(e,t,i,s,n,r){const{setZone:o,zone:a}=i;if(e&&0!==Object.keys(e).length||t){const s=t||a,n=fs.fromObject(e,{...i,zone:s,specificOffset:r});return o?n:n.setZone(a)}return fs.invalid(new ve("unparsable",`the input "${n}" can't be parsed as ${s}`))}function Xi(e,t,i=!0){return e.isValid?St.create(ie.create("en-US"),{allowZ:i,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Qi(e,t){const i=e.c.year>9999||e.c.year<0;let s="";return i&&e.c.year>=0&&(s+="+"),s+=He(e.c.year,i?6:4),t?(s+="-",s+=He(e.c.month),s+="-",s+=He(e.c.day)):(s+=He(e.c.month),s+=He(e.c.day)),s}function Ki(e,t,i,s,n,r){let o=He(e.c.hour);return t?(o+=":",o+=He(e.c.minute),0===e.c.millisecond&&0===e.c.second&&i||(o+=":")):o+=He(e.c.minute),0===e.c.millisecond&&0===e.c.second&&i||(o+=He(e.c.second),0===e.c.millisecond&&s||(o+=".",o+=He(e.c.millisecond,3))),n&&(e.isOffsetFixed&&0===e.offset&&!r?o+="Z":e.o<0?(o+="-",o+=He(Math.trunc(-e.o/60)),o+=":",o+=He(Math.trunc(-e.o%60))):(o+="+",o+=He(Math.trunc(e.o/60)),o+=":",o+=He(Math.trunc(e.o%60)))),r&&(o+="["+e.zone.ianaName+"]"),o}const es={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},ts={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},is={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ss=["year","month","day","hour","minute","second","millisecond"],ns=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],rs=["year","ordinal","hour","minute","second","millisecond"];function os(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return function(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new a(e);return t}(e)}}function as(e,t){const i=oe(t.zone,be.defaultZone);if(!i.isValid)return fs.invalid(qi(i));const s=ie.fromObject(t);let n,r;if($e(e.year))n=be.now();else{for(const t of ss)$e(e[t])&&(e[t]=es[t]);const t=Ve(e)||Ce(e);if(t)return fs.invalid(t);const s=function(e){if(void 0===us&&(us=be.now()),"iana"!==e.type)return e.offset(us);const t=e.name;let i=ds.get(t);return void 0===i&&(i=e.offset(us),ds.set(t,i)),i}(i);[n,r]=Ri(e,s,i)}return new fs({ts:n,zone:i,loc:s,o:r})}function ls(e,t,i){const s=!!$e(i.round)||i.round,n=(e,n)=>(e=Je(e,s||i.calendary?0:2,!0),t.loc.clone(i).relFormatter(i).format(e,n)),r=s=>i.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(i.unit)return n(r(i.unit),i.unit);for(const e of i.units){const t=r(e);if(Math.abs(t)>=1)return n(t,e)}return n(e>t?-0:0,i.units[i.units.length-1])}function cs(e){let t,i={};return e.length>0&&"object"==typeof e[e.length-1]?(i=e[e.length-1],t=Array.from(e).slice(0,e.length-1)):t=Array.from(e),[i,t]}let us;const ds=new Map;class fs{constructor(e){const t=e.zone||be.defaultZone;let i=e.invalid||(Number.isNaN(e.ts)?new ve("invalid input"):null)||(t.isValid?null:qi(t));this.ts=$e(e.ts)?be.now():e.ts;let s=null,n=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,n]=[e.old.c,e.old.o];else{const r=We(e.o)&&!e.old?e.o:t.offset(this.ts);s=Ui(this.ts,r),i=Number.isNaN(s.year)?new ve("invalid input"):null,s=i?null:s,n=i?null:r}this._zone=t,this.loc=e.loc||ie.create(),this.invalid=i,this.weekData=null,this.localWeekData=null,this.c=s,this.o=n,this.isLuxonDateTime=!0}static now(){return new fs({})}static local(){const[e,t]=cs(arguments),[i,s,n,r,o,a,l]=t;return as({year:i,month:s,day:n,hour:r,minute:o,second:a,millisecond:l},e)}static utc(){const[e,t]=cs(arguments),[i,s,n,r,o,a,l]=t;return e.zone=ne.utcInstance,as({year:i,month:s,day:n,hour:r,minute:o,second:a,millisecond:l},e)}static fromJSDate(e,t={}){const i=(s=e,"[object Date]"===Object.prototype.toString.call(s)?e.valueOf():NaN);var s;if(Number.isNaN(i))return fs.invalid("invalid input");const n=oe(t.zone,be.defaultZone);return n.isValid?new fs({ts:i,zone:n,loc:ie.fromObject(t)}):fs.invalid(qi(n))}static fromMillis(e,t={}){if(We(e))return e<-Ai||e>Ai?fs.invalid("Timestamp out of range"):new fs({ts:e,zone:oe(t.zone,be.defaultZone),loc:ie.fromObject(t)});throw new l(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(We(e))return new fs({ts:1e3*e,zone:oe(t.zone,be.defaultZone),loc:ie.fromObject(t)});throw new l("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};const i=oe(t.zone,be.defaultZone);if(!i.isValid)return fs.invalid(qi(i));const s=ie.fromObject(t),n=ot(e,os),{minDaysInFirstWeek:r,startOfWeek:a}=Me(n,s),l=be.now(),c=$e(t.specificOffset)?i.offset(l):t.specificOffset,u=!$e(n.ordinal),d=!$e(n.year),f=!$e(n.month)||!$e(n.day),p=d||f,m=n.weekYear||n.weekNumber;if((p||u)&&m)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&u)throw new o("Can't mix ordinal dates with month/day");const _=m||n.weekday&&!p;let h,y,w=Ui(l,c);_?(h=ns,y=ts,w=Ie(w,r,a)):u?(h=rs,y=is,w=je(w)):(h=ss,y=es);let g=!1;for(const e of h)$e(n[e])?n[e]=g?y[e]:w[e]:g=!0;const b=_?function(e,t=4,i=1){const s=ze(e.weekYear),n=Ye(e.weekNumber,1,tt(e.weekYear,t,i)),r=Ye(e.weekday,1,7);return s?n?!r&&Se("weekday",e.weekday):Se("week",e.weekNumber):Se("weekYear",e.weekYear)}(n,r,a):u?function(e){const t=ze(e.year),i=Ye(e.ordinal,1,Xe(e.year));return t?!i&&Se("ordinal",e.ordinal):Se("year",e.year)}(n):Ve(n),v=b||Ce(n);if(v)return fs.invalid(v);const k=_?De(n,r,a):u?Ee(n):n,[x,S]=Ri(k,c,i),N=new fs({ts:x,zone:i,o:S,loc:s});return n.weekday&&p&&e.weekday!==N.weekday?fs.invalid("mismatched weekday",`you can't specify both a weekday of ${n.weekday} and a date of ${N.toISO()}`):N.isValid?N:fs.invalid(N.invalid)}static fromISO(e,t={}){const[i,s]=function(e){return Ft(e,[ei,ni],[ti,ri],[ii,oi],[si,ai])}(e);return Bi(i,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[i,s]=function(e){return Ft(function(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e),[Ut,Rt])}(e);return Bi(i,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[i,s]=function(e){return Ft(e,[Jt,Qt],[Bt,Qt],[Xt,Kt])}(e);return Bi(i,s,t,"HTTP",t)}static fromFormat(e,t,i={}){if($e(e)||$e(t))throw new l("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:n=null}=i,r=ie.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0}),[o,a,c,u]=function(e,t,i){const{result:s,zone:n,specificOffset:r,invalidReason:o}=zi(e,t,i);return[s,n,r,o]}(r,e,t);return u?fs.invalid(u):Bi(o,a,i,`format ${t}`,e,c)}static fromString(e,t,i={}){return fs.fromFormat(e,t,i)}static fromSQL(e,t={}){const[i,s]=function(e){return Ft(e,[ci,ni],[ui,di])}(e);return Bi(i,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new l("need to specify a reason the DateTime is invalid");const i=e instanceof ve?e:new ve(e,t);if(be.throwOnInvalid)throw new s(i);return new fs({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){const i=Li(e,ie.fromObject(t));return i?i.map((e=>e?e.val:null)).join(""):null}static expandFormat(e,t={}){return $i(St.parseFormat(e),ie.fromObject(t)).map((e=>e.val)).join("")}static resetCache(){us=void 0,ds.clear()}get(e){return this[e]}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Gi(this).weekYear:NaN}get weekNumber(){return this.isValid?Gi(this).weekNumber:NaN}get weekday(){return this.isValid?Gi(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Yi(this).weekday:NaN}get localWeekNumber(){return this.isValid?Yi(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Yi(this).weekYear:NaN}get ordinal(){return this.isValid?je(this.c).ordinal:NaN}get monthShort(){return this.isValid?Si.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Si.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Si.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Si.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return!this.isOffsetFixed&&(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,t=6e4,i=Ke(this.c),s=this.zone.offset(i-e),n=this.zone.offset(i+e),r=this.zone.offset(i-s*t),o=this.zone.offset(i-n*t);if(r===o)return[this];const a=i-r*t,l=i-o*t,c=Ui(a,r),u=Ui(l,o);return c.hour===u.hour&&c.minute===u.minute&&c.second===u.second&&c.millisecond===u.millisecond?[Hi(this,{ts:a}),Hi(this,{ts:l})]:[this]}get isInLeapYear(){return Be(this.year)}get daysInMonth(){return Qe(this.year,this.month)}get daysInYear(){return this.isValid?Xe(this.year):NaN}get weeksInWeekYear(){return this.isValid?tt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?tt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:i,calendar:s}=St.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:i,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(ne.instance(e),t)}toLocal(){return this.setZone(be.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:i=!1}={}){if((e=oe(e,be.defaultZone)).equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||i){const t=e.offset(this.ts),i=this.toObject();[s]=Ri(i,t,e)}return Hi(this,{ts:s,zone:e})}return fs.invalid(qi(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:i}={}){return Hi(this,{loc:this.loc.clone({locale:e,numberingSystem:t,outputCalendar:i})})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=ot(e,os),{minDaysInFirstWeek:i,startOfWeek:s}=Me(t,this.loc),n=!$e(t.weekYear)||!$e(t.weekNumber)||!$e(t.weekday),r=!$e(t.ordinal),a=!$e(t.year),l=!$e(t.month)||!$e(t.day),c=a||l,u=t.weekYear||t.weekNumber;if((c||r)&&u)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&r)throw new o("Can't mix ordinal dates with month/day");let d;n?d=De({...Ie(this.c,i,s),...t},i,s):$e(t.ordinal)?(d={...this.toObject(),...t},$e(t.day)&&(d.day=Math.min(Qe(d.year,d.month),d.day))):d=Ee({...je(this.c),...t});const[f,p]=Ri(d,this.o,this.zone);return Hi(this,{ts:f,o:p})}plus(e){return this.isValid?Hi(this,Ji(this,vi.fromDurationLike(e))):this}minus(e){return this.isValid?Hi(this,Ji(this,vi.fromDurationLike(e).negate())):this}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;const i={},s=vi.normalizeUnit(e);switch(s){case"years":i.month=1;case"quarters":case"months":i.day=1;case"weeks":case"days":i.hour=0;case"hours":i.minute=0;case"minutes":i.second=0;case"seconds":i.millisecond=0}if("weeks"===s)if(t){const e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(i.weekNumber=this.weekNumber-1),i.weekday=e}else i.weekday=1;if("quarters"===s){const e=Math.ceil(this.month/3);i.month=3*(e-1)+1}return this.set(i)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?St.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Zi}toLocaleString(e=p,t={}){return this.isValid?St.create(this.loc.clone(t),e).formatDateTime(this):Zi}toLocaleParts(e={}){return this.isValid?St.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:i=!1,includeOffset:s=!0,extendedZone:n=!1}={}){if(!this.isValid)return null;const r="extended"===e;let o=Qi(this,r);return o+="T",o+=Ki(this,r,t,i,s,n),o}toISODate({format:e="extended"}={}){return this.isValid?Qi(this,"extended"===e):null}toISOWeekDate(){return Xi(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:n=!1,format:r="extended"}={}){return this.isValid?(s?"T":"")+Ki(this,"extended"===r,t,e,i,n):null}toRFC2822(){return Xi(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Xi(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Qi(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(i&&(s+=" "),t?s+="z":e&&(s+="ZZ")),Xi(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Zi}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",i={}){if(!this.isValid||!e.isValid)return vi.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...i},n=(a=t,Array.isArray(a)?a:[a]).map(vi.normalizeUnit),r=e.valueOf()>this.valueOf(),o=function(e,t,i,s){let[n,r,o,a]=function(e,t,i){const s=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+4*(t.year-e.year)],["months",(e,t)=>t.month-e.month+12*(t.year-e.year)],["weeks",(e,t)=>{const i=Ni(e,t);return(i-i%7)/7}],["days",Ni]],n={},r=e;let o,a;for(const[l,c]of s)i.indexOf(l)>=0&&(o=l,n[l]=c(e,t),a=r.plus(n),a>t?(n[l]--,(e=r.plus(n))>t&&(a=e,n[l]--,e=r.plus(n))):e=a);return[e,n,a,o]}(e,t,i);const l=t-n,c=i.filter((e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0));0===c.length&&(o<t&&(o=n.plus({[a]:1})),o!==n&&(r[a]=(r[a]||0)+l/(o-n)));const u=vi.fromObject(r,s);return c.length>0?vi.fromMillis(l,s).shiftTo(...c).plus(u):u}(r?this:e,r?e:this,n,s);var a;return r?o.negate():o}diffNow(e="milliseconds",t={}){return this.diff(fs.now(),e,t)}until(e){return this.isValid?xi.fromDateTimes(this,e):this}hasSame(e,t,i){if(!this.isValid)return!1;const s=e.valueOf(),n=this.setZone(e.zone,{keepLocalTime:!0});return n.startOf(t,i)<=s&&s<=n.endOf(t,i)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||fs.fromObject({},{zone:this.zone}),i=e.padding?this<t?-e.padding:e.padding:0;let s=["years","months","days","hours","minutes","seconds"],n=e.unit;return Array.isArray(e.unit)&&(s=e.unit,n=void 0),ls(t,this.plus(i),{...e,numeric:"always",units:s,unit:n})}toRelativeCalendar(e={}){return this.isValid?ls(e.base||fs.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(fs.isDateTime))throw new l("min requires all arguments be DateTimes");return Ae(e,(e=>e.valueOf()),Math.min)}static max(...e){if(!e.every(fs.isDateTime))throw new l("max requires all arguments be DateTimes");return Ae(e,(e=>e.valueOf()),Math.max)}static fromFormatExplain(e,t,i={}){const{locale:s=null,numberingSystem:n=null}=i;return zi(ie.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0}),e,t)}static fromStringExplain(e,t,i={}){return fs.fromFormatExplain(e,t,i)}static buildFormatParser(e,t={}){const{locale:i=null,numberingSystem:s=null}=t,n=ie.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return new Wi(n,e)}static fromFormatParser(e,t,i={}){if($e(e)||$e(t))throw new l("fromFormatParser requires an input string and a format parser");const{locale:s=null,numberingSystem:n=null}=i,r=ie.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0});if(!r.equals(t.locale))throw new l(`fromFormatParser called with a locale of ${r}, but the format parser was created for ${t.locale}`);const{result:o,zone:a,specificOffset:c,invalidReason:u}=t.explainFromTokens(e);return u?fs.invalid(u):Bi(o,a,i,`format ${t.format}`,e,c)}static get DATE_SHORT(){return p}static get DATE_MED(){return m}static get DATE_MED_WITH_WEEKDAY(){return _}static get DATE_FULL(){return h}static get DATE_HUGE(){return y}static get TIME_SIMPLE(){return w}static get TIME_WITH_SECONDS(){return g}static get TIME_WITH_SHORT_OFFSET(){return b}static get TIME_WITH_LONG_OFFSET(){return v}static get TIME_24_SIMPLE(){return k}static get TIME_24_WITH_SECONDS(){return x}static get TIME_24_WITH_SHORT_OFFSET(){return S}static get TIME_24_WITH_LONG_OFFSET(){return N}static get DATETIME_SHORT(){return O}static get DATETIME_SHORT_WITH_SECONDS(){return T}static get DATETIME_MED(){return F}static get DATETIME_MED_WITH_SECONDS(){return I}static get DATETIME_MED_WITH_WEEKDAY(){return D}static get DATETIME_FULL(){return j}static get DATETIME_FULL_WITH_SECONDS(){return E}static get DATETIME_HUGE(){return M}static get DATETIME_HUGE_WITH_SECONDS(){return V}}function ps(e){if(fs.isDateTime(e))return e;if(e&&e.valueOf&&We(e.valueOf()))return fs.fromJSDate(e);if(e&&"object"==typeof e)return fs.fromObject(e);throw new l(`Unknown datetime argument: ${e}, of type ${typeof e}`)}t.DateTime=fs,t.Duration=vi,t.FixedOffsetZone=ne,t.IANAZone=A,t.Info=Si,t.Interval=xi,t.InvalidZone=re,t.Settings=be,t.SystemZone=W,t.VERSION="3.6.1",t.Zone=C},271:(e,t,i)=>{const{SocotraEntry:s,SocotraGroupEntry:n}=i(630);entries_v3=[new s("quote_name","quote_name","quote.name"),new s("socotra_config_version","config_version","quote.version"),new s("fire_deductible","wf_deductible","exposure.dwelling.fields",parseFloat),new s("other_deductible","aop_deductible","exposure.dwelling.fields",parseInt),new s("water_deductible","water_deductible","exposure.dwelling.fields",parseInt),new s("num_stories","number_of_stories","exposure.dwelling.fields"),new s("num_bath","number_of_bathrooms","exposure.dwelling.fields"),new s("square_feet","square_feet","exposure.dwelling.fields",void 0,parseInt),new s("stand_protect_discount","stand_protect_discount","exposure.dwelling.fields"),new s("multi_policy_discount","multi_policy_discount","exposure.dwelling.fields"),new s(void 0,"has_any_claim_history","exposure.dwelling.fields",(e=>{}),(e=>e&&e.claims_data&&e.claims_data.claims&&e.claims_data.claims.length>0?"Yes":"No")),new s("roof_rating","roof_rating","exposure.dwelling.fields"),new s("slab_plumbing","slab_plumbing","exposure.dwelling.fields"),new s("foundation_type","foundation_type","exposure.dwelling.fields"),new s("siding_material","siding_material","exposure.dwelling.fields"),new s("distance_to_fire_department","dist_to_fire_department","exposure.dwelling.fields"),new s("protection_class","protection_class","exposure.dwelling.fields"),new s("purchase_year","property_purchase_year","exposure.dwelling.fields",void 0,parseInt),new s("roof_material","roof_material","exposure.dwelling.fields"),new s("presence_of_fence","fence","exposure.dwelling.fields"),new s("year_built","year_built","exposure.dwelling.fields"),new s("construction_type","construction_type","exposure.dwelling.fields"),new s("water_damage_limit","water_damage_limit","exposure.dwelling.fields"),new s("extended_dwelling_coverage","extended_dwelling_coverage","exposure.dwelling.fields"),new s("sprinkler","sprinkler","exposure.dwelling.fields"),new s("smoke","smoke","exposure.dwelling.fields"),new s("fire_alarm","fire_alarm_type","exposure.dwelling.fields"),new s("fire_ext","fire_ext","exposure.dwelling.fields"),new s("deadbolt","dead_bolt","exposure.dwelling.fields"),new s(void 0,"24_hour_security_guard","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("theft_alarm","theft_alarm_type","exposure.dwelling.fields"),new s("distance_to_neighboring_home","distance_to_nearest_home_ft","exposure.dwelling.fields"),new s("chimney_spark_arrestors","chimney_mesh_cover","exposure.dwelling.fields"),new s("ember_resistant_vents","ember_vents","exposure.dwelling.fields"),new s("enclosed_eaves","enclosed_eaves","exposure.dwelling.fields"),new s("fuel_tank_distance","propane_tank_proximity","exposure.dwelling.fields"),new s("ground_clearance","exterior_clearance","exposure.dwelling.fields"),new s("windows_frame_type","window_frame_type","exposure.dwelling.fields"),new s("windows_type","window_glass_type","exposure.dwelling.fields"),new s("replacement_cost","full_replacement_value","policy.fields",parseInt),new s("street_address","address","policy.fields"),new s("state","state","policy.fields"),new s("is_rental","is_rental","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("has_home_business","home_business","policy.fields"),new s("occupation","occupation","policy.fields"),new s("water_shutoff","water_shutoff_system","policy.fields"),new s("waterflow_alarm","waterflow_alarm","policy.fields"),new s("city","city","policy.fields"),new s("electrical_updated_year","electrical_last_updated","policy.fields"),new s("coverage_b","coverage_b","policy.fields",parseInt),new s("coverage_c","coverage_c","policy.fields",parseInt),new s("coverage_a","coverage_a","policy.fields",parseInt),new s("retrofitted","retrofit_1997","policy.fields"),new s("roof_replacement_year","roof_replaced_year","policy.fields"),new s("seismic_shutoff","seismic_shutoff","policy.fields"),new s("coverage_f","coverage_f","policy.fields"),new s("bellweather_wf_score","bellweather_wf_score","policy.fields"),new s("first_street_score","first_street_wf_score","policy.fields",parseInt),new s("degree_of_slope","degrees_of_slope","policy.fields"),new s("number_of_bankrupcies","bankruptcies_judgements_liens","policy.fields"),new s("coverage_d","coverage_d","policy.fields",parseInt),new s("coverage_e","coverage_e","policy.fields"),new s("gre_wf_score","gre_wf_score","policy.fields",parseFloat),new s("state","state","policy.fields"),new s("core_logic_wf_score","core_logic_score","policy.fields",parseInt),new s(void 0,"channel","policy.fields",(e=>{}),(e=>"Broker")),new s(void 0,"coverageForm","policy.fields",(e=>{}),(e=>"HO-5 Comprehensive")),new s("zip","zip","policy.fields"),new s("has_underground_fuel_tank","underground_fuel_tank","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("attractive_nuisance","has_attractive_nuisance","policy.fields"),new s("zesty_l2","zesty_l2","policy.fields",parseInt),new s("zesty_l1","zesty_l1","policy.fields",parseInt),new s("water_heater_update_year","water_heaters_last_updated","policy.fields"),new s("plumbing_updated_year","plumbing_last_updated","policy.fields"),new s("home_heating_update_year","home_heater_last_updated","policy.fields",void 0,(e=>""===e?null:e)),new s("insured_dob","date_of_birth","policy.fields"),new s("gre_arf","arf","policy.fields",parseFloat),new s("insured_dob","date_of_birth","policy.fields"),new s("flood_score","first_street_flood_score","policy.fields"),new s("home_heating_source","heating_source","policy.fields"),new s("horses","has_horses","policy.fields"),new s("is_under_renovation","renovation","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("previous_insurance_company","pastCarrier","policy.fields"),new s("previous_policy_expiration_date","prevPolicyExpiration","policy.fields"),new s("previous_premium","prevPolicyPremium","policy.fields",void 0,parseInt),new s("fireshed_ID","fireshed_id","policy.fields"),new s("fireshed_code","fireshed_code","policy.fields"),new s("fireshed_capacity","fireshed_capacity","policy.fields",parseFloat),new s("county","county","policy.fields"),new s("ensemble_mean","wf_score_mean","policy.fields",parseFloat),new s("ensemble_variance","wf_score_variance","policy.fields",parseFloat),new s("wildfire_category","wf_score_category","policy.fields"),new s("has_additional_insured","has_co_applicant","policy.fields"),new s("months_unoccupied","months_unoccupied","policy.fields",(e=>null==e?"0":e)),new s("multifamily_unit_count","multi_family_unit_count","policy.fields",void 0,parseInt),new s("spouse_first_name","has_co_applicant","policy.fields",(e=>null),(e=>e?"Yes":"No")),new s("spouse_first_name","co_applicant_first_name","policy.fields"),new s("spouse_last_name","co_applicant_last_name","policy.fields"),new s("spouse_email","co_applicant_email","policy.fields"),new s("co_applicant_address","co_applicant_address","policy.fields"),new s("spouse_phone_number","co_applicant_phone_number","policy.fields"),new s("number_of_mortgages","num_mortgages","policy.fields"),new s("past_liens","bankruptcies_judgements_liens","policy.fields"),new s("property_id","retool_property_id","policy.fields"),new s("primary_dwelling_insured","primary_insured_by_stand","policy.fields"),new s("lat","latitude","policy.fields",parseFloat),new s("lng","longitude","policy.fields",parseFloat),new s("count_of_solar_panels","has_solar_panels","exposure.dwelling.fields",...function(){let e={0:"No","1+":"Yes"},t={No:0,Yes:"1+"};return[e=>t[e],t=>e[t]]}()),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_id","producerId","policy.fields"),new s("producer_email","producerEmail","policy.fields"),new s("producer_name","producerName","policy.fields"),new s("producer_ascend_id","producer_ascend_id","policy.fields"),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_phone_number","producer_phone_number","policy.fields"),new s("producer_state","producer_state","policy.fields"),new s("producer_commission","commissionRate","policy.fields"),new s("producer_zip","producer_zip","policy.fields"),new s("producer_city","producer_city","policy.fields"),new s("producer_street_address","producer_street_address","policy.fields"),new s("producer_street_address2","producer_street_address_2","policy.fields"),new s("broker_license_number","distributor_license_number","policy.fields"),new s("broker_name","distributor_name","policy.fields"),new s("premium_calculated","indicated_policy_cost","policy.fields"),new s("withdrawal_reasons","withdrawal_reason","policy.fields.array"),new s("rejection_reasons","declination_reason","policy.fields.array"),new s("competing_carrier","competing_carrier","policy.fields"),new s("competing_pricing","competing_pricing","policy.fields"),new s("stand_second_approval","stand_second_approval","policy.fields"),new s("fronting_carrier_approval","fronting_carrier_approval","policy.fields"),new s("reinsurance_carrier_approved","reinsurance_carrier_approved","policy.fields"),new s("reinsurance_rate","reinsurance_rate","policy.fields"),new s("is_agreed_value","is_agreed_value","policy.fields"),new s("is_difference_in_condition","is_difference_in_condition","policy.fields"),new s("lead_source","lead_source","policy.fields",(e=>null)),new s("start_date","startTimestamp","effective_date"),new s("payment_schedule","paymentScheduleName","payment_schedule"),new s("billing_email","billing_email","policy.fields"),new s("account_manager_name","billing_contact_name","policy.fields"),new s("co_applicant_occupation","co_applicant_occupation","policy.fields"),new s("is_firewise_community","is_firewise_community","exposure.dwelling.fields"),new s("count_domestic_employees","count_domestic_employees","policy.fields"),new s("domestic_employees_duties","domestic_employees_duties","policy.fields"),new s("high_risk_tree_type","high_risk_tree_type","exposure.dwelling.fields"),new s("exterior_door_material","exterior_door_material","exposure.dwelling.fields"),new s("trellis_pergola_material","trellis_pergola_material","exposure.dwelling.fields"),new s("mulch_type","mulch_type","exposure.dwelling.fields"),new s("farming_activity","farming_type","policy.fields"),new s("deck_type","deck_type","exposure.dwelling.fields"),new s("has_fence_attached","has_fence_attached","exposure.dwelling.fields"),new s("gutter_material","gutter_material","exposure.dwelling.fields"),new s("has_gutter_guards_installed","has_gutter_guards_installed","exposure.dwelling.fields"),new s("gutter_guards_type","gutter_guards_type","exposure.dwelling.fields"),new s("construction_renovations_details","construction_renovations_details","exposure.dwelling.fields"),new s("year_retrofitted","year_retrofitted","policy.fields"),new s("alarm_company","alarm_company","exposure.dwelling.fields"),new s("eaves_material","eaves_material","exposure.dwelling.fields"),new s("exterior_sprinkler_type","exterior_sprinkler_type","exposure.dwelling.fields"),new s("defensible_space","defensible_space","exposure.dwelling.fields"),new s("water_supply_hoses_type","water_supply_hoses_type","policy.fields"),new s("water_supply_fittings_type","water_supply_fittings_type","policy.fields"),new s("prior_status_reason","prev_policy_status","policy.fields"),new s("prior_policy_status","prev_policy_status","policy.fields")],entries_v3.push(new n("additional_insured_data.additionalInterest","additional_insured","policy.fields.group",{type:":type",name:":name",street_address:":street_address",street_address2:":street_address2",city:":city",state:":state",zip:":zip",description:":description",loan_number:":loan_number"},{zip:":zip",street_address:":street_address",loan_number:":loan_number",city:":city",street_address2:":street_address2",state:":state",type:":type",name:":name",description:":description"}));const r=new n("claims_data.claims","claims_history","exposure.dwelling.fields.group",{prior_claim_type:":type",accident_date:":date",claim_amount:":amount"},{date:":date",amount:":amount",type:":type"});entries_v3.push(r),e.exports={entries_v3}},273:(e,t,i)=>{const{knockout:s,knockout_names:n,same_address:r,stand_wf_knockout:o,has_circuit_breaker:a,has_class_a_roof:l,check_claims_history:c}=i(78);function u(e){let t=[];for(let i in e)"refer"===e[i]&&t.push(i);return t}function d(e){for(let t in e)if("reject"===e[t])return"reject";for(let t in e)if("refer"===e[t])return"refer";return"accept"}function f(e,t,i,s,n={}){s[t]=e.decision,n[t]=e.note,e.note&&i.push(e.note)}e.exports={underwrite:function(e,t=!0){let i,p={},m=[],_={};for(let i of n())(t||Object.keys(e).includes(i))&&f(s(i,e[i]),i,m,p,_);return(t||"address"in e&&"co_applicant_address"in e)&&f(r(e.address,e.co_applicant_address),"co_applicant_address",m,p,_),(t||"wf_score_mean"in e&&"arf"in e)&&(i=o(e.wf_score_mean,e.arf),f(i.underwriter_result,"wf_score_mean",m,p,_)),(t||"circuit_breaker"in e&&"year_built"in e)&&f(a(e.circuit_breaker,e.year_built),"circuit_breaker",m,p,_),(t||"class_a_roof"in e)&&f(l(e.class_a_roof,i.category),"roof_rating",m,p,_),(t||"claims"in e)&&f(c(e.claims),"claims",m,p,_),{decision:d(p),notes:m,refers:u(p),all_decisions:p,notes_dict:_}},knockout_names:n}},330:e=>{"use strict";e.exports=JSON.parse('{"name":"stand_socotra_policy_transformer","version":"3.0.6","description":"Stands internal javascript module for executing underwriting","main":"dist/stand_underwriter.js","scripts":{"test":"jest","build":"webpack"},"author":"","license":"MIT","devDependencies":{"jest":"^29.7.0","webpack":"^5.92.1","webpack-cli":"^5.1.4"},"dependencies":{"luxon":"^3.6.1"}}')},401:(e,t,i)=>{const{SocotraEntry:s}=i(630);entries_v1=[new s("quote_name","quote_name","quote.name"),new s("socotra_config_version","config_version","quote.version"),new s("fire_deductible","wf_deductible","exposure.dwelling.fields",parseFloat),new s("other_deductible","aop_deductible","exposure.dwelling.fields",parseInt),new s("water_deductible","water_deductible","exposure.dwelling.fields",parseInt),new s("square_feet","square_feet","exposure.dwelling.fields",void 0,parseInt),new s("stand_protect_discount","stand_protect_discount","exposure.dwelling.fields"),new s("multi_policy_discount","multi_policy_discount","exposure.dwelling.fields"),new s(void 0,"has_any_claim_history","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("roof_rating","roof_rating","exposure.dwelling.fields"),new s("slab_plumbing","slab_plumbing","exposure.dwelling.fields"),new s("foundation_type","foundation_type","exposure.dwelling.fields"),new s("siding_material","siding_material","exposure.dwelling.fields"),new s("distance_to_fire_department","dist_to_fire_department","exposure.dwelling.fields"),new s("protection_class","protection_class","exposure.dwelling.fields"),new s("purchase_year","property_purchase_year","exposure.dwelling.fields",void 0,parseInt),new s("roof_material","roof_material","exposure.dwelling.fields"),new s("presence_of_fence","fence","exposure.dwelling.fields"),new s("year_built","year_built","exposure.dwelling.fields"),new s("construction_type","construction_type","exposure.dwelling.fields"),new s("water_damage_limit","water_damage_limit","exposure.dwelling.fields"),new s("extended_dwelling_coverage","extended_dwelling_coverage","exposure.dwelling.fields"),new s("sprinkler","sprinkler","exposure.dwelling.fields"),new s("smoke","smoke","exposure.dwelling.fields"),new s("fire_alarm","fire_alarm_type","exposure.dwelling.fields"),new s("fire_ext","fire_ext","exposure.dwelling.fields"),new s("deadbolt","dead_bolt","exposure.dwelling.fields"),new s(void 0,"24_hour_security_guard","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("theft_alarm","theft_alarm_type","exposure.dwelling.fields"),new s("distance_to_neighboring_home","distance_to_nearest_home_ft","exposure.dwelling.fields"),new s("chimney_spark_arrestors","chimney_mesh_cover","exposure.dwelling.fields"),new s("ember_resistant_vents","ember_vents","exposure.dwelling.fields"),new s("enclosed_eaves","enclosed_eaves","exposure.dwelling.fields"),new s("fuel_tank_distance","propane_tank_proximity","exposure.dwelling.fields"),new s("ground_clearance","exterior_clearance","exposure.dwelling.fields"),new s("windows_frame_type","window_frame_type","exposure.dwelling.fields"),new s("windows_type","window_glass_type","exposure.dwelling.fields"),new s("replacement_cost","full_replacement_value","policy.fields",parseInt),new s("street_address","address","policy.fields"),new s("state","state","policy.fields"),new s("is_rental","is_rental","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("has_home_business","home_business","policy.fields"),new s("occupation","occupation","policy.fields"),new s("water_shutoff","water_shutoff_system","policy.fields"),new s("waterflow_alarm","waterflow_alarm","policy.fields"),new s("city","city","policy.fields"),new s("electrical_updated_year","electrical_last_updated","policy.fields"),new s("coverage_b","coverage_b","policy.fields",parseInt),new s("coverage_c","coverage_c","policy.fields",parseInt),new s("coverage_a","coverage_a","policy.fields",parseInt),new s("retrofitted","retrofit_1997","policy.fields"),new s("roof_replacement_year","roof_replaced_year","policy.fields"),new s("seismic_shutoff","seismic_shutoff","policy.fields"),new s("coverage_f","coverage_f","policy.fields"),new s("first_street_score","first_street_wf_score","policy.fields",parseInt),new s("degree_of_slope","degrees_of_slope","policy.fields"),new s("number_of_bankrupcies","bankruptcies_judgements_liens","policy.fields"),new s("coverage_d","coverage_d","policy.fields",parseInt),new s("coverage_e","coverage_e","policy.fields"),new s("gre_wf_score","gre_wf_score","policy.fields",parseFloat),new s("state","state","policy.fields"),new s("has_steel_braided_hoses","steel_braided_hoses","policy.fields"),new s("core_logic_wf_score","core_logic_score","policy.fields",parseInt),new s(void 0,"channel","policy.fields",(e=>{}),(e=>"Broker")),new s(void 0,"coverageForm","policy.fields",(e=>{}),(e=>"HO-5 Comprehensive")),new s("zip","zip","policy.fields"),new s("has_underground_fuel_tank","underground_fuel_tank","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("attractive_nuisance","has_attractive_nuisance","policy.fields"),new s("zesty_l2","zesty_l2","policy.fields",parseInt),new s("zesty_l1","zesty_l1","policy.fields",parseInt),new s("water_heater_update_year","water_heaters_last_updated","policy.fields"),new s("plumbing_updated_year","plumbing_last_updated","policy.fields"),new s("home_heating_update_year","home_heater_last_updated","policy.fields",void 0,(e=>""===e?null:e)),new s("insured_dob","date_of_birth","policy.fields"),new s("gre_arf","arf","policy.fields",parseFloat),new s("insured_dob","date_of_birth","policy.fields"),new s("flood_score","first_street_flood_score","policy.fields"),new s("home_heating_source","heating_source","policy.fields"),new s("horses","has_horses","policy.fields"),new s("metal_fittings_toilet_supply_line","metal_fittings","policy.fields"),new s("is_under_renovation","renovation","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("previous_insurance_company","pastCarrier","policy.fields"),new s("previous_policy_expiration_date","prevPolicyExpiration","policy.fields"),new s("previous_premium","prevPolicyPremium","policy.fields",void 0,parseInt),new s("fireshed_ID","fireshed_id","policy.fields"),new s("fireshed_code","fireshed_code","policy.fields"),new s("fireshed_capacity","fireshed_capacity","policy.fields",parseFloat),new s("county","county","policy.fields"),new s("ensemble_mean","wf_score_mean","policy.fields",parseFloat),new s("ensemble_variance","wf_score_variance","policy.fields",parseFloat),new s("wildfire_category","wf_score_category","policy.fields"),new s("has_additional_insured","has_co_applicant","policy.fields"),new s("months_unoccupied","months_unoccupied","policy.fields",(e=>null==e?"0":e)),new s("multifamily_unit_count","multi_family_unit_count","policy.fields",void 0,parseInt),new s("spouse_first_name","has_co_applicant","policy.fields",(e=>null),(e=>e?"Yes":"No")),new s("spouse_first_name","co_applicant_first_name","policy.fields"),new s("spouse_last_name","co_applicant_last_name","policy.fields"),new s("spouse_email","co_applicant_email","policy.fields"),new s("spouse_phone_number","co_applicant_phone_number","policy.fields"),new s("number_of_mortgages","num_mortgages","policy.fields"),new s("past_liens","bankruptcies_judgements_liens","policy.fields"),new s("property_id","retool_property_id","policy.fields"),new s("primary_dwelling_insured","primary_insured_by_stand","policy.fields",(e=>e||"Yes")),new s("lat","latitude","policy.fields",parseFloat),new s("lng","longitude","policy.fields",parseFloat),new s("count_of_solar_panels","has_solar_panels","exposure.dwelling.fields",...function(){let e={0:"No","1+":"Yes"},t={No:0,Yes:"1+"};return[e=>t[e],t=>e[t]]}()),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_id","producerId","policy.fields"),new s("producer_email","producerEmail","policy.fields"),new s("producer_name","producerName","policy.fields"),new s("producer_ascend_id","producer_ascend_id","policy.fields"),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_phone_number","producer_phone_number","policy.fields"),new s("producer_state","producer_state","policy.fields"),new s("producer_commission","commissionRate","policy.fields"),new s("producer_zip","producer_zip","policy.fields"),new s("producer_city","producer_city","policy.fields"),new s("producer_street_address","producer_street_address","policy.fields"),new s("producer_street_address2","producer_street_address_2","policy.fields"),new s("broker_license_number","distributor_license_number","policy.fields"),new s("broker_name","distributor_name","policy.fields"),new s("premium_calculated","indicated_policy_cost","policy.fields"),new s("withdrawal_reasons","withdrawal_reason","policy.fields.array"),new s("rejection_reasons","declination_reason","policy.fields.array"),new s("competing_carrier","competing_carrier","policy.fields"),new s("competing_pricing","competing_pricing","policy.fields"),new s("stand_second_approval","stand_second_approval","policy.fields"),new s("fronting_carrier_approval","fronting_carrier_approval","policy.fields"),new s("reinsurance_carrier_approved","reinsurance_carrier_approved","policy.fields"),new s("reinsurance_rate","reinsurance_rate","policy.fields"),new s("start_date","startTimestamp","effective_date"),new s("payment_schedule","paymentScheduleName","payment_schedule")],e.exports={entries_v1}},479:e=>{e.exports={construction_type:function(e){return"string"!=typeof e?{decision:"reject",note:"Construction type must be a string"}:["Concrete","Frame","Log","Masonry","Mobile / Manufactured","Steel","Modular"].includes(e)?["Concrete","Frame","Masonry","Steel"].includes(e)?{decision:"accept",note:null}:{decision:"reject",note:"Construction type not supported"}:{decision:"reject",note:"Construction type must be one of [Concrete, Frame, Log, Masonry, Mobile / Manufactured, Steel, Modular]"}},siding_material:function(e){return"string"!=typeof e?{decision:"reject",note:"Siding material must be a string"}:["Adobe","Aluminum / Steel","Asbestos","Brick / Masonry Veneer","Brick / Stone - Solid","Cement Fiber","Clapboard","Exterior Insulation Finishing System (EIFS)","Log","Stone Veneer","Stucco","Vinyl","Wood","Other - above descriptions do not apply"].includes(e)?["Log","Asbestos","Exterior Insulation Finishing System (EIFS)"].includes(e)?{decision:"reject",note:"Siding material not supported"}:"Wood"!==e?{decision:"accept",note:null}:void 0:{decision:"reject",note:"Siding material must be one of [Adobe, Aluminum / Steel, Asbestos, Brick / Masonry Veneer, Brick / Stone - Solid, Cement Fiber, Clapboard, Exterior Insulation Finishing System (EIFS), Log, Stone Veneer, Stucco, Vinyl, Wood, Other - above descriptions do not apply]"}},protection_class:function(e){let t=["1","2","3","4","5","6","7","8","8B","1Y","2Y","3Y","4Y","5Y","6Y","7Y","8Y","9","1X","2X","3X","4X","5X","6X","7X","8X","9","10","10W"];return"string"!=typeof e?{decision:"reject",note:"Protection class must be a string"}:t.includes(e)?["9","10"].includes(e)?{decision:"reject",note:"Protection class not supported"}:{decision:"accept",note:null}:{decision:"reject",note:`Protection class must be one of ${t}`}},roof_material:function(e){let t=["Architecture Shingles","Asphalt Fiberglass Composite","Clay-Tile-Slate","Concrete Tile","Corrugated Steel - Metal","Flat Foam Composite"," Flat Membrane","Flat Tar Gravel","Other","Wood Shake","Wood Shingle"];return"string"!=typeof e?{decision:"reject",note:"Roof material must be a string"}:t.includes(e)?["Wood Shake","Wood Shingle"].includes(e)?{decision:"reject",note:"Roof material not supported"}:{decision:"accept",note:null}:{decision:"reject",note:`Roof material must be one of ${t}`}},has_class_a_roof:function(e,t){return"string"!=typeof e?{decision:"reject",note:"Has class a roof must be a string"}:["Yes","No"].includes(e)?"Yes"===e||["A","B"].includes(t)?{decision:"accept",note:null}:{decision:"reject",note:"Homes in this wildfire category must have class a roofs"}:{decision:"reject",note:"Has class a roof must be Yes or No"}},foundation_type:function(e){let t=["Basement Finished","Basement Partially Finished","Basement Unfinished","Crawlspace","Other","Piers","Pilings","Stilts","Slab"];return"string"!=typeof e?{decision:"reject",note:"Foundation type must be a string"}:t.includes(e)?"Other"==e?{decision:"refer",note:null}:["Piers","Pilings","Stilts"].includes(e)?{decision:"reject",note:"Foundation type not supported"}:{decision:"accept",note:null}:{decision:"reject",note:`Foundation type must be one of ${t}`}},has_slab_foundation_plumbing:function(e){return"string"!=typeof e?{decision:"reject",note:"Has slab foundation plumbing must be a string"}:["Yes","No"].includes(e)?"Yes"===e?{decision:"reject",note:"Homes with slab foundation plumbing are not allowed"}:{decision:"accept",note:null}:{decision:"reject",note:"Has slab foundation plumbing must be Yes or No"}},fire_protective_devices:function(e){if(!Array.isArray(e))return{decision:"reject",note:"Fire protective devices must be a list"};let t=["Local","Central","Direct","Sprinkler","Fire Ext","Smoke","No"];return e.every((e=>t.includes(e)))?e.includes("Direct")||e.includes("Central")?{decision:"accept",note:null}:{decision:"reject",note:"Insufficient fire devices"}:{decision:"reject",note:`Unrecognized fire device type. Valid devices: ${t}`}},theft_protective_devices:function(e){return Array.isArray(e)?(device_types=["Dead Bolt","Local","Central","Direct","24 Hour Security Guard","No"],e.every((e=>device_types.includes(e)))?e.includes("Central")||e.includes("Direct")||e.includes("24 Hour Security Guard")?{decision:"accept",note:null}:{decision:"reject",note:"Insufficient theft device"}:{decision:"reject",note:`Unrecognized theft device type. Valid devices: ${device_types}`}):{decision:"reject",note:"Theft protective devices must be a list"}}}},529:e=>{e.exports={check_claims_history:function(e){if(!e)return{decision:"reject",note:"For Claims use empty instead of null"};let t=new Date,i=new Date,s=new Date;i.setFullYear(t.getFullYear()-5),s.setFullYear(t.getFullYear()-3);let n=e.filter((e=>e.date>i)),r=e.filter((e=>e.date>s));return n.length>2?{decision:"reject",note:"To many claims in the past 5 years"}:r.length>1?{decision:"reject",note:"To many claims in the past 3 years"}:{decision:"accept",note:null}}}},540:(e,t,i)=>{const{SocotraEntry:s}=i(630);entries_v2=[new s("quote_name","quote_name","quote.name"),new s("socotra_config_version","config_version","quote.version"),new s("fire_deductible","wf_deductible","exposure.dwelling.fields",parseFloat),new s("other_deductible","aop_deductible","exposure.dwelling.fields",parseInt),new s("water_deductible","water_deductible","exposure.dwelling.fields",parseInt),new s("num_stories","number_of_stories","exposure.dwelling.fields"),new s("num_bath","number_of_bathrooms","exposure.dwelling.fields"),new s("square_feet","square_feet","exposure.dwelling.fields",void 0,parseInt),new s("stand_protect_discount","stand_protect_discount","exposure.dwelling.fields"),new s("multi_policy_discount","multi_policy_discount","exposure.dwelling.fields"),new s(void 0,"has_any_claim_history","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("roof_rating","roof_rating","exposure.dwelling.fields"),new s("slab_plumbing","slab_plumbing","exposure.dwelling.fields"),new s("foundation_type","foundation_type","exposure.dwelling.fields"),new s("siding_material","siding_material","exposure.dwelling.fields"),new s("distance_to_fire_department","dist_to_fire_department","exposure.dwelling.fields"),new s("protection_class","protection_class","exposure.dwelling.fields"),new s("purchase_year","property_purchase_year","exposure.dwelling.fields",void 0,parseInt),new s("roof_material","roof_material","exposure.dwelling.fields"),new s("presence_of_fence","fence","exposure.dwelling.fields"),new s("year_built","year_built","exposure.dwelling.fields"),new s("construction_type","construction_type","exposure.dwelling.fields"),new s("water_damage_limit","water_damage_limit","exposure.dwelling.fields"),new s("extended_dwelling_coverage","extended_dwelling_coverage","exposure.dwelling.fields"),new s("sprinkler","sprinkler","exposure.dwelling.fields"),new s("smoke","smoke","exposure.dwelling.fields"),new s("fire_alarm","fire_alarm_type","exposure.dwelling.fields"),new s("fire_ext","fire_ext","exposure.dwelling.fields"),new s("deadbolt","dead_bolt","exposure.dwelling.fields"),new s(void 0,"24_hour_security_guard","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("theft_alarm","theft_alarm_type","exposure.dwelling.fields"),new s("distance_to_neighboring_home","distance_to_nearest_home_ft","exposure.dwelling.fields"),new s("chimney_spark_arrestors","chimney_mesh_cover","exposure.dwelling.fields"),new s("ember_resistant_vents","ember_vents","exposure.dwelling.fields"),new s("enclosed_eaves","enclosed_eaves","exposure.dwelling.fields"),new s("fuel_tank_distance","propane_tank_proximity","exposure.dwelling.fields"),new s("ground_clearance","exterior_clearance","exposure.dwelling.fields"),new s("windows_frame_type","window_frame_type","exposure.dwelling.fields"),new s("windows_type","window_glass_type","exposure.dwelling.fields"),new s("replacement_cost","full_replacement_value","policy.fields",parseInt),new s("street_address","address","policy.fields"),new s("state","state","policy.fields"),new s("is_rental","is_rental","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("has_home_business","home_business","policy.fields"),new s("occupation","occupation","policy.fields"),new s("water_shutoff","water_shutoff_system","policy.fields"),new s("waterflow_alarm","waterflow_alarm","policy.fields"),new s("city","city","policy.fields"),new s("electrical_updated_year","electrical_last_updated","policy.fields"),new s("coverage_b","coverage_b","policy.fields",parseInt),new s("coverage_c","coverage_c","policy.fields",parseInt),new s("coverage_a","coverage_a","policy.fields",parseInt),new s("retrofitted","retrofit_1997","policy.fields"),new s("roof_replacement_year","roof_replaced_year","policy.fields"),new s("seismic_shutoff","seismic_shutoff","policy.fields"),new s("coverage_f","coverage_f","policy.fields"),new s("bellweather_wf_score","bellweather_wf_score","policy.fields"),new s("first_street_score","first_street_wf_score","policy.fields",parseInt),new s("degree_of_slope","degrees_of_slope","policy.fields"),new s("number_of_bankrupcies","bankruptcies_judgements_liens","policy.fields"),new s("coverage_d","coverage_d","policy.fields",parseInt),new s("coverage_e","coverage_e","policy.fields"),new s("gre_wf_score","gre_wf_score","policy.fields",parseFloat),new s("state","state","policy.fields"),new s("core_logic_wf_score","core_logic_score","policy.fields",parseInt),new s(void 0,"channel","policy.fields",(e=>{}),(e=>"Broker")),new s(void 0,"coverageForm","policy.fields",(e=>{}),(e=>"HO-5 Comprehensive")),new s("zip","zip","policy.fields"),new s("has_underground_fuel_tank","underground_fuel_tank","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("attractive_nuisance","has_attractive_nuisance","policy.fields"),new s("zesty_l2","zesty_l2","policy.fields",parseInt),new s("zesty_l1","zesty_l1","policy.fields",parseInt),new s("water_heater_update_year","water_heaters_last_updated","policy.fields"),new s("plumbing_updated_year","plumbing_last_updated","policy.fields"),new s("home_heating_update_year","home_heater_last_updated","policy.fields",void 0,(e=>""===e?null:e)),new s("insured_dob","date_of_birth","policy.fields"),new s("gre_arf","arf","policy.fields",parseFloat),new s("insured_dob","date_of_birth","policy.fields"),new s("flood_score","first_street_flood_score","policy.fields"),new s("home_heating_source","heating_source","policy.fields"),new s("horses","has_horses","policy.fields"),new s("is_under_renovation","renovation","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("previous_insurance_company","pastCarrier","policy.fields"),new s("previous_policy_expiration_date","prevPolicyExpiration","policy.fields"),new s("previous_premium","prevPolicyPremium","policy.fields",void 0,parseInt),new s("fireshed_ID","fireshed_id","policy.fields"),new s("fireshed_code","fireshed_code","policy.fields"),new s("fireshed_capacity","fireshed_capacity","policy.fields",parseFloat),new s("county","county","policy.fields"),new s("ensemble_mean","wf_score_mean","policy.fields",parseFloat),new s("ensemble_variance","wf_score_variance","policy.fields",parseFloat),new s("wildfire_category","wf_score_category","policy.fields"),new s("has_additional_insured","has_co_applicant","policy.fields"),new s("months_unoccupied","months_unoccupied","policy.fields",(e=>null==e?"0":e)),new s("multifamily_unit_count","multi_family_unit_count","policy.fields",void 0,parseInt),new s("spouse_first_name","has_co_applicant","policy.fields",(e=>null),(e=>e?"Yes":"No")),new s("spouse_first_name","co_applicant_first_name","policy.fields"),new s("spouse_last_name","co_applicant_last_name","policy.fields"),new s("spouse_email","co_applicant_email","policy.fields"),new s("co_applicant_address","co_applicant_address","policy.fields"),new s("spouse_phone_number","co_applicant_phone_number","policy.fields"),new s("number_of_mortgages","num_mortgages","policy.fields"),new s("past_liens","bankruptcies_judgements_liens","policy.fields"),new s("property_id","retool_property_id","policy.fields"),new s("primary_dwelling_insured","primary_insured_by_stand","policy.fields"),new s("lat","latitude","policy.fields",parseFloat),new s("lng","longitude","policy.fields",parseFloat),new s("count_of_solar_panels","has_solar_panels","exposure.dwelling.fields",...function(){let e={0:"No","1+":"Yes"},t={No:0,Yes:"1+"};return[e=>t[e],t=>e[t]]}()),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_id","producerId","policy.fields"),new s("producer_email","producerEmail","policy.fields"),new s("producer_name","producerName","policy.fields"),new s("producer_ascend_id","producer_ascend_id","policy.fields"),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_phone_number","producer_phone_number","policy.fields"),new s("producer_state","producer_state","policy.fields"),new s("producer_commission","commissionRate","policy.fields"),new s("producer_zip","producer_zip","policy.fields"),new s("producer_city","producer_city","policy.fields"),new s("producer_street_address","producer_street_address","policy.fields"),new s("producer_street_address2","producer_street_address_2","policy.fields"),new s("broker_license_number","distributor_license_number","policy.fields"),new s("broker_name","distributor_name","policy.fields"),new s("premium_calculated","indicated_policy_cost","policy.fields"),new s("withdrawal_reasons","withdrawal_reason","policy.fields.array"),new s("rejection_reasons","declination_reason","policy.fields.array"),new s("competing_carrier","competing_carrier","policy.fields"),new s("competing_pricing","competing_pricing","policy.fields"),new s("stand_second_approval","stand_second_approval","policy.fields"),new s("fronting_carrier_approval","fronting_carrier_approval","policy.fields"),new s("reinsurance_carrier_approved","reinsurance_carrier_approved","policy.fields"),new s("reinsurance_rate","reinsurance_rate","policy.fields"),new s("is_agreed_value","is_agreed_value","policy.fields"),new s("is_difference_in_condition","is_difference_in_condition","policy.fields"),new s("lead_source","lead_source","policy.fields",(e=>null)),new s("start_date","startTimestamp","effective_date"),new s("payment_schedule","paymentScheduleName","payment_schedule"),new s("billing_email","billing_email","policy.fields"),new s("account_manager_name","billing_contact_name","policy.fields"),new s("co_applicant_occupation","co_applicant_occupation","policy.fields"),new s("is_firewise_community","is_firewise_community","exposure.dwelling.fields"),new s("count_domestic_employees","count_domestic_employees","policy.fields"),new s("domestic_employees_duties","domestic_employees_duties","policy.fields"),new s("high_risk_tree_type","high_risk_tree_type","exposure.dwelling.fields"),new s("exterior_door_material","exterior_door_material","exposure.dwelling.fields"),new s("trellis_pergola_material","trellis_pergola_material","exposure.dwelling.fields"),new s("mulch_type","mulch_type","exposure.dwelling.fields"),new s("farming_activity","farming_type","policy.fields"),new s("deck_type","deck_type","exposure.dwelling.fields"),new s("has_fence_attached","has_fence_attached","exposure.dwelling.fields"),new s("gutter_material","gutter_material","exposure.dwelling.fields"),new s("has_gutter_guards_installed","has_gutter_guards_installed","exposure.dwelling.fields"),new s("gutter_guards_type","gutter_guards_type","exposure.dwelling.fields"),new s("construction_renovations_details","construction_renovations_details","exposure.dwelling.fields"),new s("year_retrofitted","year_retrofitted","policy.fields"),new s("alarm_company","alarm_company","exposure.dwelling.fields"),new s("eaves_material","eaves_material","exposure.dwelling.fields"),new s("exterior_sprinkler_type","exterior_sprinkler_type","exposure.dwelling.fields"),new s("water_supply_hoses_type","water_supply_hoses_type","policy.fields"),new s("water_supply_fittings_type","water_supply_fittings_type","policy.fields"),new s("prior_status_reason","prev_policy_status","policy.fields"),new s("prior_policy_status","prev_policy_status","policy.fields")],e.exports={entries_v2}},575:e=>{e.exports={stand_wf_knockout:function(e,t){return e<0||t<0?{category:"",underwriter_result:{decision:"reject",note:"Mean and ARF must be positive numbers"}}:Number.isFinite(t)&&Number.isFinite(e)?e>=.7?{category:"D",underwriter_result:{decision:"reject",note:"Stand WF mean must be less than or equal to 0.7"}}:t>=8?{category:"C",underwriter_result:{decision:"refer",note:null}}:t>=5||e>=.2?{category:"C",underwriter_result:{decision:"accept",note:null}}:e>=.1?{category:"B",underwriter_result:{decision:"accept",note:null}}:{category:"A",underwriter_result:{decision:"accept",note:null}}:{category:"",underwriter_result:{decision:"reject",note:"ARF must be a number"}}},wf_variance:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Variance must be a positive number."}:e<=.09?{decision:"accept",note:null}:{decision:"refer",note:null}:{decision:"reject",note:"Variance must be a number."}}}},630:(e,t,i)=>{const{DateTime:s}=i(169),n=Object.freeze(["policy.fields","policy.fields.array","policy.fields.group","exposure.dwelling.fields","exposure.dwelling.fields.group","policy.group","policy","exposure.dwelling.group","quote.name","effective_date","payment_schedule","quote.version"]);class r{constructor(e,t,i,s=e=>e,r=e=>e){if(!n.includes(i))throw new Error(`Unsupported Socotra Location: ${i}`);this.retool_id=e,this.socotra_id=t,this.socotra_location=i,this.to_scotra_func=r,this.to_retool_func=s}socotra_create_response(e,t){let i=this.to_scotra_func(e[this.retool_id]);if(""===i&&(i=[]),this.socotra_location.includes("policy.fields"))t.fieldValues[this.socotra_id]=i;else if("exposure.dwelling.fields"===this.socotra_location)t.exposures[0].fieldValues[this.socotra_id]=i;else if("quote.name"===this.socotra_location);else if("effective_date"===this.socotra_location){const e=i,n=s.fromISO(e,{zone:"America/Los_Angeles"}).startOf("day"),r=n.toMillis();t.policyStartTimestamp=r;const o=n.plus({years:1});t.policyEndTimestamp=o.toMillis()}else if("payment_schedule"===this.socotra_location)["upfront","quarterly"].includes(i)&&(t.paymentScheduleName=i);else{if("quote.version"!==this.socotra_location)throw new Error(`Location Not implemented: ${JSON.stringify(this)}`);t.configVersion=i}}retool_response(e,t){let i,s;if(this.socotra_location.includes("policy.fields"))i=e.characteristics.fieldValues[this.socotra_id];else{if("exposure.dwelling.fields"!==this.socotra_location){if("quote.name"===this.socotra_location)return void(t[this.retool_id]=e.name);if("effective_date"===this.socotra_location){let i=parseInt(e.characteristics[this.socotra_id])/1e3;var n=new Date(0);return n.setUTCSeconds(i),void(t[this.retool_id]=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,"0")}-${String(n.getDate()).padStart(2,"0")}`)}if("payment_schedule"===this.socotra_location)return void(t[this.retool_id]=e[this.socotra_id]);if("quote.version"==this.socotra_location)return;throw new Error(`Location Not implemented: ${JSON.stringify(this)}`)}i=e.exposures.find((e=>"dwelling"===e.name)).characteristics.at(-1).fieldValues[this.socotra_id]}s=this.socotra_location.includes("array")?i:i?.[0]??null,s=this.to_retool_func(s),t[this.retool_id]=s}socotra_update(e,t){let i=this.to_scotra_func(e[this.retool_id]);if(""===i&&(i=[]),this.socotra_location.includes("policy.fields"))t.fieldValues[this.socotra_id]=i;else if("exposure.dwelling.fields"===this.socotra_location)t.updateExposures[0].fieldValues[this.socotra_id]=i;else if("quote.name"===this.socotra_location)t.name=i;else if("effective_date"===this.socotra_location){const e=new Date(`${i}T00:00:00-08:00`);t.policyStartTimestamp=e.getTime();const s=new Date(e);s.setFullYear(e.getFullYear()+1),t.policyEndTimestamp=s.getTime()}else{if("payment_schedule"!==this.socotra_location){if("quote.version"===this.socotra_location)return;throw new Error(`Location Not implemented: ${JSON.stringify(this)}`)}["upfront","quarterly"].includes(i)&&(t.paymentScheduleName=i)}}static build_group(e,t){return{name:t}}static socotra_create_policy_template(e){return{policyholderLocator:e,productName:"homeowners",finalize:!1,paymentScheduleName:"upfront",exposures:[{exposureName:"dwelling",perils:[{name:"wildfire_expense",fieldValues:{},fieldGroups:[]},{name:"fire_following_earthquake",fieldValues:{},fieldGroups:[]},{name:"liability",fieldValues:{},fieldGroups:[]},{name:"other",fieldValues:{},fieldGroups:[]},{name:"theft",fieldValues:{},fieldGroups:[]},{name:"water_cat",fieldValues:{},fieldGroups:[]},{name:"water_excluding_cat",fieldValues:{},fieldGroups:[]},{name:"wildfire",fieldValues:{},fieldGroups:[]},{name:"wind_cat",fieldValues:{},fieldGroups:[]},{name:"wind_excluding_cat",fieldValues:{},fieldGroups:[]},{name:"fire",fieldValues:{},fieldGroups:[]},{name:"fac_prem",fieldValues:{},fieldGroups:[]},{name:"minimum_premium",fieldValues:{},fieldGroups:[]}],fieldValues:{},fieldGroups:[]}],fieldValues:{},fieldGroups:[],configVersion:-1}}static socotra_create_update_template(e){return{updateExposures:[{exposureLocator:e,fieldValues:{},fieldGroups:[]}],fieldValues:{}}}}e.exports={SocotraEntry:r,SocotraGroupEntry:class extends r{constructor(e,t,i,s={},n={}){super(e,t,i),this.socotra_schema=s,this.retool_schema=n}socotra_create_response(e,t){const i=this.retool_id.split(".");let s=e;for(const e of i){if(!s||void 0===s[e])return;s=s[e]}if(Array.isArray(s)){const e=s.map((e=>{const t={};for(const[i,s]of Object.entries(this.socotra_schema))if(s.startsWith(":")){const n=s.substring(1);void 0!==e[n]&&(t[i]=e[n])}return{fieldName:this.socotra_id,fieldValues:t}}));e.length>0&&("policy.fields.group"===this.socotra_location?(t.fieldGroups||(t.fieldGroups=[]),t.fieldGroups.push(...e)):"exposure.dwelling.fields.group"===this.socotra_location&&(t.exposures[0].fieldGroups||(t.exposures[0].fieldGroups=[]),t.exposures[0].fieldGroups.push(...e)))}}retool_response(e,t){if("policy.fields.group"===this.socotra_location){const i=e.characteristics.fieldValues,s=e.characteristics.fieldGroupsByLocator;if(i&&i[this.socotra_id]&&s){const e=this.retool_id.split(".");let n=t;for(let t=0;t<e.length-1;t++)n[e[t]]||(n[e[t]]={}),n=n[e[t]];const r=i[this.socotra_id];n[e[e.length-1]]=[];for(const t of r)if(s[t]){const i=s[t],r={};for(const[e,t]of Object.entries(this.retool_schema))if(t.startsWith(":")){const s=t.substring(1);i[e]&&void 0!==i[e][0]&&(r[s]=i[e][0])}r.socotra_field_locator=t,n[e[e.length-1]].push(r)}}}}_navigateNestedStructure(e,t){let i=e;for(const e of t){if(!i||void 0===i[e])return[];i=i[e]}return i}_createFieldValues(e){const t={};for(const[i,s]of Object.entries(this.socotra_schema))if(s.startsWith(":")){const n=s.substring(1);void 0!==e[n]&&(t[i]=e[n])}return t}_addItemToFieldGroups(e,t){if(!0===e.remove)return;const i=this._createFieldValues(e),s={fieldName:this.socotra_id,fieldValues:i};"exposure.dwelling.fields.group"===this.socotra_location?(t.updateExposures?t.updateExposures[0]?t.updateExposures[0].addFieldGroups||(t.updateExposures[0].addFieldGroups=[]):t.updateExposures[0]={addFieldGroups:[]}:t.updateExposures=[{addFieldGroups:[]}],t.updateExposures[0].addFieldGroups.push(s)):(t.addFieldGroups||(t.addFieldGroups=[]),t.addFieldGroups.push(s))}_processRemoveOperations(e,t){for(const i of e)!0===i.remove&&i.locator&&("exposure.dwelling.fields.group"===this.socotra_location?(t.updateExposures?t.updateExposures[0]?t.updateExposures[0].removeFieldGroups||(t.updateExposures[0].removeFieldGroups=[]):t.updateExposures[0]={removeFieldGroups:[]}:t.updateExposures=[{removeFieldGroups:[]}],t.updateExposures[0].removeFieldGroups.push(i.locator)):(t.removeFieldGroups||(t.removeFieldGroups=[]),t.removeFieldGroups.push(i.locator)))}_createComparisonKey(e){const t={...e};return delete t.socotra_field_locator,!t.type||"Mortgagee"!==t.type&&"LLC Name"!==t.type?JSON.stringify(t):`${t.type}-${t.loan_number}-${t.zip}`}socotra_update(e,t,i){const s=this.retool_id.split(".");let n=this._navigateNestedStructure(e,s),r=i?this._navigateNestedStructure(i,s):[];if(t.addFieldGroups||(t.addFieldGroups=[]),t.removeFieldGroups||(t.removeFieldGroups=[]),this._processRemoveOperations(n,t),i&&Array.isArray(r)&&Array.isArray(n)){const e=new Map;for(const t of n){const i=this._createComparisonKey(t);e.set(i,t)}for(const i of r){const s=this._createComparisonKey(i);e.has(s)?e.delete(s):i.socotra_field_locator&&("exposure.dwelling.fields.group"===this.socotra_location?(t.updateExposures?t.updateExposures[0]?t.updateExposures[0].removeFieldGroups||(t.updateExposures[0].removeFieldGroups=[]):t.updateExposures[0]={removeFieldGroups:[]}:t.updateExposures=[{removeFieldGroups:[]}],t.updateExposures[0].removeFieldGroups.push(i.socotra_field_locator)):(t.removeFieldGroups||(t.removeFieldGroups=[]),t.removeFieldGroups.push(i.socotra_field_locator)))}for(const i of e.values())this._addItemToFieldGroups(i,t)}else for(const e of n)this._addItemToFieldGroups(e,t);t.addFieldGroups&&0===t.addFieldGroups.length&&delete t.addFieldGroups,t.removeFieldGroups&&0===t.removeFieldGroups.length&&delete t.removeFieldGroups,t.updateExposures&&(t.updateExposures[0]&&(t.updateExposures[0].addFieldGroups&&0===t.updateExposures[0].addFieldGroups.length&&delete t.updateExposures[0].addFieldGroups,t.updateExposures[0].removeFieldGroups&&0===t.updateExposures[0].removeFieldGroups.length&&delete t.updateExposures[0].removeFieldGroups,0===Object.keys(t.updateExposures[0]).length&&t.updateExposures.splice(0,1)),0===t.updateExposures.length&&delete t.updateExposures)}}}},729:e=>{e.exports={number_of_dogs:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Number of dogs must be a positive number."}:e<4?{decision:"accept",note:null}:{decision:"reject",note:"Owner has 4 or more dogs"}:{decision:"reject",note:"Number of dogs must be a number."}},dog_history:function(e){return"Yes"==e?{decision:"reject",note:"Has a dog with a history of aggressive behavior"}:"No"==e?{decision:"accept",note:null}:{decision:"reject",note:"Dog has history must be Yes or No."}},dog_breeds:function(e){return Array.isArray(e)?e.every((e=>"non-guard dog of other breeds"===e))?{decision:"accept",note:null}:{decision:"reject",note:"Dog of given breed not allowed"}:{decision:"reject",note:"Dog breed must be a list"}},exotic_pets:function(e){return"Yes"==e?{decision:"reject",note:"Has an exotic pet"}:"No"==e?{decision:"accept",note:null}:{decision:"reject",note:"Has exotic pet must be Yes or No."}},number_of_mortgages:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Number of mortgages must be a positive number."}:e<2?{decision:"accept",note:null}:{decision:"refer",note:null}:{decision:"reject",note:"Number of mortgages must be a number."}},number_of_bankruptcies_judgements_or_liens:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Number of bankruptcies, judgements, or liens must be a positive number"}:0===e?{decision:"accept",note:null}:{decision:"reject",note:"Has bankruptcies, judgements, or liens"}:{decision:"reject",note:"Number of bankruptcies, judgements, or liens must be a number"}},home_business_type:function(e){return"string"!=typeof e?{decision:"reject",note:"Home business type must be a string"}:["yes - day care","yes - other","no"].includes(e)?"no"==e?{decision:"accept",note:null}:"yes - day care"==e?{decision:"reject",note:"Cannot insure daycare"}:{decision:"refer",note:null}:{decision:"reject",note:"Home business type must be in [yes - day care, yes - other, no]"}},home_rental_type:function(e){return"string"!=typeof e?{decision:"reject",note:"Home rental type must be a string"}:["short-term rentals less than 6 months of the year","short term rentals more than 6 months of the year","timeshare","no"].includes(e)?"no"==e?{decision:"accept",note:null}:["short-term rentals less than 6 months of the year","timeshare"].includes(e)?{decision:"refer",note:null}:{decision:"reject",note:"Cannot insure rentals longer than 6 months"}:{decision:"reject",note:"Home rental type must be in [short-term rentals less than 6 months of the year, short term rentals more than 6 months of the year, timeshare, no]"}},same_address:function(e,t){return e===t?{decision:"accept",note:null}:{decision:"reject",note:"Co-Applicant must have same address as Applicant."}}}},752:e=>{e.exports={distance_to_coast:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Distance to coast must be a positive number."}:e>.19?{decision:"accept",note:null}:{decision:"refer",note:null}:{decision:"reject",note:"Distance to coast must be a number."}},pool_features:function(e){if(!Array.isArray(e))return{decision:"reject",note:"Pool features must be a list."};let t=e.includes("Inground")&&(e.includes("Electric retractable safety cover")||e.includes("Fenced with self-locking gate"));return t=t||e.includes("Above Ground")&&e.includes("Retractable/removable ladder"),e.includes("Diving Board")||e.includes("Slide")?{decision:"refer",note:null}:t?{decision:"accept",note:null}:{decision:"refer",note:null}},farming_type:function(e){let t=["Farming activities produce income","Incidental or hobby farming","Vineyard","None"];return"string"!=typeof e?{decision:"reject",note:"Farming type must be a string"}:t.includes(e)?"Vineyard"==e?{decision:"refer",note:null}:"Farming activities produce income"==e?{decision:"reject",note:"Cannot insure commercial farms"}:{decision:"accept",note:null}:{decision:"reject",note:`Farming type must be in [${t}]`}},has_attractive_nuisance:function(e){return"Yes"==e?{decision:"refer",note:null}:"No"==e?{decision:"accept",note:null}:{decision:"reject",note:"Has attractive nuisance must be Yes or No."}},degree_of_slope:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Degree of slope must be a positive number."}:e>30?{decision:"reject",note:"Slope greater than 30 degrees"}:{decision:"accept",note:null}:{decision:"reject",note:"Degree of slope must be a number."}},flood_score:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Flood score must be a positive number."}:e<9?{decision:"accept",note:null}:{decision:"reject",note:"Flood risk is too high"}:{decision:"reject",note:"Flood score must be a number."}}}},991:(e,t,i)=>{const{SocotraEntry:s,SocotraGroupEntry:n}=i(630);e.exports={SocotraPayloadConverter:class{constructor(e){this.entries=e}policy_holder_payload(e){let t=[],i=["owner_first_name","owner_last_name"];for(const s of i)e[s]||t.push(s);if(0==t.length){let t={first_name:e.owner_first_name,last_name:e.owner_last_name,email:e.owner_email,phone_number:e.owner_phone_number,mailing_street_address:e.mailing_street_address,mailing_street_address_2:e.mailing_street_address2,mailing_city:e.mailing_city,mailing_state:e.mailing_state,mailing_zip:e.mailing_zip,ofac_date:e.ofac_date_pulled,ofac_reason:e.ofac_reason,ofac_outcome:e.ofac_outcome};return{status:"success",error_message:"",payload:{completed:!0,values:this.stripNoneValues(t,!0,!0,!1)}}}return{payload:{},status:"error",error_message:`must include the following fields [${t}]`}}new_policy_payload(e,t){let i=s.socotra_create_policy_template(t);return this.entries.forEach((t=>{t.socotra_create_response(e,i)})),{payload:this.stripNoneValues(i,!0,!0,!0),error_message:"",status:"success"}}quote_to_retool_payload(e){let t={};return this.entries.forEach((i=>{i.retool_response(e,t)})),{payload:this.stripNoneValues(t,!1,!0,!1),error_message:"",status:"success"}}retool_to_quote_updated(e,t){let i=this.quote_to_retool_payload(t).payload;Object.keys(e).forEach((t=>{if(Array.isArray(e[t])){let s=e[t],n=i[t];n&&Array.isArray(n)&&JSON.stringify(s)===JSON.stringify(n)&&delete e[t]}else"object"==typeof e[t]&&null!==e[t]?i[t]&&"object"==typeof i[t]&&JSON.stringify(e[t])===JSON.stringify(i[t])&&delete e[t]:i[t]===e[t]&&delete e[t]}));let r=t.exposures.find((e=>"dwelling"===e.name)).locator,o=s.socotra_create_update_template(r);return this.entries.forEach((t=>{const s=(t.retool_id?t.retool_id.split("."):[])[0];(Object.keys(e).includes(t.retool_id)||s&&Object.keys(e).includes(s))&&(t instanceof n?t.socotra_update(e,o,i):t.socotra_update(e,o))})),o=this.stripNoneValues(o,!0,!0,!1),0===Object.keys(o.updateExposures[0].fieldValues).length&&delete o.updateExposures,0===Object.keys(o.fieldValues).length&&delete o.fieldValues,{payload:o,error_message:"",status:"success"}}stripNoneValues(e,t,i,s){return t&&(e=this.stripNulls(e,(e=>null==e))),i&&(e=this.stripNulls(e,(e=>void 0===e))),s&&(e=this.stripNulls(e,(e=>Number.isNaN(e)))),e}stripNulls(e,t){let i=e=>this.stripNulls(e,t);return Array.isArray(e)?e.map(i).filter((e=>!t(e))):"object"==typeof e&&null!==e?Object.fromEntries(Object.entries(e).map((([e,t])=>[e,i(t)])).filter((([e,i])=>!t(i)))):e}}}}},t={},function i(s){var n=t[s];if(void 0!==n)return n.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,i),r.exports}(44);var e,t}));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.stand_underwriter=t():e.stand_underwriter=t()}(this,(()=>{return e={10:e=>{e.exports={is_vacant:function(e){return"No"===e?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home is vacant"}:{decision:"reject",note:"Vacant must be yes or no"}},under_renovation:function(e){return"No"===e?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home is under renovation"}:{decision:"reject",note:"Under renovation must be yes or no"}},plumbing_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Plumbing input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-30,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Plumbing must have been updated in the last 30 years"}):{decision:"reject",note:"Plumbing year must be an integer"}},water_heater_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Water heater input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-10,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Water heater must have been updated in the last 10 years"}):{decision:"reject",note:"Water heater year must be an integer"}},electrical_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Electrical input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-30,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Electrical must have been updated in the last 30 years"}):{decision:"reject",note:"Electrical year must be an integer"}},home_heating_last_update_year:function(e){return Number.isInteger(e)?e<1600||e>3e3?{decision:"reject",note:"Home heating input should be the year it was last updated not the age"}:(year_threshold=(new Date).getFullYear()-30,e>=year_threshold?{decision:"accept",note:null}:{decision:"reject",note:"Home heating must have been updated in the last 30 years"}):{decision:"reject",note:"Home heating year must be an integer"}},heating_source:function(e){return heating_type_enum=["central gas heat","thermostatically controlled electrical heat","wood","coal","pellet stove"],"string"!=typeof e?{decision:"reject",note:"Home heating year must be a string"}:heating_type_enum.includes(e)?["wood","coal","pellet stove"].includes(e)?{decision:"refer",note:null}:{decision:"accept",note:null}:{decision:"reject",note:"Heat source must be in [central gas heat, thermostatically controlled electrical heat, wood, coal, pellet stove]"}},has_underground_fuel_tank:function(e){return"No"===e?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home has underground fuel tank"}:{decision:"reject",note:"Underground fuel tank must be yes or no"}},has_steel_braided_hose:function(e){return"Yes"===e?{decision:"accept",note:null}:"No"===e?{decision:"refer",note:null}:{decision:"reject",note:"Steel braided hose must be yes or no"}},has_water_shutoff:function(e){return"Yes"===e?{decision:"accept",note:null}:"No"===e?{decision:"refer",note:null}:{decision:"reject",note:"Water shutoff must be yes or no"}},has_circuit_breaker:function(e,t){return"No"===e||t>=1980?{decision:"accept",note:null}:"Yes"===e?{decision:"reject",note:"Home built before 1980 cannot have circuit breakers"}:{decision:"reject",note:"Circuit breaker must be yes or no"}}}},44:(e,t,i)=>{const{underwrite:s,knockout_names:n}=i(273),{SocotraPayloadConverter:r}=i(991),{entries_v1:o}=i(401),{entries_v2:a}=i(540),{entries_v3:l}=i(271),{version:c}=i(330),u={1:new r(o),2:new r(a),3:new r(l)};e.exports={underwrite:s,knockout_names:n,transformer_hash:u,package_version:c}},66:e=>{e.exports={multi_family_unit_count:function(e){return Number.isInteger(e)?e>2?{decision:"reject",note:"We only allow homes with two units or less."}:e<=0?{decision:"reject",note:"Number of units must be greater than 0"}:{decision:"accept",note:null}:{decision:"reject",note:"Number of units must be an integer"}},primary_dwelling_is_insured:function(e){return"No"==e?{decision:"refer",note:null}:"Yes"==e?{decision:"accept",note:null}:{decision:"reject",note:"Primary dwelling insured value must be in ['yes', 'no']"}},full_replacement_value:function(e){return Number.isInteger(e)?e>6e6?{decision:"refer",note:null}:e<2e6?{decision:"reject",note:"We only insure homes greater than $1M"}:{decision:"accept",note:null}:{decision:"reject",note:"Full replacement value must be an integer"}},prior_carrier:function(e){return""===e?{decision:"refer",note:null}:"string"==typeof e?{decision:"accept",note:null}:{decision:"reject",note:"Prior Carrier Must be a string"}},occupation:function(e){return"string"!=typeof e?{decision:"reject",note:"Occupation must be a string"}:["Professional Athlete","Entertainer","Journalist"," Politician"].includes(e)?{decision:"refer",note:null}:{decision:"accept",note:null}}}},78:(e,t,i)=>{const{multi_family_unit_count:s,primary_dwelling_is_insured:n,full_replacement_value:r,prior_carrier:o,occupation:a}=i(66),{wf_variance:l,stand_wf_knockout:c}=i(575),{distance_to_coast:u,pool_features:d,farming_type:f,has_attractive_nuisance:p,degree_of_slope:m,flood_score:_}=i(752),{number_of_dogs:h,dog_history:y,dog_breeds:w,exotic_pets:g,number_of_mortgages:b,number_of_bankruptcies_judgements_or_liens:v,home_business_type:k,home_rental_type:x,same_address:S}=i(729),{is_vacant:N,under_renovation:O,plumbing_last_update_year:T,water_heater_last_update_year:F,electrical_last_update_year:I,home_heating_last_update_year:E,heating_source:D,has_underground_fuel_tank:j,has_steel_braided_hose:M,has_water_shutoff:V,has_circuit_breaker:C}=i(10),{construction_type:$,siding_material:W,protection_class:z,roof_material:L,foundation_type:Z,has_slab_foundation_plumbing:A,fire_protective_devices:q,theft_protective_devices:G,has_class_a_roof:Y}=i(479),{check_claims_history:H}=i(529),P={multi_family_unit_count:s,primary_dwelling_insured:n,full_replacement_value:r,prior_carrier:o,wf_variance:l,flood_score:_,distance_to_coast:u,pool_features:d,number_of_dogs:h,dog_history:y,dog_breeds:w,exotic_pets:g,farming_type:f,number_of_mortgages:b,number_of_bankruptcies_judgements_or_liens:v,is_vacant:N,under_renovation:O,plumbing_last_update_year:T,water_heater_last_update_year:F,electrical_last_update_year:I,home_heating_last_update_year:E,heating_source:D,has_underground_fuel_tank:j,has_steel_braided_hose:M,has_water_shutoff:V,home_business_type:k,has_attractive_nuisance:p,home_rental_type:x,degree_of_slope:m,construction_type:$,siding_material:W,protection_class:z,roof_material:L,foundation_type:Z,has_slab_foundation_plumbing:A,fire_protective_devices:q,theft_protective_devices:G,occupation:a};e.exports={knockout:function(e,t){return P.hasOwnProperty(e)?P[e](t):{decision:"question_not_found",note:null}},has_circuit_breaker:C,same_address:S,knockout_names:function(){return Object.keys(P)},stand_wf_knockout:c,has_class_a_roof:Y,check_claims_history:H}},169:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class i extends Error{}class s extends i{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class n extends i{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class r extends i{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class o extends i{}class a extends i{constructor(e){super(`Invalid unit ${e}`)}}class l extends i{}class c extends i{constructor(){super("Zone is an abstract class")}}const u="numeric",d="short",f="long",p={year:u,month:u,day:u},m={year:u,month:d,day:u},_={year:u,month:d,day:u,weekday:d},h={year:u,month:f,day:u},y={year:u,month:f,day:u,weekday:f},w={hour:u,minute:u},g={hour:u,minute:u,second:u},b={hour:u,minute:u,second:u,timeZoneName:d},v={hour:u,minute:u,second:u,timeZoneName:f},k={hour:u,minute:u,hourCycle:"h23"},x={hour:u,minute:u,second:u,hourCycle:"h23"},S={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:d},N={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:f},O={year:u,month:u,day:u,hour:u,minute:u},T={year:u,month:u,day:u,hour:u,minute:u,second:u},F={year:u,month:d,day:u,hour:u,minute:u},I={year:u,month:d,day:u,hour:u,minute:u,second:u},E={year:u,month:d,day:u,weekday:d,hour:u,minute:u},D={year:u,month:f,day:u,hour:u,minute:u,timeZoneName:d},j={year:u,month:f,day:u,hour:u,minute:u,second:u,timeZoneName:d},M={year:u,month:f,day:u,weekday:f,hour:u,minute:u,timeZoneName:f},V={year:u,month:f,day:u,weekday:f,hour:u,minute:u,second:u,timeZoneName:f};class C{get type(){throw new c}get name(){throw new c}get ianaName(){return this.name}get isUniversal(){throw new c}offsetName(e,t){throw new c}formatOffset(e,t){throw new c}offset(e){throw new c}equals(e){throw new c}get isValid(){throw new c}}let $=null;class W extends C{static get instance(){return null===$&&($=new W),$}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return st(e,t,i)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return"system"===e.type}get isValid(){return!0}}const z=new Map,L={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6},Z=new Map;class A extends C{static create(e){let t=Z.get(e);return void 0===t&&Z.set(e,t=new A(e)),t}static resetCache(){Z.clear(),z.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}}constructor(e){super(),this.zoneName=e,this.valid=A.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return st(e,t,i,this.name)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){if(!this.valid)return NaN;const t=new Date(e);if(isNaN(t))return NaN;const i=function(e){let t=z.get(e);return void 0===t&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),z.set(e,t)),t}(this.name);let[s,n,r,o,a,l,c]=i.formatToParts?function(e,t){const i=e.formatToParts(t),s=[];for(let e=0;e<i.length;e++){const{type:t,value:n}=i[e],r=L[t];"era"===t?s[r]=n:$e(r)||(s[r]=parseInt(n,10))}return s}(i,t):function(e,t){const i=e.format(t).replace(/\u200E/g,""),s=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(i),[,n,r,o,a,l,c,u]=s;return[o,n,r,a,l,c,u]}(i,t);"BC"===o&&(s=1-Math.abs(s));let u=+t;const d=u%1e3;return u-=d>=0?d:1e3+d,(Ke({year:s,month:n,day:r,hour:24===a?0:a,minute:l,second:c,millisecond:0})-u)/6e4}equals(e){return"iana"===e.type&&e.name===this.name}get isValid(){return this.valid}}let q={};const G=new Map;function Y(e,t={}){const i=JSON.stringify([e,t]);let s=G.get(i);return void 0===s&&(s=new Intl.DateTimeFormat(e,t),G.set(i,s)),s}const H=new Map,P=new Map;let U=null;const R=new Map;function J(e){let t=R.get(e);return void 0===t&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),R.set(e,t)),t}const B=new Map;function X(e,t,i,s){const n=e.listingMode();return"error"===n?null:"en"===n?i(t):s(t)}class Q{constructor(e,t,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;const{padTo:s,floor:n,...r}=i;if(!t||Object.keys(r).length>0){const t={useGrouping:!1,...i};i.padTo>0&&(t.minimumIntegerDigits=i.padTo),this.inf=function(e,t={}){const i=JSON.stringify([e,t]);let s=H.get(i);return void 0===s&&(s=new Intl.NumberFormat(e,t),H.set(i,s)),s}(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}return He(this.floor?Math.floor(e):Je(e,3),this.padTo)}}class K{constructor(e,t,i){let s;if(this.opts=i,this.originalZone=void 0,this.opts.timeZone)this.dt=e;else if("fixed"===e.zone.type){const t=e.offset/60*-1,i=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;0!==e.offset&&A.create(i).valid?(s=i,this.dt=e):(s="UTC",this.dt=0===e.offset?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else"system"===e.zone.type?this.dt=e:"iana"===e.zone.type?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const n={...this.opts};n.timeZone=n.timeZone||s,this.dtf=Y(t,n)}format(){return this.originalZone?this.formatToParts().map((({value:e})=>e)).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map((e=>{if("timeZoneName"===e.type){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}return e})):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class ee{constructor(e,t,i){this.opts={style:"long",...i},!t&&Le()&&(this.rtf=function(e,t={}){const{base:i,...s}=t,n=JSON.stringify([e,s]);let r=P.get(n);return void 0===r&&(r=new Intl.RelativeTimeFormat(e,t),P.set(n,r)),r}(e,i))}format(e,t){return this.rtf?this.rtf.format(e,t):function(e,t,i="always",s=!1){const n={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},r=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===i&&r){const i="days"===e;switch(t){case 1:return i?"tomorrow":`next ${n[e][0]}`;case-1:return i?"yesterday":`last ${n[e][0]}`;case 0:return i?"today":`this ${n[e][0]}`}}const o=Object.is(t,-0)||t<0,a=Math.abs(t),l=1===a,c=n[e],u=s?l?c[1]:c[2]||c[1]:l?n[e][0]:e;return o?`${a} ${u} ago`:`in ${a} ${u}`}(t,e,this.opts.numeric,"long"!==this.opts.style)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}const te={firstDay:1,minimalDays:4,weekend:[6,7]};class ie{static fromOpts(e){return ie.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,i,s,n=!1){const r=e||be.defaultLocale,o=r||(n?"en-US":U||(U=(new Intl.DateTimeFormat).resolvedOptions().locale,U)),a=t||be.defaultNumberingSystem,l=i||be.defaultOutputCalendar,c=Ge(s)||be.defaultWeekSettings;return new ie(o,a,l,c,r)}static resetCache(){U=null,G.clear(),H.clear(),P.clear(),R.clear(),B.clear()}static fromObject({locale:e,numberingSystem:t,outputCalendar:i,weekSettings:s}={}){return ie.create(e,t,i,s)}constructor(e,t,i,s,n){const[r,o,a]=function(e){const t=e.indexOf("-x-");-1!==t&&(e=e.substring(0,t));const i=e.indexOf("-u-");if(-1===i)return[e];{let t,s;try{t=Y(e).resolvedOptions(),s=e}catch(n){const r=e.substring(0,i);t=Y(r).resolvedOptions(),s=r}const{numberingSystem:n,calendar:r}=t;return[s,n,r]}}(e);this.locale=r,this.numberingSystem=t||o||null,this.outputCalendar=i||a||null,this.weekSettings=s,this.intl=function(e,t,i){return i||t?(e.includes("-u-")||(e+="-u"),i&&(e+=`-ca-${i}`),t&&(e+=`-nu-${t}`),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=n,this.fastNumbersCached=null}get fastNumbers(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===J(e.locale).numberingSystem)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return e&&t?"en":"intl"}clone(e){return e&&0!==Object.getOwnPropertyNames(e).length?ie.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Ge(e.weekSettings)||this.weekSettings,e.defaultToEN||!1):this}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return X(this,e,ft,(()=>{const i=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=function(e){const t=[];for(let i=1;i<=12;i++){const s=fs.utc(2009,i,1);t.push(e(s))}return t}((e=>this.extract(e,i,"month")))),this.monthsCache[s][e]}))}weekdays(e,t=!1){return X(this,e,ht,(()=>{const i=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=t?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=function(e){const t=[];for(let i=1;i<=7;i++){const s=fs.utc(2016,11,13+i);t.push(e(s))}return t}((e=>this.extract(e,i,"weekday")))),this.weekdaysCache[s][e]}))}meridiems(){return X(this,void 0,(()=>yt),(()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[fs.utc(2016,11,13,9),fs.utc(2016,11,13,19)].map((t=>this.extract(t,e,"dayperiod")))}return this.meridiemCache}))}eras(e){return X(this,e,vt,(()=>{const t={era:e};return this.eraCache[e]||(this.eraCache[e]=[fs.utc(-40,1,1),fs.utc(2017,1,1)].map((e=>this.extract(e,t,"era")))),this.eraCache[e]}))}extract(e,t,i){const s=this.dtFormatter(e,t).formatToParts().find((e=>e.type.toLowerCase()===i));return s?s.value:null}numberFormatter(e={}){return new Q(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new K(e,this.intl,t)}relFormatter(e={}){return new ee(this.intl,this.isEnglish(),e)}listFormatter(e={}){return function(e,t={}){const i=JSON.stringify([e,t]);let s=q[i];return s||(s=new Intl.ListFormat(e,t),q[i]=s),s}(this.intl,e)}isEnglish(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||J(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Ze()?function(e){let t=B.get(e);if(!t){const i=new Intl.Locale(e);t="getWeekInfo"in i?i.getWeekInfo():i.weekInfo,"minimalDays"in t||(t={...te,...t}),B.set(e,t)}return t}(this.locale):te}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let se=null;class ne extends C{static get utcInstance(){return null===se&&(se=new ne(0)),se}static instance(e){return 0===e?ne.utcInstance:new ne(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new ne(nt(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return 0===this.fixed?"UTC":`UTC${at(this.fixed,"narrow")}`}get ianaName(){return 0===this.fixed?"Etc/UTC":`Etc/GMT${at(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return at(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return"fixed"===e.type&&e.fixed===this.fixed}get isValid(){return!0}}class re extends C{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function oe(e,t){if($e(e)||null===e)return t;if(e instanceof C)return e;if("string"==typeof e){const i=e.toLowerCase();return"default"===i?t:"local"===i||"system"===i?W.instance:"utc"===i||"gmt"===i?ne.utcInstance:ne.parseSpecifier(i)||A.create(e)}return We(e)?ne.instance(e):"object"==typeof e&&"offset"in e&&"function"==typeof e.offset?e:new re(e)}const ae={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},le={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},ce=ae.hanidec.replace(/[\[|\]]/g,"").split(""),ue=new Map;function de({numberingSystem:e},t=""){const i=e||"latn";let s=ue.get(i);void 0===s&&(s=new Map,ue.set(i,s));let n=s.get(t);return void 0===n&&(n=new RegExp(`${ae[i]}${t}`),s.set(t,n)),n}let fe,pe=()=>Date.now(),me="system",_e=null,he=null,ye=null,we=60,ge=null;class be{static get now(){return pe}static set now(e){pe=e}static set defaultZone(e){me=e}static get defaultZone(){return oe(me,W.instance)}static get defaultLocale(){return _e}static set defaultLocale(e){_e=e}static get defaultNumberingSystem(){return he}static set defaultNumberingSystem(e){he=e}static get defaultOutputCalendar(){return ye}static set defaultOutputCalendar(e){ye=e}static get defaultWeekSettings(){return ge}static set defaultWeekSettings(e){ge=Ge(e)}static get twoDigitCutoffYear(){return we}static set twoDigitCutoffYear(e){we=e%100}static get throwOnInvalid(){return fe}static set throwOnInvalid(e){fe=e}static resetCaches(){ie.resetCache(),A.resetCache(),fs.resetCache(),ue.clear()}}class ve{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const ke=[0,31,59,90,120,151,181,212,243,273,304,334],xe=[0,31,60,91,121,152,182,213,244,274,305,335];function Se(e,t){return new ve("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Ne(e,t,i){const s=new Date(Date.UTC(e,t-1,i));e<100&&e>=0&&s.setUTCFullYear(s.getUTCFullYear()-1900);const n=s.getUTCDay();return 0===n?7:n}function Oe(e,t,i){return i+(Be(e)?xe:ke)[t-1]}function Te(e,t){const i=Be(e)?xe:ke,s=i.findIndex((e=>e<t));return{month:s+1,day:t-i[s]}}function Fe(e,t){return(e-t+7)%7+1}function Ie(e,t=4,i=1){const{year:s,month:n,day:r}=e,o=Oe(s,n,r),a=Fe(Ne(s,n,r),i);let l,c=Math.floor((o-a+14-t)/7);return c<1?(l=s-1,c=tt(l,t,i)):c>tt(s,t,i)?(l=s+1,c=1):l=s,{weekYear:l,weekNumber:c,weekday:a,...lt(e)}}function Ee(e,t=4,i=1){const{weekYear:s,weekNumber:n,weekday:r}=e,o=Fe(Ne(s,1,t),i),a=Xe(s);let l,c=7*n+r-o-7+t;c<1?(l=s-1,c+=Xe(l)):c>a?(l=s+1,c-=Xe(s)):l=s;const{month:u,day:d}=Te(l,c);return{year:l,month:u,day:d,...lt(e)}}function De(e){const{year:t,month:i,day:s}=e;return{year:t,ordinal:Oe(t,i,s),...lt(e)}}function je(e){const{year:t,ordinal:i}=e,{month:s,day:n}=Te(t,i);return{year:t,month:s,day:n,...lt(e)}}function Me(e,t){if(!$e(e.localWeekday)||!$e(e.localWeekNumber)||!$e(e.localWeekYear)){if(!$e(e.weekday)||!$e(e.weekNumber)||!$e(e.weekYear))throw new o("Cannot mix locale-based week fields with ISO-based week fields");return $e(e.localWeekday)||(e.weekday=e.localWeekday),$e(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),$e(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}return{minDaysInFirstWeek:4,startOfWeek:1}}function Ve(e){const t=ze(e.year),i=Ye(e.month,1,12),s=Ye(e.day,1,Qe(e.year,e.month));return t?i?!s&&Se("day",e.day):Se("month",e.month):Se("year",e.year)}function Ce(e){const{hour:t,minute:i,second:s,millisecond:n}=e,r=Ye(t,0,23)||24===t&&0===i&&0===s&&0===n,o=Ye(i,0,59),a=Ye(s,0,59),l=Ye(n,0,999);return r?o?a?!l&&Se("millisecond",n):Se("second",s):Se("minute",i):Se("hour",t)}function $e(e){return void 0===e}function We(e){return"number"==typeof e}function ze(e){return"number"==typeof e&&e%1==0}function Le(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function Ze(){try{return"undefined"!=typeof Intl&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return!1}}function Ae(e,t,i){if(0!==e.length)return e.reduce(((e,s)=>{const n=[t(s),s];return e&&i(e[0],n[0])===e[0]?e:n}),null)[1]}function qe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ge(e){if(null==e)return null;if("object"!=typeof e)throw new l("Week settings must be an object");if(!Ye(e.firstDay,1,7)||!Ye(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some((e=>!Ye(e,1,7))))throw new l("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Ye(e,t,i){return ze(e)&&e>=t&&e<=i}function He(e,t=2){let i;return i=e<0?"-"+(""+-e).padStart(t,"0"):(""+e).padStart(t,"0"),i}function Pe(e){return $e(e)||null===e||""===e?void 0:parseInt(e,10)}function Ue(e){return $e(e)||null===e||""===e?void 0:parseFloat(e)}function Re(e){if(!$e(e)&&null!==e&&""!==e){const t=1e3*parseFloat("0."+e);return Math.floor(t)}}function Je(e,t,i=!1){const s=10**t;return(i?Math.trunc:Math.round)(e*s)/s}function Be(e){return e%4==0&&(e%100!=0||e%400==0)}function Xe(e){return Be(e)?366:365}function Qe(e,t){const i=(s=t-1)-12*Math.floor(s/12)+1;var s;return 2===i?Be(e+(t-i)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][i-1]}function Ke(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function et(e,t,i){return-Fe(Ne(e,1,t),i)+t-1}function tt(e,t=4,i=1){const s=et(e,t,i),n=et(e+1,t,i);return(Xe(e)-s+n)/7}function it(e){return e>99?e:e>be.twoDigitCutoffYear?1900+e:2e3+e}function st(e,t,i,s=null){const n=new Date(e),r={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};s&&(r.timeZone=s);const o={timeZoneName:t,...r},a=new Intl.DateTimeFormat(i,o).formatToParts(n).find((e=>"timezonename"===e.type.toLowerCase()));return a?a.value:null}function nt(e,t){let i=parseInt(e,10);Number.isNaN(i)&&(i=0);const s=parseInt(t,10)||0;return 60*i+(i<0||Object.is(i,-0)?-s:s)}function rt(e){const t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new l(`Invalid unit value ${e}`);return t}function ot(e,t){const i={};for(const s in e)if(qe(e,s)){const n=e[s];if(null==n)continue;i[t(s)]=rt(n)}return i}function at(e,t){const i=Math.trunc(Math.abs(e/60)),s=Math.trunc(Math.abs(e%60)),n=e>=0?"+":"-";switch(t){case"short":return`${n}${He(i,2)}:${He(s,2)}`;case"narrow":return`${n}${i}${s>0?`:${s}`:""}`;case"techie":return`${n}${He(i,2)}${He(s,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function lt(e){return function(e){return["hour","minute","second","millisecond"].reduce(((t,i)=>(t[i]=e[i],t)),{})}(e)}const ct=["January","February","March","April","May","June","July","August","September","October","November","December"],ut=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dt=["J","F","M","A","M","J","J","A","S","O","N","D"];function ft(e){switch(e){case"narrow":return[...dt];case"short":return[...ut];case"long":return[...ct];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const pt=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],mt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],_t=["M","T","W","T","F","S","S"];function ht(e){switch(e){case"narrow":return[..._t];case"short":return[...mt];case"long":return[...pt];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const yt=["AM","PM"],wt=["Before Christ","Anno Domini"],gt=["BC","AD"],bt=["B","A"];function vt(e){switch(e){case"narrow":return[...bt];case"short":return[...gt];case"long":return[...wt];default:return null}}function kt(e,t){let i="";for(const s of e)s.literal?i+=s.val:i+=t(s.val);return i}const xt={D:p,DD:m,DDD:h,DDDD:y,t:w,tt:g,ttt:b,tttt:v,T:k,TT:x,TTT:S,TTTT:N,f:O,ff:F,fff:D,ffff:M,F:T,FF:I,FFF:j,FFFF:V};class St{static create(e,t={}){return new St(e,t)}static parseFormat(e){let t=null,i="",s=!1;const n=[];for(let r=0;r<e.length;r++){const o=e.charAt(r);"'"===o?(i.length>0&&n.push({literal:s||/^\s+$/.test(i),val:i}),t=null,i="",s=!s):s||o===t?i+=o:(i.length>0&&n.push({literal:/^\s+$/.test(i),val:i}),i=o,t=o)}return i.length>0&&n.push({literal:s||/^\s+$/.test(i),val:i}),n}static macroTokenToFormatOpts(e){return xt[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return He(e,t);const i={...this.opts};return t>0&&(i.padTo=t),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){const i="en"===this.loc.listingMode(),s=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,n=(t,i)=>this.loc.extract(e,t,i),r=t=>e.isOffsetFixed&&0===e.offset&&t.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,t.format):"",o=(t,s)=>i?function(e,t){return ft(t)[e.month-1]}(e,t):n(s?{month:t}:{month:t,day:"numeric"},"month"),a=(t,s)=>i?function(e,t){return ht(t)[e.weekday-1]}(e,t):n(s?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),l=t=>{const i=St.macroTokenToFormatOpts(t);return i?this.formatWithSystemDefault(e,i):t},c=t=>i?function(e,t){return vt(t)[e.year<0?0:1]}(e,t):n({era:t},"era");return kt(St.parseFormat(t),(t=>{switch(t){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12==0?12:e.hour%12);case"hh":return this.num(e.hour%12==0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return r({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return r({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return r({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return i?function(e){return yt[e.hour<12?0:1]}(e):n({hour:"numeric",hourCycle:"h12"},"dayperiod");case"d":return s?n({day:"numeric"},"day"):this.num(e.day);case"dd":return s?n({day:"2-digit"},"day"):this.num(e.day,2);case"c":case"E":return this.num(e.weekday);case"ccc":return a("short",!0);case"cccc":return a("long",!0);case"ccccc":return a("narrow",!0);case"EEE":return a("short",!1);case"EEEE":return a("long",!1);case"EEEEE":return a("narrow",!1);case"L":return s?n({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?n({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return o("short",!0);case"LLLL":return o("long",!0);case"LLLLL":return o("narrow",!0);case"M":return s?n({month:"numeric"},"month"):this.num(e.month);case"MM":return s?n({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return o("short",!1);case"MMMM":return o("long",!1);case"MMMMM":return o("narrow",!1);case"y":return s?n({year:"numeric"},"year"):this.num(e.year);case"yy":return s?n({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?n({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?n({year:"numeric"},"year"):this.num(e.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(t)}}))}formatDurationFromString(e,t){const i=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=St.parseFormat(t),n=s.reduce(((e,{literal:t,val:i})=>t?e:e.concat(i)),[]);return kt(s,(e=>t=>{const s=i(t);return s?this.num(e.get(s),t.length):t})(e.shiftTo(...n.map(i).filter((e=>e)))))}}const Nt=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Ot(...e){const t=e.reduce(((e,t)=>e+t.source),"");return RegExp(`^${t}$`)}function Tt(...e){return t=>e.reduce((([e,i,s],n)=>{const[r,o,a]=n(t,s);return[{...e,...r},o||i,a]}),[{},null,1]).slice(0,2)}function Ft(e,...t){if(null==e)return[null,null];for(const[i,s]of t){const t=i.exec(e);if(t)return s(t)}return[null,null]}function It(...e){return(t,i)=>{const s={};let n;for(n=0;n<e.length;n++)s[e[n]]=Pe(t[i+n]);return[s,null,i+n]}}const Et=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Dt=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,jt=RegExp(`${Dt.source}(?:${Et.source}?(?:\\[(${Nt.source})\\])?)?`),Mt=RegExp(`(?:T${jt.source})?`),Vt=It("weekYear","weekNumber","weekDay"),Ct=It("year","ordinal"),$t=RegExp(`${Dt.source} ?(?:${Et.source}|(${Nt.source}))?`),Wt=RegExp(`(?: ${$t.source})?`);function zt(e,t,i){const s=e[t];return $e(s)?i:Pe(s)}function Lt(e,t){return[{hours:zt(e,t,0),minutes:zt(e,t+1,0),seconds:zt(e,t+2,0),milliseconds:Re(e[t+3])},null,t+4]}function Zt(e,t){const i=!e[t]&&!e[t+1],s=nt(e[t+1],e[t+2]);return[{},i?null:ne.instance(s),t+3]}function At(e,t){return[{},e[t]?A.create(e[t]):null,t+1]}const qt=RegExp(`^T?${Dt.source}$`),Gt=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Yt(e){const[t,i,s,n,r,o,a,l,c]=e,u="-"===t[0],d=l&&"-"===l[0],f=(e,t=!1)=>void 0!==e&&(t||e&&u)?-e:e;return[{years:f(Ue(i)),months:f(Ue(s)),weeks:f(Ue(n)),days:f(Ue(r)),hours:f(Ue(o)),minutes:f(Ue(a)),seconds:f(Ue(l),"-0"===l),milliseconds:f(Re(c),d)}]}const Ht={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Pt(e,t,i,s,n,r,o){const a={year:2===t.length?it(Pe(t)):Pe(t),month:ut.indexOf(i)+1,day:Pe(s),hour:Pe(n),minute:Pe(r)};return o&&(a.second=Pe(o)),e&&(a.weekday=e.length>3?pt.indexOf(e)+1:mt.indexOf(e)+1),a}const Ut=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Rt(e){const[,t,i,s,n,r,o,a,l,c,u,d]=e,f=Pt(t,n,s,i,r,o,a);let p;return p=l?Ht[l]:c?0:nt(u,d),[f,new ne(p)]}const Jt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Bt=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Xt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Qt(e){const[,t,i,s,n,r,o,a]=e;return[Pt(t,n,s,i,r,o,a),ne.utcInstance]}function Kt(e){const[,t,i,s,n,r,o,a]=e;return[Pt(t,a,i,s,n,r,o),ne.utcInstance]}const ei=Ot(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Mt),ti=Ot(/(\d{4})-?W(\d\d)(?:-?(\d))?/,Mt),ii=Ot(/(\d{4})-?(\d{3})/,Mt),si=Ot(jt),ni=Tt((function(e,t){return[{year:zt(e,t),month:zt(e,t+1,1),day:zt(e,t+2,1)},null,t+3]}),Lt,Zt,At),ri=Tt(Vt,Lt,Zt,At),oi=Tt(Ct,Lt,Zt,At),ai=Tt(Lt,Zt,At),li=Tt(Lt),ci=Ot(/(\d{4})-(\d\d)-(\d\d)/,Wt),ui=Ot($t),di=Tt(Lt,Zt,At),fi="Invalid Duration",pi={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},mi={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6},...pi},_i={years:{quarters:4,months:12,weeks:52.1775,days:365.2425,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:30.436875,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3},...pi},hi=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],yi=hi.slice(0).reverse();function wi(e,t,i=!1){const s={values:i?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new vi(s)}function gi(e,t){var i;let s=null!=(i=t.milliseconds)?i:0;for(const i of yi.slice(1))t[i]&&(s+=t[i]*e[i].milliseconds);return s}function bi(e,t){const i=gi(e,t)<0?-1:1;hi.reduceRight(((s,n)=>{if($e(t[n]))return s;if(s){const r=t[s]*i,o=e[n][s],a=Math.floor(r/o);t[n]+=a*i,t[s]-=a*o*i}return n}),null),hi.reduce(((i,s)=>{if($e(t[s]))return i;if(i){const n=t[i]%1;t[i]-=n,t[s]+=n*e[i][s]}return s}),null)}class vi{constructor(e){const t="longterm"===e.conversionAccuracy||!1;let i=t?_i:mi;e.matrix&&(i=e.matrix),this.values=e.values,this.loc=e.loc||ie.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(e,t){return vi.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(null==e||"object"!=typeof e)throw new l("Duration.fromObject: argument expected to be an object, got "+(null===e?"null":typeof e));return new vi({values:ot(e,vi.normalizeUnit),loc:ie.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(We(e))return vi.fromMillis(e);if(vi.isDuration(e))return e;if("object"==typeof e)return vi.fromObject(e);throw new l(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[i]=function(e){return Ft(e,[Gt,Yt])}(e);return i?vi.fromObject(i,t):vi.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[i]=function(e){return Ft(e,[qt,li])}(e);return i?vi.fromObject(i,t):vi.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new l("need to specify a reason the Duration is invalid");const i=e instanceof ve?e:new ve(e,t);if(be.throwOnInvalid)throw new r(i);return new vi({invalid:i})}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new a(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const i={...t,floor:!1!==t.round&&!1!==t.floor};return this.isValid?St.create(this.loc,i).formatDurationFromString(this,e):fi}toHuman(e={}){if(!this.isValid)return fi;const t=hi.map((t=>{const i=this.values[t];return $e(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(i)})).filter((e=>e));return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=Je(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},fs.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?gi(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=vi.fromDurationLike(e),i={};for(const e of hi)(qe(t.values,e)||qe(this.values,e))&&(i[e]=t.get(e)+this.get(e));return wi(this,{values:i},!0)}minus(e){if(!this.isValid)return this;const t=vi.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const i of Object.keys(this.values))t[i]=rt(e(this.values[i],i));return wi(this,{values:t},!0)}get(e){return this[vi.normalizeUnit(e)]}set(e){return this.isValid?wi(this,{values:{...this.values,...ot(e,vi.normalizeUnit)}}):this}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:i,matrix:s}={}){return wi(this,{loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:s,conversionAccuracy:i})}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return bi(this.matrix,e),wi(this,{values:e},!0)}rescale(){return this.isValid?wi(this,{values:function(e){const t={};for(const[i,s]of Object.entries(e))0!==s&&(t[i]=s);return t}(this.normalize().shiftToAll().toObject())},!0):this}shiftTo(...e){if(!this.isValid)return this;if(0===e.length)return this;e=e.map((e=>vi.normalizeUnit(e)));const t={},i={},s=this.toObject();let n;for(const r of hi)if(e.indexOf(r)>=0){n=r;let e=0;for(const t in i)e+=this.matrix[t][r]*i[t],i[t]=0;We(s[r])&&(e+=s[r]);const o=Math.trunc(e);t[r]=o,i[r]=(1e3*e-1e3*o)/1e3}else We(s[r])&&(i[r]=s[r]);for(const e in i)0!==i[e]&&(t[n]+=e===n?i[e]:i[e]/this.matrix[n][e]);return bi(this.matrix,t),wi(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values))e[t]=0===this.values[t]?0:-this.values[t];return wi(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid)return!1;if(!this.loc.equals(e.loc))return!1;for(const s of hi)if(t=this.values[s],i=e.values[s],!(void 0===t||0===t?void 0===i||0===i:t===i))return!1;var t,i;return!0}}const ki="Invalid Interval";class xi{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,t=null){if(!e)throw new l("need to specify a reason the Interval is invalid");const i=e instanceof ve?e:new ve(e,t);if(be.throwOnInvalid)throw new n(i);return new xi({invalid:i})}static fromDateTimes(e,t){const i=ps(e),s=ps(t),n=function(e,t){return e&&e.isValid?t&&t.isValid?t<e?xi.invalid("end before start",`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null:xi.invalid("missing or invalid end"):xi.invalid("missing or invalid start")}(i,s);return null==n?new xi({start:i,end:s}):n}static after(e,t){const i=vi.fromDurationLike(t),s=ps(e);return xi.fromDateTimes(s,s.plus(i))}static before(e,t){const i=vi.fromDurationLike(t),s=ps(e);return xi.fromDateTimes(s.minus(i),s)}static fromISO(e,t){const[i,s]=(e||"").split("/",2);if(i&&s){let e,n,r,o;try{e=fs.fromISO(i,t),n=e.isValid}catch(s){n=!1}try{r=fs.fromISO(s,t),o=r.isValid}catch(s){o=!1}if(n&&o)return xi.fromDateTimes(e,r);if(n){const i=vi.fromISO(s,t);if(i.isValid)return xi.after(e,i)}else if(o){const e=vi.fromISO(i,t);if(e.isValid)return xi.before(r,e)}}return xi.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return null===this.invalidReason}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",t){if(!this.isValid)return NaN;const i=this.start.startOf(e,t);let s;return s=null!=t&&t.useLocaleWeeks?this.end.reconfigure({locale:i.locale}):this.end,s=s.startOf(e,t),Math.floor(s.diff(i,e).get(e))+(s.valueOf()!==this.end.valueOf())}hasSame(e){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,e))}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return!!this.isValid&&this.s>e}isBefore(e){return!!this.isValid&&this.e<=e}contains(e){return!!this.isValid&&this.s<=e&&this.e>e}set({start:e,end:t}={}){return this.isValid?xi.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];const t=e.map(ps).filter((e=>this.contains(e))).sort(((e,t)=>e.toMillis()-t.toMillis())),i=[];let{s}=this,n=0;for(;s<this.e;){const e=t[n]||this.e,r=+e>+this.e?this.e:e;i.push(xi.fromDateTimes(s,r)),s=r,n+=1}return i}splitBy(e){const t=vi.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];let i,{s}=this,n=1;const r=[];for(;s<this.e;){const e=this.start.plus(t.mapUnits((e=>e*n)));i=+e>+this.e?this.e:e,r.push(xi.fromDateTimes(s,i)),s=i,n+=1}return r}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return!!this.isValid&&+this.e==+e.s}abutsEnd(e){return!!this.isValid&&+e.e==+this.s}engulfs(e){return!!this.isValid&&this.s<=e.s&&this.e>=e.e}equals(e){return!(!this.isValid||!e.isValid)&&this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,i=this.e<e.e?this.e:e.e;return t>=i?null:xi.fromDateTimes(t,i)}union(e){if(!this.isValid)return this;const t=this.s<e.s?this.s:e.s,i=this.e>e.e?this.e:e.e;return xi.fromDateTimes(t,i)}static merge(e){const[t,i]=e.sort(((e,t)=>e.s-t.s)).reduce((([e,t],i)=>t?t.overlaps(i)||t.abutsStart(i)?[e,t.union(i)]:[e.concat([t]),i]:[e,i]),[[],null]);return i&&t.push(i),t}static xor(e){let t=null,i=0;const s=[],n=e.map((e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}])),r=Array.prototype.concat(...n).sort(((e,t)=>e.time-t.time));for(const e of r)i+="s"===e.type?1:-1,1===i?t=e.time:(t&&+t!=+e.time&&s.push(xi.fromDateTimes(t,e.time)),t=null);return xi.merge(s)}difference(...e){return xi.xor([this].concat(e)).map((e=>this.intersection(e))).filter((e=>e&&!e.isEmpty()))}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:ki}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=p,t={}){return this.isValid?St.create(this.s.loc.clone(t),e).formatInterval(this):ki}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:ki}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ki}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:ki}toFormat(e,{separator:t=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:ki}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):vi.invalid(this.invalidReason)}mapEndpoints(e){return xi.fromDateTimes(e(this.s),e(this.e))}}class Si{static hasDST(e=be.defaultZone){const t=fs.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return A.isValidZone(e)}static normalizeZone(e){return oe(e,be.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||ie.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||ie.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||ie.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||ie.create(t,i,n)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||ie.create(t,i,n)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ie.create(t,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||ie.create(t,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ie.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ie.create(t,null,"gregory").eras(e)}static features(){return{relative:Le(),localeWeek:Ze()}}}function Ni(e,t){const i=e=>e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),s=i(t)-i(e);return Math.floor(vi.fromMillis(s).as("days"))}function Oi(e,t=e=>e){return{regex:e,deser:([e])=>t(function(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let i=0;i<e.length;i++){const s=e.charCodeAt(i);if(-1!==e[i].search(ae.hanidec))t+=ce.indexOf(e[i]);else for(const e in le){const[i,n]=le[e];s>=i&&s<=n&&(t+=s-i)}}return parseInt(t,10)}return t}(e))}}const Ti=`[ ${String.fromCharCode(160)}]`,Fi=new RegExp(Ti,"g");function Ii(e){return e.replace(/\./g,"\\.?").replace(Fi,Ti)}function Ei(e){return e.replace(/\./g,"").replace(Fi," ").toLowerCase()}function Di(e,t){return null===e?null:{regex:RegExp(e.map(Ii).join("|")),deser:([i])=>e.findIndex((e=>Ei(i)===Ei(e)))+t}}function ji(e,t){return{regex:e,deser:([,e,t])=>nt(e,t),groups:t}}function Mi(e){return{regex:e,deser:([e])=>e}}const Vi={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};let Ci=null;function $i(e,t){return Array.prototype.concat(...e.map((e=>function(e,t){if(e.literal)return e;const i=Li(St.macroTokenToFormatOpts(e.val),t);return null==i||i.includes(void 0)?e:i}(e,t))))}class Wi{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=$i(St.parseFormat(t),e),this.units=this.tokens.map((t=>function(e,t){const i=de(t),s=de(t,"{2}"),n=de(t,"{3}"),r=de(t,"{4}"),o=de(t,"{6}"),a=de(t,"{1,2}"),l=de(t,"{1,3}"),c=de(t,"{1,6}"),u=de(t,"{1,9}"),d=de(t,"{2,4}"),f=de(t,"{4,6}"),p=e=>{return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:([e])=>e,literal:!0};var t},m=(m=>{if(e.literal)return p(m);switch(m.val){case"G":return Di(t.eras("short"),0);case"GG":return Di(t.eras("long"),0);case"y":return Oi(c);case"yy":case"kk":return Oi(d,it);case"yyyy":case"kkkk":return Oi(r);case"yyyyy":return Oi(f);case"yyyyyy":return Oi(o);case"M":case"L":case"d":case"H":case"h":case"m":case"q":case"s":case"W":return Oi(a);case"MM":case"LL":case"dd":case"HH":case"hh":case"mm":case"qq":case"ss":case"WW":return Oi(s);case"MMM":return Di(t.months("short",!0),1);case"MMMM":return Di(t.months("long",!0),1);case"LLL":return Di(t.months("short",!1),1);case"LLLL":return Di(t.months("long",!1),1);case"o":case"S":return Oi(l);case"ooo":case"SSS":return Oi(n);case"u":return Mi(u);case"uu":return Mi(a);case"uuu":case"E":case"c":return Oi(i);case"a":return Di(t.meridiems(),0);case"EEE":return Di(t.weekdays("short",!1),1);case"EEEE":return Di(t.weekdays("long",!1),1);case"ccc":return Di(t.weekdays("short",!0),1);case"cccc":return Di(t.weekdays("long",!0),1);case"Z":case"ZZ":return ji(new RegExp(`([+-]${a.source})(?::(${s.source}))?`),2);case"ZZZ":return ji(new RegExp(`([+-]${a.source})(${s.source})?`),2);case"z":return Mi(/[a-z_+-/]{1,256}?/i);case" ":return Mi(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:"missing Intl.DateTimeFormat.formatToParts support"};return m.token=e,m}(t,e))),this.disqualifyingUnit=this.units.find((e=>e.invalidReason)),!this.disqualifyingUnit){const[e,t]=[`^${(i=this.units).map((e=>e.regex)).reduce(((e,t)=>`${e}(${t.source})`),"")}$`,i];this.regex=RegExp(e,"i"),this.handlers=t}var i}explainFromTokens(e){if(this.isValid){const[t,i]=function(e,t,i){const s=e.match(t);if(s){const e={};let t=1;for(const n in i)if(qe(i,n)){const r=i[n],o=r.groups?r.groups+1:1;!r.literal&&r.token&&(e[r.token.val[0]]=r.deser(s.slice(t,t+o))),t+=o}return[s,e]}return[s,{}]}(e,this.regex,this.handlers),[s,n,r]=i?function(e){let t,i=null;return $e(e.z)||(i=A.create(e.z)),$e(e.Z)||(i||(i=new ne(e.Z)),t=e.Z),$e(e.q)||(e.M=3*(e.q-1)+1),$e(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),$e(e.u)||(e.S=Re(e.u)),[Object.keys(e).reduce(((t,i)=>{const s=(e=>{switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}})(i);return s&&(t[s]=e[i]),t}),{}),i,t]}(i):[null,null,void 0];if(qe(i,"a")&&qe(i,"H"))throw new o("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:i,result:s,zone:n,specificOffset:r}}return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function zi(e,t,i){return new Wi(e,i).explainFromTokens(t)}function Li(e,t){if(!e)return null;const i=St.create(t,e).dtFormatter((Ci||(Ci=fs.fromMillis(1555555555555)),Ci)),s=i.formatToParts(),n=i.resolvedOptions();return s.map((t=>function(e,t,i){const{type:s,value:n}=e;if("literal"===s){const e=/^\s+$/.test(n);return{literal:!e,val:e?" ":n}}const r=t[s];let o=s;"hour"===s&&(o=null!=t.hour12?t.hour12?"hour12":"hour24":null!=t.hourCycle?"h11"===t.hourCycle||"h12"===t.hourCycle?"hour12":"hour24":i.hour12?"hour12":"hour24");let a=Vi[o];if("object"==typeof a&&(a=a[r]),a)return{literal:!1,val:a}}(t,e,n)))}const Zi="Invalid DateTime",Ai=864e13;function qi(e){return new ve("unsupported zone",`the zone "${e.name}" is not supported`)}function Gi(e){return null===e.weekData&&(e.weekData=Ie(e.c)),e.weekData}function Yi(e){return null===e.localWeekData&&(e.localWeekData=Ie(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function Hi(e,t){const i={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new fs({...i,...t,old:i})}function Pi(e,t,i){let s=e-60*t*1e3;const n=i.offset(s);if(t===n)return[s,t];s-=60*(n-t)*1e3;const r=i.offset(s);return n===r?[s,n]:[e-60*Math.min(n,r)*1e3,Math.max(n,r)]}function Ui(e,t){const i=new Date(e+=60*t*1e3);return{year:i.getUTCFullYear(),month:i.getUTCMonth()+1,day:i.getUTCDate(),hour:i.getUTCHours(),minute:i.getUTCMinutes(),second:i.getUTCSeconds(),millisecond:i.getUTCMilliseconds()}}function Ri(e,t,i){return Pi(Ke(e),t,i)}function Ji(e,t){const i=e.o,s=e.c.year+Math.trunc(t.years),n=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),r={...e.c,year:s,month:n,day:Math.min(e.c.day,Qe(s,n))+Math.trunc(t.days)+7*Math.trunc(t.weeks)},o=vi.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),a=Ke(r);let[l,c]=Pi(a,i,e.zone);return 0!==o&&(l+=o,c=e.zone.offset(l)),{ts:l,o:c}}function Bi(e,t,i,s,n,r){const{setZone:o,zone:a}=i;if(e&&0!==Object.keys(e).length||t){const s=t||a,n=fs.fromObject(e,{...i,zone:s,specificOffset:r});return o?n:n.setZone(a)}return fs.invalid(new ve("unparsable",`the input "${n}" can't be parsed as ${s}`))}function Xi(e,t,i=!0){return e.isValid?St.create(ie.create("en-US"),{allowZ:i,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Qi(e,t){const i=e.c.year>9999||e.c.year<0;let s="";return i&&e.c.year>=0&&(s+="+"),s+=He(e.c.year,i?6:4),t?(s+="-",s+=He(e.c.month),s+="-",s+=He(e.c.day)):(s+=He(e.c.month),s+=He(e.c.day)),s}function Ki(e,t,i,s,n,r){let o=He(e.c.hour);return t?(o+=":",o+=He(e.c.minute),0===e.c.millisecond&&0===e.c.second&&i||(o+=":")):o+=He(e.c.minute),0===e.c.millisecond&&0===e.c.second&&i||(o+=He(e.c.second),0===e.c.millisecond&&s||(o+=".",o+=He(e.c.millisecond,3))),n&&(e.isOffsetFixed&&0===e.offset&&!r?o+="Z":e.o<0?(o+="-",o+=He(Math.trunc(-e.o/60)),o+=":",o+=He(Math.trunc(-e.o%60))):(o+="+",o+=He(Math.trunc(e.o/60)),o+=":",o+=He(Math.trunc(e.o%60)))),r&&(o+="["+e.zone.ianaName+"]"),o}const es={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},ts={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},is={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ss=["year","month","day","hour","minute","second","millisecond"],ns=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],rs=["year","ordinal","hour","minute","second","millisecond"];function os(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return function(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new a(e);return t}(e)}}function as(e,t){const i=oe(t.zone,be.defaultZone);if(!i.isValid)return fs.invalid(qi(i));const s=ie.fromObject(t);let n,r;if($e(e.year))n=be.now();else{for(const t of ss)$e(e[t])&&(e[t]=es[t]);const t=Ve(e)||Ce(e);if(t)return fs.invalid(t);const s=function(e){if(void 0===us&&(us=be.now()),"iana"!==e.type)return e.offset(us);const t=e.name;let i=ds.get(t);return void 0===i&&(i=e.offset(us),ds.set(t,i)),i}(i);[n,r]=Ri(e,s,i)}return new fs({ts:n,zone:i,loc:s,o:r})}function ls(e,t,i){const s=!!$e(i.round)||i.round,n=(e,n)=>(e=Je(e,s||i.calendary?0:2,!0),t.loc.clone(i).relFormatter(i).format(e,n)),r=s=>i.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(i.unit)return n(r(i.unit),i.unit);for(const e of i.units){const t=r(e);if(Math.abs(t)>=1)return n(t,e)}return n(e>t?-0:0,i.units[i.units.length-1])}function cs(e){let t,i={};return e.length>0&&"object"==typeof e[e.length-1]?(i=e[e.length-1],t=Array.from(e).slice(0,e.length-1)):t=Array.from(e),[i,t]}let us;const ds=new Map;class fs{constructor(e){const t=e.zone||be.defaultZone;let i=e.invalid||(Number.isNaN(e.ts)?new ve("invalid input"):null)||(t.isValid?null:qi(t));this.ts=$e(e.ts)?be.now():e.ts;let s=null,n=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,n]=[e.old.c,e.old.o];else{const r=We(e.o)&&!e.old?e.o:t.offset(this.ts);s=Ui(this.ts,r),i=Number.isNaN(s.year)?new ve("invalid input"):null,s=i?null:s,n=i?null:r}this._zone=t,this.loc=e.loc||ie.create(),this.invalid=i,this.weekData=null,this.localWeekData=null,this.c=s,this.o=n,this.isLuxonDateTime=!0}static now(){return new fs({})}static local(){const[e,t]=cs(arguments),[i,s,n,r,o,a,l]=t;return as({year:i,month:s,day:n,hour:r,minute:o,second:a,millisecond:l},e)}static utc(){const[e,t]=cs(arguments),[i,s,n,r,o,a,l]=t;return e.zone=ne.utcInstance,as({year:i,month:s,day:n,hour:r,minute:o,second:a,millisecond:l},e)}static fromJSDate(e,t={}){const i=(s=e,"[object Date]"===Object.prototype.toString.call(s)?e.valueOf():NaN);var s;if(Number.isNaN(i))return fs.invalid("invalid input");const n=oe(t.zone,be.defaultZone);return n.isValid?new fs({ts:i,zone:n,loc:ie.fromObject(t)}):fs.invalid(qi(n))}static fromMillis(e,t={}){if(We(e))return e<-Ai||e>Ai?fs.invalid("Timestamp out of range"):new fs({ts:e,zone:oe(t.zone,be.defaultZone),loc:ie.fromObject(t)});throw new l(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(We(e))return new fs({ts:1e3*e,zone:oe(t.zone,be.defaultZone),loc:ie.fromObject(t)});throw new l("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};const i=oe(t.zone,be.defaultZone);if(!i.isValid)return fs.invalid(qi(i));const s=ie.fromObject(t),n=ot(e,os),{minDaysInFirstWeek:r,startOfWeek:a}=Me(n,s),l=be.now(),c=$e(t.specificOffset)?i.offset(l):t.specificOffset,u=!$e(n.ordinal),d=!$e(n.year),f=!$e(n.month)||!$e(n.day),p=d||f,m=n.weekYear||n.weekNumber;if((p||u)&&m)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&u)throw new o("Can't mix ordinal dates with month/day");const _=m||n.weekday&&!p;let h,y,w=Ui(l,c);_?(h=ns,y=ts,w=Ie(w,r,a)):u?(h=rs,y=is,w=De(w)):(h=ss,y=es);let g=!1;for(const e of h)$e(n[e])?n[e]=g?y[e]:w[e]:g=!0;const b=_?function(e,t=4,i=1){const s=ze(e.weekYear),n=Ye(e.weekNumber,1,tt(e.weekYear,t,i)),r=Ye(e.weekday,1,7);return s?n?!r&&Se("weekday",e.weekday):Se("week",e.weekNumber):Se("weekYear",e.weekYear)}(n,r,a):u?function(e){const t=ze(e.year),i=Ye(e.ordinal,1,Xe(e.year));return t?!i&&Se("ordinal",e.ordinal):Se("year",e.year)}(n):Ve(n),v=b||Ce(n);if(v)return fs.invalid(v);const k=_?Ee(n,r,a):u?je(n):n,[x,S]=Ri(k,c,i),N=new fs({ts:x,zone:i,o:S,loc:s});return n.weekday&&p&&e.weekday!==N.weekday?fs.invalid("mismatched weekday",`you can't specify both a weekday of ${n.weekday} and a date of ${N.toISO()}`):N.isValid?N:fs.invalid(N.invalid)}static fromISO(e,t={}){const[i,s]=function(e){return Ft(e,[ei,ni],[ti,ri],[ii,oi],[si,ai])}(e);return Bi(i,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[i,s]=function(e){return Ft(function(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e),[Ut,Rt])}(e);return Bi(i,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[i,s]=function(e){return Ft(e,[Jt,Qt],[Bt,Qt],[Xt,Kt])}(e);return Bi(i,s,t,"HTTP",t)}static fromFormat(e,t,i={}){if($e(e)||$e(t))throw new l("fromFormat requires an input string and a format");const{locale:s=null,numberingSystem:n=null}=i,r=ie.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0}),[o,a,c,u]=function(e,t,i){const{result:s,zone:n,specificOffset:r,invalidReason:o}=zi(e,t,i);return[s,n,r,o]}(r,e,t);return u?fs.invalid(u):Bi(o,a,i,`format ${t}`,e,c)}static fromString(e,t,i={}){return fs.fromFormat(e,t,i)}static fromSQL(e,t={}){const[i,s]=function(e){return Ft(e,[ci,ni],[ui,di])}(e);return Bi(i,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new l("need to specify a reason the DateTime is invalid");const i=e instanceof ve?e:new ve(e,t);if(be.throwOnInvalid)throw new s(i);return new fs({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){const i=Li(e,ie.fromObject(t));return i?i.map((e=>e?e.val:null)).join(""):null}static expandFormat(e,t={}){return $i(St.parseFormat(e),ie.fromObject(t)).map((e=>e.val)).join("")}static resetCache(){us=void 0,ds.clear()}get(e){return this[e]}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Gi(this).weekYear:NaN}get weekNumber(){return this.isValid?Gi(this).weekNumber:NaN}get weekday(){return this.isValid?Gi(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Yi(this).weekday:NaN}get localWeekNumber(){return this.isValid?Yi(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Yi(this).weekYear:NaN}get ordinal(){return this.isValid?De(this.c).ordinal:NaN}get monthShort(){return this.isValid?Si.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Si.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Si.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Si.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return!this.isOffsetFixed&&(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,t=6e4,i=Ke(this.c),s=this.zone.offset(i-e),n=this.zone.offset(i+e),r=this.zone.offset(i-s*t),o=this.zone.offset(i-n*t);if(r===o)return[this];const a=i-r*t,l=i-o*t,c=Ui(a,r),u=Ui(l,o);return c.hour===u.hour&&c.minute===u.minute&&c.second===u.second&&c.millisecond===u.millisecond?[Hi(this,{ts:a}),Hi(this,{ts:l})]:[this]}get isInLeapYear(){return Be(this.year)}get daysInMonth(){return Qe(this.year,this.month)}get daysInYear(){return this.isValid?Xe(this.year):NaN}get weeksInWeekYear(){return this.isValid?tt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?tt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:i,calendar:s}=St.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:i,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(ne.instance(e),t)}toLocal(){return this.setZone(be.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:i=!1}={}){if((e=oe(e,be.defaultZone)).equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||i){const t=e.offset(this.ts),i=this.toObject();[s]=Ri(i,t,e)}return Hi(this,{ts:s,zone:e})}return fs.invalid(qi(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:i}={}){return Hi(this,{loc:this.loc.clone({locale:e,numberingSystem:t,outputCalendar:i})})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=ot(e,os),{minDaysInFirstWeek:i,startOfWeek:s}=Me(t,this.loc),n=!$e(t.weekYear)||!$e(t.weekNumber)||!$e(t.weekday),r=!$e(t.ordinal),a=!$e(t.year),l=!$e(t.month)||!$e(t.day),c=a||l,u=t.weekYear||t.weekNumber;if((c||r)&&u)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&r)throw new o("Can't mix ordinal dates with month/day");let d;n?d=Ee({...Ie(this.c,i,s),...t},i,s):$e(t.ordinal)?(d={...this.toObject(),...t},$e(t.day)&&(d.day=Math.min(Qe(d.year,d.month),d.day))):d=je({...De(this.c),...t});const[f,p]=Ri(d,this.o,this.zone);return Hi(this,{ts:f,o:p})}plus(e){return this.isValid?Hi(this,Ji(this,vi.fromDurationLike(e))):this}minus(e){return this.isValid?Hi(this,Ji(this,vi.fromDurationLike(e).negate())):this}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;const i={},s=vi.normalizeUnit(e);switch(s){case"years":i.month=1;case"quarters":case"months":i.day=1;case"weeks":case"days":i.hour=0;case"hours":i.minute=0;case"minutes":i.second=0;case"seconds":i.millisecond=0}if("weeks"===s)if(t){const e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(i.weekNumber=this.weekNumber-1),i.weekday=e}else i.weekday=1;if("quarters"===s){const e=Math.ceil(this.month/3);i.month=3*(e-1)+1}return this.set(i)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?St.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Zi}toLocaleString(e=p,t={}){return this.isValid?St.create(this.loc.clone(t),e).formatDateTime(this):Zi}toLocaleParts(e={}){return this.isValid?St.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:i=!1,includeOffset:s=!0,extendedZone:n=!1}={}){if(!this.isValid)return null;const r="extended"===e;let o=Qi(this,r);return o+="T",o+=Ki(this,r,t,i,s,n),o}toISODate({format:e="extended"}={}){return this.isValid?Qi(this,"extended"===e):null}toISOWeekDate(){return Xi(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:n=!1,format:r="extended"}={}){return this.isValid?(s?"T":"")+Ki(this,"extended"===r,t,e,i,n):null}toRFC2822(){return Xi(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Xi(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Qi(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(i&&(s+=" "),t?s+="z":e&&(s+="ZZ")),Xi(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Zi}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",i={}){if(!this.isValid||!e.isValid)return vi.invalid("created by diffing an invalid DateTime");const s={locale:this.locale,numberingSystem:this.numberingSystem,...i},n=(a=t,Array.isArray(a)?a:[a]).map(vi.normalizeUnit),r=e.valueOf()>this.valueOf(),o=function(e,t,i,s){let[n,r,o,a]=function(e,t,i){const s=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+4*(t.year-e.year)],["months",(e,t)=>t.month-e.month+12*(t.year-e.year)],["weeks",(e,t)=>{const i=Ni(e,t);return(i-i%7)/7}],["days",Ni]],n={},r=e;let o,a;for(const[l,c]of s)i.indexOf(l)>=0&&(o=l,n[l]=c(e,t),a=r.plus(n),a>t?(n[l]--,(e=r.plus(n))>t&&(a=e,n[l]--,e=r.plus(n))):e=a);return[e,n,a,o]}(e,t,i);const l=t-n,c=i.filter((e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0));0===c.length&&(o<t&&(o=n.plus({[a]:1})),o!==n&&(r[a]=(r[a]||0)+l/(o-n)));const u=vi.fromObject(r,s);return c.length>0?vi.fromMillis(l,s).shiftTo(...c).plus(u):u}(r?this:e,r?e:this,n,s);var a;return r?o.negate():o}diffNow(e="milliseconds",t={}){return this.diff(fs.now(),e,t)}until(e){return this.isValid?xi.fromDateTimes(this,e):this}hasSame(e,t,i){if(!this.isValid)return!1;const s=e.valueOf(),n=this.setZone(e.zone,{keepLocalTime:!0});return n.startOf(t,i)<=s&&s<=n.endOf(t,i)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||fs.fromObject({},{zone:this.zone}),i=e.padding?this<t?-e.padding:e.padding:0;let s=["years","months","days","hours","minutes","seconds"],n=e.unit;return Array.isArray(e.unit)&&(s=e.unit,n=void 0),ls(t,this.plus(i),{...e,numeric:"always",units:s,unit:n})}toRelativeCalendar(e={}){return this.isValid?ls(e.base||fs.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(fs.isDateTime))throw new l("min requires all arguments be DateTimes");return Ae(e,(e=>e.valueOf()),Math.min)}static max(...e){if(!e.every(fs.isDateTime))throw new l("max requires all arguments be DateTimes");return Ae(e,(e=>e.valueOf()),Math.max)}static fromFormatExplain(e,t,i={}){const{locale:s=null,numberingSystem:n=null}=i;return zi(ie.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0}),e,t)}static fromStringExplain(e,t,i={}){return fs.fromFormatExplain(e,t,i)}static buildFormatParser(e,t={}){const{locale:i=null,numberingSystem:s=null}=t,n=ie.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return new Wi(n,e)}static fromFormatParser(e,t,i={}){if($e(e)||$e(t))throw new l("fromFormatParser requires an input string and a format parser");const{locale:s=null,numberingSystem:n=null}=i,r=ie.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0});if(!r.equals(t.locale))throw new l(`fromFormatParser called with a locale of ${r}, but the format parser was created for ${t.locale}`);const{result:o,zone:a,specificOffset:c,invalidReason:u}=t.explainFromTokens(e);return u?fs.invalid(u):Bi(o,a,i,`format ${t.format}`,e,c)}static get DATE_SHORT(){return p}static get DATE_MED(){return m}static get DATE_MED_WITH_WEEKDAY(){return _}static get DATE_FULL(){return h}static get DATE_HUGE(){return y}static get TIME_SIMPLE(){return w}static get TIME_WITH_SECONDS(){return g}static get TIME_WITH_SHORT_OFFSET(){return b}static get TIME_WITH_LONG_OFFSET(){return v}static get TIME_24_SIMPLE(){return k}static get TIME_24_WITH_SECONDS(){return x}static get TIME_24_WITH_SHORT_OFFSET(){return S}static get TIME_24_WITH_LONG_OFFSET(){return N}static get DATETIME_SHORT(){return O}static get DATETIME_SHORT_WITH_SECONDS(){return T}static get DATETIME_MED(){return F}static get DATETIME_MED_WITH_SECONDS(){return I}static get DATETIME_MED_WITH_WEEKDAY(){return E}static get DATETIME_FULL(){return D}static get DATETIME_FULL_WITH_SECONDS(){return j}static get DATETIME_HUGE(){return M}static get DATETIME_HUGE_WITH_SECONDS(){return V}}function ps(e){if(fs.isDateTime(e))return e;if(e&&e.valueOf&&We(e.valueOf()))return fs.fromJSDate(e);if(e&&"object"==typeof e)return fs.fromObject(e);throw new l(`Unknown datetime argument: ${e}, of type ${typeof e}`)}t.DateTime=fs,t.Duration=vi,t.FixedOffsetZone=ne,t.IANAZone=A,t.Info=Si,t.Interval=xi,t.InvalidZone=re,t.Settings=be,t.SystemZone=W,t.VERSION="3.6.1",t.Zone=C},271:(e,t,i)=>{const{SocotraEntry:s,SocotraGroupEntry:n}=i(630);entries_v3=[new s("quote_name","quote_name","quote.name"),new s("socotra_config_version","config_version","quote.version"),new s("fire_deductible","wf_deductible","exposure.dwelling.fields",parseFloat),new s("other_deductible","aop_deductible","exposure.dwelling.fields",parseInt),new s("water_deductible","water_deductible","exposure.dwelling.fields",parseInt),new s("num_stories","number_of_stories","exposure.dwelling.fields"),new s("num_bath","number_of_bathrooms","exposure.dwelling.fields"),new s("square_feet","square_feet","exposure.dwelling.fields",void 0,parseInt),new s("stand_protect_discount","stand_protect_discount","exposure.dwelling.fields"),new s("multi_policy_discount","multi_policy_discount","exposure.dwelling.fields"),new s(void 0,"has_any_claim_history","exposure.dwelling.fields",(e=>{}),(e=>e&&e.claims_data&&e.claims_data.claims&&e.claims_data.claims.length>0?"Yes":"No")),new s("roof_rating","roof_rating","exposure.dwelling.fields"),new s("slab_plumbing","slab_plumbing","exposure.dwelling.fields"),new s("foundation_type","foundation_type","exposure.dwelling.fields"),new s("siding_material","siding_material","exposure.dwelling.fields"),new s("distance_to_fire_department","dist_to_fire_department","exposure.dwelling.fields"),new s("protection_class","protection_class","exposure.dwelling.fields"),new s("purchase_year","property_purchase_year","exposure.dwelling.fields",void 0,parseInt),new s("roof_material","roof_material","exposure.dwelling.fields"),new s("presence_of_fence","fence","exposure.dwelling.fields"),new s("year_built","year_built","exposure.dwelling.fields"),new s("construction_type","construction_type","exposure.dwelling.fields"),new s("water_damage_limit","water_damage_limit","exposure.dwelling.fields"),new s("extended_dwelling_coverage","extended_dwelling_coverage","exposure.dwelling.fields"),new s("sprinkler","sprinkler","exposure.dwelling.fields"),new s("smoke","smoke","exposure.dwelling.fields"),new s("fire_alarm","fire_alarm_type","exposure.dwelling.fields"),new s("fire_ext","fire_ext","exposure.dwelling.fields"),new s("deadbolt","dead_bolt","exposure.dwelling.fields"),new s(void 0,"24_hour_security_guard","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("theft_alarm","theft_alarm_type","exposure.dwelling.fields"),new s("distance_to_neighboring_home","distance_to_nearest_home_ft","exposure.dwelling.fields"),new s("chimney_spark_arrestors","chimney_mesh_cover","exposure.dwelling.fields"),new s("ember_resistant_vents","ember_vents","exposure.dwelling.fields"),new s("enclosed_eaves","enclosed_eaves","exposure.dwelling.fields"),new s("fuel_tank_distance","propane_tank_proximity","exposure.dwelling.fields"),new s("ground_clearance","exterior_clearance","exposure.dwelling.fields"),new s("windows_frame_type","window_frame_type","exposure.dwelling.fields"),new s("windows_type","window_glass_type","exposure.dwelling.fields"),new s("replacement_cost","full_replacement_value","policy.fields",parseInt),new s("street_address","address","policy.fields"),new s("state","state","policy.fields"),new s("is_rental","is_rental","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("has_home_business","home_business","policy.fields"),new s("occupation","occupation","policy.fields"),new s("water_shutoff","water_shutoff_system","policy.fields"),new s("waterflow_alarm","waterflow_alarm","policy.fields"),new s("city","city","policy.fields"),new s("electrical_updated_year","electrical_last_updated","policy.fields"),new s("coverage_b","coverage_b","policy.fields",parseInt),new s("coverage_c","coverage_c","policy.fields",parseInt),new s("coverage_a","coverage_a","policy.fields",parseInt),new s("retrofitted","retrofit_1997","policy.fields"),new s("roof_replacement_year","roof_replaced_year","policy.fields"),new s("seismic_shutoff","seismic_shutoff","policy.fields"),new s("coverage_f","coverage_f","policy.fields"),new s("bellweather_wf_score","bellweather_wf_score","policy.fields"),new s("first_street_score","first_street_wf_score","policy.fields",parseInt),new s("degree_of_slope","degrees_of_slope","policy.fields"),new s("number_of_bankrupcies","bankruptcies_judgements_liens","policy.fields"),new s("coverage_d","coverage_d","policy.fields",parseInt),new s("coverage_e","coverage_e","policy.fields"),new s("gre_wf_score","gre_wf_score","policy.fields",parseFloat),new s("state","state","policy.fields"),new s("core_logic_wf_score","core_logic_score","policy.fields",parseInt),new s(void 0,"channel","policy.fields",(e=>{}),(e=>"Broker")),new s(void 0,"coverageForm","policy.fields",(e=>{}),(e=>"HO-5 Comprehensive")),new s("zip","zip","policy.fields"),new s("has_underground_fuel_tank","underground_fuel_tank","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("attractive_nuisance","has_attractive_nuisance","policy.fields"),new s("zesty_l2","zesty_l2","policy.fields",parseInt),new s("zesty_l1","zesty_l1","policy.fields",parseInt),new s("water_heater_update_year","water_heaters_last_updated","policy.fields"),new s("plumbing_updated_year","plumbing_last_updated","policy.fields"),new s("home_heating_update_year","home_heater_last_updated","policy.fields",void 0,(e=>""===e?null:e)),new s("insured_dob","date_of_birth","policy.fields"),new s("gre_arf","arf","policy.fields",parseFloat),new s("insured_dob","date_of_birth","policy.fields"),new s("flood_score","first_street_flood_score","policy.fields"),new s("home_heating_source","heating_source","policy.fields"),new s("horses","has_horses","policy.fields"),new s("is_under_renovation","renovation","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("previous_insurance_company","pastCarrier","policy.fields"),new s("previous_policy_expiration_date","prevPolicyExpiration","policy.fields"),new s("previous_premium","prevPolicyPremium","policy.fields",void 0,parseInt),new s("fireshed_ID","fireshed_id","policy.fields"),new s("fireshed_code","fireshed_code","policy.fields"),new s("fireshed_capacity","fireshed_capacity","policy.fields",parseFloat),new s("county","county","policy.fields"),new s("ensemble_mean","wf_score_mean","policy.fields",parseFloat),new s("ensemble_variance","wf_score_variance","policy.fields",parseFloat),new s("wildfire_category","wf_score_category","policy.fields"),new s("has_additional_insured","has_co_applicant","policy.fields"),new s("months_unoccupied","months_unoccupied","policy.fields",(e=>null==e?"0":e)),new s("multifamily_unit_count","multi_family_unit_count","policy.fields",void 0,parseInt),new s("spouse_first_name","has_co_applicant","policy.fields",(e=>null),(e=>e?"Yes":"No")),new s("spouse_first_name","co_applicant_first_name","policy.fields"),new s("spouse_last_name","co_applicant_last_name","policy.fields"),new s("spouse_email","co_applicant_email","policy.fields"),new s("co_applicant_address","co_applicant_address","policy.fields"),new s("spouse_phone_number","co_applicant_phone_number","policy.fields"),new s("number_of_mortgages","num_mortgages","policy.fields"),new s("past_liens","bankruptcies_judgements_liens","policy.fields"),new s("property_id","retool_property_id","policy.fields"),new s("primary_dwelling_insured","primary_insured_by_stand","policy.fields"),new s("lat","latitude","policy.fields",parseFloat),new s("lng","longitude","policy.fields",parseFloat),new s("count_of_solar_panels","has_solar_panels","exposure.dwelling.fields",...function(){let e={0:"No","1+":"Yes"},t={No:0,Yes:"1+"};return[e=>t[e],t=>e[t]]}()),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_id","producerId","policy.fields"),new s("producer_email","producerEmail","policy.fields"),new s("producer_name","producerName","policy.fields"),new s("producer_ascend_id","producer_ascend_id","policy.fields"),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_phone_number","producer_phone_number","policy.fields"),new s("producer_state","producer_state","policy.fields"),new s("producer_commission","commissionRate","policy.fields"),new s("producer_zip","producer_zip","policy.fields"),new s("producer_city","producer_city","policy.fields"),new s("producer_street_address","producer_street_address","policy.fields"),new s("producer_street_address2","producer_street_address_2","policy.fields"),new s("broker_license_number","distributor_license_number","policy.fields"),new s("broker_name","distributor_name","policy.fields"),new s("premium_calculated","indicated_policy_cost","policy.fields"),new s("withdrawal_reasons","withdrawal_reason","policy.fields.array"),new s("rejection_reasons","declination_reason","policy.fields.array"),new s("competing_carrier","competing_carrier","policy.fields"),new s("competing_pricing","competing_pricing","policy.fields"),new s("stand_second_approval","stand_second_approval","policy.fields"),new s("fronting_carrier_approval","fronting_carrier_approval","policy.fields"),new s("reinsurance_carrier_approved","reinsurance_carrier_approved","policy.fields"),new s("reinsurance_rate","reinsurance_rate","policy.fields"),new s("is_agreed_value","is_agreed_value","policy.fields"),new s("is_difference_in_condition","is_difference_in_condition","policy.fields"),new s("lead_source","lead_source","policy.fields",(e=>null)),new s("start_date","startTimestamp","effective_date"),new s("payment_schedule","paymentScheduleName","payment_schedule"),new s("billing_email","billing_email","policy.fields"),new s("account_manager_name","billing_contact_name","policy.fields"),new s("co_applicant_occupation","co_applicant_occupation","policy.fields"),new s("is_firewise_community","is_firewise_community","exposure.dwelling.fields"),new s("count_domestic_employees","count_domestic_employees","policy.fields"),new s("domestic_employees_duties","domestic_employees_duties","policy.fields"),new s("high_risk_tree_type","high_risk_tree_type","exposure.dwelling.fields"),new s("exterior_door_material","exterior_door_material","exposure.dwelling.fields"),new s("trellis_pergola_material","trellis_pergola_material","exposure.dwelling.fields"),new s("mulch_type","mulch_type","exposure.dwelling.fields"),new s("farming_activity","farming_type","policy.fields"),new s("deck_type","deck_type","exposure.dwelling.fields"),new s("has_fence_attached","has_fence_attached","exposure.dwelling.fields"),new s("gutter_material","gutter_material","exposure.dwelling.fields"),new s("has_gutter_guards_installed","has_gutter_guards_installed","exposure.dwelling.fields"),new s("gutter_guards_type","gutter_guards_type","exposure.dwelling.fields"),new s("construction_renovations_details","construction_renovations_details","exposure.dwelling.fields"),new s("year_retrofitted","year_retrofitted","policy.fields"),new s("alarm_company","alarm_company","exposure.dwelling.fields"),new s("eaves_material","eaves_material","exposure.dwelling.fields"),new s("exterior_sprinkler_type","exterior_sprinkler_type","exposure.dwelling.fields"),new s("defensible_space","defensible_space","exposure.dwelling.fields"),new s("water_supply_hoses_type","water_supply_hoses_type","policy.fields"),new s("water_supply_fittings_type","water_supply_fittings_type","policy.fields"),new s("prior_status_reason","prev_policy_status","policy.fields"),new s("prior_policy_status","prev_policy_status","policy.fields")],entries_v3.push(new n("additional_insured_data.additionalInterest","additional_insured","policy.fields.group",{type:":type",name:":name",street_address:":street_address",street_address2:":street_address2",city:":city",state:":state",zip:":zip",description:":description",loan_number:":loan_number"},{zip:":zip",street_address:":street_address",loan_number:":loan_number",city:":city",street_address2:":street_address2",state:":state",type:":type",name:":name",description:":description"}));const r=new n("claims_data.claims","claims_history","exposure.dwelling.fields.group",{prior_claim_type:":type",accident_date:":date",claim_amount:":amount"},{date:":date",amount:":amount",type:":type"});entries_v3.push(r),e.exports={entries_v3}},273:(e,t,i)=>{const{knockout:s,knockout_names:n,same_address:r,stand_wf_knockout:o,has_circuit_breaker:a,has_class_a_roof:l,check_claims_history:c}=i(78);function u(e){let t=[];for(let i in e)"refer"===e[i]&&t.push(i);return t}function d(e){for(let t in e)if("reject"===e[t])return"reject";for(let t in e)if("refer"===e[t])return"refer";return"accept"}function f(e,t,i,s,n={}){s[t]=e.decision,n[t]=e.note,e.note&&i.push(e.note)}e.exports={underwrite:function(e,t=!0){let i,p={},m=[],_={};for(let i of n())(t||Object.keys(e).includes(i))&&f(s(i,e[i]),i,m,p,_);return(t||"address"in e&&"co_applicant_address"in e)&&f(r(e.address,e.co_applicant_address),"co_applicant_address",m,p,_),(t||"wf_score_mean"in e&&"arf"in e)&&(i=o(e.wf_score_mean,e.arf),f(i.underwriter_result,"wf_score_mean",m,p,_)),(t||"circuit_breaker"in e&&"year_built"in e)&&f(a(e.circuit_breaker,e.year_built),"circuit_breaker",m,p,_),(t||"class_a_roof"in e)&&f(l(e.class_a_roof,i.category),"roof_rating",m,p,_),(t||"claims"in e)&&f(c(e.claims),"claims",m,p,_),{decision:d(p),notes:m,refers:u(p),all_decisions:p,notes_dict:_}},knockout_names:n}},330:e=>{"use strict";e.exports=JSON.parse('{"name":"stand_socotra_policy_transformer","version":"3.0.8","description":"Stands internal javascript module for executing underwriting","main":"dist/stand_underwriter.js","scripts":{"test":"jest","build":"webpack"},"author":"","license":"MIT","devDependencies":{"jest":"^29.7.0","webpack":"^5.92.1","webpack-cli":"^5.1.4"},"dependencies":{"luxon":"^3.6.1"}}')},401:(e,t,i)=>{const{SocotraEntry:s}=i(630);entries_v1=[new s("quote_name","quote_name","quote.name"),new s("socotra_config_version","config_version","quote.version"),new s("fire_deductible","wf_deductible","exposure.dwelling.fields",parseFloat),new s("other_deductible","aop_deductible","exposure.dwelling.fields",parseInt),new s("water_deductible","water_deductible","exposure.dwelling.fields",parseInt),new s("square_feet","square_feet","exposure.dwelling.fields",void 0,parseInt),new s("stand_protect_discount","stand_protect_discount","exposure.dwelling.fields"),new s("multi_policy_discount","multi_policy_discount","exposure.dwelling.fields"),new s(void 0,"has_any_claim_history","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("roof_rating","roof_rating","exposure.dwelling.fields"),new s("slab_plumbing","slab_plumbing","exposure.dwelling.fields"),new s("foundation_type","foundation_type","exposure.dwelling.fields"),new s("siding_material","siding_material","exposure.dwelling.fields"),new s("distance_to_fire_department","dist_to_fire_department","exposure.dwelling.fields"),new s("protection_class","protection_class","exposure.dwelling.fields"),new s("purchase_year","property_purchase_year","exposure.dwelling.fields",void 0,parseInt),new s("roof_material","roof_material","exposure.dwelling.fields"),new s("presence_of_fence","fence","exposure.dwelling.fields"),new s("year_built","year_built","exposure.dwelling.fields"),new s("construction_type","construction_type","exposure.dwelling.fields"),new s("water_damage_limit","water_damage_limit","exposure.dwelling.fields"),new s("extended_dwelling_coverage","extended_dwelling_coverage","exposure.dwelling.fields"),new s("sprinkler","sprinkler","exposure.dwelling.fields"),new s("smoke","smoke","exposure.dwelling.fields"),new s("fire_alarm","fire_alarm_type","exposure.dwelling.fields"),new s("fire_ext","fire_ext","exposure.dwelling.fields"),new s("deadbolt","dead_bolt","exposure.dwelling.fields"),new s(void 0,"24_hour_security_guard","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("theft_alarm","theft_alarm_type","exposure.dwelling.fields"),new s("distance_to_neighboring_home","distance_to_nearest_home_ft","exposure.dwelling.fields"),new s("chimney_spark_arrestors","chimney_mesh_cover","exposure.dwelling.fields"),new s("ember_resistant_vents","ember_vents","exposure.dwelling.fields"),new s("enclosed_eaves","enclosed_eaves","exposure.dwelling.fields"),new s("fuel_tank_distance","propane_tank_proximity","exposure.dwelling.fields"),new s("ground_clearance","exterior_clearance","exposure.dwelling.fields"),new s("windows_frame_type","window_frame_type","exposure.dwelling.fields"),new s("windows_type","window_glass_type","exposure.dwelling.fields"),new s("replacement_cost","full_replacement_value","policy.fields",parseInt),new s("street_address","address","policy.fields"),new s("state","state","policy.fields"),new s("is_rental","is_rental","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("has_home_business","home_business","policy.fields"),new s("occupation","occupation","policy.fields"),new s("water_shutoff","water_shutoff_system","policy.fields"),new s("waterflow_alarm","waterflow_alarm","policy.fields"),new s("city","city","policy.fields"),new s("electrical_updated_year","electrical_last_updated","policy.fields"),new s("coverage_b","coverage_b","policy.fields",parseInt),new s("coverage_c","coverage_c","policy.fields",parseInt),new s("coverage_a","coverage_a","policy.fields",parseInt),new s("retrofitted","retrofit_1997","policy.fields"),new s("roof_replacement_year","roof_replaced_year","policy.fields"),new s("seismic_shutoff","seismic_shutoff","policy.fields"),new s("coverage_f","coverage_f","policy.fields"),new s("first_street_score","first_street_wf_score","policy.fields",parseInt),new s("degree_of_slope","degrees_of_slope","policy.fields"),new s("number_of_bankrupcies","bankruptcies_judgements_liens","policy.fields"),new s("coverage_d","coverage_d","policy.fields",parseInt),new s("coverage_e","coverage_e","policy.fields"),new s("gre_wf_score","gre_wf_score","policy.fields",parseFloat),new s("state","state","policy.fields"),new s("has_steel_braided_hoses","steel_braided_hoses","policy.fields"),new s("core_logic_wf_score","core_logic_score","policy.fields",parseInt),new s(void 0,"channel","policy.fields",(e=>{}),(e=>"Broker")),new s(void 0,"coverageForm","policy.fields",(e=>{}),(e=>"HO-5 Comprehensive")),new s("zip","zip","policy.fields"),new s("has_underground_fuel_tank","underground_fuel_tank","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("attractive_nuisance","has_attractive_nuisance","policy.fields"),new s("zesty_l2","zesty_l2","policy.fields",parseInt),new s("zesty_l1","zesty_l1","policy.fields",parseInt),new s("water_heater_update_year","water_heaters_last_updated","policy.fields"),new s("plumbing_updated_year","plumbing_last_updated","policy.fields"),new s("home_heating_update_year","home_heater_last_updated","policy.fields",void 0,(e=>""===e?null:e)),new s("insured_dob","date_of_birth","policy.fields"),new s("gre_arf","arf","policy.fields",parseFloat),new s("insured_dob","date_of_birth","policy.fields"),new s("flood_score","first_street_flood_score","policy.fields"),new s("home_heating_source","heating_source","policy.fields"),new s("horses","has_horses","policy.fields"),new s("metal_fittings_toilet_supply_line","metal_fittings","policy.fields"),new s("is_under_renovation","renovation","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("previous_insurance_company","pastCarrier","policy.fields"),new s("previous_policy_expiration_date","prevPolicyExpiration","policy.fields"),new s("previous_premium","prevPolicyPremium","policy.fields",void 0,parseInt),new s("fireshed_ID","fireshed_id","policy.fields"),new s("fireshed_code","fireshed_code","policy.fields"),new s("fireshed_capacity","fireshed_capacity","policy.fields",parseFloat),new s("county","county","policy.fields"),new s("ensemble_mean","wf_score_mean","policy.fields",parseFloat),new s("ensemble_variance","wf_score_variance","policy.fields",parseFloat),new s("wildfire_category","wf_score_category","policy.fields"),new s("has_additional_insured","has_co_applicant","policy.fields"),new s("months_unoccupied","months_unoccupied","policy.fields",(e=>null==e?"0":e)),new s("multifamily_unit_count","multi_family_unit_count","policy.fields",void 0,parseInt),new s("spouse_first_name","has_co_applicant","policy.fields",(e=>null),(e=>e?"Yes":"No")),new s("spouse_first_name","co_applicant_first_name","policy.fields"),new s("spouse_last_name","co_applicant_last_name","policy.fields"),new s("spouse_email","co_applicant_email","policy.fields"),new s("spouse_phone_number","co_applicant_phone_number","policy.fields"),new s("number_of_mortgages","num_mortgages","policy.fields"),new s("past_liens","bankruptcies_judgements_liens","policy.fields"),new s("property_id","retool_property_id","policy.fields"),new s("primary_dwelling_insured","primary_insured_by_stand","policy.fields",(e=>e||"Yes")),new s("lat","latitude","policy.fields",parseFloat),new s("lng","longitude","policy.fields",parseFloat),new s("count_of_solar_panels","has_solar_panels","exposure.dwelling.fields",...function(){let e={0:"No","1+":"Yes"},t={No:0,Yes:"1+"};return[e=>t[e],t=>e[t]]}()),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_id","producerId","policy.fields"),new s("producer_email","producerEmail","policy.fields"),new s("producer_name","producerName","policy.fields"),new s("producer_ascend_id","producer_ascend_id","policy.fields"),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_phone_number","producer_phone_number","policy.fields"),new s("producer_state","producer_state","policy.fields"),new s("producer_commission","commissionRate","policy.fields"),new s("producer_zip","producer_zip","policy.fields"),new s("producer_city","producer_city","policy.fields"),new s("producer_street_address","producer_street_address","policy.fields"),new s("producer_street_address2","producer_street_address_2","policy.fields"),new s("broker_license_number","distributor_license_number","policy.fields"),new s("broker_name","distributor_name","policy.fields"),new s("premium_calculated","indicated_policy_cost","policy.fields"),new s("withdrawal_reasons","withdrawal_reason","policy.fields.array"),new s("rejection_reasons","declination_reason","policy.fields.array"),new s("competing_carrier","competing_carrier","policy.fields"),new s("competing_pricing","competing_pricing","policy.fields"),new s("stand_second_approval","stand_second_approval","policy.fields"),new s("fronting_carrier_approval","fronting_carrier_approval","policy.fields"),new s("reinsurance_carrier_approved","reinsurance_carrier_approved","policy.fields"),new s("reinsurance_rate","reinsurance_rate","policy.fields"),new s("start_date","startTimestamp","effective_date"),new s("payment_schedule","paymentScheduleName","payment_schedule")],e.exports={entries_v1}},479:e=>{e.exports={construction_type:function(e){return"string"!=typeof e?{decision:"reject",note:"Construction type must be a string"}:["Concrete","Frame","Log","Masonry","Mobile / Manufactured","Steel","Modular"].includes(e)?["Concrete","Frame","Masonry","Steel"].includes(e)?{decision:"accept",note:null}:{decision:"reject",note:"Construction type not supported"}:{decision:"reject",note:"Construction type must be one of [Concrete, Frame, Log, Masonry, Mobile / Manufactured, Steel, Modular]"}},siding_material:function(e){return"string"!=typeof e?{decision:"reject",note:"Siding material must be a string"}:["Adobe","Aluminum / Steel","Asbestos","Brick / Masonry Veneer","Brick / Stone - Solid","Cement Fiber","Clapboard","Exterior Insulation Finishing System (EIFS)","Log","Stone Veneer","Stucco","Vinyl","Wood","Other - above descriptions do not apply"].includes(e)?["Log","Asbestos","Exterior Insulation Finishing System (EIFS)"].includes(e)?{decision:"reject",note:"Siding material not supported"}:"Wood"!==e?{decision:"accept",note:null}:void 0:{decision:"reject",note:"Siding material must be one of [Adobe, Aluminum / Steel, Asbestos, Brick / Masonry Veneer, Brick / Stone - Solid, Cement Fiber, Clapboard, Exterior Insulation Finishing System (EIFS), Log, Stone Veneer, Stucco, Vinyl, Wood, Other - above descriptions do not apply]"}},protection_class:function(e){let t=["1","2","3","4","5","6","7","8","8B","1Y","2Y","3Y","4Y","5Y","6Y","7Y","8Y","9","1X","2X","3X","4X","5X","6X","7X","8X","9","10","10W"];return"string"!=typeof e?{decision:"reject",note:"Protection class must be a string"}:t.includes(e)?["9","10"].includes(e)?{decision:"reject",note:"Protection class not supported"}:{decision:"accept",note:null}:{decision:"reject",note:`Protection class must be one of ${t}`}},roof_material:function(e){let t=["Architecture Shingles","Asphalt Fiberglass Composite","Clay-Tile-Slate","Concrete Tile","Corrugated Steel - Metal","Flat Foam Composite"," Flat Membrane","Flat Tar Gravel","Other","Wood Shake","Wood Shingle"];return"string"!=typeof e?{decision:"reject",note:"Roof material must be a string"}:t.includes(e)?["Wood Shake","Wood Shingle"].includes(e)?{decision:"reject",note:"Roof material not supported"}:{decision:"accept",note:null}:{decision:"reject",note:`Roof material must be one of ${t}`}},has_class_a_roof:function(e,t){return"string"!=typeof e?{decision:"reject",note:"Has class a roof must be a string"}:["Yes","No"].includes(e)?"Yes"===e||["A","B"].includes(t)?{decision:"accept",note:null}:{decision:"reject",note:"Homes in this wildfire category must have class a roofs"}:{decision:"reject",note:"Has class a roof must be Yes or No"}},foundation_type:function(e){let t=["Basement Finished","Basement Partially Finished","Basement Unfinished","Crawlspace","Other","Piers","Pilings","Stilts","Slab"];return"string"!=typeof e?{decision:"reject",note:"Foundation type must be a string"}:t.includes(e)?"Other"==e?{decision:"refer",note:null}:["Piers","Pilings","Stilts"].includes(e)?{decision:"reject",note:"Foundation type not supported"}:{decision:"accept",note:null}:{decision:"reject",note:`Foundation type must be one of ${t}`}},has_slab_foundation_plumbing:function(e){return"string"!=typeof e?{decision:"reject",note:"Has slab foundation plumbing must be a string"}:["Yes","No"].includes(e)?"Yes"===e?{decision:"reject",note:"Homes with slab foundation plumbing are not allowed"}:{decision:"accept",note:null}:{decision:"reject",note:"Has slab foundation plumbing must be Yes or No"}},fire_protective_devices:function(e){if(!Array.isArray(e))return{decision:"reject",note:"Fire protective devices must be a list"};let t=["Local","Central","Direct","Sprinkler","Fire Ext","Smoke","No"];return e.every((e=>t.includes(e)))?e.includes("Direct")||e.includes("Central")?{decision:"accept",note:null}:{decision:"reject",note:"Insufficient fire devices"}:{decision:"reject",note:`Unrecognized fire device type. Valid devices: ${t}`}},theft_protective_devices:function(e){return Array.isArray(e)?(device_types=["Dead Bolt","Local","Central","Direct","24 Hour Security Guard","No"],e.every((e=>device_types.includes(e)))?e.includes("Central")||e.includes("Direct")||e.includes("24 Hour Security Guard")?{decision:"accept",note:null}:{decision:"reject",note:"Insufficient theft device"}:{decision:"reject",note:`Unrecognized theft device type. Valid devices: ${device_types}`}):{decision:"reject",note:"Theft protective devices must be a list"}}}},529:e=>{e.exports={check_claims_history:function(e){if(!e)return{decision:"reject",note:"For Claims use empty instead of null"};let t=new Date,i=new Date,s=new Date;i.setFullYear(t.getFullYear()-5),s.setFullYear(t.getFullYear()-3);let n=e.filter((e=>e.date>i)),r=e.filter((e=>e.date>s));return n.length>2?{decision:"reject",note:"To many claims in the past 5 years"}:r.length>1?{decision:"reject",note:"To many claims in the past 3 years"}:{decision:"accept",note:null}}}},540:(e,t,i)=>{const{SocotraEntry:s}=i(630);entries_v2=[new s("quote_name","quote_name","quote.name"),new s("socotra_config_version","config_version","quote.version"),new s("fire_deductible","wf_deductible","exposure.dwelling.fields",parseFloat),new s("other_deductible","aop_deductible","exposure.dwelling.fields",parseInt),new s("water_deductible","water_deductible","exposure.dwelling.fields",parseInt),new s("num_stories","number_of_stories","exposure.dwelling.fields"),new s("num_bath","number_of_bathrooms","exposure.dwelling.fields"),new s("square_feet","square_feet","exposure.dwelling.fields",void 0,parseInt),new s("stand_protect_discount","stand_protect_discount","exposure.dwelling.fields"),new s("multi_policy_discount","multi_policy_discount","exposure.dwelling.fields"),new s(void 0,"has_any_claim_history","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("roof_rating","roof_rating","exposure.dwelling.fields"),new s("slab_plumbing","slab_plumbing","exposure.dwelling.fields"),new s("foundation_type","foundation_type","exposure.dwelling.fields"),new s("siding_material","siding_material","exposure.dwelling.fields"),new s("distance_to_fire_department","dist_to_fire_department","exposure.dwelling.fields"),new s("protection_class","protection_class","exposure.dwelling.fields"),new s("purchase_year","property_purchase_year","exposure.dwelling.fields",void 0,parseInt),new s("roof_material","roof_material","exposure.dwelling.fields"),new s("presence_of_fence","fence","exposure.dwelling.fields"),new s("year_built","year_built","exposure.dwelling.fields"),new s("construction_type","construction_type","exposure.dwelling.fields"),new s("water_damage_limit","water_damage_limit","exposure.dwelling.fields"),new s("extended_dwelling_coverage","extended_dwelling_coverage","exposure.dwelling.fields"),new s("sprinkler","sprinkler","exposure.dwelling.fields"),new s("smoke","smoke","exposure.dwelling.fields"),new s("fire_alarm","fire_alarm_type","exposure.dwelling.fields"),new s("fire_ext","fire_ext","exposure.dwelling.fields"),new s("deadbolt","dead_bolt","exposure.dwelling.fields"),new s(void 0,"24_hour_security_guard","exposure.dwelling.fields",(e=>{}),(e=>"No")),new s("theft_alarm","theft_alarm_type","exposure.dwelling.fields"),new s("distance_to_neighboring_home","distance_to_nearest_home_ft","exposure.dwelling.fields"),new s("chimney_spark_arrestors","chimney_mesh_cover","exposure.dwelling.fields"),new s("ember_resistant_vents","ember_vents","exposure.dwelling.fields"),new s("enclosed_eaves","enclosed_eaves","exposure.dwelling.fields"),new s("fuel_tank_distance","propane_tank_proximity","exposure.dwelling.fields"),new s("ground_clearance","exterior_clearance","exposure.dwelling.fields"),new s("windows_frame_type","window_frame_type","exposure.dwelling.fields"),new s("windows_type","window_glass_type","exposure.dwelling.fields"),new s("replacement_cost","full_replacement_value","policy.fields",parseInt),new s("street_address","address","policy.fields"),new s("state","state","policy.fields"),new s("is_rental","is_rental","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("has_home_business","home_business","policy.fields"),new s("occupation","occupation","policy.fields"),new s("water_shutoff","water_shutoff_system","policy.fields"),new s("waterflow_alarm","waterflow_alarm","policy.fields"),new s("city","city","policy.fields"),new s("electrical_updated_year","electrical_last_updated","policy.fields"),new s("coverage_b","coverage_b","policy.fields",parseInt),new s("coverage_c","coverage_c","policy.fields",parseInt),new s("coverage_a","coverage_a","policy.fields",parseInt),new s("retrofitted","retrofit_1997","policy.fields"),new s("roof_replacement_year","roof_replaced_year","policy.fields"),new s("seismic_shutoff","seismic_shutoff","policy.fields"),new s("coverage_f","coverage_f","policy.fields"),new s("bellweather_wf_score","bellweather_wf_score","policy.fields"),new s("first_street_score","first_street_wf_score","policy.fields",parseInt),new s("degree_of_slope","degrees_of_slope","policy.fields"),new s("number_of_bankrupcies","bankruptcies_judgements_liens","policy.fields"),new s("coverage_d","coverage_d","policy.fields",parseInt),new s("coverage_e","coverage_e","policy.fields"),new s("gre_wf_score","gre_wf_score","policy.fields",parseFloat),new s("state","state","policy.fields"),new s("core_logic_wf_score","core_logic_score","policy.fields",parseInt),new s(void 0,"channel","policy.fields",(e=>{}),(e=>"Broker")),new s(void 0,"coverageForm","policy.fields",(e=>{}),(e=>"HO-5 Comprehensive")),new s("zip","zip","policy.fields"),new s("has_underground_fuel_tank","underground_fuel_tank","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("attractive_nuisance","has_attractive_nuisance","policy.fields"),new s("zesty_l2","zesty_l2","policy.fields",parseInt),new s("zesty_l1","zesty_l1","policy.fields",parseInt),new s("water_heater_update_year","water_heaters_last_updated","policy.fields"),new s("plumbing_updated_year","plumbing_last_updated","policy.fields"),new s("home_heating_update_year","home_heater_last_updated","policy.fields",void 0,(e=>""===e?null:e)),new s("insured_dob","date_of_birth","policy.fields"),new s("gre_arf","arf","policy.fields",parseFloat),new s("insured_dob","date_of_birth","policy.fields"),new s("flood_score","first_street_flood_score","policy.fields"),new s("home_heating_source","heating_source","policy.fields"),new s("horses","has_horses","policy.fields"),new s("is_under_renovation","renovation","policy.fields"),new s("pool_type","swimming_pool_type","policy.fields"),new s("residence_type","dwelling_use_type","policy.fields"),new s("previous_insurance_company","pastCarrier","policy.fields"),new s("previous_policy_expiration_date","prevPolicyExpiration","policy.fields"),new s("previous_premium","prevPolicyPremium","policy.fields",void 0,parseInt),new s("fireshed_ID","fireshed_id","policy.fields"),new s("fireshed_code","fireshed_code","policy.fields"),new s("fireshed_capacity","fireshed_capacity","policy.fields",parseFloat),new s("county","county","policy.fields"),new s("ensemble_mean","wf_score_mean","policy.fields",parseFloat),new s("ensemble_variance","wf_score_variance","policy.fields",parseFloat),new s("wildfire_category","wf_score_category","policy.fields"),new s("has_additional_insured","has_co_applicant","policy.fields"),new s("months_unoccupied","months_unoccupied","policy.fields",(e=>null==e?"0":e)),new s("multifamily_unit_count","multi_family_unit_count","policy.fields",void 0,parseInt),new s("spouse_first_name","has_co_applicant","policy.fields",(e=>null),(e=>e?"Yes":"No")),new s("spouse_first_name","co_applicant_first_name","policy.fields"),new s("spouse_last_name","co_applicant_last_name","policy.fields"),new s("spouse_email","co_applicant_email","policy.fields"),new s("co_applicant_address","co_applicant_address","policy.fields"),new s("spouse_phone_number","co_applicant_phone_number","policy.fields"),new s("number_of_mortgages","num_mortgages","policy.fields"),new s("past_liens","bankruptcies_judgements_liens","policy.fields"),new s("property_id","retool_property_id","policy.fields"),new s("primary_dwelling_insured","primary_insured_by_stand","policy.fields"),new s("lat","latitude","policy.fields",parseFloat),new s("lng","longitude","policy.fields",parseFloat),new s("count_of_solar_panels","has_solar_panels","exposure.dwelling.fields",...function(){let e={0:"No","1+":"Yes"},t={No:0,Yes:"1+"};return[e=>t[e],t=>e[t]]}()),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_id","producerId","policy.fields"),new s("producer_email","producerEmail","policy.fields"),new s("producer_name","producerName","policy.fields"),new s("producer_ascend_id","producer_ascend_id","policy.fields"),new s("producer_license_number","producer_license_number","policy.fields"),new s("producer_phone_number","producer_phone_number","policy.fields"),new s("producer_state","producer_state","policy.fields"),new s("producer_commission","commissionRate","policy.fields"),new s("producer_zip","producer_zip","policy.fields"),new s("producer_city","producer_city","policy.fields"),new s("producer_street_address","producer_street_address","policy.fields"),new s("producer_street_address2","producer_street_address_2","policy.fields"),new s("broker_license_number","distributor_license_number","policy.fields"),new s("broker_name","distributor_name","policy.fields"),new s("premium_calculated","indicated_policy_cost","policy.fields"),new s("withdrawal_reasons","withdrawal_reason","policy.fields.array"),new s("rejection_reasons","declination_reason","policy.fields.array"),new s("competing_carrier","competing_carrier","policy.fields"),new s("competing_pricing","competing_pricing","policy.fields"),new s("stand_second_approval","stand_second_approval","policy.fields"),new s("fronting_carrier_approval","fronting_carrier_approval","policy.fields"),new s("reinsurance_carrier_approved","reinsurance_carrier_approved","policy.fields"),new s("reinsurance_rate","reinsurance_rate","policy.fields"),new s("is_agreed_value","is_agreed_value","policy.fields"),new s("is_difference_in_condition","is_difference_in_condition","policy.fields"),new s("lead_source","lead_source","policy.fields",(e=>null)),new s("start_date","startTimestamp","effective_date"),new s("payment_schedule","paymentScheduleName","payment_schedule"),new s("billing_email","billing_email","policy.fields"),new s("account_manager_name","billing_contact_name","policy.fields"),new s("co_applicant_occupation","co_applicant_occupation","policy.fields"),new s("is_firewise_community","is_firewise_community","exposure.dwelling.fields"),new s("count_domestic_employees","count_domestic_employees","policy.fields"),new s("domestic_employees_duties","domestic_employees_duties","policy.fields"),new s("high_risk_tree_type","high_risk_tree_type","exposure.dwelling.fields"),new s("exterior_door_material","exterior_door_material","exposure.dwelling.fields"),new s("trellis_pergola_material","trellis_pergola_material","exposure.dwelling.fields"),new s("mulch_type","mulch_type","exposure.dwelling.fields"),new s("farming_activity","farming_type","policy.fields"),new s("deck_type","deck_type","exposure.dwelling.fields"),new s("has_fence_attached","has_fence_attached","exposure.dwelling.fields"),new s("gutter_material","gutter_material","exposure.dwelling.fields"),new s("has_gutter_guards_installed","has_gutter_guards_installed","exposure.dwelling.fields"),new s("gutter_guards_type","gutter_guards_type","exposure.dwelling.fields"),new s("construction_renovations_details","construction_renovations_details","exposure.dwelling.fields"),new s("year_retrofitted","year_retrofitted","policy.fields"),new s("alarm_company","alarm_company","exposure.dwelling.fields"),new s("eaves_material","eaves_material","exposure.dwelling.fields"),new s("exterior_sprinkler_type","exterior_sprinkler_type","exposure.dwelling.fields"),new s("water_supply_hoses_type","water_supply_hoses_type","policy.fields"),new s("water_supply_fittings_type","water_supply_fittings_type","policy.fields"),new s("prior_status_reason","prev_policy_status","policy.fields"),new s("prior_policy_status","prev_policy_status","policy.fields")],e.exports={entries_v2}},575:e=>{e.exports={stand_wf_knockout:function(e,t){return e<0||t<0?{category:"",underwriter_result:{decision:"reject",note:"Mean and ARF must be positive numbers"}}:Number.isFinite(t)&&Number.isFinite(e)?e>=.7?{category:"D",underwriter_result:{decision:"reject",note:"Stand WF mean must be less than or equal to 0.7"}}:t>=8?{category:"C",underwriter_result:{decision:"refer",note:null}}:t>=5||e>=.2?{category:"C",underwriter_result:{decision:"accept",note:null}}:e>=.1?{category:"B",underwriter_result:{decision:"accept",note:null}}:{category:"A",underwriter_result:{decision:"accept",note:null}}:{category:"",underwriter_result:{decision:"reject",note:"ARF must be a number"}}},wf_variance:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Variance must be a positive number."}:e<=.09?{decision:"accept",note:null}:{decision:"refer",note:null}:{decision:"reject",note:"Variance must be a number."}}}},630:(e,t,i)=>{const{DateTime:s}=i(169),n=Object.freeze(["policy.fields","policy.fields.array","policy.fields.group","exposure.dwelling.fields","exposure.dwelling.fields.group","policy.group","policy","exposure.dwelling.group","quote.name","effective_date","payment_schedule","quote.version"]);class r{constructor(e,t,i,s=e=>e,r=e=>e){if(!n.includes(i))throw new Error(`Unsupported Socotra Location: ${i}`);this.retool_id=e,this.socotra_id=t,this.socotra_location=i,this.to_scotra_func=r,this.to_retool_func=s}socotra_create_response(e,t){let i=this.to_scotra_func(e[this.retool_id]);if(""===i&&(i=[]),this.socotra_location.includes("policy.fields"))t.fieldValues[this.socotra_id]=i;else if("exposure.dwelling.fields"===this.socotra_location)t.exposures[0].fieldValues[this.socotra_id]=i;else if("quote.name"===this.socotra_location);else if("effective_date"===this.socotra_location){const e=i,n=s.fromISO(e,{zone:"America/Los_Angeles"}).startOf("day"),r=n.toMillis();t.policyStartTimestamp=r;const o=n.plus({years:1});t.policyEndTimestamp=o.toMillis()}else if("payment_schedule"===this.socotra_location)["upfront","quarterly"].includes(i)&&(t.paymentScheduleName=i);else{if("quote.version"!==this.socotra_location)throw new Error(`Location Not implemented: ${JSON.stringify(this)}`);t.configVersion=i}}retool_response(e,t){let i,s;if(this.socotra_location.includes("policy.fields"))i=e.characteristics.fieldValues[this.socotra_id];else{if("exposure.dwelling.fields"!==this.socotra_location){if("quote.name"===this.socotra_location)return void(t[this.retool_id]=e.name);if("effective_date"===this.socotra_location){let i=parseInt(e.characteristics[this.socotra_id])/1e3;var n=new Date(0);return n.setUTCSeconds(i),void(t[this.retool_id]=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,"0")}-${String(n.getDate()).padStart(2,"0")}`)}if("payment_schedule"===this.socotra_location)return void(t[this.retool_id]=e[this.socotra_id]);if("quote.version"==this.socotra_location)return;throw new Error(`Location Not implemented: ${JSON.stringify(this)}`)}i=e.exposures.find((e=>"dwelling"===e.name)).characteristics.at(-1).fieldValues[this.socotra_id]}s=this.socotra_location.includes("array")?i:i?.[0]??null,s=this.to_retool_func(s),t[this.retool_id]=s}socotra_update(e,t){if("has_any_claim_history"===this.socotra_id){let i=this.to_scotra_func(e);return""===i&&(i=[]),t.updateExposures?t.updateExposures[0]?t.updateExposures[0].fieldValues||(t.updateExposures[0].fieldValues={}):t.updateExposures[0]={fieldValues:{}}:t.updateExposures=[{fieldValues:{}}],void(t.updateExposures[0].fieldValues[this.socotra_id]=i)}let i=this.to_scotra_func(e[this.retool_id]);if(""===i&&(i=[]),this.socotra_location.includes("policy.fields"))t.fieldValues[this.socotra_id]=i;else if("exposure.dwelling.fields"===this.socotra_location)t.updateExposures?t.updateExposures[0]?t.updateExposures[0].fieldValues||(t.updateExposures[0].fieldValues={}):t.updateExposures[0]={fieldValues:{}}:t.updateExposures=[{fieldValues:{}}],t.updateExposures[0].fieldValues[this.socotra_id]=i;else if("quote.name"===this.socotra_location)t.name=i;else if("effective_date"===this.socotra_location){const e=new Date(`${i}T00:00:00-08:00`);t.policyStartTimestamp=e.getTime();const s=new Date(e);s.setFullYear(e.getFullYear()+1),t.policyEndTimestamp=s.getTime()}else{if("payment_schedule"!==this.socotra_location){if("quote.version"===this.socotra_location)return;throw new Error(`Location Not implemented: ${JSON.stringify(this)}`)}["upfront","quarterly"].includes(i)&&(t.paymentScheduleName=i)}}static build_group(e,t){return{name:t}}static socotra_create_policy_template(e){return{policyholderLocator:e,productName:"homeowners",finalize:!1,paymentScheduleName:"upfront",exposures:[{exposureName:"dwelling",perils:[{name:"wildfire_expense",fieldValues:{},fieldGroups:[]},{name:"fire_following_earthquake",fieldValues:{},fieldGroups:[]},{name:"liability",fieldValues:{},fieldGroups:[]},{name:"other",fieldValues:{},fieldGroups:[]},{name:"theft",fieldValues:{},fieldGroups:[]},{name:"water_cat",fieldValues:{},fieldGroups:[]},{name:"water_excluding_cat",fieldValues:{},fieldGroups:[]},{name:"wildfire",fieldValues:{},fieldGroups:[]},{name:"wind_cat",fieldValues:{},fieldGroups:[]},{name:"wind_excluding_cat",fieldValues:{},fieldGroups:[]},{name:"fire",fieldValues:{},fieldGroups:[]},{name:"fac_prem",fieldValues:{},fieldGroups:[]},{name:"minimum_premium",fieldValues:{},fieldGroups:[]}],fieldValues:{},fieldGroups:[]}],fieldValues:{},fieldGroups:[],configVersion:-1}}static socotra_create_update_template(e){return{updateExposures:[{exposureLocator:e,fieldValues:{},fieldGroups:[]}],fieldValues:{}}}}e.exports={SocotraEntry:r,SocotraGroupEntry:class extends r{constructor(e,t,i,s={},n={}){super(e,t,i),this.socotra_schema=s,this.retool_schema=n}socotra_create_response(e,t){const i=this.retool_id.split(".");let s=e;for(const e of i){if(!s||void 0===s[e])return;s=s[e]}if(Array.isArray(s)){const e=s.map((e=>{const t={};for(const[i,s]of Object.entries(this.socotra_schema))if(s.startsWith(":")){const n=s.substring(1);void 0!==e[n]&&(t[i]=e[n])}return{fieldName:this.socotra_id,fieldValues:t}}));e.length>0&&("policy.fields.group"===this.socotra_location?(t.fieldGroups||(t.fieldGroups=[]),t.fieldGroups.push(...e)):"exposure.dwelling.fields.group"===this.socotra_location&&(t.exposures[0].fieldGroups||(t.exposures[0].fieldGroups=[]),t.exposures[0].fieldGroups.push(...e)))}}retool_response(e,t){if("policy.fields.group"===this.socotra_location){const i=e.characteristics.fieldValues,s=e.characteristics.fieldGroupsByLocator;if(i&&i[this.socotra_id]&&s){const e=this.retool_id.split(".");let n=t;for(let t=0;t<e.length-1;t++)n[e[t]]||(n[e[t]]={}),n=n[e[t]];const r=i[this.socotra_id];n[e[e.length-1]]=[];for(const t of r)if(s[t]){const i=s[t],r={};for(const[e,t]of Object.entries(this.retool_schema))if(t.startsWith(":")){const s=t.substring(1);i[e]&&void 0!==i[e][0]&&(r[s]=i[e][0])}r.socotra_field_locator=t,n[e[e.length-1]].push(r)}}}}_navigateNestedStructure(e,t){let i=e;for(const e of t){if(!i||void 0===i[e])return[];i=i[e]}return i}_createFieldValues(e){const t={};for(const[i,s]of Object.entries(this.socotra_schema))if(s.startsWith(":")){const n=s.substring(1);void 0!==e[n]&&(t[i]=e[n])}return t}_addItemToFieldGroups(e,t){if(!0===e.remove)return;const i=this._createFieldValues(e),s={fieldName:this.socotra_id,fieldValues:i};"exposure.dwelling.fields.group"===this.socotra_location?(t.updateExposures?t.updateExposures[0]?t.updateExposures[0].addFieldGroups||(t.updateExposures[0].addFieldGroups=[]):t.updateExposures[0]={addFieldGroups:[]}:t.updateExposures=[{addFieldGroups:[]}],t.updateExposures[0].addFieldGroups.push(s)):(t.addFieldGroups||(t.addFieldGroups=[]),t.addFieldGroups.push(s))}_processRemoveOperations(e,t){for(const i of e)if(!0===i.remove&&(i.locator||i.socotra_field_locator)){const e=i.locator||i.socotra_field_locator;"exposure.dwelling.fields.group"===this.socotra_location?(t.updateExposures?t.updateExposures[0]?t.updateExposures[0].removeFieldGroups||(t.updateExposures[0].removeFieldGroups=[]):t.updateExposures[0]={removeFieldGroups:[]}:t.updateExposures=[{removeFieldGroups:[]}],t.updateExposures[0].removeFieldGroups.push(e)):(t.removeFieldGroups||(t.removeFieldGroups=[]),t.removeFieldGroups.push(e))}}_createComparisonKey(e){const t={...e};return delete t.socotra_field_locator,!t.type||"Mortgagee"!==t.type&&"LLC Name"!==t.type?JSON.stringify(t):`${t.type}-${t.loan_number}-${t.zip}`}socotra_update(e,t,i){const s=this.retool_id.split(".");let n=this._navigateNestedStructure(e,s),r=i?this._navigateNestedStructure(i,s):[];if(t.addFieldGroups||(t.addFieldGroups=[]),t.removeFieldGroups||(t.removeFieldGroups=[]),this._processRemoveOperations(n,t),i&&Array.isArray(r)&&Array.isArray(n)){const e=new Map;for(const t of n){const i=this._createComparisonKey(t);e.set(i,t)}for(const i of r){const s=this._createComparisonKey(i);e.has(s)?e.delete(s):i.socotra_field_locator&&("exposure.dwelling.fields.group"===this.socotra_location?(t.updateExposures?t.updateExposures[0]?t.updateExposures[0].removeFieldGroups||(t.updateExposures[0].removeFieldGroups=[]):t.updateExposures[0]={removeFieldGroups:[]}:t.updateExposures=[{removeFieldGroups:[]}],t.updateExposures[0].removeFieldGroups.push(i.socotra_field_locator)):(t.removeFieldGroups||(t.removeFieldGroups=[]),t.removeFieldGroups.push(i.socotra_field_locator)))}for(const i of e.values())this._addItemToFieldGroups(i,t)}else for(const e of n)this._addItemToFieldGroups(e,t);t.addFieldGroups&&0===t.addFieldGroups.length&&delete t.addFieldGroups,t.removeFieldGroups&&0===t.removeFieldGroups.length&&delete t.removeFieldGroups,t.updateExposures&&(t.updateExposures[0]&&(t.updateExposures[0].addFieldGroups&&0===t.updateExposures[0].addFieldGroups.length&&delete t.updateExposures[0].addFieldGroups,t.updateExposures[0].removeFieldGroups&&0===t.updateExposures[0].removeFieldGroups.length&&delete t.updateExposures[0].removeFieldGroups,0===Object.keys(t.updateExposures[0]).length&&t.updateExposures.splice(0,1)),0===t.updateExposures.length&&delete t.updateExposures)}}}},729:e=>{e.exports={number_of_dogs:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Number of dogs must be a positive number."}:e<4?{decision:"accept",note:null}:{decision:"reject",note:"Owner has 4 or more dogs"}:{decision:"reject",note:"Number of dogs must be a number."}},dog_history:function(e){return"Yes"==e?{decision:"reject",note:"Has a dog with a history of aggressive behavior"}:"No"==e?{decision:"accept",note:null}:{decision:"reject",note:"Dog has history must be Yes or No."}},dog_breeds:function(e){return Array.isArray(e)?e.every((e=>"non-guard dog of other breeds"===e))?{decision:"accept",note:null}:{decision:"reject",note:"Dog of given breed not allowed"}:{decision:"reject",note:"Dog breed must be a list"}},exotic_pets:function(e){return"Yes"==e?{decision:"reject",note:"Has an exotic pet"}:"No"==e?{decision:"accept",note:null}:{decision:"reject",note:"Has exotic pet must be Yes or No."}},number_of_mortgages:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Number of mortgages must be a positive number."}:e<2?{decision:"accept",note:null}:{decision:"refer",note:null}:{decision:"reject",note:"Number of mortgages must be a number."}},number_of_bankruptcies_judgements_or_liens:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Number of bankruptcies, judgements, or liens must be a positive number"}:0===e?{decision:"accept",note:null}:{decision:"reject",note:"Has bankruptcies, judgements, or liens"}:{decision:"reject",note:"Number of bankruptcies, judgements, or liens must be a number"}},home_business_type:function(e){return"string"!=typeof e?{decision:"reject",note:"Home business type must be a string"}:["yes - day care","yes - other","no"].includes(e)?"no"==e?{decision:"accept",note:null}:"yes - day care"==e?{decision:"reject",note:"Cannot insure daycare"}:{decision:"refer",note:null}:{decision:"reject",note:"Home business type must be in [yes - day care, yes - other, no]"}},home_rental_type:function(e){return"string"!=typeof e?{decision:"reject",note:"Home rental type must be a string"}:["short-term rentals less than 6 months of the year","short term rentals more than 6 months of the year","timeshare","no"].includes(e)?"no"==e?{decision:"accept",note:null}:["short-term rentals less than 6 months of the year","timeshare"].includes(e)?{decision:"refer",note:null}:{decision:"reject",note:"Cannot insure rentals longer than 6 months"}:{decision:"reject",note:"Home rental type must be in [short-term rentals less than 6 months of the year, short term rentals more than 6 months of the year, timeshare, no]"}},same_address:function(e,t){return e===t?{decision:"accept",note:null}:{decision:"reject",note:"Co-Applicant must have same address as Applicant."}}}},752:e=>{e.exports={distance_to_coast:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Distance to coast must be a positive number."}:e>.19?{decision:"accept",note:null}:{decision:"refer",note:null}:{decision:"reject",note:"Distance to coast must be a number."}},pool_features:function(e){if(!Array.isArray(e))return{decision:"reject",note:"Pool features must be a list."};let t=e.includes("Inground")&&(e.includes("Electric retractable safety cover")||e.includes("Fenced with self-locking gate"));return t=t||e.includes("Above Ground")&&e.includes("Retractable/removable ladder"),e.includes("Diving Board")||e.includes("Slide")?{decision:"refer",note:null}:t?{decision:"accept",note:null}:{decision:"refer",note:null}},farming_type:function(e){let t=["Farming activities produce income","Incidental or hobby farming","Vineyard","None"];return"string"!=typeof e?{decision:"reject",note:"Farming type must be a string"}:t.includes(e)?"Vineyard"==e?{decision:"refer",note:null}:"Farming activities produce income"==e?{decision:"reject",note:"Cannot insure commercial farms"}:{decision:"accept",note:null}:{decision:"reject",note:`Farming type must be in [${t}]`}},has_attractive_nuisance:function(e){return"Yes"==e?{decision:"refer",note:null}:"No"==e?{decision:"accept",note:null}:{decision:"reject",note:"Has attractive nuisance must be Yes or No."}},degree_of_slope:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Degree of slope must be a positive number."}:e>30?{decision:"reject",note:"Slope greater than 30 degrees"}:{decision:"accept",note:null}:{decision:"reject",note:"Degree of slope must be a number."}},flood_score:function(e){return Number.isFinite(e)?e<0?{decision:"reject",note:"Flood score must be a positive number."}:e<9?{decision:"accept",note:null}:{decision:"reject",note:"Flood risk is too high"}:{decision:"reject",note:"Flood score must be a number."}}}},991:(e,t,i)=>{const{SocotraEntry:s,SocotraGroupEntry:n}=i(630);e.exports={SocotraPayloadConverter:class{constructor(e){this.entries=e}policy_holder_payload(e){let t=[],i=["owner_first_name","owner_last_name"];for(const s of i)e[s]||t.push(s);if(0==t.length){let t={first_name:e.owner_first_name,last_name:e.owner_last_name,email:e.owner_email,phone_number:e.owner_phone_number,mailing_street_address:e.mailing_street_address,mailing_street_address_2:e.mailing_street_address2,mailing_city:e.mailing_city,mailing_state:e.mailing_state,mailing_zip:e.mailing_zip,ofac_date:e.ofac_date_pulled,ofac_reason:e.ofac_reason,ofac_outcome:e.ofac_outcome};return{status:"success",error_message:"",payload:{completed:!0,values:this.stripNoneValues(t,!0,!0,!1)}}}return{payload:{},status:"error",error_message:`must include the following fields [${t}]`}}new_policy_payload(e,t){let i=s.socotra_create_policy_template(t);return this.entries.forEach((t=>{t.socotra_create_response(e,i)})),{payload:this.stripNoneValues(i,!0,!0,!0),error_message:"",status:"success"}}quote_to_retool_payload(e){let t={};return this.entries.forEach((i=>{i.retool_response(e,t)})),{payload:this.stripNoneValues(t,!1,!0,!1),error_message:"",status:"success"}}retool_to_quote_updated(e,t){let i=this.quote_to_retool_payload(t).payload;Object.keys(e).forEach((t=>{if(Array.isArray(e[t])){let s=e[t],n=i[t];n&&Array.isArray(n)&&JSON.stringify(s)===JSON.stringify(n)&&delete e[t]}else"object"==typeof e[t]&&null!==e[t]?i[t]&&"object"==typeof i[t]&&JSON.stringify(e[t])===JSON.stringify(i[t])&&delete e[t]:i[t]===e[t]&&delete e[t]}));let r=t.exposures.find((e=>"dwelling"===e.name)).locator,o=s.socotra_create_update_template(r);return this.entries.forEach((t=>{const s=(t.retool_id?t.retool_id.split("."):[])[0];"has_any_claim_history"===t.socotra_id&&e.claims_data?t.socotra_update(e,o):(Object.keys(e).includes(t.retool_id)||s&&Object.keys(e).includes(s))&&(t instanceof n?t.socotra_update(e,o,i):t.socotra_update(e,o))})),o=this.stripNoneValues(o,!0,!0,!1),0===Object.keys(o.updateExposures[0].fieldValues).length&&delete o.updateExposures,0===Object.keys(o.fieldValues).length&&delete o.fieldValues,{payload:o,error_message:"",status:"success"}}stripNoneValues(e,t,i,s){return t&&(e=this.stripNulls(e,(e=>null==e))),i&&(e=this.stripNulls(e,(e=>void 0===e))),s&&(e=this.stripNulls(e,(e=>Number.isNaN(e)))),e}stripNulls(e,t){let i=e=>this.stripNulls(e,t);return Array.isArray(e)?e.map(i).filter((e=>!t(e))):"object"==typeof e&&null!==e?Object.fromEntries(Object.entries(e).map((([e,t])=>[e,i(t)])).filter((([e,i])=>!t(i)))):e}}}}},t={},function i(s){var n=t[s];if(void 0!==n)return n.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,i),r.exports}(44);var e,t}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stand_socotra_policy_transformer",
3
- "version": "3.0.6",
3
+ "version": "3.0.8",
4
4
  "description": "Stands internal javascript module for executing underwriting",
5
5
  "main": "dist/stand_underwriter.js",
6
6
  "scripts": {
@@ -92,7 +92,10 @@ class SocotraPayloadConverter {
92
92
  const retool_id_parts = entry.retool_id ? entry.retool_id.split('.') : [];
93
93
  const parent_key = retool_id_parts[0];
94
94
 
95
- if (Object.keys(retool_payload).includes(entry.retool_id) ||
95
+ // Special handling for has_any_claim_history field which depends on claims_data
96
+ if (entry.socotra_id === 'has_any_claim_history' && retool_payload.claims_data) {
97
+ entry.socotra_update(retool_payload, payload);
98
+ } else if (Object.keys(retool_payload).includes(entry.retool_id) ||
96
99
  (parent_key && Object.keys(retool_payload).includes(parent_key))) {
97
100
  if(entry instanceof SocotraGroupEntry){
98
101
  entry.socotra_update(retool_payload, payload, old_payload)
@@ -100,6 +100,28 @@ class SocotraEntry {
100
100
  }
101
101
 
102
102
  socotra_update(retool_payload, socotra_response){
103
+ // Special handling for has_any_claim_history field
104
+ if (this.socotra_id === 'has_any_claim_history') {
105
+ // Use the entire retool_payload for evaluation, not just the field value
106
+ let value = this.to_scotra_func(retool_payload)
107
+
108
+ if(value === ""){
109
+ value = []
110
+ }
111
+
112
+ // Ensure updateExposures[0].fieldValues exists
113
+ if (!socotra_response.updateExposures) {
114
+ socotra_response.updateExposures = [{ fieldValues: {} }]
115
+ } else if (!socotra_response.updateExposures[0]) {
116
+ socotra_response.updateExposures[0] = { fieldValues: {} }
117
+ } else if (!socotra_response.updateExposures[0].fieldValues) {
118
+ socotra_response.updateExposures[0].fieldValues = {}
119
+ }
120
+
121
+ socotra_response.updateExposures[0].fieldValues[this.socotra_id] = value
122
+ return
123
+ }
124
+
103
125
  let value = this.to_scotra_func(retool_payload[this.retool_id])
104
126
 
105
127
  if(value === ""){
@@ -109,6 +131,15 @@ class SocotraEntry {
109
131
  if(this.socotra_location.includes('policy.fields')){
110
132
  socotra_response.fieldValues[this.socotra_id] = value
111
133
  } else if (this.socotra_location === 'exposure.dwelling.fields') {
134
+ // Ensure updateExposures[0].fieldValues exists
135
+ if (!socotra_response.updateExposures) {
136
+ socotra_response.updateExposures = [{ fieldValues: {} }]
137
+ } else if (!socotra_response.updateExposures[0]) {
138
+ socotra_response.updateExposures[0] = { fieldValues: {} }
139
+ } else if (!socotra_response.updateExposures[0].fieldValues) {
140
+ socotra_response.updateExposures[0].fieldValues = {}
141
+ }
142
+
112
143
  socotra_response.updateExposures[0].fieldValues[this.socotra_id] = value
113
144
  } else if (this.socotra_location === 'quote.name'){
114
145
  socotra_response.name = value
@@ -433,7 +464,8 @@ class SocotraGroupEntry extends SocotraEntry {
433
464
  // Helper function to process explicit remove operations
434
465
  _processRemoveOperations(data, socotra_response) {
435
466
  for (const item of data) {
436
- if (item.remove === true && item.locator) {
467
+ if (item.remove === true && (item.locator || item.socotra_field_locator)) {
468
+ const locator = item.locator || item.socotra_field_locator;
437
469
  if (this.socotra_location === 'exposure.dwelling.fields.group') {
438
470
  // Initialize updateExposures[0].removeFieldGroups if it doesn't exist
439
471
  if (!socotra_response.updateExposures) {
@@ -445,7 +477,7 @@ class SocotraGroupEntry extends SocotraEntry {
445
477
  }
446
478
 
447
479
  // Add to updateExposures[0].removeFieldGroups
448
- socotra_response.updateExposures[0].removeFieldGroups.push(item.locator);
480
+ socotra_response.updateExposures[0].removeFieldGroups.push(locator);
449
481
  } else {
450
482
  // Initialize removeFieldGroups if it doesn't exist
451
483
  if (!socotra_response.removeFieldGroups) {
@@ -453,7 +485,7 @@ class SocotraGroupEntry extends SocotraEntry {
453
485
  }
454
486
 
455
487
  // Add to removeFieldGroups (for policy.fields.group)
456
- socotra_response.removeFieldGroups.push(item.locator);
488
+ socotra_response.removeFieldGroups.push(locator);
457
489
  }
458
490
  }
459
491
  }