{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./.fable/fable-library.3.2.1/Reflection.js","webpack:///./.fable/fable-library.3.2.1/Map.js","webpack:///./public/Subtract.svg","webpack:///./.fable/fable-library.3.2.1/Date.js","webpack:///./public/illustration2.svg","webpack:///./public/App_Store_Badge_black.png","webpack:///./public/google-play-badge_black.png","webpack:///./.fable/Fable.SimpleJson.3.21.0/TypeInfo.fs.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/quote.js","webpack:///./.fable/fable-library.3.2.1/Encoding.js","webpack:///./.fable/fable-library.3.2.1/Seq.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/Json.fs.js","webpack:///./.fable/fable-library.3.2.1/MapUtil.js","webpack:///./.fable/fable-library.3.2.1/Set.js","webpack:///./.fable/fable-library.3.2.1/List.js","webpack:///./.fable/fable-library.3.2.1/Numeric.js","webpack:///./.fable/fable-library.3.2.1/Int32.js","webpack:///./.fable/Fable.Parsimmon.4.1.0/Parsimmon.js","webpack:///./.fable/fable-library.3.2.1/Guid.js","webpack:///./.fable/fable-library.3.2.1/AsyncBuilder.js","webpack:///./.fable/fable-library.3.2.1/Choice.js","webpack:///./.fable/fable-library.3.2.1/Async.js","webpack:///./.fable/Fable.Elmish.3.1.0/prelude.fs.js","webpack:///./.fable/Fable.Elmish.3.1.0/cmd.fs.js","webpack:///./.fable/fable-library.3.2.1/Range.js","webpack:///./.fable/Fable.Elmish.3.1.0/ring.fs.js","webpack:///./.fable/Fable.Elmish.3.1.0/program.fs.js","webpack:///./.fable/Fable.Elmish.React.3.0.1/common.fs.js","webpack:///./.fable/Fable.Elmish.React.3.0.1/react.fs.js","webpack:///./.fable/Fable.Elmish.Browser.3.0.4/navigation.fs.js","webpack:///./.fable/Fable.Elmish.Browser.3.0.4/prelude.fs.js","webpack:///./.fable/Fable.Elmish.Browser.3.0.4/parser.fs.js","webpack:///./.fable/fable-library.3.2.1/Seq2.js","webpack:///../Shared/Shared.fs.js","webpack:///./Router.fs.js","webpack:///./LocalStorage.fs.js","webpack:///./.fable/Fable.Remoting.Client.7.16.0/Types.fs.js","webpack:///./.fable/Elmish.Toastr.2.1.0/Elmish.Toastr.fs.js","webpack:///./.fable/Fable.Validation.0.2.1/Validation.fs.js","webpack:///./Extensions.fs.js","webpack:///./.fable/Feliz.1.51.0/Interop.fs.js","webpack:///./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js","webpack:///./.fable/Feliz.1.51.0/ReactInterop.js","webpack:///./.fable/Feliz.1.51.0/React.fs.js","webpack:///./HeaderCommon.fs.js","webpack:///./Admin/HeaderAdmin.fs.js","webpack:///./Teacher/HeaderTeacher.fs.js","webpack:///./Student/HeaderStudent.fs.js","webpack:///./Components/ReactDnd.fs.js","webpack:///./.fable/fable-library.3.2.1/TimeSpan.js","webpack:///./.fable/Fable.Remoting.Client.7.16.0/Extensions.fs.js","webpack:///./.fable/Fable.Remoting.Client.7.16.0/Http.fs.js","webpack:///./.fable/Fable.Remoting.Client.7.16.0/Proxy.fs.js","webpack:///./.fable/Fable.Remoting.Client.7.16.0/Remoting.fs.js","webpack:///./Communication.fs.js","webpack:///./.fable/Fable.Promise.2.0.0/Promise.fs.js","webpack:///./.fable/Fable.Promise.2.0.0/PromiseImpl.fs.js","webpack:///./.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js","webpack:///./Login/GdprModal.fs.js","webpack:///./Common.fs.js","webpack:///./Css.fs.js","webpack:///./.fable/Feliz.UseMediaQuery.1.4.0/UseMediaQuery.fs.js","webpack:///./Login/Login.fs.js","webpack:///./Login/ForgotPassword.fs.js","webpack:///./.fable/fable-library.3.2.1/Char.js","webpack:///./.fable/fable-library.3.2.1/Unicode.13.0.0.js","webpack:///./Login/ResetPassword.fs.js","webpack:///./Login/Gdpr.fs.js","webpack:///./Login/Application.fs.js","webpack:///./Settings/ChangeFullName.fs.js","webpack:///./Settings/ChangeEmail.fs.js","webpack:///./Settings/ChangePassword.fs.js","webpack:///./Settings/Settings.fs.js","webpack:///./.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js","webpack:///./Loader.fs.js","webpack:///./Chat.fs.js","webpack:///./Teacher/GroupList.fs.js","webpack:///./Teacher/GroupEdit.fs.js","webpack:///./Teacher/StudentList.fs.js","webpack:///./Teacher/StudentEdit.fs.js","webpack:///./Teacher/StudentPlan.fs.js","webpack:///./Student/StudentExternalTeachers.fs.js","webpack:///./.fable/Fable.React.Flatpickr.3.0.0/Flatpickr.fs.js","webpack:///./Teacher/Statistic.fs.js","webpack:///./Teacher/StudentStatistics.fs.js","webpack:///./Teacher/GroupStatistics.fs.js","webpack:///./Teacher/SchoolStatistics.fs.js","webpack:///./Teacher/TeacherList.fs.js","webpack:///./Teacher/TeacherEdit.fs.js","webpack:///./Components/WorkoutPartEdit.fs.js","webpack:///./Components/WorkoutPartsEdit.fs.js","webpack:///./Components/WorkoutEdit.fs.js","webpack:///./Components/WorkoutTemplateEdit.fs.js","webpack:///./PassList.fs.js","webpack:///./Components/PassPanel.fs.js","webpack:///./Components/WorkoutBlock.fs.js","webpack:///./Components/DayFactEdit.fs.js","webpack:///./Components/DayPlanEdit.fs.js","webpack:///./Components/DayPlanFactBox.fs.js","webpack:///./Components/CalendarWeek.fs.js","webpack:///./Overview.fs.js","webpack:///./Student/DayPlanBlock.fs.js","webpack:///./Student/DayFactBlock.fs.js","webpack:///./Student/DayDataEdit.fs.js","webpack:///./Student/Activity.fs.js","webpack:///./Teacher/ScheduleListItemEdit.fs.js","webpack:///./Teacher/ScheduleList.fs.js","webpack:///./Teacher/SchedulePeriodSelect.fs.js","webpack:///./Teacher/ScheduleAssign.fs.js","webpack:///./Teacher/ScheduleDayBox.fs.js","webpack:///./Teacher/ScheduleWeek.fs.js","webpack:///./Teacher/ScheduleCalendar.fs.js","webpack:///./Admin/AdminOverview.fs.js","webpack:///./Admin/StudentSchoolEdit.fs.js","webpack:///./Admin/UserRestore.fs.js","webpack:///./Index.fs.js","webpack:///./App.fs.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/TypeInfo.Converter.fs.js","webpack:///./.fable/Fable.Parsimmon.4.1.0/Parsimmon.fs.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/Parser.fs.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/SimpleJson.fs.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/TypeCheck.fs.js","webpack:///./.fable/fable-library.3.2.1/Util.js","webpack:///./.fable/fable-library.3.2.1/lib/big.js","webpack:///./.fable/fable-library.3.2.1/Decimal.js","webpack:///./.fable/fable-library.3.2.1/MutableMap.js","webpack:///./.fable/fable-library.3.2.1/BitConverter.js","webpack:///./.fable/fable-library.3.2.1/String.js","webpack:///./.fable/fable-library.3.2.1/DateOffset.js","webpack:///./.fable/fable-library.3.2.1/BigInt/n.js","webpack:///./.fable/fable-library.3.2.1/BigInt/z.js","webpack:///./.fable/fable-library.3.2.1/BigInt.js","webpack:///./.fable/fable-library.3.2.1/RegExp.js","webpack:///./.fable/Fable.SimpleJson.3.21.0/Json.Converter.fs.js","webpack:///./.fable/fable-library.3.2.1/Types.js","webpack:///./.fable/fable-library.3.2.1/MutableSet.js","webpack:///./.fable/fable-library.3.2.1/lib/long.js","webpack:///./.fable/fable-library.3.2.1/Long.js","webpack:///./.fable/fable-library.3.2.1/Option.js","webpack:///./.fable/fable-library.3.2.1/Double.js","webpack:///./.fable/fable-library.3.2.1/FSharp.Collections.js","webpack:///./.fable/fable-library.3.2.1/FSharp.Core.js","webpack:///./.fable/fable-library.3.2.1/Array.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","CaseInfo","declaringType","tag","fields","this","TypeInfo","fullname","generics","construct","parent","cases","enumCases","fullName","getHashCode","other","equals","getGenerics","fullnameHash","genHashes","map","t1","t2","getRecordElements","k1","v1","k2","v2","class_type","record_type","undefined","union_type","caseNames","tuple_type","lambda_type","argType","returnType","option_type","generic","list_type","array_type","enum_type","underlyingType","obj_type","unit_type","string_type","bool_type","int8_type","uint8_type","int16_type","uint16_type","int32_type","uint32_type","float32_type","float64_type","info","Array","isArray","lastIndexOf","substr","gen","x","join","endsWith","getElementType","_a","isGenericType","isEnum","getGenericTypeDefinition","getEnumUnderlyingType","getUnionCases","Error","getTupleElements","isTuple","getFunctionElements","isFunction","isUnion","isRecord","startsWith","getUnionFields","v","case_","getUnionCaseFields","uci","getRecordField","field","makeUnion","values","expectedLength","makeRecord","reduce","obj","_t","makeTuple","MapTreeLeaf$2","k","MapTreeLeaf$2_$ctor_5BDDA1","MapTreeLeaf$2__get_Key","_","MapTreeLeaf$2__get_Value","MapTreeNode$2","left","right","h","super","MapTreeNode$2_$ctor_499A11FD","MapTreeNode$2__get_Left","MapTreeNode$2__get_Right","MapTreeNode$2__get_Height","MapTreeModule_size","MapTreeModule_sizeAux","acc_mut","m_mut","acc","m2","MapTreeModule_mk","hl","hr","m2_1","m_2","MapTreeModule_rebalance","m2_2","m_3","m2_3","t1h","t2h","matchValue","matchValue_1","matchValue_2","matchValue_3","MapTreeModule_add","comparer","Compare","MapTreeModule_empty","MapTreeModule_tryFind","comparer_mut","k_mut","MapTreeModule_spliceOutSuccessor","patternInput","MapTreeModule_iter","f","MapTreeModule_iterOpt","f_mut","MapTreeModule_copyToArray","arr","y","MapTreeModule_ofArray","res","idx","forLoopVar","MapTreeModule_ofSeq","tupledArg","MapTreeModule_ofList","ie","e_mut","e","MapTreeModule_mkFromEnumerator","Dispose","MapTreeModule_MapIterator$2","stack","started","MapTreeModule_collapseLHS","stack_mut","rest","MapTreeModule_mkIterator","MapTreeModule_current","MapTreeModule_alreadyFinished","MapTreeModule_notStarted","MapTreeModule_mkIEnumerator","MapTreeModule_moveNext","FSharpMap","tree","this$","combineHash","enumerator","activePatternResult5329","FSharpMap__ComputeHashCode","that","e1","e2","loop","m1","e1c","e2c","kv","_key","from","iterator","GetEnumerator","kvp1","kvp2","FSharpMap__ContainsKey","FSharpMap__get_Item","FSharpMap__get_Count","_arg1","thisArg","FSharpMap_$ctor","FSharpMap_Create","MapTreeModule_find","MapTreeModule_mem","FSharpMap__Remove","MapTreeModule_remove","FSharpMap__ToList","m_1_mut","m_1","MapTreeModule_toList","FSharpMap__ToArray","MapTreeModule_toArray","isEmpty","table","add","FSharpMap__Add","find","tryFind","FSharpMap__TryFind","remove","containsKey","ofList","elements","ofSeq","ofArray","toList","toArray","empty","count","offsetRegex","dateOffsetToString","offset","isMinus","hours","Math","abs","minutes","dateToHalfUTCString","date","half","str","toISOString","substring","indexOf","dateToStringWithCustomFormat","format","utc","replace","match","rep","Number","NaN","getUTCFullYear","getFullYear","getUTCMonth","getMonth","getUTCDate","getDate","getUTCHours","getHours","getUTCMinutes","getMinutes","getUTCSeconds","getSeconds","getUTCMilliseconds","getMilliseconds","isNaN","dateToStringWithOffset","_b","_c","Date","getTime","dateWithOffset","dateToISOStringWithOffset","dateToStringWithKind","kind","toUTCString","toLocaleString","toLocaleDateString","toLocaleTimeString","printOffset","getTimezoneOffset","dateToISOString","toString","_provider","DateTime","fromTicks","ticks","parseRaw","input","trim","exec","baseDate","timeInSeconds","timeParts","split","parseInt","parseFloat","toUpperCase","offsetParts","offsetInMinutes","parse","detectUTC","year","month","day","ms","dateValue","UTC","setFullYear","now","isLeapYear","daysInMonth","hour","millisecond","minute","second","dayOfWeek","getUTCDay","getDay","dayOfYear","_year","_month","_day","ts","newDate","oldTzOffset","newTzOffset","addDays","addYears","newMonth","newYear","_daysInMonth","min","RecordField","FieldName","FieldType","PropertyInfo","UnionCase","CaseName","CaseTypes","Info","quote","inputText","escapable","meta","lastIndex","test","a","charCodeAt","index","Buffer","bytes","Uint8Array","buffer","byteOffset","byteLength","view","DataView","code","setUint16","utf16le_encode","array","ArrayBuffer","isView","subarray","TextDecoder","decode","chars","getUint16","String","fromCharCode","utf16le_decode","_UTF8","TextEncoder","encode","pos","buf","nextCode","utf8_encode","decodeUtf8","i1","RangeError","fromCodePoint","utf8_decode","get_UTF8","SR_notEnoughElements","Enumerator_notStarted","Enumerator_alreadyFinished","Enumerator_Seq","Enumerator_FromFunctions$1","current","next","dispose","Enumerator_noReset","Enumerator_FromFunctions$1_$ctor_58C54629","Enumerator_enumerateThenFinally","Enumerator_generateWhileSome","openf","compute","closef","curr","state","x_1","finish","indexNotFound","checkNonNull","argName","arg","mkSeq","Enumerator_Seq_$ctor_673A07F2","xs","delay","generator","concat","sources","outerOpt","innerOpt","finished","inner","outer","copyOfStruct","inner_1","outer_1","Enumerator_concat","unfold","st_1","Enumerator_unfold","singleton","generate","generateIndexed","append","ys","choose","chooser","e_1","compareWith","b1","b2","filter","exists","predicate","found","fold","folder","forAll","iterate","action","unitVar0","iterateIndexed","mapping","tryPick","pick","reverse","skip","take","collect","Json","Json$reflection","CaseRules","dashify","separator","toLowerCase","charAt","keyValueList","caseRule","definedCaseRule","fail","kvPair","assign","changeCase","tryGetValue","defaultValue","has","contents","addToSet","set","addToDict","dict","getItemFromDict","SetTreeLeaf$1","SetTreeLeaf$1_$ctor_2B595","SetTreeLeaf$1__get_Key","SetTreeNode$1","SetTreeNode$1_$ctor_Z6E7BE5F7","SetTreeNode$1__get_Left","SetTreeNode$1__get_Right","SetTreeNode$1__get_Height","SetTreeModule_count","SetTreeModule_countAux","t_mut","SetTreeModule_mk","t2_1","SetTreeModule_rebalance","t_2","t2_3","t_3","t2_4","t2_2","SetTreeModule_add","c_1","SetTreeModule_empty","SetTreeModule_remove","SetTreeModule_spliceOutSuccessor","SetTreeModule_mem","SetTreeModule_iter","SetTreeModule_SetIterator$1","SetTreeModule_collapseLHS","x2","SetTreeModule_mkIterator","SetTreeModule_current","SetTreeModule_alreadyFinished","SetTreeModule_notStarted","SetTreeModule_mkIEnumerator","SetTreeModule_moveNext","SetTreeModule_compare","l1_mut","l2_mut","SetTreeModule_compareStacks","l1","l2","x1_3","x2_3","pattern_matching_result","t1_6","x1_4","t2_6","x2_4","matchValue_4","pattern_matching_result_1","t1_7","x1_5","t2_7","x2_5","c_3","c_2","matchValue_5","pattern_matching_result_2","t1_8","x1_6","t2_8","x2_6","pattern_matching_result_3","t1_2","x1","x2_1","pattern_matching_result_4","t1_4","x1_2","x2_2","SetTreeModule_copyToArray","SetTreeModule_ofArray","SetTreeModule_ofSeq","SetTreeModule_ofList","SetTreeModule_mkFromEnumerator","FSharpSet","FSharpSet__ComputeHashCode","FSharpSet__get_Comparer","FSharpSet__get_Tree","FSharpSet__get_Count","FSharpSet__Contains","FSharpSet_$ctor","set$","FSharpSet_Empty","FSharpSet__Add","FSharpSet__Remove","FSharpSet__get_IsEmpty","FSharpSet__ToList","t$0027_mut","t$0027","SetTreeModule_toList","SR_indexOutOfBounds","FSharpList","head","tail","xs_1_mut","ys_1_mut","xs_1","ys_1","xt","yt","i_mut","h_mut","ListEnumerator$1","ListEnumerator$1_$ctor_3002E699","it","__","FSharpList_get_Empty","FSharpList_Cons_305B8EAC","FSharpList__get_IsEmpty","FSharpList__get_Length","FSharpList__get_Head","FSharpList__get_Tail","cons","tryHead","len","ofArrayWithTail","tail_1","xs_3","root","node","xs_5","lists","forEach","xs_6","zs","tryFindIndex","tryItem","item","FSharpList__get_Item_Z524259A4","contains","eq","Equals","sumBy","adder","Add","GetZero","skipWhile","predicate_mut","xs_mut","symbol","isNumeric","compare","CompareTo","multiply","toFixed","dp","toPrecision","sd","toExponential","toHex","NumberStyles","getRange","unsigned","bitsize","isValid","style","radix","prefix","digits","getInvalidDigits","AllowHexSpecifier","getRadix","regexMatch","sign","validResponse","umin","umax","max","tryParse","defValue","op_UnaryNegation_Int32","Parsimmon","times","seed","elem","bufferExists","isParser","isBuffer","makeSuccess","status","furthest","expected","makeFailure","mergeReplies","last","keys","sort","union","makeLineColumnIndex","line","column","lines","assertParser","assertNumber","assertRegexp","RegExp","flags","assertFunction","assertString","repeat","string","amount","leftPad","pad","char","rangeFromIndexAndOffsets","before","after","to","formatGot","error","lineWithErrorIndex","lineRange","lastLineNumberLabelLength","verticalMarkerLength","byteLineWithErrorIndex","columnByteIndex","byteRange","bytesPerLine","bytesAfter","byteLines","byteRow","byteValue","chunkSize","chunks","chunkIndex","toChunks","toJSON","floor","byteRangeToRange","byteLine","inputLines","lineWithErrorCurrentIndex","lineSource","lineNumberLabel","isLineWithError","re","anchoredRegexp","source","seq","parsers","arguments","numParsers","accum","seqMap","args","mapper","pop","results","alt","sepBy1","parser","then","many","rs","regexp","group","anchored","fullMatch","groupMatch","succeed","lookahead","oneOf","ch","desc","noneOf","takeWhile","lazy","eof","msg","err","type","or","alternative","wrap","leftParser","rightParser","middle","thru","wrapper","self","tieWith","assertArray","tie","prevResult","atMost","atLeast","init","fn","contramap","promap","g","mark","start","end","sepBy","notFollowedBy","text","reply","fallback","ap","chain","of","any","all","digit","letter","letters","optWhitespace","whitespace","cr","lf","newline","guidRegex","guidRegexNoHyphen","guidRegexHex","guidHexCaptures","hyphenateGuid","wsTrimAndLowered","newGuid","b","random","_byteToHex","_hexToByte","_convertMapsInitialized","initConvertMaps","arrayToGuid","CancellationToken","cancelled","_id","_cancelled","_listeners","Map","listener","id","delete","$","addListener","removeListener","OperationCanceledError","setPrototypeOf","Trampoline","callCount","maxTrampolineCallCount","setTimeout","protectedCont","ctx","cancelToken","isCancelled","onCancel","trampoline","incrementAndCheck","hijack","onError","protectedBind","computation","binder","onSuccess","ex","protectedReturn","computation1","computation2","Bind","sequence","body","iter","cur","While","done","Delay","compensation","catchHandler","ex2","resource","TryFinally","guard","Return","Result_MapError","emptyContinuation","_x","createCancellationToken","token","cancel","isCancellationRequested","defaultCancellationToken","fromContinuations","startImmediate","cancellationToken","startWithContinuations","continuation","exceptionContinuation","cancellationContinuation","Log_onError","console","Cmd_exec","dispatch","cmd","Cmd_none","Cmd_map","arg_1","Cmd_batch","cmds","Cmd_ofSub","sub","Cmd_OfFunc_perform","task","ofSuccess","Cmd_OfFunc_result","integralRangeStep","step","stop","zero","stepFn","stepComparedWithZero","stepGreaterThanZero","comparedWithLast","makeRangeStepFunction","rangeDouble","size","RingBuffer$1__Pop","wix","rix","items","rix$0027","RingBuffer$1__Push_2B595","wix_1","items_1","wix$0027","ix","update","subscribe","setState","syncDispatch","ProgramModule_withSetState","program","ProgramModule_view","ProgramModule_runWith","model","rb","reentered","nextMsg","msg_1","patternInput_1","model$0027","ex_1","ex_3","ex_2","render","equal","props","nextProps","_nextState","Common_lazyView2With","react","Program_Internal_withReactSynchronousUsing","lazyView2With","placeholderId","document","getElementById","ProgramModule_Internal_onChangeRef","ProgramModule_Internal_toNavigableWith","urlUpdate","onLocationChange","arg0","mapInit","mapUpdate","mapView","mapSetState","mapSubscribe","ProgramModule_map","userInit","unitVar1","location","userUpdate","model_1","userView","model_4","dispatch_1","userSetState","model_3","userSubscribe","model_2","arg0_1","ofFunc","visited","unvisited","StateModule_mkState","custom","tipe","stringToSomething","i32","outArg","str_1","subValue","parse_1","arg10$0040","StateModule_map","url","states_mut","parseHelp","states","segments","segments_1","splitUrl","toKeyValuePair","segment","a_1","b_1","tuple","decodeURIComponent","parseParams","querystring","distinct","hashSet","Common_str","Common_parseIntOrZero","Common_tryParseInt","Route_builder","typeName","methodName","Year","Period","Week","Day","CalendarDay_CalendarDay$reflection","GroupIdModule_fromString","SchoolIdModule_fromString","DurationModule_toHMS","sec","DurationModule_toHMSString","DurationModule_intToHMSString","Field","Type","Name","Endpoint","Service","Errors","Errors_ServerError$reflection","Errors_ServerErrorModule_explain","Errors_ValidationErrorModule_explain","Errors_DomainErrorModule_explain","Email","FullName","SchoolId","GroupId","GdprAcceptDate","AccessToken","Role","UserId","ChatText","ChatChangeDate","Auth_SignedInUser$reflection","Password","logIn","logOut","Auth_SignInApi$reflection","Id","DeletedDate","Code","Users_RequestResetPasswordError$reflection","Users_ResetPasswordError$reflection","requestResetPassword","resetPassword","getUser","restore","Users_UsersApi$reflection","Settings_ChangeEmailError$reflection","Settings_ChangeFullNameError$reflection","CurrentPassword","NewPassword","Settings_ChangePasswordError$reflection","Settings_AcceptGdprError$reflection","changeEmail","changeFullName","changePassword","acceptGdpr","Settings_SettingsApi$reflection","Calendar_getWeekDayIndex0Based","Calendar_getWeekDayDate","weekDay0Based","Calendar_getWeekOfYear","dateThursday","week","ceil","Calendar_getYearWeeksCount","Calendar_periodWeeksRange","Calendar_weekDaysRange","PeriodYear","Calendar_PeriodInfo$reflection","Calendar_PeriodInfo__Previous","Calendar_PeriodInfo__PreviousN_Z524259A4","period","Calendar_PeriodInfo__Next","Calendar_PeriodInfo__NextN_Z524259A4","Calendar_PeriodInfo__ShiftN_Z524259A4","periodShift","PeriodInfo","PeriodWeek","Calendar_WeekInfo_FromDate","period13Behavior","weekInfoCurrent","weekCurrent","weekInfoFromStartWeek","prevYear","weekFromStart","weekInfo","Calendar_WeekInfo_get_Current","Calendar_WeekInfo__Next","Calendar_PeriodInfo_get_Current","Calendar_getYearWeekIndex","yearWeeksCount","yearWeekIndex","Calendar_getPeriodInfo","periodYear","Calendar_getWeekInfo","periodInfo","periodWeek","Calendar_getWeekInfoYPW","Calendar_isBiggerWeekInfo","Calendar_getWeekStartDate","weekIndex","weekStartDate","weekStartDateWeekInfo","Calendar_getWeekEndDate","Calendar_getPeriodStartDate","Calendar_getPeriodEndDate","Calendar_getYearStartDate","Calendar_getYearEndDate","Calendar_getDayDate","weekDay","Calendar_getMonthTitle","month1Based","Calendar_getWeekDayTitle","Calendar_getWeekDay3LetterTitle","WeekInfo","WeekDay","Calendar_DayInfo_FromDate_7F9DDECF","Calendar_getCalendarDayFromWeekInfo","Calendar_getCalendarDayFromDate","dayInfo","Calendar_getCalendarDayDate","calendarDay","Shared_CalendarDay_CalendarDay__CalendarDay_WeekInfo","Shared_CalendarDay_CalendarDay__CalendarDay_PeriodInfo","TotalHours","WeekHours","Plans_PeriodPlan_Create","totalHours","weekHours","PeriodPlans","Plans_YearPlan$reflection","Plans_YearPlan_Default_4019FA9","Int32Array","Plans_YearPlan_AddOrUpdateYearPlan","yearPlan","yearPlans","plan","plan_1","Title","YearPlan","YearPlans","Groups_getYearPlanOrDefault","plans","Groups_GroupListItem$reflection","GroupIds","list","get$","delete$","getGroupsOrder","updateGroupsOrder","Groups_GroupsApi$reflection","Students_StudentSettings$reflection","Students_getYearPlanOrGroupOrDefault","studentPlans","groupPlans","Students_StudentListItem$reflection","Students_TeacherListItem$reflection","getSettings","getPlans","updateSettings","updatePlan","updateChatText","getStudentExternalTeachers","listExternalStudents","addExternalTeacher","deleteExternalTeacher","Students_StudentsApi$reflection","Teachers_TeacherSettings$reflection","getTeacherByEmail","Teachers_TeachersApi$reflection","UserIds","Admin_Favorite$reflection","Admin_GroupAdminItem$reflection","favoriteList","updateFavorite","deleteFavorite","addFavoriteUser","deleteFavoriteUser","studentsByIds","getAllGroups","getStudentSchool","updateStudentSchool","Admin_FavoritesApi$reflection","EnduranceIntensity_EnduranceIntensity$reflection","EnduranceIntensity_list","EnduranceIntensity_strEnduranceIntensity","EnduranceIntensity_getEnduranceIntensityColor","EnduranceActivity_EnduranceActivity$reflection","EnduranceActivity_list","EnduranceActivity_strEnduranceActivity","EnduranceActivity_getEnduranceActivityColor","StrengthActivity_list","StrengthActivity_strStrengthActivity","SpeedActivity_list","SpeedActivity_strSpeedActivity","Activity","Intensity","Duration","WorkoutType_MobilityInfo_get_Default","Amount","WorkoutType_strWorkoutType","WorkoutType_titleWorkoutType","IsPrimary","WorkoutType","Workout_getWorkoutPartTotalDuration","workoutPart","workoutType","DurationModule_fromInt","WorkoutType_getWorkoutTypeTotalDuration","Workout_getWorkoutPartColor","StrengthActivity_getStrengthActivityColor","SpeedActivity_getSpeedActivityColor","WorkoutType_getWorkoutTypeColor","Comment$","WorkoutParts","Comment","Workout_Workout$reflection","Workout_Workout_get_Default","Workout_getWorkoutTotalDuration","workout","x_2","Workout_getWorkoutTotalDurationSec","Workout_getWorkoutColor","IsGlobal","Workout","WorkoutTemplates_WorkoutTemplateInfo$reflection","listUser","listSchool","WorkoutTemplates_WorkoutTemplatesApi$reflection","DaySegment_DaySegment$reflection","DaySegment_list","DaySegment_strDaySegment","Shape_list","Shape_getShapeIntValue","DaySegment","DayPlan_DayPlan$reflection","Shape","CommentAfterTraining","DayFact_DayFact$reflection","DayFact_DayFact_Default_Z38742B54","daySegment","DayPlanFact_DayPlanFact$reflection","SleepQuality_list","SleepQuality_getSleepQualityCode","SleepQuality_strSleepQuality","Menstruation_list","Menstruation_getMenstruationCode","Menstruation_strMenstruation","IsSick","IsDamaged","IsTravelDay","Heartrate","Sleep","SleepQuality","Menstruation","DayData_DayData$reflection","PlanFact_PlanFact$reflection","PlanFact_list","PlanFact_strPlanFact","DayHelpers_tryFindPlan","dayPlans","DayHelpers_tryFindFact","dayFacts","DayHelpers_deletePlan","DayHelpers_deleteFact","DayHelpers_addUpdatePlan","dayPlan","DayHelpers_addUpdateFact","dayFact","DayPlans","ScheduleDay_ScheduleDay_Default_Z524259A4","ScheduleDays","ScheduleWeek_ScheduleWeek$reflection","ScheduleWeek_ScheduleWeek_Default_Z524259A4","StudentId","CalendarDay","DayFacts","DayData","StudentDays_StudentDayInfo$reflection","StudentDays_StudentDayInfo_Empty","studentId","DayPlanFact","CalendarDayTo","DaySegmentTo","CalendarDayFrom","DaySegmentFrom","PlanFact","DayFact","StudentDays_ScheduleAssignMode$reflection","ScheduleId","StudentIds","ScheduleWeeks","ScheduleAssignMode","updatePlanFact","movePlanFact","deletePlanFact","implementPlan","updateData","StudentDays_StudentDaysApi$reflection","ScheduleHelpers_addUpdateScheduleDayPlan","scheduleDay","ScheduleHelpers_tryFindScheduleDay","scheduleDays","ScheduleHelpers_updateScheduleDays","ScheduleHelpers_deleteScheduleDaysPlan","ScheduleHelpers_deleteScheduleDayPlan","ScheduleHelpers_addUpdateScheduleWeekPlan","scheduleWeek","ScheduleHelpers_addUpdateScheduleDaysPlan","ScheduleHelpers_tryFindScheduleWeek","scheduleWeeks","ScheduleHelpers_updateScheduleWeeks","ScheduleHelpers_addUpdateScheduleWeeksPlan","ScheduleHelpers_deleteScheduleWeeksPlan","ScheduleHelpers_deleteScheduleWeekPlan","TeacherId","Schedules_ScheduleInfo$reflection","Schedules_ScheduleListItem$reflection","Schedules_ScheduleListItem_Default_Z1043BF58","teacherId","SourceScheduleId","DayPlan","PeriodWeekTo","WeekDayTo","PeriodWeekFrom","WeekDayFrom","createAsDuplicate","movePlan","deletePlan","Schedules_SchedulesApi$reflection","StatisticType","DateFrom","DateTo","Statistics_StatisticRequest$reflection","daysList","yearPlanSeconds","Statistics_StatisticsApi$reflection","Schools_School$reflection","Schools_SchoolsApi$reflection","StatisticHelpers_folderOpt","sumFunc","accOpt","itemOpt","StatisticHelpers_foldDurationOpt","StatisticHelpers_calcEnduranceIntensityDuration","StatisticHelpers_intBool","DurationSeconds","Count","IsPrimaryCount","StatisticHelpers_createStatSummary","durationSeconds","isPrimaryCount","StatisticHelpers_statSummary","duration","isPrimary","StatisticHelpers_calcWorkoutPart","StatisticHelpers_calcRest","StatisticHelpers_facts","StatisticHelpers_mapWorkoutParts","StatisticHelpers_foldStatSummaryOpt","StatisticHelpers_sumStatSummary","StatisticHelpers_strSummary","summaryOpt","summary","StatisticHelpers_calcPlanSummary","StatisticHelpers_plans","StatisticHelpers_calcFactSummary","StatisticHelpers_calcDayDataSummary","tupledArg_1","StatisticHelpers_folded3Sum","z","s_x","s_y","s_z","StatisticHelpers_calcForm","dayForms","x_3","formSum","x_4","y_1","formPartsSum","tuple_1","x_5","y_2","overviewWeekStateParser","userId_1","activityDayStateParser","scheduleCalendarWeekStateParser","scheduleId_1","routeParser","parseBefore","parseBefore_4","parseBefore_2","parseAfter_2","parseBefore_6","parseAfter_6","parseBefore_8","parseAfter_8","parseBefore_12","parseBefore_10","parseAfter_10","parseBefore_14","parseAfter_14","parseBefore_16","parseAfter_16","parseBefore_20","parseBefore_18","parseAfter_18","parseBefore_24","parseBefore_22","parseAfter_22","parseBefore_28","parseBefore_26","parseAfter_26","parseBefore_32","parseBefore_30","parseAfter_30","parseBefore_36","parseBefore_34","parseAfter_34","parseBefore_40","parseBefore_38","parseAfter_38","parseBefore_42","parseAfter_42","parseBefore_44","parseAfter_44","parseBefore_48","parseBefore_46","parseAfter_46","parseBefore_50","parseBefore_58","parseBefore_56","parseBefore_54","parseBefore_52","parseAfter_58","parseBefore_66","parseBefore_64","parseBefore_62","parseBefore_60","parseBefore_74","parseBefore_72","parseBefore_70","parseBefore_68","parseBefore_76","parseAfter_76","parseBefore_78","parseAfter_78","parseBefore_82","parseBefore_80","parseAfter_80","parseBefore_88","parseBefore_86","parseBefore_84","parseAfter_84","parseAfter_88","parseBefore_94","parseBefore_92","parseBefore_90","parseAfter_90","parseBefore_98","parseBefore_96","parseAfter_96","parseBefore_102","parseBefore_100","parseAfter_100","state_1","resetPasswordCode","state_3","state_6","state_5","state_8","state_10","arg0_2","state_12","state_15","state_14","state_17","state_19","arg0_3","state_21","state_24","state_23","arg0_4","state_26","state_29","state_28","arg0_5","state_31","state_34","state_33","arg0_6","state_36","state_39","state_38","arg0_7","state_41","state_44","state_43","arg0_8","state_46","state_49","state_48","state_51","state_53","arg0_9","state_55","state_58","state_57","arg0_10","state_61","state_60","state_64","state_63","state_67","state_66","state_70","state_69","state_72","state_75","state_74","state_78","state_77","state_81","state_80","state_84","state_83","arg0_13","state_87","state_86","state_90","state_89","state_93","state_92","state_96","state_95","state_98","state_100","arg0_14","state_102","state_105","state_104","arg0_15","state_107","state_110","state_109","state_112","tupledArg_2","state_114","state_117","state_116","state_120","state_119","arg0_17","state_122","state_125","state_124","arg0_18","state_127","state_130","state_129","state_132","toPath","navigateTo","page","newUrl","history","pushState","dispatchEvent","CustomEvent","modifyUrl","replaceState","saveUser","user","localStorage","setItem","removeUser","removeItem","arg00","getItem","message","getToken","HttpMethod","Url","Headers","RequestBody","WithCredentials","StatusCode","ResponseBody","CustomHeaders","BaseUrl","Authorization","RouteBuilder","CustomResponseSerialization","response","errorMsg","reponseText","ProxyRequestException_$ctor_76BC5104","Message","Options","Dispatcher","Toastr_successToastWithTitle","Toastr_errorToastWithTitle","Toastr_message","inputRecord","Toastr_timeout","timeout","timeOut","Toastr_position","positionClass","Toastr_error","ValidateResult$1__get_IsInvalid_","ValidateResult$1__get_IsValid_","original","validator","errors","hasError","Validator$1_$ctor_Z1FBCCD16","FieldInfo$3__Replace_74DD2B89","Validator$1__get_HasError","Validator$1__get_Errors","Validator$1__PushError","Validator$1__Test","Validator$1__End_Z5E18B1E2","Validator$1__IsValidOpt","tester","Validator$1__IsValid_Z4CF01147","arg10","arg20","Validator$1__NotBlank_2B595","validateSync","ret","Cmd_fromAsync","operation","Zero","Remoting_handleNonAuth","TryWith","ReturnFrom","debug","Event","Remoting_userChanged","detail","Remoting_subscribeUserChangedEvent","addEventListener","View_Cmd_toastSuccess","Toastr_success","View_Cmd_toastError","Toastr_toastSuccess","title","Toastr_toastError","Form_validationLogin","validationState","form","Form_validateLogin","Interop_reactApi","Helpers_extractClasses","classes","Helpers_combineClasses","cn","ReactInterop_useEffect","getDisposable","disposable","ReactInterop_useEffectWithDeps","deps","ReactInterop_useLayoutEffect","React_createDisposable_3A5B6456","useReact_useState_FCFD9EF","initializer","useState","useReact_useEffect_Z5234A374","effect","dependencies","useReact_useEffectOnce_Z5ECA432F","useReact_useEffect_Z101E1A95","_arg4","useReact_useCallback_93353E","callbackFunction","useCallback","useReact_useRef_1505","initialValue","useRef","useReact_useMemo_CF4EA67","createFunction","useMemo","useReact_useCallbackRef_7C4B0DD6","callback","lastRenderCallbackRef","callbackRef","useFeliz_React__React_useState_Static_1505","initial","RenderLogoutButton","preventDefault","RenderAccountButton","elms","props_3","Children","className","children","Render","renderInputProps","props_17","elms_1","value_16","props_8","props_15","itemsRightTouchView","itemsRightDesktopView","itemsLeft","setMenuActive","menuActive","elms_4","display","alignItems","Subtract","height","width","elms_3","props_12","props_5","props_7","isActive","props_13","props_2","props_4","props_6","color","fontSize","kvl","isDragging","isOver","canDrop","dndProvider","props_1","DndProvider","dragType","dragSrc","useDragImpl","useDrag","spec","useDropImpl","useDrop","InternalUtilities_toUInt8Array","defaultRequestConfig","post","withHeaders","headers","req","withBody","sendAndRead","preparation","resultMapper","xhr","XMLHttpRequest","open","register","abort","setRequestHeader","withCredentials","onreadystatechange","readyState","send","responseText","sendAndReadBinary","responseType","xhr_1","Proxy_proxyFetch","options","func","fieldType","funcArgs","argumentCount","returnTypeAsync","binaryInput","route","baseUrl","Proxy_combineRouteWithBaseUrl","funcNeedParameters","contentType","inputArgumentTypes","executeRequest","Proxy_isAsyncOfByteArray","onOk","serializer","typ_mut","typ","Proxy_getReturnType","requestBody","statusCode","response_1","blob","Blob","reader","FileReader","onload","readAsText","_arg2","response_2","returnType_1","requestBody_1","_arg3","response_3","arg1","arg2","arg3","arg4","arg5","arg6","arg7","matchValue_6","inputArguments","RemotingModule_createApi","clo1","clo2","RemotingModule_withRouteBuilder","builder","RemotingModule_withAuthorizationHeader","Remoting_buildProxy_Z15584635","resolver","resolvedType","ResolveType","schemaType","recordType","fieldTypes","prop","delegateArg0","delegateArg1","delegateArg0_1","delegateArg1_1","delegateArg2","delegateArg0_2","delegateArg1_2","delegateArg2_1","delegateArg3","delegateArg0_3","delegateArg1_3","delegateArg2_2","delegateArg3_1","delegateArg4","delegateArg0_4","delegateArg1_4","delegateArg2_3","delegateArg3_2","delegateArg4_1","delegateArg5","delegateArg0_5","delegateArg1_5","delegateArg2_4","delegateArg3_3","delegateArg4_2","delegateArg5_1","delegateArg6","delegateArg0_6","delegateArg1_6","delegateArg2_5","delegateArg3_4","delegateArg4_3","delegateArg5_2","delegateArg6_1","delegateArg7","arg10_1","usersApi","settingsApi","options_1","groupsApi","studentsApi","teachersApi","workoutTemplatesApi","studentDaysApi","schedulesApi","statisticsApi","schoolsApi","adminApi","PromiseBuilder","PromiseBuilder__Delay_62FBFDE1","f1","f2","er","Promise","reject","resolve","er_1","catch","er_2","er_3","useFeliz_React__React_useElmish_Static_17DC4F1D","ring","token_1","cts","setChildState_1","PromiseBuilder__While_2044D34","copyOfStruct_1","success","sub_1","useFeliz_React__React_useElmish_Static_645B1FB7","Changing","IsVisible","props_16","props_9","href","target","justifyContent","borderStylePrimary","border","borderStyleBottomPrimary","borderBottom","borderStyleBottomGrey","fieldName","Form_Field_fieldStyleOnError","Form_validationForgotPassword","email","View_renderNotification","textAlign","verticalAlign","fontWeight","View_RenderDeleteWindow","props_11","notConfirmed","confirmed","View_checkBoxField","label","onChange","checkboxRef","ev","checked","click","View_renderSelectOption","View_DUSelect","toStrValue","toStrLabel","Img_logo","MobileLandscape","Tablet","Desktop","WideScreen","BreakpointsModule_defaults","useFeliz_React__React_useMediaQuery_Static_Z721C83C5","mediaQuery","matchMedia","matches","mediaQueryList","handler","LoginResult","isUserValid","FormErrors","FormValidation","Cmd_login","loginInfo","_arg1_1","State_init","State_update","signin","user_1","errors_2","View_layout","props_55","props_23","props_21","props_19","props_53","props_51","value_123","props_49","props_47","props_41","value_180","props_45","value_197","props_57","alignContent","src","alignSelf","whiteSpace","overflow","position","illustration2","bottom","zIndex","padding","lineHeight","App_Store_Badge_black","View_renderForm","onSubmit","elms_2","ev_1","View_view","breakpoints","makeQueries","useFeliz_React__React_useResponsive_Static_Z1648B8FF","props_37","props_40","documentElement","clientHeight","value_89","props_35","props_20","props_22","props_33","props_27","value_157","props_31","value_170","minWidth","top","paddingBottom","View_mobile","Component_Render","component_RenderInputProps","loggedIn","Recovery","Cmd_recover","View_renderRequestingError","errors_1","unicodeCategoryFunc","a1","codePointAt","a2","codepoints","Uint32Array","categories","cp","hi","lo","mid","getCategoryFunc","isDigit","getUnicodeCategory2","isDigit2","isLetter","isLetter2","PasswordConfirmation","Form","IsNeedValidation","Cmd_change","Validation_validate","formInfo","arg00_1","confirmPassword","Validation_validateIf","needValidate","View_renderChangePasswordError","props_14","renderGdprArticle","props_44","props_38","props_18","props_36","elms_6","elms_5","props_30","props_34","props_42","props_46","Cmd_changeFullName","request","View_renderError","Cmd_changeEmail","NewPasswordConfirmation","Cmd_changePassword","inputRecord_1","inputRecord_2","patternInput_2","props_29","ev_2","props_39","props_43","props_26","useFeliz_React__React_useDeferred_Static_2344FC52","setDeferred","executeOperation","loader","sizeLoader","borderStyle","inlineSmall","CurrentUserId","Cmd_changeChatText","value_3","view_viewInputProps","studentSettings","currentUserId","Component_ResolveStudentChat","component_ResolveStudentChatInputProps","Groups","GroupsOrder","Cmd_loadGroups","Cmd_loadGroupsOrder","State_getOrderedGroups","groups","groupsOrder","groupId","GetHashCode","View_Group","view_GroupInputProps","setMoveUpHover","setMoveDownHover","setEditHover","patternInput_3","setDeleteHover","patternInput_4","setIsDeleteWindow","isDeleteWindow","children_2","onMouseEnter","onMouseLeave","onClick","_arg5","_arg6","_arg7","_arg8","_arg9","_arg10","_arg11","View_Render","_user","newGroupsOrder","groupIds","groupIdIndex","findIndex","OriginalValue","CurrentYear","IsNew","Saving","Cmd_save","request_1","State_withYearPlan","newYearPlan","View_totalSumIndicator","totalValue","originalValue","Component_RenderForm","component_RenderFormInputProps","isNew","inputRecord_3","inputRecord_4","inputRecord_5","inputRecord_6","periodIndex","pIndex","hoursPerPeriod","x_7","periodPlan","hoursPerWeek","props_135","props_79","props_77","value_49","props_28","value_74","props_32","props_67","props_75","props_73","props_71","props_133","elms_10","props_137","value_18","e_2","value_78","valueAsNumber","props_50","props_48","value_117","e_3","ev_3","value_121","props_65","props_63","props_61","props_89","props_83","props_102","elms_7","props_95","props_93","props_91","e_4","ev_4","value_201","props_120","periodPlan_2","props_106","props_104","elms_8","props_111","props_118","props_116","props_114","elms_9","x_8","x_9","x_10","y_3","props_130","props_124","props_122","props_128","props_126","Component_ResolveGroup","component_ResolveGroupInputProps","ListStudents","ListGroups","ListExternalStudents","Cmd_loadStudents","Cmd_loadExternalStudents","View_RenderStudent","view_RenderStudentInputProps","student","setChatHover","setStatisticHover","setOverViewHover","setPlanHover","patternInput_5","patternInput_6","borderTop","textOverflow","props_24","_arg12","_arg13","View_RenderExternalStudent","props_25","View_RenderGroup","view_RenderGroupInputProps","students","setVisible","isVisible","groupStudents","props_10","props_59","availableGroups","Component_ResolveStudent","component_ResolveStudentInputProps","id_1","User","StudentYearPlans","GroupYearPlans","props_125","props_123","props_127","value_53","value_92","value_96","props_90","props_81","value_172","value_176","props_108","props_94","props_92","props_99","props_110","props_112","Component_ResolveStudentData","component_ResolveStudentDataInputProps","group_1","studentPlans_1","userId","ExternalTeachers","Cmd_load","View_RenderTeacher","view_RenderTeacherInputProps","teacher","View_RenderAddModal","view_RenderAddModalInputProps","onClose","onAdded","existingExternalTeacherIds","setStep","Combine","teacherOpt","s_1","value_11","teacher_2","teacher_1","_arg2_1","view_RenderInputProps","setIsAddWindow","teachers","teachers_1","Value","Key","IsConfig","config","OnChange","dates","ClassName","DateFormat","Locale","loc","flatpickr","propOptions","option","CompareWithPrevious","EnduranceIntensities","EnduranceActivities","StatisticFilters_get_Current","pieChartInputProps","withLegend","valueFormatter","colorGetter","nameGetter","chartData","colors","createElement","Cell","fill","sum","PieChart","Tooltip","formatter","value_1","Pie","cx","cy","innerRadius","outerRadius","labelLine","legendType","dataKey","x_6","Legend","align","layout","renderOrLoader","deferred","el","EnduranceIntensityDurationPieChart","enduranceIntensityDurationPieChartInputProps","intensities","EnduranceActivityDurationPieChart","enduranceActivityDurationPieChartInputProps","activities","StatisticHelpers_calcEnduranceActivityDuration","EnduranceIntensityCountPieChart","enduranceIntensityCountPieChartInputProps","StatisticHelpers_calcEnduranceIntensityCount","EnduranceActivityCountPieChart","enduranceActivityCountPieChartInputProps","StatisticHelpers_calcEnduranceActivityCount","chartsList","RenderPeriodCharts","renderPeriodChartsInputProps","selectedChart","renderChart","chart","selectedChart_1","RenderPreviousYearPeriodCharts","renderPreviousYearPeriodChartsInputProps","RenderEnduranceIntensities","renderEnduranceIntensitiesInputProps","setSelected","selected","isAllSelected","changeValue","isChecked","intensity","isChecked_1","RenderEnduranceActivities","renderEnduranceActivitiesInputProps","RenderFilters","renderFiltersInputProps","excelRender","filters","elms_11","firstDayOfWeek","View_checkBoxFieldBig","StatisticBlock","statisticBlockInputProps","moreStatisticLink","yearPlanStr","row","sumStr","countStr","timeRow","title_1","amountRow","title_2","children_4","children_6","workoutPart_1","children_11","children_9","children_15","headRow","title_3","children_13","workoutPart_2","StatisticHelpers_calcEnduranceIntensity","item_1","workoutPart_3","StatisticHelpers_calcStrengthActivity","workoutPart_4","StatisticHelpers_calcMobility","item_2","workoutPart_5","StatisticHelpers_calcSpeedActivity","workoutPart_6","children_19","children_17","children_29","children_21","children_23","children_25","children_27","StatisticWithoutTabs","statisticWithoutTabsInputProps","planStr","isPreviousYear","StatisticWithTabs","statisticWithTabsInputProps","overviewList","statisticPeriodType","setStatisticPeriodType","statisticPeriodList","dayInPeriod","periodInfo_1","periodWeek_1","transform","error_1","Deferred_map","sList","fullLust","query_2","flexGrow","list_2","RenderFiltersAndCharts","renderFiltersAndChartsInputProps","prevYearQuery","prevYearQuery_1","tablesRender","statisticType","query","query_1","prevYearList","thisYearDates","prevYearDates","prevYearPlan","prevYearPlanStr","renderTables","daysList_1","daysList_2","daysList_3","daysList_4","daysList_5","Label","ValueOpt","Color","DisplayValue","StackLabel","ChartColorItems","tickFormatter","barChartInputProps","BarChart","CartesianGrid","strokeDasharray","value_9","vertical","XAxis","YAxis","Bar","StackBarChart","stackBarChartInputProps","stackChartDatas","value_5","chartColorItem","stackId","iconType","margin","ChartItems","TotalDurationSeconds","IsSickCount","IsDamagedCount","IsTravelDayCount","FormAvg","RestIsPrimaryCount","createStudentTableData","strengthChartItem","durationSec_1","StatisticHelpers_calcStrength","chartItems","durationSec","totalSum","strDuration","RenderSelectedIntervalTotalTable","renderSelectedIntervalTotalTableInputProps","children_14","value_25","children_8","children_10","children_12","overflowX","chartItem","value_21","RenderPeriodsTable","renderPeriodsTableInputProps","tableDatas","periodNames","periodName","tableData","value_19","tableData_1","value_23","tableData_2","tableData_3","tableData_4","tableData_5","RenderPeriodsToYearEndTable","renderPeriodsToYearEndTableInputProps","calendarDayTo","calendarDayFrom","periodDatas","periodList","stackChartData","RenderPeriodsToYearEndTableWithLoad","renderPeriodsToYearEndTableWithLoadInputProps","calendarDayDateFrom","dateFrom","RenderSelectedIntervalWeeksTable","renderSelectedIntervalWeeksTableInputProps","weekDatas","Calendar_WeekInfo__NextN_Z524259A4","weekList","RenderSelectedIntervalWeeksTableWithLoad","renderSelectedIntervalWeeksTableWithLoadInputProps","calendarDayDateTo","RenderStudentTables","renderStudentTablesInputProps","RenderExcelButton","renderExcelButtonInputProps","value_14","year_1","RenderMainLayout","renderMainLayoutWithLoad","school","schoolId","ListTeachers","Cmd_loadTeachers","Component_ResolveTeacher","component_ResolveTeacherInputProps","WorkoutPartHeader","workoutPartHeaderInputProps","onDeleted","isPrimaryChanged","DurationEditor","durationMinutes","durationHours","durationHoursStr","durationMinutesStr","durationSecondsStr","EnduranceActivityEditor","EnduranceActivity_parseEnduranceActivityStr","EnduranceIntensityEditor","EnduranceIntensity_parseEnduranceIntensityStr","StrengthActivityEditor","StrengthActivity_parseStrengthActivityStr","SpeedActivityEditor","SpeedActivity_parseSpeedActivityStr","ShapeEditor","Shape_strShape","Shape_parseShapeStr","SpeedAmountEditor","Endurance","enduranceInputProps","infoChanged","Strength","strengthInputProps","Mobility","mobilityInputProps","Speed","speedInputProps","Rest","restInputProps","workoutParts","xx","titles","setTitles","addWorkoutPart","index_4","change","newInfo","index_1","isPrimary_2","isPrimaryChanged_1","onDeleted_1","isPrimary_3","isPrimaryChanged_2","onDeleted_2","arg_2","isPrimary_4","isPrimaryChanged_3","onDeleted_3","arg_3","title_4","isPrimary_5","isPrimaryChanged_4","onDeleted_4","isPrimary_1","index_2","partIndex_2","removeArrayItem","index_3","array_3","button","value_12","value_32","newWorkoutParts","children_1","onSaved","withIsGlobal","workoutTemplate","workoutTemplate_1","setEditModel","editModel","overflowY","newIsGlobal","newWorkout","saveWorkoutTemplate","WorkoutTemplates","View_WorkoutTemplateRow","view_WorkoutTemplateRowInputProps","isTeacher","setIsEditWindow","isEditWindow","isUpdated","setIsCreateWindow","workoutTemplates","View_PassItem","mon","workoutTemplateColor","borderRight","maxHeight","passes","pass","shapeOpt","comment","dragData","marginLeft","marginRight","opacity","onDelete","onSave","sourceDayPlan","dayFact_2","DayFact_createFromDayPlan","dayFact_1","value_29","newShape","onImplement","onImplement_1","studentDay","dayPlanFact","toDay_0","toDay_1","fromDay_0","fromDay_1","planFact","toDay","fromDay","UpdatedPlanFact","MovedPlanFact","DeletedPlanFact","actions","setIsSaving","setIsImplementPlan","isImplementPlan","dragItem","dayPlanFact_1","dayTo","dayFrom","dragSrc_1","dayTo_1","dayFrom_1","dayPlanFact_2","dayPlan_2","dayPlan_3","StudentDays","Actions","weekParams","weekDayDate","weekDay_1","fact","studentDayKey","durations","day_1","weekDay_2","StudentFullname","tryFindStudentDay","days","equalsCalendarDay","updateCalendarDay","calendarDay_1","f_1","days_1","addOrUpdateCalendarDay","calendarDay_2","f_2","days_2","addOrUpdateDayPlanFact","DayHelpers_addUpdatePlanFact","deleteDayPlanFact","DayHelpers_deletePlanFact","planFact_1","daySegmentFrom","days_5","planFact_2","DayHelpers_withDaySegment","d_1","View_renderNavigation","studentFullname","periodToOption","strValue","periods","View_renderSelectOptionDisabled","disabled","marginBottom","period_1","itemWeekInfo","View_renderMainLayout","view_renderMainLayoutInputProps","renderContent","studentDays","maxWidth","View_renderMainLayoutWithLoad","view_renderMainLayoutWithLoadInputProps","dependenciesArray","paramsDef","paramsDef_2","student_2","studentDays_2","View_renderPeriod","View_renderPeriodLayout","View_renderWeek","s_4","s_5","s_6","s_7","dayData","View_renderWeekLayout","isDayFactExists","setIsImplement","dayPlan_1","setIsEdit","SleepQualityEditor","SleepQuality_displaySleepQuality","SleepQuality_parseSleepQualityStr","MenstruationEditor","Menstruation_displayMenstruation","Menstruation_parseMenstruationStr","value_62","value_2","value_66","value_6","value_7","saveDayData","DayInfo","StudentDay","RenderDaySegment","renderDaySegmentInputProps","DayCalendar","dayCalendarInputProps","flanFact","dayDataInputProps","selectedDate","children_5","cursor","RenderView","renderViewInputProps","RenderWithLoad","renderWithLoadInputProps","scheduleListItem_2","scheduleListItem_1","sourceScheduleId","scheduleListItem","value_30","sourceScheduleId_1","request_2","saveScheduleListItem","Schedules","View_ScheduleRow","view_ScheduleRowInputProps","schedule","setCopyHover","setDuplicateHover","setOverviewHover","setIsDuplicateWindow","patternInput_7","scheduleDuplicate","schedule_1","schedule_2","View_RenderView","view_RenderViewInputProps","schedules","lst","View_RenderWithLoad","defaultPeriod","selectOptions","periodStartYearWeek","getId","getPeriod","periodOptions","selectedPeriodId","tupledArg_3","selectedPeriodId_1","tupledArg_4","Schedule","Students","SelectedGroupIds","SelectedStudentIds","SelectedPeriod","SelectedScheduleAssignMode","AssignProgress","Cmd_assign","View_User","view_UserInputProps","checkboxId","View_UserGroup","view_UserGroupInputProps","View_RenderMain","view_RenderMainInputProps","studentIds","set$_1","set$_3","view_RenderWithLoadInputProps","scheduleId","groups_1","students_1","scheduleDayKey","UpdatedPlan","MovedPlan","DeletedPlan","scheduleDayKeyFrom","toDay_2","fromDay_2","ScheduleWeek","newDayPlan","withWeeks","weeks","weekDayFrom","periodWeekFrom","planFromOpt","View_RenderSummary","view_RenderSummaryInputProps","periodWeekOpt","group_2","groupsRequest","groupsList","setSelectedGroupId","selectedGroupId","firstGroupId","groupOptions","selectedPeriod","groupRequest","selectedGroupId_1","groupPlanDuration","array_4","yearPlan_1","x_11","x_12","View_RenderMainLayout","view_RenderMainLayoutInputProps","View_RenderMainLayoutWithLoad","view_RenderMainLayoutWithLoadInputProps","View_RenderPeriod","view_RenderPeriodInputProps","View_RenderWeek","view_RenderWeekInputProps","Favorites","Cmd_loadFavorites","Cmd_deleteFavoriteUser","favoriteId","favorite","value_10","View_RenderFavorite","view_RenderFavoriteInputProps","ids","favorites","favoriteStudents","Schools","props_66","props_64","props_62","props_60","props_54","props_52","props_56","availableSchools","schools","schools_1","Restoring","Cmd_restore","CurrentPage","isHeaderRouteActive","currentPage","headerRoute","nextPage","resetPasswordId","id_2","id_3","id_4","id_5","info_1","userId_2","scheduleId_2","userId_3","id_6","id_7","id_8","id_9","pageUser","roleFilter","content","user_4","user_2","user_6","headerRoute_1","headerRoute_2","pageAll","pageAdmin","pageTeacher","setAttribute","arg10$0040_1","arg10$0040_2","arg10$0040_3","user_3","_user_1","arg10$0040_4","arg10$0040_5","arg10$0040_6","arg10$0040_7","arg10$0040_8","user_5","_user_2","_user_3","_user_4","pageStudent","user_7","arg10$0040_9","arg10$0040_10","arg20$0040","user_8","arg10$0040_11","arg10$0040_12","ProgramModule_run","Program_withReactSynchronous","clo1_1","clo1_2","lastLocation","arg10_2","ProgramModule_Internal_subscribe","ProgramModule_toNavigable","hash","parseHash","state_2","Remoting_subscribe","$007CFuncType$007C_$007C","flattenFuncTypes","typeDef","lazyToDelayed","_createTypeInfo","l_3","l_4","l_5","l_6","l_7","l_8","l_9","l_10","l_11","l_12","l_13","l_14","l_15","l_16","l_17","activePatternResult6176","primType","$007CPrimitiveType$007C_$007C","activePatternResult6175","types","resolvedType_1","createTypeInfo","activePatternResult6174","l_1","activePatternResult6173","$007CUnionType$007C_$007C","l_2","resolvedType_2","activePatternResult6172","$007CEnumType$007C_$007C","elemType","activePatternResult6171","$007CListType$007C_$007C","elemType_1","activePatternResult6170","$007CResizeArrayType$007C_$007C","elemType_2","activePatternResult6169","$007CHashSetType$007C_$007C","elemType_3","activePatternResult6168","$007CArrayType$007C_$007C","elemType_4","activePatternResult6167","$007CTupleType$007C_$007C","types_1","resolvedType_3","activePatternResult6166","$007COptionType$007C_$007C","elemType_5","activePatternResult6165","$007CNullable$007C_$007C","elemType_6","activePatternResult6164","$007CSetType$007C_$007C","elemType_7","activePatternResult6163","genArgs","$007CMapType$007C_$007C","keyType","valueType","activePatternResult6162","$007CDictionaryType$007C_$007C","keyType_1","valueType_1","activePatternResult6161","$007CSeqType$007C_$007C","elemType_8","activePatternResult6160","$007CAsyncType$007C_$007C","elemType_9","activePatternResult6159","$007CPromiseType$007C_$007C","elemType_10","typeInfoCache","ti_1","isPrimitive","enumUnion","every","case$","Parsimmon_many","Parsimmon_ofLazy","Parsimmon_digit","Parsimmon_seperateBy","others","Parsimmon_between","skipped","Parsimmon_map","Parsimmon_choose","ps","Parsimmon_satisfy","Parsimmon_str","Parsimmon_oneOf","Parsimmon_optionalWhitespace","Parsimmon_atLeastOneOrMany","Parsimmon_atLeast","Parsimmon_stringReturn","Parsimmon_seq2","Parsimmon_concat","strings","Parsimmon_seq3","jint","negJint","jfloat","digitsLeft","negativeJFloat","jnumber","jbool","jnull","stringLiteral","escape","anyCharSnippet","otherParser","jstring","withWhitespace","jvalue","comma","json$004099$002D1","jsonParser","InteropUtil_isBigInt","InteropUtil_isObjectLiteral","SimpleJson_tryParse","Parsimmon_parse","SimpleJson_parse","SimpleJson_toString","arg10_3","SimpleJson_toPlainObject","jsObject","enumerator_1","SimpleJson_stringify","JSON","stringify","jsonValue","SimpleJson_parseNative$0027","activePatternResult6261","$007CNativeString$007C_$007C","activePatternResult6260","$007CNativeNumber$007C_$007C","number","activePatternResult6259","$007CNativeBool$007C_$007C","$007CNull$007C_$007C","activePatternResult6257","$007CNativeArray$007C_$007C","activePatternResult6256","$007CNativeObject$007C_$007C","SimpleJson_parseNative","isIterable","isArrayLike","isHashable","isDisposable","sameConstructor","getPrototypeOf","constructor","Enumerator","getEnumerator","toIterator","en","hasNext","Lazy","factory","isValueCreated","createdValue","padWithZeros","padLeftAndRightWithZeros","lengthLeft","lengthRight","dateOffset","date1","int32ToString","ObjectRef","idMap","stringHash","numberHash","combineHashCodes","hashes","h1","h2","physicalHash","structuralHash","arrayHash","dateHash","safeHash","equalArraysWith","equalArrays","isEquatable","compareDates","xKeys","yKeys","equalObjects","xtime","ytime","comparePrimitives","compareArrays","comp","compareArraysWith","isComparable","compareObjects","createObj","round","pow","clear","col","WeakMap","uncurry","arity","uncurriedFn","a3","a4","a5","a6","a7","a8","curry","partialApply","P","cmp","_this","mul","NAME","INVALID","INVALID_DP","NUMERIC","nl","search","Big","DP","RM","rm","more","xc","isZero","xci","unshift","doExponential","isNonzero","isneg","yc","div","bl","bt","ri","bz","ai","al","rl","q","qc","qi","gt","gte","lt","lte","minus","xlty","plus","xe","ye","mod","ygtx","one","prec","sqrt","NE","PE","toNumber","strict","valueOf","_Big_","normalize","TypeError","op_Addition","setInt32Bits","hexDigits","bits","fromIntArray","low","high","signExp","fromParts","isNegative","scale","bitSize","decDigits","hex","dec","decCount","carry","val","hexToDecimal","big","Dictionary","pairs","hashMap","pair","Dictionary__Add_5BDDA1","Dictionary__Clear","Dictionary__TryFind_2B595","arrayIndex","Dictionary__get_Count","Dictionary__Remove_2B595","Dictionary__ContainsKey_2B595","Dictionary__get_Item_2B595","Dictionary__set_Item_5BDDA1","Dictionary__TryFindIndex_2B595","isLittleEndian","getBytesInt32","setInt32","toInt16","getInt16","toInt32","getInt32","toInt64","lowBits","highBits","toUInt16","toUInt32","getUint32","toUInt64","toSingle","getFloat32","toDouble","getFloat64","fsFormatRegExp","interpolateRegExp","formatRegExp","isLessThan","printf","cont","strParts","strIdx","matchIndex","createPrinter","_strParts","_matches","_result","padArg","_padLength","precision","padLength","formatReplacement","interpolate","valIdx","continuePrint","toConsole","log","toText","toFail","zeroFlag","minusFlag","padLeft","pattern","intPart","decimalPart","isNullOrEmpty","isNullOrWhiteSpace","delimiter","notSupported","fromBase64String","b64Encoded","binary","atob","isRight","splitters","removeEmpty","splits","reg","trimEnd","startIndex","DateTimeOffset","checkOffsetInRange","offsetMatch","toLocalTime","bound","BigNatModule_FFT_pow32","x_mut","n_mut","BigNatModule_FFT_maxTwoPower","BigNatModule_bound","BigNatModule_coeff","BigNatModule_coeff64","BigNatModule_setCoeff","BigNatModule_pow64","BigNatModule_pow32","BigNatModule_maxInt","BigNatModule_baseNi64","BigNatModule_baseMaski64","BigNatModule_divbase","BigNatModule_modbase","BigNatModule_createN","BigNatModule_normN","na_mut","na","findLeastBound","BigNatModule_embed","r_1","BigNatModule_eval32","BigNatModule_one","BigNatModule_zero","BigNatModule_degree","BigNatModule_add","rbound","c_mut","p_mut","q_mut","r_mut","i_1","z_1","i_2","BigNatModule_addP","BigNatModule_sub","BigNatModule_subP","BigNatModule_isZero","BigNatModule_equal","pa_mut","qa_mut","pa","qa","check","BigNatModule_compare","BigNatModule_lt","BigNatModule_gte","BigNatModule_mulSchoolBookCarry","rak","BigNatModule_mulSchoolBookOneSmall","bp","q_1","BigNatModule_mulSchoolBook","pSmall","qSmall","BigNatModule_mulSchoolBookBothSmall","ra","pai","qaj","BigNatModule_mulSchoolBookNeitherSmall","bigL","twoToBigL","bigK","bigN","BigNatModule_mkEncoding","BigNatModule_table","BigNatModule_mul","BigNatModule_scaleSubInPlace","ad","zLo","zHi","BigNatModule_scaleAddInPlace","BigNatModule_removeFactor","degx","dega","xa","aa","pn","qn","qai","BigNatModule_divmod","BigNatModule_copyN","Invariant","BigNatModule_two","BigNatModule_toFloat","evalFloat","BigNatModule_ofInt32","BigNatModule_ofInt64","BigNatModule_embed64","BigNatModule_toString","degn","isLeading_mut","digits_mut","n_1_mut","_arg1_mut","isLeading","n_1","n_2","prior_1","nL","nH","digits_4","prior_mut","ten2k_mut","prior","ten2k","BigNatModule_ofString","ten","build","BigNatModule_isSmall","BigNatModule_getSmall","signInt","BigInteger__get_SignInt","BigInteger__get_V","BigInteger_op_Equality_56F059C0","BigNatModule_hash","BigInteger_op_LessThan_56F059C0","nn","BigInteger_$ctor_Z2BE94A1","BigInteger_nat_Z67CCE57D","smallLim","smallPosTab","BigInteger_create_Z2BE94A1","BigInteger_posn_Z67CCE57D","BigInteger_negn_Z67CCE57D","BigInteger_$ctor_Z524259A4","BigInteger_$ctor_Z524259C1","BigInteger_get_One","BigInteger_get_Two","two","BigInteger_get_Zero","BigInteger_op_UnaryNegation_Z665282C2","BigInteger_subnn_6A57060","nx","ny","BigInteger_addnn_6A57060","BigInteger__get_IsZero","BigInteger__get_IsOne","BigInteger_op_Addition_56F059C0","BigInteger_op_Multiply_56F059C0","BigInteger_op_LeftShift_62E082A2","BigInteger_Pow_62E082A2","yval","x_1_mut","power","ndiv2","BigNatModule_pow","BigInteger__get_ToDouble","BigInteger_Parse_Z721C83C5","text_1","fromZero","fromInt64","fromInt32","toDecimal","Decimal","BigInteger__get_ToDecimal","arg01","flipTwosComplement","currByte","lowBitFound","fromByteArray","isPositive","accumUInt32_mut","currIndex_mut","bytesRemaining_mut","lowBitFound_mut","accumUInt32","currIndex","bytesRemaining","bytesToProcess","isMatch","Convert_insideBrowser","Function","Convert_InternalMap","Convert_flattenMap","Convert_$007CMapKey$007C_$007C","Convert_generateMap","json","Convert_$007CMapEmpty$007C_$007C","activePatternResult6339","activePatternResult6334","Convert_$007CMapOne$007C_$007C","activePatternResult6338","activePatternResult6336","Convert_$007CMapNode$007C_$007C","key_1","leftMap","rightMap","Convert_flatteFable3Map","Convert_flattenFable3Lists","linkedList","Convert_arrayLike","Convert_unionOfRecords","Convert_isRecord","Convert_optional","Convert_isQuoted","Convert_betweenQuotes","Convert_removeQuotes","Convert_fromJsonAs","input_mut","typeInfo_mut","foundCase","foundCase_2","testExpr","values_8","tree_2","typeInfo","toLocaleLowerCase","value_4","value_8","value_13","value_15","value_17","value_20","value_22","value_24","getlElemType","value_26","getElemType","value_27","getElemType_1","value_28","genericJson","value_31","value_33","value_34","value_35","value_36","value_37","value_38","getTypes","jsonValue_5","optionalTypeDelayed_5","originalType","outArg_1","v_1","arg20_1","arg20_2","WorkerGlobalScope","unionType","caseName","values_1","caseName_1","activePatternResult6368","expectedCases","case$_1","arg20_4","foundCase_1","foundCase_3","foundCase_4","arg30_1","arg20_5","case$_2","pattern_matching_result_5","caseInfo","caseName_2","caseType","input_1","typeInfo_1","expectedCases_1","case$_3","arg20_7","foundDiscriminatorKey","keyword","discriminatorValueJson","discriminatorValue","foundUnionCase","case$_4","case$_5","arg10_12","arg10_13","arg10_11","unexpectedJson","expectedType","pattern_matching_result_6","caseIndex","fieldValues","foundCase_5","value_44","arg20_8","arg10_10","pattern_matching_result_7","value_45","value_46","caseName_4","getTypes_2","value_47","pattern_matching_result_8","caseTypes","case$_6","expectedCases_2","case$_7","arg20_11","pattern_matching_result_9","caseName_5","getTypes_3","getFields","serializedRecord","caseValue","getTypes_4","elementTypeDelayed","values_4","elementTypeDelayed_1","values_5","elementTypeDelayed_2","elementTypeDelayed_3","values_6","elementTypeDelayed_4","values_7","array_9","tupleTypesDelayed","dict_1","getTypes_5","getTypes_6","tuples","getTypes_7","tuples_1","dict_2","getTypes_8","getType","getTypes_9","getType_1","caseTypes_1","case$_8","expectedCases_3","case$_9","arg20_12","cases_1","pattern_matching_result_10","caseName_6","caseName_8","values_3","otherwise_6","case$_10","expectedCases_4","case$_11","arg20_13","case$_12","foundCaseName","caseInfo_4","expectedCases_5","unexpectedJson_1","expectedType_1","elementType","value_51","elementType_1","elementType_2","value_55","elementType_3","value_57","elementType_4","value_59","_arg3_1","dictKeys","arg10_27","recordFields","arg10_30","name_1","arg30_6","keyValuePair","patternInput_8","pairs_1","keyValuePair_1","output","y_4","patternInput_9","keyType_2","pairs_2","output_1","y_5","y_6","y_7","forLoopVar_1","hashset","y_8","y_9","y_10","enumerator_2","patternInput_10","valueType_5","keyType_3","pattern_matching_result_11","comparer_1","tree_1","inputJson","pairs_3","tupledArg_5","key_6","pattern_matching_result_12","comparer_3","tree_3","pairs_4","tupledArg_6","key_7","arg20_17","arg10_33","arg20_18","arg10_34","Convert_fromJson","Convert_quoteText","Convert_serialize","value_mut","copyOfStruct_2","element","element_1","element_2","element_3","element_4","elementType_5","element_5","usedCase","serializedFields_1","serializedValues","serializedKey","serializedValue","serializedValues_1","serializedKey_1","serializedValue_1","tupleTypes","element_6","callStack","seqToString","entries","Union","fieldStr","withParens","unionToString","recordToJSON","recordToString","recordGetHashCode","recordEquals","thisNames","recordCompareTo","Record","FSharpRef","contentsOrGetter","setter","Exception","HashSet","HashSet__Add_2B595","HashSet__Clear","HashSet__Contains_2B595","HashSet__get_Count","HashSet__Remove_2B595","HashSet__TryFindIndex_2B595","wasm","WebAssembly","Instance","Module","Long","isLong","fromBytes","toBytes","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","negate","TWO_PWR_32_DBL","pow_dbl","fromString","radixToPower","fromValue","TWO_PWR_16_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","toInt","$this","radixLong","divide","rem1","subtract","rem","remDiv","isOdd","lessThan","greaterThan","greaterThanOrEqual","thisNeg","otherNeg","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtrahend","multiplier","get_high","b00","divisor","approx","div_u","div_s","toUnsigned","shiftRightUnsigned","shiftLeft","shiftRight","log2","LN2","delta","approxRes","approxRem","numBits","le","toBytesLE","toBytesBE","fromBytesLE","fromBytesBE","op_Subtraction","op_Multiply","op_Division","op_Modulus","rem_u","rem_s","op_UnaryNegation","op_LeftShift","op_BitwiseAnd","fromInteger","xh","_bitsize","lessOrEqual","padStart","maxValue","getMaxValue","unixEpochMillisecondsToTicks","ticksToUnixEpochMilliseconds","Some","some","opt","defaultArg","defaultArgWith","defThunk","ComparisonIdentity_Structural","LanguagePrimitives_FastGenericComparer","Operators_NullArg","Helpers_allocateArrayFromCons","differentLengths","array1","array2","len1","len2","newArray","targetIndex","mapIndexed","mapFold","mapFoldBack","indexed","arrays","arrays_1","totalIdx","totalLength","idx_1","arr_2","ar","initialize","pairwise","copy","scanBack","count_1","tryFindBack","tryFindIndexBack","permute","checkFlags","zip","chunkBySize","start_1","equalsWith","length1","length2","foldBack","reduceRight","foldBack2","foldBackIndexed2","projection","windowed","windowSize","splitInto","chunks_1","minChunkSize","chunksWithExtraItem","transpose","lenInner"],"mappings":"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AG,GAAI,EAAG,EAAG,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GA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","file":"app.b70ac3f90ca6ef362db1.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([366,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { Record, Union } from \"./Types.js\";\nimport { combineHashCodes, equalArraysWith, stringHash } from \"./Util.js\";\nexport class CaseInfo {\n constructor(declaringType, tag, name, fields) {\n this.declaringType = declaringType;\n this.tag = tag;\n this.name = name;\n this.fields = fields;\n }\n}\nexport class TypeInfo {\n constructor(fullname, generics, construct, parent, fields, cases, enumCases) {\n this.fullname = fullname;\n this.generics = generics;\n this.construct = construct;\n this.parent = parent;\n this.fields = fields;\n this.cases = cases;\n this.enumCases = enumCases;\n }\n toString() {\n return fullName(this);\n }\n GetHashCode() {\n return getHashCode(this);\n }\n Equals(other) {\n return equals(this, other);\n }\n}\nexport function getGenerics(t) {\n return t.generics != null ? t.generics : [];\n}\nexport function getHashCode(t) {\n const fullnameHash = stringHash(t.fullname);\n const genHashes = getGenerics(t).map(getHashCode);\n return combineHashCodes([fullnameHash, ...genHashes]);\n}\nexport function equals(t1, t2) {\n if (t1.fullname === \"\") { // Anonymous records\n return t2.fullname === \"\"\n && equalArraysWith(getRecordElements(t1), getRecordElements(t2), ([k1, v1], [k2, v2]) => k1 === k2 && equals(v1, v2));\n }\n else {\n return t1.fullname === t2.fullname\n && equalArraysWith(getGenerics(t1), getGenerics(t2), equals);\n }\n}\nexport function class_type(fullname, generics, construct, parent) {\n return new TypeInfo(fullname, generics, construct, parent);\n}\nexport function record_type(fullname, generics, construct, fields) {\n return new TypeInfo(fullname, generics, construct, undefined, fields);\n}\nexport function anonRecord_type(...fields) {\n return new TypeInfo(\"\", undefined, undefined, undefined, () => fields);\n}\nexport function union_type(fullname, generics, construct, cases) {\n const t = new TypeInfo(fullname, generics, construct, undefined, undefined, () => {\n const caseNames = construct.prototype.cases();\n return cases().map((fields, i) => new CaseInfo(t, i, caseNames[i], fields));\n });\n return t;\n}\nexport function tuple_type(...generics) {\n return new TypeInfo(\"System.Tuple`\" + generics.length, generics);\n}\nexport function delegate_type(...generics) {\n return new TypeInfo(\"System.Func`\" + generics.length, generics);\n}\nexport function lambda_type(argType, returnType) {\n return new TypeInfo(\"Microsoft.FSharp.Core.FSharpFunc`2\", [argType, returnType]);\n}\nexport function option_type(generic) {\n return new TypeInfo(\"Microsoft.FSharp.Core.FSharpOption`1\", [generic]);\n}\nexport function list_type(generic) {\n return new TypeInfo(\"Microsoft.FSharp.Collections.FSharpList`1\", [generic]);\n}\nexport function array_type(generic) {\n return new TypeInfo(generic.fullname + \"[]\", [generic]);\n}\nexport function enum_type(fullname, underlyingType, enumCases) {\n return new TypeInfo(fullname, [underlyingType], undefined, undefined, undefined, undefined, enumCases);\n}\nexport const obj_type = new TypeInfo(\"System.Object\");\nexport const unit_type = new TypeInfo(\"Microsoft.FSharp.Core.Unit\");\nexport const char_type = new TypeInfo(\"System.Char\");\nexport const string_type = new TypeInfo(\"System.String\");\nexport const bool_type = new TypeInfo(\"System.Boolean\");\nexport const int8_type = new TypeInfo(\"System.SByte\");\nexport const uint8_type = new TypeInfo(\"System.Byte\");\nexport const int16_type = new TypeInfo(\"System.Int16\");\nexport const uint16_type = new TypeInfo(\"System.UInt16\");\nexport const int32_type = new TypeInfo(\"System.Int32\");\nexport const uint32_type = new TypeInfo(\"System.UInt32\");\nexport const float32_type = new TypeInfo(\"System.Single\");\nexport const float64_type = new TypeInfo(\"System.Double\");\nexport const decimal_type = new TypeInfo(\"System.Decimal\");\nexport function name(info) {\n if (Array.isArray(info)) {\n return info[0];\n }\n else if (info instanceof CaseInfo) {\n return info.name;\n }\n else {\n const i = info.fullname.lastIndexOf(\".\");\n return i === -1 ? info.fullname : info.fullname.substr(i + 1);\n }\n}\nexport function fullName(t) {\n const gen = t.generics != null && !isArray(t) ? t.generics : [];\n if (gen.length > 0) {\n return t.fullname + \"[\" + gen.map((x) => fullName(x)).join(\",\") + \"]\";\n }\n else {\n return t.fullname;\n }\n}\nexport function namespace(t) {\n const i = t.fullname.lastIndexOf(\".\");\n return i === -1 ? \"\" : t.fullname.substr(0, i);\n}\nexport function isArray(t) {\n return t.fullname.endsWith(\"[]\");\n}\nexport function getElementType(t) {\n var _a;\n return isArray(t) ? (_a = t.generics) === null || _a === void 0 ? void 0 : _a[0] : undefined;\n}\nexport function isGenericType(t) {\n return t.generics != null && t.generics.length > 0;\n}\nexport function isEnum(t) {\n return t.enumCases != null && t.enumCases.length > 0;\n}\nexport function isSubclassOf(t1, t2) {\n var _a, _b;\n return (_b = (_a = t1.parent) === null || _a === void 0 ? void 0 : _a.Equals(t2)) !== null && _b !== void 0 ? _b : false;\n}\n/**\n * This doesn't replace types for fields (records) or cases (unions)\n * but it should be enough for type comparison purposes\n */\nexport function getGenericTypeDefinition(t) {\n return t.generics == null ? t : new TypeInfo(t.fullname, t.generics.map(() => obj_type));\n}\nexport function getEnumUnderlyingType(t) {\n var _a;\n return (_a = t.generics) === null || _a === void 0 ? void 0 : _a[0];\n}\nexport function getEnumValues(t) {\n if (isEnum(t) && t.enumCases != null) {\n return t.enumCases.map((kv) => kv[1]);\n }\n else {\n throw new Error(`${t.fullname} is not an enum type`);\n }\n}\nexport function getEnumNames(t) {\n if (isEnum(t) && t.enumCases != null) {\n return t.enumCases.map((kv) => kv[0]);\n }\n else {\n throw new Error(`${t.fullname} is not an enum type`);\n }\n}\nfunction getEnumCase(t, v) {\n if (t.enumCases != null) {\n if (typeof v === \"string\") {\n for (const kv of t.enumCases) {\n if (kv[0] === v) {\n return kv;\n }\n }\n throw new Error(`'${v}' was not found in ${t.fullname}`);\n }\n else {\n for (const kv of t.enumCases) {\n if (kv[1] === v) {\n return kv;\n }\n }\n // .NET returns the number even if it doesn't match any of the cases\n return [\"\", v];\n }\n }\n else {\n throw new Error(`${t.fullname} is not an enum type`);\n }\n}\nexport function parseEnum(t, str) {\n // TODO: better int parsing here, parseInt ceils floats: \"4.8\" -> 4\n const value = parseInt(str, 10);\n return getEnumCase(t, isNaN(value) ? str : value)[1];\n}\nexport function tryParseEnum(t, str, defValue) {\n try {\n defValue.contents = parseEnum(t, str);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexport function getEnumName(t, v) {\n return getEnumCase(t, v)[0];\n}\nexport function isEnumDefined(t, v) {\n try {\n const kv = getEnumCase(t, v);\n return kv[0] != null && kv[0] !== \"\";\n }\n catch (_a) {\n // supress error\n }\n return false;\n}\n// FSharpType\nexport function getUnionCases(t) {\n if (t.cases != null) {\n return t.cases();\n }\n else {\n throw new Error(`${t.fullname} is not an F# union type`);\n }\n}\nexport function getRecordElements(t) {\n if (t.fields != null) {\n return t.fields();\n }\n else {\n throw new Error(`${t.fullname} is not an F# record type`);\n }\n}\nexport function getTupleElements(t) {\n if (isTuple(t) && t.generics != null) {\n return t.generics;\n }\n else {\n throw new Error(`${t.fullname} is not a tuple type`);\n }\n}\nexport function getFunctionElements(t) {\n if (isFunction(t) && t.generics != null) {\n const gen = t.generics;\n return [gen[0], gen[1]];\n }\n else {\n throw new Error(`${t.fullname} is not an F# function type`);\n }\n}\nexport function isUnion(t) {\n return t instanceof TypeInfo ? t.cases != null : t instanceof Union;\n}\nexport function isRecord(t) {\n return t instanceof TypeInfo ? t.fields != null : t instanceof Record;\n}\nexport function isTuple(t) {\n return t.fullname.startsWith(\"System.Tuple\") && !isArray(t);\n}\n// In .NET this is false for delegates\nexport function isFunction(t) {\n return t.fullname === \"Microsoft.FSharp.Core.FSharpFunc`2\";\n}\n// FSharpValue\nexport function getUnionFields(v, t) {\n const cases = getUnionCases(t);\n const case_ = cases[v.tag];\n if (case_ == null) {\n throw new Error(`Cannot find case ${v.name} in union type`);\n }\n return [case_, v.fields];\n}\nexport function getUnionCaseFields(uci) {\n return uci.fields == null ? [] : uci.fields;\n}\n// This is used as replacement of `FSharpValue.GetRecordFields`\n// For `FSharpTypes.GetRecordFields` see `getRecordElements`\n// Object.keys returns keys in the order they were added to the object\nexport function getRecordFields(v) {\n return Object.keys(v).map((k) => v[k]);\n}\nexport function getRecordField(v, field) {\n return v[field[0]];\n}\nexport function getTupleFields(v) {\n return v;\n}\nexport function getTupleField(v, i) {\n return v[i];\n}\nexport function makeUnion(uci, values) {\n const expectedLength = (uci.fields || []).length;\n if (values.length !== expectedLength) {\n throw new Error(`Expected an array of length ${expectedLength} but got ${values.length}`);\n }\n return uci.declaringType.construct != null\n ? new uci.declaringType.construct(uci.tag, ...values)\n : {};\n}\nexport function makeRecord(t, values) {\n const fields = getRecordElements(t);\n if (fields.length !== values.length) {\n throw new Error(`Expected an array of length ${fields.length} but got ${values.length}`);\n }\n return t.construct != null\n ? new t.construct(...values)\n : fields.reduce((obj, [key, _t], i) => {\n obj[key] = values[i];\n return obj;\n }, {});\n}\nexport function makeTuple(values, _t) {\n return values;\n}\nexport function makeGenericType(t, generics) {\n return new TypeInfo(t.fullname, generics, t.construct, t.parent, t.fields, t.cases);\n}\nexport function createInstance(t, consArgs) {\n // TODO: Check if consArgs length is same as t.construct?\n // (Arg types can still be different)\n if (typeof t.construct === \"function\") {\n return new t.construct(...(consArgs !== null && consArgs !== void 0 ? consArgs : []));\n }\n else {\n throw new Error(`Cannot access constructor of ${t.fullname}`);\n }\n}\nexport function getValue(propertyInfo, v) {\n return v[propertyInfo[0]];\n}\n// Fable.Core.Reflection\nfunction assertUnion(x) {\n if (!(x instanceof Union)) {\n throw new Error(`Value is not an F# union type`);\n }\n}\nexport function getCaseTag(x) {\n assertUnion(x);\n return x.tag;\n}\nexport function getCaseName(x) {\n assertUnion(x);\n return x.cases()[x.tag];\n}\nexport function getCaseFields(x) {\n assertUnion(x);\n return x.fields;\n}\n","import { record_type, bool_type, list_type, option_type, class_type } from \"./Reflection.js\";\nimport { some, value as value_1 } from \"./Option.js\";\nimport { singleton, ofArrayWithTail, head, tail, isEmpty as isEmpty_1, FSharpList, fold as fold_1, empty as empty_1, cons } from \"./List.js\";\nimport { fill } from \"./Array.js\";\nimport { structuralHash, compare, toIterator, equals, getEnumerator, isArrayLike } from \"./Util.js\";\nimport { Record } from \"./Types.js\";\nimport { tryPick as tryPick_1, pick as pick_1, iterate as iterate_1, compareWith, map as map_1, unfold } from \"./Seq.js\";\nimport { format, join } from \"./String.js\";\nimport { LanguagePrimitives_FastGenericComparer } from \"./FSharp.Core.js\";\n\nexport class MapTreeLeaf$2 {\n constructor(k, v) {\n this.k = k;\n this.v = v;\n }\n}\n\nexport function MapTreeLeaf$2$reflection(gen0, gen1) {\n return class_type(\"Map.MapTreeLeaf`2\", [gen0, gen1], MapTreeLeaf$2);\n}\n\nexport function MapTreeLeaf$2_$ctor_5BDDA1(k, v) {\n return new MapTreeLeaf$2(k, v);\n}\n\nexport function MapTreeLeaf$2__get_Key(_) {\n return _.k;\n}\n\nexport function MapTreeLeaf$2__get_Value(_) {\n return _.v;\n}\n\nexport class MapTreeNode$2 extends MapTreeLeaf$2 {\n constructor(k, v, left, right, h) {\n super(k, v);\n this.left = left;\n this.right = right;\n this.h = (h | 0);\n }\n}\n\nexport function MapTreeNode$2$reflection(gen0, gen1) {\n return class_type(\"Map.MapTreeNode`2\", [gen0, gen1], MapTreeNode$2, MapTreeLeaf$2$reflection(gen0, gen1));\n}\n\nexport function MapTreeNode$2_$ctor_499A11FD(k, v, left, right, h) {\n return new MapTreeNode$2(k, v, left, right, h);\n}\n\nexport function MapTreeNode$2__get_Left(_) {\n return _.left;\n}\n\nexport function MapTreeNode$2__get_Right(_) {\n return _.right;\n}\n\nexport function MapTreeNode$2__get_Height(_) {\n return _.h;\n}\n\nexport function MapTreeModule_empty() {\n return void 0;\n}\n\nexport function MapTreeModule_sizeAux(acc_mut, m_mut) {\n MapTreeModule_sizeAux:\n while (true) {\n const acc = acc_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n acc_mut = MapTreeModule_sizeAux(acc + 1, MapTreeNode$2__get_Left(m2));\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_sizeAux;\n }\n else {\n return (acc + 1) | 0;\n }\n }\n else {\n return acc | 0;\n }\n break;\n }\n}\n\nexport function MapTreeModule_size(x) {\n return MapTreeModule_sizeAux(0, x);\n}\n\nexport function MapTreeModule_mk(l, k, v, r) {\n let hl;\n const m = l;\n if (m != null) {\n const m2 = m;\n hl = ((m2 instanceof MapTreeNode$2) ? MapTreeNode$2__get_Height(m2) : 1);\n }\n else {\n hl = 0;\n }\n let hr;\n const m_1 = r;\n if (m_1 != null) {\n const m2_1 = m_1;\n hr = ((m2_1 instanceof MapTreeNode$2) ? MapTreeNode$2__get_Height(m2_1) : 1);\n }\n else {\n hr = 0;\n }\n const m_2 = ((hl < hr) ? hr : hl) | 0;\n if (m_2 === 0) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, v);\n }\n else {\n return MapTreeNode$2_$ctor_499A11FD(k, v, l, r, m_2 + 1);\n }\n}\n\nexport function MapTreeModule_rebalance(t1, k, v, t2) {\n let m_2, m2_2, m_3, m2_3;\n let t1h;\n const m = t1;\n if (m != null) {\n const m2 = m;\n t1h = ((m2 instanceof MapTreeNode$2) ? MapTreeNode$2__get_Height(m2) : 1);\n }\n else {\n t1h = 0;\n }\n let t2h;\n const m_1 = t2;\n if (m_1 != null) {\n const m2_1 = m_1;\n t2h = ((m2_1 instanceof MapTreeNode$2) ? MapTreeNode$2__get_Height(m2_1) : 1);\n }\n else {\n t2h = 0;\n }\n if (t2h > (t1h + 2)) {\n const matchValue = value_1(t2);\n if (matchValue instanceof MapTreeNode$2) {\n if ((m_2 = MapTreeNode$2__get_Left(matchValue), (m_2 != null) ? (m2_2 = m_2, (m2_2 instanceof MapTreeNode$2) ? MapTreeNode$2__get_Height(m2_2) : 1) : 0) > (t1h + 1)) {\n const matchValue_1 = value_1(MapTreeNode$2__get_Left(matchValue));\n if (matchValue_1 instanceof MapTreeNode$2) {\n return MapTreeModule_mk(MapTreeModule_mk(t1, k, v, MapTreeNode$2__get_Left(matchValue_1)), MapTreeLeaf$2__get_Key(matchValue_1), MapTreeLeaf$2__get_Value(matchValue_1), MapTreeModule_mk(MapTreeNode$2__get_Right(matchValue_1), MapTreeLeaf$2__get_Key(matchValue), MapTreeLeaf$2__get_Value(matchValue), MapTreeNode$2__get_Right(matchValue)));\n }\n else {\n throw (new Error(\"internal error: Map.rebalance\"));\n }\n }\n else {\n return MapTreeModule_mk(MapTreeModule_mk(t1, k, v, MapTreeNode$2__get_Left(matchValue)), MapTreeLeaf$2__get_Key(matchValue), MapTreeLeaf$2__get_Value(matchValue), MapTreeNode$2__get_Right(matchValue));\n }\n }\n else {\n throw (new Error(\"internal error: Map.rebalance\"));\n }\n }\n else if (t1h > (t2h + 2)) {\n const matchValue_2 = value_1(t1);\n if (matchValue_2 instanceof MapTreeNode$2) {\n if ((m_3 = MapTreeNode$2__get_Right(matchValue_2), (m_3 != null) ? (m2_3 = m_3, (m2_3 instanceof MapTreeNode$2) ? MapTreeNode$2__get_Height(m2_3) : 1) : 0) > (t2h + 1)) {\n const matchValue_3 = value_1(MapTreeNode$2__get_Right(matchValue_2));\n if (matchValue_3 instanceof MapTreeNode$2) {\n return MapTreeModule_mk(MapTreeModule_mk(MapTreeNode$2__get_Left(matchValue_2), MapTreeLeaf$2__get_Key(matchValue_2), MapTreeLeaf$2__get_Value(matchValue_2), MapTreeNode$2__get_Left(matchValue_3)), MapTreeLeaf$2__get_Key(matchValue_3), MapTreeLeaf$2__get_Value(matchValue_3), MapTreeModule_mk(MapTreeNode$2__get_Right(matchValue_3), k, v, t2));\n }\n else {\n throw (new Error(\"internal error: Map.rebalance\"));\n }\n }\n else {\n return MapTreeModule_mk(MapTreeNode$2__get_Left(matchValue_2), MapTreeLeaf$2__get_Key(matchValue_2), MapTreeLeaf$2__get_Value(matchValue_2), MapTreeModule_mk(MapTreeNode$2__get_Right(matchValue_2), k, v, t2));\n }\n }\n else {\n throw (new Error(\"internal error: Map.rebalance\"));\n }\n }\n else {\n return MapTreeModule_mk(t1, k, v, t2);\n }\n}\n\nexport function MapTreeModule_add(comparer, k, v, m) {\n if (m != null) {\n const m2 = m;\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (m2 instanceof MapTreeNode$2) {\n if (c < 0) {\n return MapTreeModule_rebalance(MapTreeModule_add(comparer, k, v, MapTreeNode$2__get_Left(m2)), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeNode$2__get_Right(m2));\n }\n else if (c === 0) {\n return MapTreeNode$2_$ctor_499A11FD(k, v, MapTreeNode$2__get_Left(m2), MapTreeNode$2__get_Right(m2), MapTreeNode$2__get_Height(m2));\n }\n else {\n return MapTreeModule_rebalance(MapTreeNode$2__get_Left(m2), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeModule_add(comparer, k, v, MapTreeNode$2__get_Right(m2)));\n }\n }\n else if (c < 0) {\n return MapTreeNode$2_$ctor_499A11FD(k, v, MapTreeModule_empty(), m, 2);\n }\n else if (c === 0) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, v);\n }\n else {\n return MapTreeNode$2_$ctor_499A11FD(k, v, m, MapTreeModule_empty(), 2);\n }\n }\n else {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, v);\n }\n}\n\nexport function MapTreeModule_tryFind(comparer_mut, k_mut, m_mut) {\n MapTreeModule_tryFind:\n while (true) {\n const comparer = comparer_mut, k = k_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (c === 0) {\n return some(MapTreeLeaf$2__get_Value(m2));\n }\n else if (m2 instanceof MapTreeNode$2) {\n comparer_mut = comparer;\n k_mut = k;\n m_mut = ((c < 0) ? MapTreeNode$2__get_Left(m2) : MapTreeNode$2__get_Right(m2));\n continue MapTreeModule_tryFind;\n }\n else {\n return void 0;\n }\n }\n else {\n return void 0;\n }\n break;\n }\n}\n\nexport function MapTreeModule_find(comparer, k, m) {\n const matchValue = MapTreeModule_tryFind(comparer, k, m);\n if (matchValue == null) {\n throw (new Error());\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function MapTreeModule_partition1(comparer, f, k, v, acc1, acc2) {\n if (f(k, v)) {\n return [MapTreeModule_add(comparer, k, v, acc1), acc2];\n }\n else {\n return [acc1, MapTreeModule_add(comparer, k, v, acc2)];\n }\n}\n\nexport function MapTreeModule_partitionAux(comparer_mut, f_mut, m_mut, acc_0_mut, acc_1_mut) {\n MapTreeModule_partitionAux:\n while (true) {\n const comparer = comparer_mut, f = f_mut, m = m_mut, acc_0 = acc_0_mut, acc_1 = acc_1_mut;\n const acc = [acc_0, acc_1];\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const acc_2 = MapTreeModule_partitionAux(comparer, f, MapTreeNode$2__get_Right(m2), acc[0], acc[1]);\n const acc_3 = MapTreeModule_partition1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc_2[0], acc_2[1]);\n comparer_mut = comparer;\n f_mut = f;\n m_mut = MapTreeNode$2__get_Left(m2);\n acc_0_mut = acc_3[0];\n acc_1_mut = acc_3[1];\n continue MapTreeModule_partitionAux;\n }\n else {\n return MapTreeModule_partition1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc[0], acc[1]);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function MapTreeModule_partition(comparer, f, m) {\n return MapTreeModule_partitionAux(comparer, f, m, MapTreeModule_empty(), MapTreeModule_empty());\n}\n\nexport function MapTreeModule_filter1(comparer, f, k, v, acc) {\n if (f(k, v)) {\n return MapTreeModule_add(comparer, k, v, acc);\n }\n else {\n return acc;\n }\n}\n\nexport function MapTreeModule_filterAux(comparer_mut, f_mut, m_mut, acc_mut) {\n MapTreeModule_filterAux:\n while (true) {\n const comparer = comparer_mut, f = f_mut, m = m_mut, acc = acc_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const acc_1 = MapTreeModule_filterAux(comparer, f, MapTreeNode$2__get_Left(m2), acc);\n const acc_2 = MapTreeModule_filter1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc_1);\n comparer_mut = comparer;\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(m2);\n acc_mut = acc_2;\n continue MapTreeModule_filterAux;\n }\n else {\n return MapTreeModule_filter1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function MapTreeModule_filter(comparer, f, m) {\n return MapTreeModule_filterAux(comparer, f, m, MapTreeModule_empty());\n}\n\nexport function MapTreeModule_spliceOutSuccessor(m) {\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n if (MapTreeNode$2__get_Left(m2) == null) {\n return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeNode$2__get_Right(m2)];\n }\n else {\n const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Left(m2));\n return [patternInput[0], patternInput[1], MapTreeModule_mk(patternInput[2], MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeNode$2__get_Right(m2))];\n }\n }\n else {\n return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeModule_empty()];\n }\n }\n else {\n throw (new Error(\"internal error: Map.spliceOutSuccessor\"));\n }\n}\n\nexport function MapTreeModule_remove(comparer, k, m) {\n if (m != null) {\n const m2 = m;\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (m2 instanceof MapTreeNode$2) {\n if (c < 0) {\n return MapTreeModule_rebalance(MapTreeModule_remove(comparer, k, MapTreeNode$2__get_Left(m2)), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeNode$2__get_Right(m2));\n }\n else if (c === 0) {\n if (MapTreeNode$2__get_Left(m2) == null) {\n return MapTreeNode$2__get_Right(m2);\n }\n else if (MapTreeNode$2__get_Right(m2) == null) {\n return MapTreeNode$2__get_Left(m2);\n }\n else {\n const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Right(m2));\n return MapTreeModule_mk(MapTreeNode$2__get_Left(m2), patternInput[0], patternInput[1], patternInput[2]);\n }\n }\n else {\n return MapTreeModule_rebalance(MapTreeNode$2__get_Left(m2), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeModule_remove(comparer, k, MapTreeNode$2__get_Right(m2)));\n }\n }\n else if (c === 0) {\n return MapTreeModule_empty();\n }\n else {\n return m;\n }\n }\n else {\n return MapTreeModule_empty();\n }\n}\n\nexport function MapTreeModule_change(comparer, k, u, m) {\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (c < 0) {\n return MapTreeModule_rebalance(MapTreeModule_change(comparer, k, u, MapTreeNode$2__get_Left(m2)), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeNode$2__get_Right(m2));\n }\n else if (c === 0) {\n const matchValue_1 = u(some(MapTreeLeaf$2__get_Value(m2)));\n if (matchValue_1 != null) {\n return MapTreeNode$2_$ctor_499A11FD(k, value_1(matchValue_1), MapTreeNode$2__get_Left(m2), MapTreeNode$2__get_Right(m2), MapTreeNode$2__get_Height(m2));\n }\n else if (MapTreeNode$2__get_Left(m2) == null) {\n return MapTreeNode$2__get_Right(m2);\n }\n else if (MapTreeNode$2__get_Right(m2) == null) {\n return MapTreeNode$2__get_Left(m2);\n }\n else {\n const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Right(m2));\n return MapTreeModule_mk(MapTreeNode$2__get_Left(m2), patternInput[0], patternInput[1], patternInput[2]);\n }\n }\n else {\n return MapTreeModule_rebalance(MapTreeNode$2__get_Left(m2), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeModule_change(comparer, k, u, MapTreeNode$2__get_Right(m2)));\n }\n }\n else {\n const c_1 = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (c_1 < 0) {\n const matchValue_2 = u(void 0);\n if (matchValue_2 != null) {\n return MapTreeNode$2_$ctor_499A11FD(k, value_1(matchValue_2), MapTreeModule_empty(), m, 2);\n }\n else {\n return m;\n }\n }\n else if (c_1 === 0) {\n const matchValue_3 = u(some(MapTreeLeaf$2__get_Value(m2)));\n if (matchValue_3 != null) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, value_1(matchValue_3));\n }\n else {\n return MapTreeModule_empty();\n }\n }\n else {\n const matchValue_4 = u(void 0);\n if (matchValue_4 != null) {\n return MapTreeNode$2_$ctor_499A11FD(k, value_1(matchValue_4), m, MapTreeModule_empty(), 2);\n }\n else {\n return m;\n }\n }\n }\n }\n else {\n const matchValue = u(void 0);\n if (matchValue != null) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, value_1(matchValue));\n }\n else {\n return m;\n }\n }\n}\n\nexport function MapTreeModule_mem(comparer_mut, k_mut, m_mut) {\n MapTreeModule_mem:\n while (true) {\n const comparer = comparer_mut, k = k_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (m2 instanceof MapTreeNode$2) {\n if (c < 0) {\n comparer_mut = comparer;\n k_mut = k;\n m_mut = MapTreeNode$2__get_Left(m2);\n continue MapTreeModule_mem;\n }\n else if (c === 0) {\n return true;\n }\n else {\n comparer_mut = comparer;\n k_mut = k;\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_mem;\n }\n }\n else {\n return c === 0;\n }\n }\n else {\n return false;\n }\n break;\n }\n}\n\nexport function MapTreeModule_iterOpt(f_mut, m_mut) {\n MapTreeModule_iterOpt:\n while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n MapTreeModule_iterOpt(f, MapTreeNode$2__get_Left(m2));\n f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_iterOpt;\n }\n else {\n f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n break;\n }\n}\n\nexport function MapTreeModule_iter(f, m) {\n MapTreeModule_iterOpt(f, m);\n}\n\nexport function MapTreeModule_tryPickOpt(f_mut, m_mut) {\n MapTreeModule_tryPickOpt:\n while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const matchValue = MapTreeModule_tryPickOpt(f, MapTreeNode$2__get_Left(m2));\n if (matchValue == null) {\n const matchValue_1 = f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n if (matchValue_1 == null) {\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_tryPickOpt;\n }\n else {\n return matchValue_1;\n }\n }\n else {\n return matchValue;\n }\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return void 0;\n }\n break;\n }\n}\n\nexport function MapTreeModule_tryPick(f, m) {\n return MapTreeModule_tryPickOpt(f, m);\n}\n\nexport function MapTreeModule_existsOpt(f_mut, m_mut) {\n MapTreeModule_existsOpt:\n while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n if (MapTreeModule_existsOpt(f, MapTreeNode$2__get_Left(m2)) ? true : f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2))) {\n return true;\n }\n else {\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_existsOpt;\n }\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return false;\n }\n break;\n }\n}\n\nexport function MapTreeModule_exists(f, m) {\n return MapTreeModule_existsOpt(f, m);\n}\n\nexport function MapTreeModule_forallOpt(f_mut, m_mut) {\n MapTreeModule_forallOpt:\n while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n if (MapTreeModule_forallOpt(f, MapTreeNode$2__get_Left(m2)) ? f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)) : false) {\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_forallOpt;\n }\n else {\n return false;\n }\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return true;\n }\n break;\n }\n}\n\nexport function MapTreeModule_forall(f, m) {\n return MapTreeModule_forallOpt(f, m);\n}\n\nexport function MapTreeModule_map(f, m) {\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const l2 = MapTreeModule_map(f, MapTreeNode$2__get_Left(m2));\n const v2 = f(MapTreeLeaf$2__get_Value(m2));\n const r2 = MapTreeModule_map(f, MapTreeNode$2__get_Right(m2));\n return MapTreeNode$2_$ctor_499A11FD(MapTreeLeaf$2__get_Key(m2), v2, l2, r2, MapTreeNode$2__get_Height(m2));\n }\n else {\n return MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), f(MapTreeLeaf$2__get_Value(m2)));\n }\n }\n else {\n return MapTreeModule_empty();\n }\n}\n\nexport function MapTreeModule_mapiOpt(f, m) {\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const l2 = MapTreeModule_mapiOpt(f, MapTreeNode$2__get_Left(m2));\n const v2 = f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n const r2 = MapTreeModule_mapiOpt(f, MapTreeNode$2__get_Right(m2));\n return MapTreeNode$2_$ctor_499A11FD(MapTreeLeaf$2__get_Key(m2), v2, l2, r2, MapTreeNode$2__get_Height(m2));\n }\n else {\n return MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)));\n }\n }\n else {\n return MapTreeModule_empty();\n }\n}\n\nexport function MapTreeModule_mapi(f, m) {\n return MapTreeModule_mapiOpt(f, m);\n}\n\nexport function MapTreeModule_foldBackOpt(f_mut, m_mut, x_mut) {\n MapTreeModule_foldBackOpt:\n while (true) {\n const f = f_mut, m = m_mut, x = x_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n const x_1 = MapTreeModule_foldBackOpt(f, MapTreeNode$2__get_Right(m2), x);\n const x_2 = f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x_1);\n f_mut = f;\n m_mut = MapTreeNode$2__get_Left(m2);\n x_mut = x_2;\n continue MapTreeModule_foldBackOpt;\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x);\n }\n }\n else {\n return x;\n }\n break;\n }\n}\n\nexport function MapTreeModule_foldBack(f, m, x) {\n return MapTreeModule_foldBackOpt(f, m, x);\n}\n\nexport function MapTreeModule_foldOpt(f_mut, x_mut, m_mut) {\n MapTreeModule_foldOpt:\n while (true) {\n const f = f_mut, x = x_mut, m = m_mut;\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n f_mut = f;\n x_mut = f(MapTreeModule_foldOpt(f, x, MapTreeNode$2__get_Left(m2)), MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n m_mut = MapTreeNode$2__get_Right(m2);\n continue MapTreeModule_foldOpt;\n }\n else {\n return f(x, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return x;\n }\n break;\n }\n}\n\nexport function MapTreeModule_fold(f, x, m) {\n return MapTreeModule_foldOpt(f, x, m);\n}\n\nexport function MapTreeModule_foldSectionOpt(comparer, lo, hi, f, m, x) {\n const foldFromTo = (f_1_mut, m_1_mut, x_1_mut) => {\n foldFromTo:\n while (true) {\n const f_1 = f_1_mut, m_1 = m_1_mut, x_1 = x_1_mut;\n if (m_1 != null) {\n const m2 = m_1;\n if (m2 instanceof MapTreeNode$2) {\n const cLoKey = comparer.Compare(lo, MapTreeLeaf$2__get_Key(m2)) | 0;\n const cKeyHi = comparer.Compare(MapTreeLeaf$2__get_Key(m2), hi) | 0;\n const x_2 = (cLoKey < 0) ? foldFromTo(f_1, MapTreeNode$2__get_Left(m2), x_1) : x_1;\n const x_3 = ((cLoKey <= 0) ? (cKeyHi <= 0) : false) ? f_1(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x_2) : x_2;\n if (cKeyHi < 0) {\n f_1_mut = f_1;\n m_1_mut = MapTreeNode$2__get_Right(m2);\n x_1_mut = x_3;\n continue foldFromTo;\n }\n else {\n return x_3;\n }\n }\n else if ((comparer.Compare(lo, MapTreeLeaf$2__get_Key(m2)) <= 0) ? (comparer.Compare(MapTreeLeaf$2__get_Key(m2), hi) <= 0) : false) {\n return f_1(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x_1);\n }\n else {\n return x_1;\n }\n }\n else {\n return x_1;\n }\n break;\n }\n };\n if (comparer.Compare(lo, hi) === 1) {\n return x;\n }\n else {\n return foldFromTo(f, m, x);\n }\n}\n\nexport function MapTreeModule_foldSection(comparer, lo, hi, f, m, x) {\n return MapTreeModule_foldSectionOpt(comparer, lo, hi, f, m, x);\n}\n\nexport function MapTreeModule_toList(m) {\n const loop = (m_1_mut, acc_mut) => {\n loop:\n while (true) {\n const m_1 = m_1_mut, acc = acc_mut;\n if (m_1 != null) {\n const m2 = m_1;\n if (m2 instanceof MapTreeNode$2) {\n m_1_mut = MapTreeNode$2__get_Left(m2);\n acc_mut = cons([MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)], loop(MapTreeNode$2__get_Right(m2), acc));\n continue loop;\n }\n else {\n return cons([MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)], acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n };\n return loop(m, empty_1());\n}\n\nexport function MapTreeModule_copyToArray(m, arr, i) {\n let j = i;\n MapTreeModule_iter((x, y) => {\n arr[j] = [x, y];\n j = ((j + 1) | 0);\n }, m);\n}\n\nexport function MapTreeModule_toArray(m) {\n const n = MapTreeModule_size(m) | 0;\n const res = fill(new Array(n), 0, n, [null, null]);\n MapTreeModule_copyToArray(m, res, 0);\n return res;\n}\n\nexport function MapTreeModule_ofList(comparer, l) {\n return fold_1((acc, tupledArg) => MapTreeModule_add(comparer, tupledArg[0], tupledArg[1], acc), MapTreeModule_empty(), l);\n}\n\nexport function MapTreeModule_mkFromEnumerator(comparer_mut, acc_mut, e_mut) {\n MapTreeModule_mkFromEnumerator:\n while (true) {\n const comparer = comparer_mut, acc = acc_mut, e = e_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const patternInput = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n comparer_mut = comparer;\n acc_mut = MapTreeModule_add(comparer, patternInput[0], patternInput[1], acc);\n e_mut = e;\n continue MapTreeModule_mkFromEnumerator;\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function MapTreeModule_ofArray(comparer, arr) {\n let res = MapTreeModule_empty();\n for (let idx = 0; idx <= (arr.length - 1); idx++) {\n const forLoopVar = arr[idx];\n res = MapTreeModule_add(comparer, forLoopVar[0], forLoopVar[1], res);\n }\n return res;\n}\n\nexport function MapTreeModule_ofSeq(comparer, c) {\n if (isArrayLike(c)) {\n return MapTreeModule_ofArray(comparer, c);\n }\n else if (c instanceof FSharpList) {\n return MapTreeModule_ofList(comparer, c);\n }\n else {\n const ie = getEnumerator(c);\n try {\n return MapTreeModule_mkFromEnumerator(comparer, MapTreeModule_empty(), ie);\n }\n finally {\n ie.Dispose();\n }\n }\n}\n\nexport class MapTreeModule_MapIterator$2 extends Record {\n constructor(stack, started) {\n super();\n this.stack = stack;\n this.started = started;\n }\n}\n\nexport function MapTreeModule_MapIterator$2$reflection(gen0, gen1) {\n return record_type(\"Map.MapTreeModule.MapIterator`2\", [gen0, gen1], MapTreeModule_MapIterator$2, () => [[\"stack\", list_type(option_type(MapTreeLeaf$2$reflection(gen0, gen1)))], [\"started\", bool_type]]);\n}\n\nexport function MapTreeModule_collapseLHS(stack_mut) {\n MapTreeModule_collapseLHS:\n while (true) {\n const stack = stack_mut;\n if (!isEmpty_1(stack)) {\n const rest = tail(stack);\n const m = head(stack);\n if (m != null) {\n const m2 = m;\n if (m2 instanceof MapTreeNode$2) {\n stack_mut = ofArrayWithTail([MapTreeNode$2__get_Left(m2), MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)), MapTreeNode$2__get_Right(m2)], rest);\n continue MapTreeModule_collapseLHS;\n }\n else {\n return stack;\n }\n }\n else {\n stack_mut = rest;\n continue MapTreeModule_collapseLHS;\n }\n }\n else {\n return empty_1();\n }\n break;\n }\n}\n\nexport function MapTreeModule_mkIterator(m) {\n return new MapTreeModule_MapIterator$2(MapTreeModule_collapseLHS(singleton(m)), false);\n}\n\nexport function MapTreeModule_notStarted() {\n throw (new Error(\"enumeration not started\"));\n}\n\nexport function MapTreeModule_alreadyFinished() {\n throw (new Error(\"enumeration already finished\"));\n}\n\nexport function MapTreeModule_current(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (!isEmpty_1(matchValue)) {\n if (head(matchValue) != null) {\n const m = head(matchValue);\n if (m instanceof MapTreeNode$2) {\n throw (new Error(\"Please report error: Map iterator, unexpected stack for current\"));\n }\n else {\n return [MapTreeLeaf$2__get_Key(m), MapTreeLeaf$2__get_Value(m)];\n }\n }\n else {\n throw (new Error(\"Please report error: Map iterator, unexpected stack for current\"));\n }\n }\n else {\n return MapTreeModule_alreadyFinished();\n }\n }\n else {\n return MapTreeModule_notStarted();\n }\n}\n\nexport function MapTreeModule_moveNext(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (!isEmpty_1(matchValue)) {\n if (head(matchValue) != null) {\n const m = head(matchValue);\n if (m instanceof MapTreeNode$2) {\n throw (new Error(\"Please report error: Map iterator, unexpected stack for moveNext\"));\n }\n else {\n i.stack = MapTreeModule_collapseLHS(tail(matchValue));\n return !isEmpty_1(i.stack);\n }\n }\n else {\n throw (new Error(\"Please report error: Map iterator, unexpected stack for moveNext\"));\n }\n }\n else {\n return false;\n }\n }\n else {\n i.started = true;\n return !isEmpty_1(i.stack);\n }\n}\n\nexport function MapTreeModule_mkIEnumerator(m) {\n let i = MapTreeModule_mkIterator(m);\n return {\n [\"System.Collections.Generic.IEnumerator`1.get_Current\"]() {\n return MapTreeModule_current(i);\n },\n [\"System.Collections.IEnumerator.get_Current\"]() {\n return MapTreeModule_current(i);\n },\n [\"System.Collections.IEnumerator.MoveNext\"]() {\n return MapTreeModule_moveNext(i);\n },\n [\"System.Collections.IEnumerator.Reset\"]() {\n i = MapTreeModule_mkIterator(m);\n },\n Dispose() {\n },\n };\n}\n\nexport function MapTreeModule_toSeq(s) {\n return unfold((en_1) => {\n if (en_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return [en_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), en_1];\n }\n else {\n return void 0;\n }\n }, MapTreeModule_mkIEnumerator(s));\n}\n\nexport class FSharpMap {\n constructor(comparer, tree) {\n this.comparer = comparer;\n this.tree = tree;\n }\n GetHashCode() {\n const this$ = this;\n return FSharpMap__ComputeHashCode(this$) | 0;\n }\n Equals(that) {\n const this$ = this;\n if (that instanceof FSharpMap) {\n const e1 = getEnumerator(this$);\n try {\n const e2 = getEnumerator(that);\n try {\n const loop = () => {\n const m1 = e1[\"System.Collections.IEnumerator.MoveNext\"]();\n if (m1 === e2[\"System.Collections.IEnumerator.MoveNext\"]()) {\n if (!m1) {\n return true;\n }\n else {\n const e1c = e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n const e2c = e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (equals(e1c[0], e2c[0]) ? equals(e1c[1], e2c[1]) : false) {\n return loop();\n }\n else {\n return false;\n }\n }\n }\n else {\n return false;\n }\n };\n return loop();\n }\n finally {\n e2.Dispose();\n }\n }\n finally {\n e1.Dispose();\n }\n }\n else {\n return false;\n }\n }\n toString() {\n const this$ = this;\n return (\"map [\" + join(\"; \", map_1((kv) => format(\"({0}, {1})\", kv[0], kv[1]), this$))) + \"]\";\n }\n get [Symbol.toStringTag]() {\n return \"FSharpMap\";\n }\n toJSON(_key) {\n const this$ = this;\n return Array.from(this$);\n }\n GetEnumerator() {\n const __ = this;\n return MapTreeModule_mkIEnumerator(__.tree);\n }\n [Symbol.iterator]() {\n return toIterator(this.GetEnumerator());\n }\n [\"System.Collections.IEnumerable.GetEnumerator\"]() {\n const __ = this;\n return MapTreeModule_mkIEnumerator(__.tree);\n }\n CompareTo(obj) {\n const m = this;\n if (obj instanceof FSharpMap) {\n return compareWith((kvp1, kvp2) => {\n const c = m.comparer.Compare(kvp1[0], kvp2[0]) | 0;\n return ((c !== 0) ? c : compare(kvp1[1], kvp2[1])) | 0;\n }, m, obj) | 0;\n }\n else {\n throw (new Error(\"not comparable\\\\nParameter name: obj\"));\n }\n }\n [\"System.Collections.Generic.ICollection`1.Add2B595\"](x) {\n throw (new Error(\"Map cannot be mutated\"));\n }\n [\"System.Collections.Generic.ICollection`1.Clear\"]() {\n throw (new Error(\"Map cannot be mutated\"));\n }\n [\"System.Collections.Generic.ICollection`1.Remove2B595\"](x) {\n throw (new Error(\"Map cannot be mutated\"));\n }\n [\"System.Collections.Generic.ICollection`1.Contains2B595\"](x) {\n const m = this;\n return FSharpMap__ContainsKey(m, x[0]) ? equals(FSharpMap__get_Item(m, x[0]), x[1]) : false;\n }\n [\"System.Collections.Generic.ICollection`1.CopyToZ2E171D71\"](arr, i) {\n const m = this;\n MapTreeModule_copyToArray(m.tree, arr, i);\n }\n [\"System.Collections.Generic.ICollection`1.get_IsReadOnly\"]() {\n return true;\n }\n [\"System.Collections.Generic.ICollection`1.get_Count\"]() {\n const m = this;\n return FSharpMap__get_Count(m) | 0;\n }\n [\"System.Collections.Generic.IReadOnlyCollection`1.get_Count\"]() {\n const m = this;\n return FSharpMap__get_Count(m) | 0;\n }\n get size() {\n const m = this;\n return FSharpMap__get_Count(m) | 0;\n }\n clear() {\n throw (new Error(\"Map cannot be mutated\"));\n }\n delete(_arg1) {\n throw (new Error(\"Map cannot be mutated\"));\n return false;\n }\n entries() {\n const m = this;\n return map_1((p) => [p[0], p[1]], m);\n }\n get(k) {\n const m = this;\n return FSharpMap__get_Item(m, k);\n }\n has(k) {\n const m = this;\n return FSharpMap__ContainsKey(m, k);\n }\n keys() {\n const m = this;\n return map_1((p) => p[0], m);\n }\n set(k, v) {\n const m = this;\n throw (new Error(\"Map cannot be mutated\"));\n return m;\n }\n values() {\n const m = this;\n return map_1((p) => p[1], m);\n }\n forEach(f, thisArg) {\n const m = this;\n iterate_1((p) => {\n f(p[1], p[0], m);\n }, m);\n }\n}\n\nexport function FSharpMap$reflection(gen0, gen1) {\n return class_type(\"Map.FSharpMap\", [gen0, gen1], FSharpMap);\n}\n\nexport function FSharpMap_$ctor(comparer, tree) {\n return new FSharpMap(comparer, tree);\n}\n\n(() => {\n FSharpMap.empty = FSharpMap_$ctor(LanguagePrimitives_FastGenericComparer(), MapTreeModule_empty());\n})();\n\nexport function FSharpMap_get_Empty() {\n return FSharpMap.empty;\n}\n\nexport function FSharpMap_Create(ie) {\n const comparer = LanguagePrimitives_FastGenericComparer();\n return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, ie));\n}\n\nexport function FSharpMap__get_Comparer(m) {\n return m.comparer;\n}\n\nexport function FSharpMap__get_Tree(m) {\n return m.tree;\n}\n\nexport function FSharpMap__Add(m, key, value) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_add(m.comparer, key, value, m.tree));\n}\n\nexport function FSharpMap__Change(m, key, f) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_change(m.comparer, key, f, m.tree));\n}\n\nexport function FSharpMap__get_IsEmpty(m) {\n return m.tree == null;\n}\n\nexport function FSharpMap__get_Item(m, key) {\n return MapTreeModule_find(m.comparer, key, m.tree);\n}\n\nexport function FSharpMap__TryPick(m, f) {\n return MapTreeModule_tryPick(f, m.tree);\n}\n\nexport function FSharpMap__Exists(m, predicate) {\n return MapTreeModule_exists(predicate, m.tree);\n}\n\nexport function FSharpMap__Filter(m, predicate) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_filter(m.comparer, predicate, m.tree));\n}\n\nexport function FSharpMap__ForAll(m, predicate) {\n return MapTreeModule_forall(predicate, m.tree);\n}\n\nexport function FSharpMap__Fold(m, f, acc) {\n return MapTreeModule_foldBack(f, m.tree, acc);\n}\n\nexport function FSharpMap__FoldSection(m, lo, hi, f, acc) {\n return MapTreeModule_foldSection(m.comparer, lo, hi, f, m.tree, acc);\n}\n\nexport function FSharpMap__Iterate(m, f) {\n MapTreeModule_iter(f, m.tree);\n}\n\nexport function FSharpMap__MapRange(m, f) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_map(f, m.tree));\n}\n\nexport function FSharpMap__Map(m, f) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_mapi(f, m.tree));\n}\n\nexport function FSharpMap__Partition(m, predicate) {\n const patternInput = MapTreeModule_partition(m.comparer, predicate, m.tree);\n return [FSharpMap_$ctor(m.comparer, patternInput[0]), FSharpMap_$ctor(m.comparer, patternInput[1])];\n}\n\nexport function FSharpMap__get_Count(m) {\n return MapTreeModule_size(m.tree);\n}\n\nexport function FSharpMap__ContainsKey(m, key) {\n return MapTreeModule_mem(m.comparer, key, m.tree);\n}\n\nexport function FSharpMap__Remove(m, key) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_remove(m.comparer, key, m.tree));\n}\n\nexport function FSharpMap__TryGetValue(__, key, value) {\n const matchValue = MapTreeModule_tryFind(__.comparer, key, __.tree);\n if (matchValue == null) {\n return false;\n }\n else {\n const v = value_1(matchValue);\n value.contents = v;\n return true;\n }\n}\n\nexport function FSharpMap__TryFind(m, key) {\n return MapTreeModule_tryFind(m.comparer, key, m.tree);\n}\n\nexport function FSharpMap__ToList(m) {\n return MapTreeModule_toList(m.tree);\n}\n\nexport function FSharpMap__ToArray(m) {\n return MapTreeModule_toArray(m.tree);\n}\n\nexport function FSharpMap__ComputeHashCode(this$) {\n const combineHash = (x, y) => (((x << 1) + y) + 631);\n let res = 0;\n const enumerator = getEnumerator(this$);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const activePatternResult5329 = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n res = (combineHash(res, structuralHash(activePatternResult5329[0])) | 0);\n res = (combineHash(res, structuralHash(activePatternResult5329[1])) | 0);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return res | 0;\n}\n\nexport function isEmpty(table) {\n return FSharpMap__get_IsEmpty(table);\n}\n\nexport function add(key, value, table) {\n return FSharpMap__Add(table, key, value);\n}\n\nexport function change(key, f, table) {\n return FSharpMap__Change(table, key, f);\n}\n\nexport function find(key, table) {\n return FSharpMap__get_Item(table, key);\n}\n\nexport function tryFind(key, table) {\n return FSharpMap__TryFind(table, key);\n}\n\nexport function remove(key, table) {\n return FSharpMap__Remove(table, key);\n}\n\nexport function containsKey(key, table) {\n return FSharpMap__ContainsKey(table, key);\n}\n\nexport function iterate(action, table) {\n FSharpMap__Iterate(table, action);\n}\n\nexport function tryPick(chooser, table) {\n return FSharpMap__TryPick(table, chooser);\n}\n\nexport function pick(chooser, table) {\n const matchValue = tryPick(chooser, table);\n if (matchValue != null) {\n return value_1(matchValue);\n }\n else {\n throw (new Error());\n }\n}\n\nexport function exists(predicate, table) {\n return FSharpMap__Exists(table, predicate);\n}\n\nexport function filter(predicate, table) {\n return FSharpMap__Filter(table, predicate);\n}\n\nexport function partition(predicate, table) {\n return FSharpMap__Partition(table, predicate);\n}\n\nexport function forAll(predicate, table) {\n return FSharpMap__ForAll(table, predicate);\n}\n\nexport function map(mapping, table) {\n return FSharpMap__Map(table, mapping);\n}\n\nexport function fold(folder, state, table) {\n return MapTreeModule_fold(folder, state, FSharpMap__get_Tree(table));\n}\n\nexport function foldBack(folder, table, state) {\n return MapTreeModule_foldBack(folder, FSharpMap__get_Tree(table), state);\n}\n\nexport function toSeq(table) {\n return map_1((kvp) => [kvp[0], kvp[1]], table);\n}\n\nexport function findKey(predicate, table) {\n return pick_1((kvp) => {\n const k = kvp[0];\n if (predicate(k, kvp[1])) {\n return some(k);\n }\n else {\n return void 0;\n }\n }, table);\n}\n\nexport function tryFindKey(predicate, table) {\n return tryPick_1((kvp) => {\n const k = kvp[0];\n if (predicate(k, kvp[1])) {\n return some(k);\n }\n else {\n return void 0;\n }\n }, table);\n}\n\nexport function ofList(elements) {\n return FSharpMap_Create(elements);\n}\n\nexport function ofSeq(elements) {\n return FSharpMap_Create(elements);\n}\n\nexport function ofArray(elements) {\n const comparer = LanguagePrimitives_FastGenericComparer();\n return FSharpMap_$ctor(comparer, MapTreeModule_ofArray(comparer, elements));\n}\n\nexport function toList(table) {\n return FSharpMap__ToList(table);\n}\n\nexport function toArray(table) {\n return FSharpMap__ToArray(table);\n}\n\nexport function empty() {\n return FSharpMap_get_Empty();\n}\n\nexport function count(table) {\n return FSharpMap__get_Count(table);\n}\n\n","module.exports = __webpack_public_path__ + \"ef54f7440b4b4d946955c84677b0e6d9.svg\";","/**\n * DateTimeOffset functions.\n *\n * Note: Date instances are always DateObjects in local\n * timezone (because JS dates are all kinds of messed up).\n * A local date returns UTC epoc when `.getTime()` is called.\n *\n * Basically; invariant: date.getTime() always return UTC time.\n */\nimport { fromValue, ticksToUnixEpochMilliseconds, unixEpochMillisecondsToTicks } from \"./Long.js\";\nimport { compareDates, dateOffset, padWithZeros } from \"./Util.js\";\nexport const offsetRegex = /(?:Z|[+-](\\d+):?([0-5]?\\d)?)\\s*$/;\nexport function dateOffsetToString(offset) {\n const isMinus = offset < 0;\n offset = Math.abs(offset);\n const hours = ~~(offset / 3600000);\n const minutes = (offset % 3600000) / 60000;\n return (isMinus ? \"-\" : \"+\") +\n padWithZeros(hours, 2) + \":\" +\n padWithZeros(minutes, 2);\n}\nexport function dateToHalfUTCString(date, half) {\n const str = date.toISOString();\n return half === \"first\"\n ? str.substring(0, str.indexOf(\"T\"))\n : str.substring(str.indexOf(\"T\") + 1, str.length - 1);\n}\nfunction dateToISOString(d, utc) {\n if (utc) {\n return d.toISOString();\n }\n else {\n // JS Date is always local\n const printOffset = d.kind == null ? true : d.kind === 2 /* Local */;\n return padWithZeros(d.getFullYear(), 4) + \"-\" +\n padWithZeros(d.getMonth() + 1, 2) + \"-\" +\n padWithZeros(d.getDate(), 2) + \"T\" +\n padWithZeros(d.getHours(), 2) + \":\" +\n padWithZeros(d.getMinutes(), 2) + \":\" +\n padWithZeros(d.getSeconds(), 2) + \".\" +\n padWithZeros(d.getMilliseconds(), 3) +\n (printOffset ? dateOffsetToString(d.getTimezoneOffset() * -60000) : \"\");\n }\n}\nfunction dateToISOStringWithOffset(dateWithOffset, offset) {\n const str = dateWithOffset.toISOString();\n return str.substring(0, str.length - 1) + dateOffsetToString(offset);\n}\nfunction dateToStringWithCustomFormat(date, format, utc) {\n return format.replace(/(\\w)\\1*/g, (match) => {\n let rep = Number.NaN;\n switch (match.substring(0, 1)) {\n case \"y\":\n const y = utc ? date.getUTCFullYear() : date.getFullYear();\n rep = match.length < 4 ? y % 100 : y;\n break;\n case \"M\":\n rep = (utc ? date.getUTCMonth() : date.getMonth()) + 1;\n break;\n case \"d\":\n rep = utc ? date.getUTCDate() : date.getDate();\n break;\n case \"H\":\n rep = utc ? date.getUTCHours() : date.getHours();\n break;\n case \"h\":\n const h = utc ? date.getUTCHours() : date.getHours();\n rep = h > 12 ? h % 12 : h;\n break;\n case \"m\":\n rep = utc ? date.getUTCMinutes() : date.getMinutes();\n break;\n case \"s\":\n rep = utc ? date.getUTCSeconds() : date.getSeconds();\n break;\n case \"f\":\n rep = utc ? date.getUTCMilliseconds() : date.getMilliseconds();\n break;\n }\n if (Number.isNaN(rep)) {\n return match;\n }\n else {\n return (rep < 10 && match.length > 1) ? \"0\" + rep : \"\" + rep;\n }\n });\n}\nfunction dateToStringWithOffset(date, format) {\n var _a, _b, _c;\n const d = new Date(date.getTime() + ((_a = date.offset) !== null && _a !== void 0 ? _a : 0));\n if (typeof format !== \"string\") {\n return d.toISOString().replace(/\\.\\d+/, \"\").replace(/[A-Z]|\\.\\d+/g, \" \") + dateOffsetToString(((_b = date.offset) !== null && _b !== void 0 ? _b : 0));\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\": return dateToHalfUTCString(d, \"first\");\n case \"T\":\n case \"t\": return dateToHalfUTCString(d, \"second\");\n case \"O\":\n case \"o\": return dateToISOStringWithOffset(d, ((_c = date.offset) !== null && _c !== void 0 ? _c : 0));\n default: throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return dateToStringWithCustomFormat(d, format, true);\n }\n}\nfunction dateToStringWithKind(date, format) {\n const utc = date.kind === 1 /* UTC */;\n if (typeof format !== \"string\") {\n return utc ? date.toUTCString() : date.toLocaleString();\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\":\n return utc ? dateToHalfUTCString(date, \"first\") : date.toLocaleDateString();\n case \"T\":\n case \"t\":\n return utc ? dateToHalfUTCString(date, \"second\") : date.toLocaleTimeString();\n case \"O\":\n case \"o\":\n return dateToISOString(date, utc);\n default:\n throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return dateToStringWithCustomFormat(date, format, utc);\n }\n}\nexport function toString(date, format, _provider) {\n return date.offset != null\n ? dateToStringWithOffset(date, format)\n : dateToStringWithKind(date, format);\n}\nexport function DateTime(value, kind) {\n const d = new Date(value);\n d.kind = (kind == null ? 0 /* Unspecified */ : kind) | 0;\n return d;\n}\nexport function fromTicks(ticks, kind) {\n ticks = fromValue(ticks);\n kind = kind != null ? kind : 0 /* Unspecified */;\n let date = DateTime(ticksToUnixEpochMilliseconds(ticks), kind);\n // Ticks are local to offset (in this case, either UTC or Local/Unknown).\n // If kind is anything but UTC, that means that the tick number was not\n // in utc, thus getTime() cannot return UTC, and needs to be shifted.\n if (kind !== 1 /* UTC */) {\n date = DateTime(date.getTime() - dateOffset(date), kind);\n }\n return date;\n}\nexport function fromDateTimeOffset(date, kind) {\n var _a;\n switch (kind) {\n case 1 /* UTC */: return DateTime(date.getTime(), 1 /* UTC */);\n case 2 /* Local */: return DateTime(date.getTime(), 2 /* Local */);\n default:\n const d = DateTime(date.getTime() + ((_a = date.offset) !== null && _a !== void 0 ? _a : 0), kind);\n return DateTime(d.getTime() - dateOffset(d), kind);\n }\n}\nexport function getTicks(date) {\n return unixEpochMillisecondsToTicks(date.getTime(), dateOffset(date));\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTime(-62135596800000, 0 /* Unspecified */);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTime(253402300799999, 0 /* Unspecified */);\n}\nexport function parseRaw(input) {\n if (input === null) {\n throw new Error(\"Value cannot be null when parsing DateTime\");\n }\n if (input.trim() === \"\") {\n throw new Error(\"An empty string is not recognized as a valid DateTime\");\n }\n let date = new Date(input);\n if (isNaN(date.getTime())) {\n // Try to check strings JS Date cannot parse (see #1045, #1422)\n // tslint:disable-next-line:max-line-length\n const m = /^\\s*(\\d+[^\\w\\s:]\\d+[^\\w\\s:]\\d+)?\\s*(\\d+:\\d+(?::\\d+(?:\\.\\d+)?)?)?\\s*([AaPp][Mm])?\\s*([+-]\\d+(?::\\d+)?)?\\s*$/.exec(input);\n if (m != null) {\n let baseDate;\n let timeInSeconds = 0;\n if (m[2] != null) {\n const timeParts = m[2].split(\":\");\n timeInSeconds =\n parseInt(timeParts[0], 10) * 3600 +\n parseInt(timeParts[1] || \"0\", 10) * 60 +\n parseFloat(timeParts[2] || \"0\");\n if (m[3] != null && m[3].toUpperCase() === \"PM\") {\n timeInSeconds += 720;\n }\n }\n if (m[4] != null) { // There's an offset, parse as UTC\n if (m[1] != null) {\n baseDate = new Date(m[1] + \" UTC\");\n }\n else {\n const d = new Date();\n baseDate = new Date(d.getUTCFullYear() + \"/\" + (d.getUTCMonth() + 1) + \"/\" + d.getUTCDate());\n }\n const offsetParts = m[4].substr(1).split(\":\");\n let offsetInMinutes = parseInt(offsetParts[0], 10) * 60 + parseInt(offsetParts[1] || \"0\", 10);\n if (m[4][0] === \"+\") {\n offsetInMinutes *= -1;\n }\n timeInSeconds += offsetInMinutes * 60;\n }\n else {\n if (m[1] != null) {\n baseDate = new Date(m[1]);\n }\n else {\n const d = new Date();\n baseDate = new Date(d.getFullYear() + \"/\" + (d.getMonth() + 1) + \"/\" + d.getDate());\n }\n }\n date = new Date(baseDate.getTime() + timeInSeconds * 1000);\n // correct for daylight savings time\n date = new Date(date.getTime() + (date.getTimezoneOffset() - baseDate.getTimezoneOffset()) * 60000);\n }\n else {\n throw new Error(\"The string is not a valid Date.\");\n }\n }\n return date;\n}\nexport function parse(str, detectUTC = false) {\n const date = parseRaw(str);\n const offset = offsetRegex.exec(str);\n // .NET always parses DateTime as Local if there's offset info (even \"Z\")\n // Newtonsoft.Json uses UTC if the offset is \"Z\"\n const kind = offset != null\n ? (detectUTC && offset[0] === \"Z\" ? 1 /* UTC */ : 2 /* Local */)\n : 0 /* Unspecified */;\n return DateTime(date.getTime(), kind);\n}\nexport function tryParse(v, defValue) {\n try {\n defValue.contents = parse(v);\n return true;\n }\n catch (_err) {\n return false;\n }\n}\nexport function create(year, month, day, h = 0, m = 0, s = 0, ms = 0, kind) {\n const dateValue = kind === 1 /* UTC */\n ? Date.UTC(year, month - 1, day, h, m, s, ms)\n : new Date(year, month - 1, day, h, m, s, ms).getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date.\");\n }\n const date = DateTime(dateValue, kind);\n if (year <= 99) {\n date.setFullYear(year, month - 1, day);\n }\n return date;\n}\nexport function now() {\n return DateTime(Date.now(), 2 /* Local */);\n}\nexport function utcNow() {\n return DateTime(Date.now(), 1 /* UTC */);\n}\nexport function today() {\n return date(now());\n}\nexport function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nexport function daysInMonth(year, month) {\n return month === 2\n ? (isLeapYear(year) ? 29 : 28)\n : (month >= 8 ? (month % 2 === 0 ? 31 : 30) : (month % 2 === 0 ? 30 : 31));\n}\nexport function toUniversalTime(date) {\n return date.kind === 1 /* UTC */ ? date : DateTime(date.getTime(), 1 /* UTC */);\n}\nexport function toLocalTime(date) {\n return date.kind === 2 /* Local */ ? date : DateTime(date.getTime(), 2 /* Local */);\n}\nexport function specifyKind(d, kind) {\n return create(year(d), month(d), day(d), hour(d), minute(d), second(d), millisecond(d), kind);\n}\nexport function timeOfDay(d) {\n return hour(d) * 3600000\n + minute(d) * 60000\n + second(d) * 1000\n + millisecond(d);\n}\nexport function date(d) {\n return create(year(d), month(d), day(d), 0, 0, 0, 0, d.kind);\n}\nexport function day(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDate() : d.getDate();\n}\nexport function hour(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCHours() : d.getHours();\n}\nexport function millisecond(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMilliseconds() : d.getMilliseconds();\n}\nexport function minute(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMinutes() : d.getMinutes();\n}\nexport function month(d) {\n return (d.kind === 1 /* UTC */ ? d.getUTCMonth() : d.getMonth()) + 1;\n}\nexport function second(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCSeconds() : d.getSeconds();\n}\nexport function year(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCFullYear() : d.getFullYear();\n}\nexport function dayOfWeek(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDay() : d.getDay();\n}\nexport function dayOfYear(d) {\n const _year = year(d);\n const _month = month(d);\n let _day = day(d);\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n const newDate = DateTime(d.getTime() + ts, d.kind);\n if (d.kind === 2 /* Local */) {\n const oldTzOffset = d.getTimezoneOffset();\n const newTzOffset = newDate.getTimezoneOffset();\n return oldTzOffset !== newTzOffset\n ? DateTime(newDate.getTime() + (newTzOffset - oldTzOffset) * 60000, d.kind)\n : newDate;\n }\n else {\n return newDate;\n }\n}\nexport function addDays(d, v) {\n return add(d, v * 86400000);\n}\nexport function addHours(d, v) {\n return add(d, v * 3600000);\n}\nexport function addMinutes(d, v) {\n return add(d, v * 60000);\n}\nexport function addSeconds(d, v) {\n return add(d, v * 1000);\n}\nexport function addMilliseconds(d, v) {\n return add(d, v);\n}\nexport function addYears(d, v) {\n const newMonth = month(d);\n const newYear = year(d) + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function addMonths(d, v) {\n let newMonth = month(d) + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = year(d) + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function subtract(d, that) {\n return typeof that === \"number\"\n ? add(d, -that)\n : d.getTime() - that.getTime();\n}\nexport function toLongDateString(d) {\n return d.toDateString();\n}\nexport function toShortDateString(d) {\n return d.toLocaleDateString();\n}\nexport function toLongTimeString(d) {\n return d.toLocaleTimeString();\n}\nexport function toShortTimeString(d) {\n return d.toLocaleTimeString().replace(/:\\d\\d(?!:)/, \"\");\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport const compare = compareDates;\nexport const compareTo = compareDates;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function isDaylightSavingTime(x) {\n const jan = new Date(x.getFullYear(), 0, 1);\n const jul = new Date(x.getFullYear(), 6, 1);\n return isDST(jan.getTimezoneOffset(), jul.getTimezoneOffset(), x.getTimezoneOffset());\n}\nfunction isDST(janOffset, julOffset, tOffset) {\n return Math.min(janOffset, julOffset) === tOffset;\n}\nexport default DateTime;\n","module.exports = __webpack_public_path__ + \"c24eab5d3b54529943f859a5871b509e.svg\";","module.exports = __webpack_public_path__ + \"6fd47f02a8db8a6cadf9f5138495e49e.png\";","module.exports = __webpack_public_path__ + \"9e34d3aa2333476dd9fdf8f6e605a1e7.png\";","import { Union, Record } from \"../fable-library.3.2.1/Types.js\";\nimport { union_type, tuple_type, lambda_type, unit_type, array_type, record_type, class_type, string_type } from \"../fable-library.3.2.1/Reflection.js\";\n\nexport class RecordField extends Record {\n constructor(FieldName, FieldType, PropertyInfo) {\n super();\n this.FieldName = FieldName;\n this.FieldType = FieldType;\n this.PropertyInfo = PropertyInfo;\n }\n}\n\nexport function RecordField$reflection() {\n return record_type(\"Fable.SimpleJson.RecordField\", [], RecordField, () => [[\"FieldName\", string_type], [\"FieldType\", TypeInfo$reflection()], [\"PropertyInfo\", class_type(\"System.Reflection.PropertyInfo\")]]);\n}\n\nexport class UnionCase extends Record {\n constructor(CaseName, CaseTypes, Info) {\n super();\n this.CaseName = CaseName;\n this.CaseTypes = CaseTypes;\n this.Info = Info;\n }\n}\n\nexport function UnionCase$reflection() {\n return record_type(\"Fable.SimpleJson.UnionCase\", [], UnionCase, () => [[\"CaseName\", string_type], [\"CaseTypes\", array_type(TypeInfo$reflection())], [\"Info\", class_type(\"Microsoft.FSharp.Reflection.UnionCaseInfo\")]]);\n}\n\nexport class TypeInfo extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Unit\", \"Char\", \"String\", \"UInt16\", \"UInt32\", \"UInt64\", \"Int32\", \"Bool\", \"Float32\", \"Float\", \"Decimal\", \"Short\", \"Long\", \"Byte\", \"SByte\", \"DateTime\", \"DateTimeOffset\", \"BigInt\", \"TimeSpan\", \"Guid\", \"Object\", \"Any\", \"Async\", \"Promise\", \"Option\", \"List\", \"Set\", \"Array\", \"Seq\", \"Tuple\", \"Map\", \"Dictionary\", \"ResizeArray\", \"HashSet\", \"Func\", \"Enum\", \"Record\", \"Union\"];\n }\n}\n\nexport function TypeInfo$reflection() {\n return union_type(\"Fable.SimpleJson.TypeInfo\", [], TypeInfo, () => [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [[\"Item\", lambda_type(unit_type, class_type(\"System.Type\"))]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, array_type(TypeInfo$reflection()))]], [[\"Item\", lambda_type(unit_type, tuple_type(TypeInfo$reflection(), TypeInfo$reflection()))]], [[\"Item\", lambda_type(unit_type, tuple_type(TypeInfo$reflection(), TypeInfo$reflection(), class_type(\"System.Type\")))]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, TypeInfo$reflection())]], [[\"Item\", lambda_type(unit_type, array_type(TypeInfo$reflection()))]], [[\"Item\", lambda_type(unit_type, tuple_type(TypeInfo$reflection(), class_type(\"System.Type\")))]], [[\"Item\", lambda_type(unit_type, tuple_type(array_type(RecordField$reflection()), class_type(\"System.Type\")))]], [[\"Item\", lambda_type(unit_type, tuple_type(array_type(UnionCase$reflection()), class_type(\"System.Type\")))]]]);\n}\n\n","export default function quote(inputText) {\r\n var escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\r\n var meta = {\r\n '\\b': '\\\\b',\r\n '\\t': '\\\\t',\r\n '\\n': '\\\\n',\r\n '\\f': '\\\\f',\r\n '\\r': '\\\\r',\r\n '\"': '\\\\\"',\r\n '\\\\': '\\\\\\\\'\r\n }\r\n\r\n escapable.lastIndex = 0;\r\n return escapable.test(inputText) ?\r\n '\"' + inputText.replace(escapable, function (a) {\r\n var c = meta[a];\r\n return typeof c === 'string' ? c :\r\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\r\n }) + '\"' :\r\n '\"' + inputText + '\"';\r\n}","const littleEndian = true;\nfunction utf16le_encode(str) {\n const bytes = new Uint8Array(str.length * 2);\n const view = new DataView(bytes.buffer);\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n view.setUint16(i * 2, code, littleEndian);\n }\n return bytes;\n}\nfunction utf16le_decode(bytes) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n const chars = new Array(view.byteLength / 2);\n for (let i = 0; i < chars.length; i++) {\n const code = view.getUint16(i * 2, littleEndian);\n chars[i] = String.fromCharCode(code);\n }\n return chars.join(\"\");\n}\nfunction utf8_encode(str) {\n let pos = 0;\n let buf = new Uint8Array(str.length * 3);\n for (let i = 0; i < str.length; i++) {\n let code = str.charCodeAt(i);\n if (code >= 0xD800 && code <= 0xDBFF) {\n const nextCode = (i < str.length) ? str.charCodeAt(i + 1) : 0;\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n i += 1;\n code = (code - 0xD800) * 0x400 + nextCode - 0xDC00 + 0x10000;\n if (code > 0xFFFF) {\n buf[pos++] = (0x1E << 3) | (code >>> 18);\n buf[pos++] = (0x2 << 6) | ((code >>> 12) & 0x3F);\n buf[pos++] = (0x2 << 6) | ((code >>> 6) & 0x3F);\n buf[pos++] = (0x2 << 6) | (code & 0x3F);\n }\n }\n else {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n }\n }\n else if (code <= 0x007F) {\n buf[pos++] = (0x0 << 7) | code;\n }\n else if (code <= 0x07FF) {\n buf[pos++] = (0x6 << 5) | (code >>> 6);\n buf[pos++] = (0x2 << 6) | (code & 0x3F);\n }\n else {\n buf[pos++] = (0xE << 4) | (code >>> 12);\n buf[pos++] = (0x2 << 6) | ((code >>> 6) & 0x3F);\n buf[pos++] = (0x2 << 6) | (code & 0x3F);\n }\n }\n buf = new Uint8Array(buf.buffer.slice(0, pos));\n return buf;\n}\nfunction utf8_decode(bytes) {\n let pos = 0;\n const decodeUtf8 = () => {\n const i1 = bytes[pos++];\n if ((i1 & 0x80) === 0) {\n return i1;\n }\n else if ((i1 & 0xE0) === 0xC0) {\n const i2 = bytes[pos++];\n return ((i1 & 0x1F) << 6) | (i2 & 0x3F);\n }\n else if ((i1 & 0xF0) === 0xE0) {\n const i2 = bytes[pos++];\n const i3 = bytes[pos++];\n return ((i1 & 0x0F) << 12) | ((i2 & 0x3F) << 6) | (i3 & 0x3F);\n }\n else if ((i1 & 0xF8) === 0xF0) {\n const i2 = bytes[pos++];\n const i3 = bytes[pos++];\n const i4 = bytes[pos++];\n return ((i1 & 0x07) << 18) | ((i2 & 0x3F) << 12) | ((i3 & 0x3F) << 6) | (i4 & 0x3F);\n }\n else {\n throw new RangeError(\"Invalid UTF8 byte: \" + i1);\n }\n };\n const chars = new Array();\n while (pos < bytes.length) {\n const code = decodeUtf8();\n chars.push(String.fromCodePoint(code));\n }\n return chars.join(\"\");\n}\nclass UTF16LE {\n getBytes(str, index, count) {\n str = Array.isArray(str) ? str.join(\"\") : str;\n if (index != null && count != null) {\n str = str.substring(index, index + count);\n }\n else if (index != null) {\n str = str.substring(index);\n }\n if (typeof Buffer !== \"undefined\") {\n const bytes = Buffer.from(str, \"utf16le\");\n return new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n }\n else {\n return utf16le_encode(str); // polyfill\n }\n }\n getString(bytes, index, count) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n let buffer = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n if (index != null && count != null) {\n buffer = buffer.subarray(index, index + count);\n }\n else if (index != null) {\n buffer = buffer.subarray(index);\n }\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder(\"utf-16le\").decode(buffer);\n }\n else if (typeof Buffer !== \"undefined\") {\n return Buffer.from(buffer).toString(\"utf16le\");\n }\n else {\n return utf16le_decode(buffer); // polyfill\n }\n }\n}\nclass UTF8 {\n getBytes(str, index, count) {\n str = Array.isArray(str) ? str.join(\"\") : str;\n if (index != null && count != null) {\n str = str.substring(index, index + count);\n }\n else if (index != null) {\n str = str.substring(index);\n }\n if (typeof TextEncoder !== \"undefined\") {\n return new TextEncoder().encode(str);\n }\n else if (typeof Buffer !== \"undefined\") {\n const bytes = Buffer.from(str, \"utf8\");\n return new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n }\n else {\n return utf8_encode(str); // polyfill\n }\n }\n getString(bytes, index, count) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n let buffer = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n if (index != null && count != null) {\n buffer = buffer.subarray(index, index + count);\n }\n else if (index != null) {\n buffer = buffer.subarray(index);\n }\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder().decode(buffer);\n }\n else if (typeof Buffer !== \"undefined\") {\n return Buffer.from(buffer).toString(\"utf8\");\n }\n else {\n return utf8_decode(buffer); // polyfill\n }\n }\n}\nconst _UTF16 = new UTF16LE();\nconst _UTF8 = new UTF8();\nexport function get_Unicode() { return _UTF16; }\nexport function get_UTF8() { return _UTF8; }\n","import { equals, isArrayLike, isDisposable, toIterator, getEnumerator } from \"./Util.js\";\nimport { toString } from \"./Types.js\";\nimport { class_type } from \"./Reflection.js\";\nimport { some, value as value_1 } from \"./Option.js\";\nimport { Operators_NullArg } from \"./FSharp.Core.js\";\nimport { chunkBySize as chunkBySize_1, permute as permute_1, transpose as transpose_1, windowed as windowed_1, splitInto as splitInto_1, map as map_1, pairwise as pairwise_1, scanBack as scanBack_1, reverse as reverse_1, mapFoldBack as mapFoldBack_1, mapFold as mapFold_1, tryItem as tryItem_1, tryHead as tryHead_1, foldBack2 as foldBack2_1, foldBack as foldBack_1, tryFindIndexBack as tryFindIndexBack_1, tryFindBack as tryFindBack_1, singleton as singleton_1 } from \"./Array.js\";\nimport { length as length_1, tryItem as tryItem_2, isEmpty as isEmpty_1, tryHead as tryHead_2, ofSeq as ofSeq_1, ofArray as ofArray_1, toArray as toArray_1, FSharpList } from \"./List.js\";\n\nexport const SR_enumerationAlreadyFinished = \"Enumeration already finished.\";\n\nexport const SR_enumerationNotStarted = \"Enumeration has not started. Call MoveNext.\";\n\nexport const SR_inputSequenceEmpty = \"The input sequence was empty.\";\n\nexport const SR_inputSequenceTooLong = \"The input sequence contains more than one element.\";\n\nexport const SR_keyNotFoundAlt = \"An index satisfying the predicate was not found in the collection.\";\n\nexport const SR_notEnoughElements = \"The input sequence has an insufficient number of elements.\";\n\nexport const SR_resetNotSupported = \"Reset is not supported on this enumerator.\";\n\nexport function Enumerator_noReset() {\n throw (new Error(SR_resetNotSupported));\n}\n\nexport function Enumerator_notStarted() {\n throw (new Error(SR_enumerationNotStarted));\n}\n\nexport function Enumerator_alreadyFinished() {\n throw (new Error(SR_enumerationAlreadyFinished));\n}\n\nexport class Enumerator_Seq {\n constructor(f) {\n this.f = f;\n }\n toString() {\n const xs = this;\n const maxCount = 4;\n let i = 0;\n let str = \"seq [\";\n const e = getEnumerator(xs);\n try {\n while ((i < maxCount) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n if (i > 0) {\n str = (str + \"; \");\n }\n str = (str + toString(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()));\n i = ((i + 1) | 0);\n }\n if (i === maxCount) {\n str = (str + \"; ...\");\n }\n return str + \"]\";\n }\n finally {\n e.Dispose();\n }\n }\n GetEnumerator() {\n const x = this;\n return x.f();\n }\n [Symbol.iterator]() {\n return toIterator(this.GetEnumerator());\n }\n [\"System.Collections.IEnumerable.GetEnumerator\"]() {\n const x = this;\n return x.f();\n }\n}\n\nexport function Enumerator_Seq$reflection(gen0) {\n return class_type(\"SeqModule.Enumerator.Seq\", [gen0], Enumerator_Seq);\n}\n\nexport function Enumerator_Seq_$ctor_673A07F2(f) {\n return new Enumerator_Seq(f);\n}\n\nexport class Enumerator_FromFunctions$1 {\n constructor(current, next, dispose) {\n this.current = current;\n this.next = next;\n this.dispose = dispose;\n }\n [\"System.Collections.Generic.IEnumerator`1.get_Current\"]() {\n const __ = this;\n return __.current();\n }\n [\"System.Collections.IEnumerator.get_Current\"]() {\n const __ = this;\n return __.current();\n }\n [\"System.Collections.IEnumerator.MoveNext\"]() {\n const __ = this;\n return __.next();\n }\n [\"System.Collections.IEnumerator.Reset\"]() {\n Enumerator_noReset();\n }\n Dispose() {\n const __ = this;\n __.dispose();\n }\n}\n\nexport function Enumerator_FromFunctions$1$reflection(gen0) {\n return class_type(\"SeqModule.Enumerator.FromFunctions`1\", [gen0], Enumerator_FromFunctions$1);\n}\n\nexport function Enumerator_FromFunctions$1_$ctor_58C54629(current, next, dispose) {\n return new Enumerator_FromFunctions$1(current, next, dispose);\n}\n\nexport function Enumerator_cast(e) {\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => e[\"System.Collections.IEnumerator.get_Current\"](), () => e[\"System.Collections.IEnumerator.MoveNext\"](), () => {\n if (isDisposable(e)) {\n e.Dispose();\n }\n });\n}\n\nexport function Enumerator_concat(sources) {\n let outerOpt = void 0;\n let innerOpt = void 0;\n let started = false;\n let finished = false;\n let curr = void 0;\n const finish = () => {\n finished = true;\n if (innerOpt != null) {\n const inner = innerOpt;\n try {\n inner.Dispose();\n }\n finally {\n innerOpt = (void 0);\n }\n }\n if (outerOpt != null) {\n const outer = outerOpt;\n try {\n outer.Dispose();\n }\n finally {\n outerOpt = (void 0);\n }\n }\n };\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => {\n if (!started) {\n Enumerator_notStarted();\n }\n else if (finished) {\n Enumerator_alreadyFinished();\n }\n if (curr != null) {\n return value_1(curr);\n }\n else {\n return Enumerator_alreadyFinished();\n }\n }, () => {\n let copyOfStruct;\n if (!started) {\n started = true;\n }\n if (finished) {\n return false;\n }\n else {\n let res = void 0;\n while (res == null) {\n const matchValue = [outerOpt, innerOpt];\n if (matchValue[0] != null) {\n if (matchValue[1] != null) {\n const inner_1 = matchValue[1];\n if (inner_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n curr = some(inner_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n res = true;\n }\n else {\n try {\n inner_1.Dispose();\n }\n finally {\n innerOpt = (void 0);\n }\n }\n }\n else {\n const outer_1 = matchValue[0];\n if (outer_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const ie = outer_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n innerOpt = (copyOfStruct = ie, getEnumerator(copyOfStruct));\n }\n else {\n finish();\n res = false;\n }\n }\n }\n else {\n outerOpt = getEnumerator(sources);\n }\n }\n return value_1(res);\n }\n }, () => {\n if (!finished) {\n finish();\n }\n });\n}\n\nexport function Enumerator_enumerateThenFinally(f, e) {\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => e[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), () => e[\"System.Collections.IEnumerator.MoveNext\"](), () => {\n try {\n e.Dispose();\n }\n finally {\n f();\n }\n });\n}\n\nexport function Enumerator_generateWhileSome(openf, compute, closef) {\n let started = false;\n let curr = void 0;\n let state = some(openf());\n const dispose = () => {\n if (state != null) {\n const x_1 = value_1(state);\n try {\n closef(x_1);\n }\n finally {\n state = (void 0);\n }\n }\n };\n const finish = () => {\n try {\n dispose();\n }\n finally {\n curr = (void 0);\n }\n };\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => {\n if (!started) {\n Enumerator_notStarted();\n }\n if (curr != null) {\n return value_1(curr);\n }\n else {\n return Enumerator_alreadyFinished();\n }\n }, () => {\n if (!started) {\n started = true;\n }\n if (state != null) {\n const s = value_1(state);\n let matchValue_1;\n try {\n matchValue_1 = compute(s);\n }\n catch (matchValue) {\n finish();\n throw matchValue;\n }\n if (matchValue_1 != null) {\n curr = matchValue_1;\n return true;\n }\n else {\n finish();\n return false;\n }\n }\n else {\n return false;\n }\n }, dispose);\n}\n\nexport function Enumerator_unfold(f, state) {\n let curr = void 0;\n let acc = state;\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => {\n if (curr != null) {\n const st = curr[1];\n return curr[0];\n }\n else {\n return Enumerator_notStarted();\n }\n }, () => {\n curr = f(acc);\n if (curr != null) {\n const x_1 = curr[0];\n const st_1 = curr[1];\n acc = st_1;\n return true;\n }\n else {\n return false;\n }\n }, () => {\n });\n}\n\nexport function indexNotFound() {\n throw (new Error(SR_keyNotFoundAlt));\n}\n\nexport function checkNonNull(argName, arg) {\n if (arg == null) {\n Operators_NullArg(argName);\n }\n}\n\nexport function mkSeq(f) {\n return Enumerator_Seq_$ctor_673A07F2(f);\n}\n\nexport function ofSeq(xs) {\n checkNonNull(\"source\", xs);\n return getEnumerator(xs);\n}\n\nexport function delay(generator) {\n return mkSeq(() => getEnumerator(generator()));\n}\n\nexport function concat(sources) {\n return mkSeq(() => Enumerator_concat(sources));\n}\n\nexport function unfold(generator, state) {\n return mkSeq(() => Enumerator_unfold(generator, state));\n}\n\nexport function empty() {\n return delay(() => (new Array(0)));\n}\n\nexport function singleton(x) {\n return delay(() => singleton_1(x));\n}\n\nexport function ofArray(arr) {\n return arr;\n}\n\nexport function toArray(xs) {\n if (isArrayLike(xs)) {\n return xs;\n }\n else if (xs instanceof FSharpList) {\n return toArray_1(xs);\n }\n else {\n return Array.from(xs);\n }\n}\n\nexport function ofList(xs) {\n return xs;\n}\n\nexport function toList(xs) {\n if (isArrayLike(xs)) {\n return ofArray_1(xs);\n }\n else if (xs instanceof FSharpList) {\n return xs;\n }\n else {\n return ofSeq_1(xs);\n }\n}\n\nexport function generate(create, compute, dispose) {\n return mkSeq(() => Enumerator_generateWhileSome(create, compute, dispose));\n}\n\nexport function generateIndexed(create, compute, dispose) {\n return mkSeq(() => {\n let i = -1;\n return Enumerator_generateWhileSome(create, (x) => {\n i = ((i + 1) | 0);\n return compute(i, x);\n }, dispose);\n });\n}\n\nexport function append(xs, ys) {\n return concat([xs, ys]);\n}\n\nexport function cast(xs) {\n return mkSeq(() => {\n checkNonNull(\"source\", xs);\n return Enumerator_cast(getEnumerator(xs));\n });\n}\n\nexport function choose(chooser, xs) {\n return generate(() => ofSeq(xs), (e) => {\n let curr = void 0;\n while ((curr == null) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n curr = chooser(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return curr;\n }, (e_1) => {\n e_1.Dispose();\n });\n}\n\nexport function compareWith(comparer, xs, ys) {\n const e1 = ofSeq(xs);\n try {\n const e2 = ofSeq(ys);\n try {\n let c = 0;\n let b1 = e1[\"System.Collections.IEnumerator.MoveNext\"]();\n let b2 = e2[\"System.Collections.IEnumerator.MoveNext\"]();\n while (((c === 0) ? b1 : false) ? b2 : false) {\n c = (comparer(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) | 0);\n if (c === 0) {\n b1 = e1[\"System.Collections.IEnumerator.MoveNext\"]();\n b2 = e2[\"System.Collections.IEnumerator.MoveNext\"]();\n }\n }\n return ((c !== 0) ? c : (b1 ? 1 : (b2 ? -1 : 0))) | 0;\n }\n finally {\n e2.Dispose();\n }\n }\n finally {\n e1.Dispose();\n }\n}\n\nexport function contains(value, xs, comparer) {\n const e = ofSeq(xs);\n try {\n let found = false;\n while ((!found) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n found = comparer.Equals(value, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return found;\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function enumerateFromFunctions(create, moveNext, current) {\n return generate(create, (x) => (moveNext(x) ? some(current(x)) : (void 0)), (x_1) => {\n const matchValue = x_1;\n if (isDisposable(matchValue)) {\n matchValue.Dispose();\n }\n });\n}\n\nexport function enumerateThenFinally(source, compensation) {\n const compensation_1 = compensation;\n return mkSeq(() => {\n try {\n return Enumerator_enumerateThenFinally(compensation_1, ofSeq(source));\n }\n catch (matchValue) {\n compensation_1();\n throw matchValue;\n }\n });\n}\n\nexport function enumerateUsing(resource, source) {\n const compensation = () => {\n if (equals(resource, null)) {\n }\n else {\n let copyOfStruct = resource;\n copyOfStruct.Dispose();\n }\n };\n return mkSeq(() => {\n try {\n return Enumerator_enumerateThenFinally(compensation, ofSeq(source(resource)));\n }\n catch (matchValue_1) {\n compensation();\n throw matchValue_1;\n }\n });\n}\n\nexport function enumerateWhile(guard, xs) {\n return concat(unfold((i) => (guard() ? [xs, i + 1] : (void 0)), 0));\n}\n\nexport function filter(f, xs) {\n return choose((x) => {\n if (f(x)) {\n return some(x);\n }\n else {\n return void 0;\n }\n }, xs);\n}\n\nexport function exists(predicate, xs) {\n const e = ofSeq(xs);\n try {\n let found = false;\n while ((!found) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n found = predicate(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return found;\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function exists2(predicate, xs, ys) {\n const e1 = ofSeq(xs);\n try {\n const e2 = ofSeq(ys);\n try {\n let found = false;\n while (((!found) ? e1[\"System.Collections.IEnumerator.MoveNext\"]() : false) ? e2[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n found = predicate(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return found;\n }\n finally {\n e2.Dispose();\n }\n }\n finally {\n e1.Dispose();\n }\n}\n\nexport function exactlyOne(xs) {\n const e = ofSeq(xs);\n try {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const v = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n throw (new Error((SR_inputSequenceTooLong + \"\\\\nParameter name: \") + \"source\"));\n }\n else {\n return v;\n }\n }\n else {\n throw (new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"source\"));\n }\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function tryExactlyOne(xs) {\n const e = ofSeq(xs);\n try {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const v = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? (void 0) : some(v);\n }\n else {\n return void 0;\n }\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function tryFind(predicate, xs) {\n const e = ofSeq(xs);\n try {\n let res = void 0;\n while ((res == null) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n const c = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (predicate(c)) {\n res = some(c);\n }\n }\n return res;\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function find(predicate, xs) {\n const matchValue = tryFind(predicate, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function tryFindBack(predicate, xs) {\n return tryFindBack_1(predicate, toArray(xs));\n}\n\nexport function findBack(predicate, xs) {\n const matchValue = tryFindBack(predicate, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function tryFindIndex(predicate, xs) {\n const e = ofSeq(xs);\n try {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n if (predicate(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) {\n return i;\n }\n else {\n i_mut = (i + 1);\n continue loop;\n }\n }\n else {\n return void 0;\n }\n break;\n }\n };\n return loop(0);\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function findIndex(predicate, xs) {\n const matchValue = tryFindIndex(predicate, xs);\n if (matchValue == null) {\n return indexNotFound() | 0;\n }\n else {\n return matchValue | 0;\n }\n}\n\nexport function tryFindIndexBack(predicate, xs) {\n return tryFindIndexBack_1(predicate, toArray(xs));\n}\n\nexport function findIndexBack(predicate, xs) {\n const matchValue = tryFindIndexBack(predicate, xs);\n if (matchValue == null) {\n return indexNotFound() | 0;\n }\n else {\n return matchValue | 0;\n }\n}\n\nexport function fold(folder, state, xs) {\n const e = ofSeq(xs);\n try {\n let acc = state;\n while (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n acc = folder(acc, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return acc;\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function foldBack(folder, xs, state) {\n return foldBack_1(folder, toArray(xs), state);\n}\n\nexport function fold2(folder, state, xs, ys) {\n const e1 = ofSeq(xs);\n try {\n const e2 = ofSeq(ys);\n try {\n let acc = state;\n while (e1[\"System.Collections.IEnumerator.MoveNext\"]() ? e2[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n acc = folder(acc, e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return acc;\n }\n finally {\n e2.Dispose();\n }\n }\n finally {\n e1.Dispose();\n }\n}\n\nexport function foldBack2(folder, xs, ys, state) {\n return foldBack2_1(folder, toArray(xs), toArray(ys), state);\n}\n\nexport function forAll(predicate, xs) {\n return !exists((x) => (!predicate(x)), xs);\n}\n\nexport function forAll2(predicate, xs, ys) {\n return !exists2((x, y) => (!predicate(x, y)), xs, ys);\n}\n\nexport function tryHead(xs) {\n if (isArrayLike(xs)) {\n return tryHead_1(xs);\n }\n else if (xs instanceof FSharpList) {\n return tryHead_2(xs);\n }\n else {\n const e = ofSeq(xs);\n try {\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : (void 0);\n }\n finally {\n e.Dispose();\n }\n }\n}\n\nexport function head(xs) {\n const matchValue = tryHead(xs);\n if (matchValue == null) {\n throw (new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"source\"));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function initialize(count, f) {\n return unfold((i) => ((i < count) ? [f(i), i + 1] : (void 0)), 0);\n}\n\nexport function initializeInfinite(f) {\n return initialize(2147483647, f);\n}\n\nexport function isEmpty(xs) {\n if (isArrayLike(xs)) {\n return xs.length === 0;\n }\n else if (xs instanceof FSharpList) {\n return isEmpty_1(xs);\n }\n else {\n const e = ofSeq(xs);\n try {\n return !e[\"System.Collections.IEnumerator.MoveNext\"]();\n }\n finally {\n e.Dispose();\n }\n }\n}\n\nexport function tryItem(index, xs) {\n if (isArrayLike(xs)) {\n return tryItem_1(index, xs);\n }\n else if (xs instanceof FSharpList) {\n return tryItem_2(index, xs);\n }\n else {\n const e = ofSeq(xs);\n try {\n const loop = (index_1_mut) => {\n loop:\n while (true) {\n const index_1 = index_1_mut;\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return void 0;\n }\n else if (index_1 === 0) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n index_1_mut = (index_1 - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(index);\n }\n finally {\n e.Dispose();\n }\n }\n}\n\nexport function item(index, xs) {\n const matchValue = tryItem(index, xs);\n if (matchValue == null) {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"index\"));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function iterate(action, xs) {\n fold((unitVar0, x) => {\n action(x);\n }, void 0, xs);\n}\n\nexport function iterate2(action, xs, ys) {\n fold2((unitVar0, x, y) => {\n action(x, y);\n }, void 0, xs, ys);\n}\n\nexport function iterateIndexed(action, xs) {\n void fold((i, x) => {\n action(i, x);\n return (i + 1) | 0;\n }, 0, xs);\n}\n\nexport function iterateIndexed2(action, xs, ys) {\n void fold2((i, x, y) => {\n action(i, x, y);\n return (i + 1) | 0;\n }, 0, xs, ys);\n}\n\nexport function tryLast(xs) {\n const e = ofSeq(xs);\n try {\n const loop = (acc_mut) => {\n loop:\n while (true) {\n const acc = acc_mut;\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return acc;\n }\n else {\n acc_mut = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n continue loop;\n }\n break;\n }\n };\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(loop(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : (void 0);\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function last(xs) {\n const matchValue = tryLast(xs);\n if (matchValue == null) {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"source\"));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function length(xs) {\n if (isArrayLike(xs)) {\n return xs.length | 0;\n }\n else if (xs instanceof FSharpList) {\n return length_1(xs) | 0;\n }\n else {\n const e = ofSeq(xs);\n try {\n let count = 0;\n while (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n count = ((count + 1) | 0);\n }\n return count | 0;\n }\n finally {\n e.Dispose();\n }\n }\n}\n\nexport function map(mapping, xs) {\n return generate(() => ofSeq(xs), (e) => (e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(mapping(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : (void 0)), (e_1) => {\n e_1.Dispose();\n });\n}\n\nexport function mapIndexed(mapping, xs) {\n return generateIndexed(() => ofSeq(xs), (i, e) => (e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(mapping(i, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : (void 0)), (e_1) => {\n e_1.Dispose();\n });\n}\n\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\n\nexport function map2(mapping, xs, ys) {\n return generate(() => [ofSeq(xs), ofSeq(ys)], (tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n return (e1[\"System.Collections.IEnumerator.MoveNext\"]() ? e2[\"System.Collections.IEnumerator.MoveNext\"]() : false) ? some(mapping(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : (void 0);\n }, (tupledArg_1) => {\n try {\n tupledArg_1[0].Dispose();\n }\n finally {\n tupledArg_1[1].Dispose();\n }\n });\n}\n\nexport function mapIndexed2(mapping, xs, ys) {\n return generateIndexed(() => [ofSeq(xs), ofSeq(ys)], (i, tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n return (e1[\"System.Collections.IEnumerator.MoveNext\"]() ? e2[\"System.Collections.IEnumerator.MoveNext\"]() : false) ? some(mapping(i, e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : (void 0);\n }, (tupledArg_1) => {\n try {\n tupledArg_1[0].Dispose();\n }\n finally {\n tupledArg_1[1].Dispose();\n }\n });\n}\n\nexport function map3(mapping, xs, ys, zs) {\n return generate(() => [ofSeq(xs), ofSeq(ys), ofSeq(zs)], (tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n const e3 = tupledArg[2];\n return ((e1[\"System.Collections.IEnumerator.MoveNext\"]() ? e2[\"System.Collections.IEnumerator.MoveNext\"]() : false) ? e3[\"System.Collections.IEnumerator.MoveNext\"]() : false) ? some(mapping(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e3[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : (void 0);\n }, (tupledArg_1) => {\n try {\n tupledArg_1[0].Dispose();\n }\n finally {\n try {\n tupledArg_1[1].Dispose();\n }\n finally {\n tupledArg_1[2].Dispose();\n }\n }\n });\n}\n\nexport function readOnly(xs) {\n checkNonNull(\"source\", xs);\n return map((x) => x, xs);\n}\n\nexport function cache(xs) {\n let cached = false;\n const xsCache = [];\n return delay(() => {\n if (!cached) {\n cached = true;\n return map((x) => {\n void (xsCache.push(x));\n return x;\n }, xs);\n }\n else {\n return xsCache;\n }\n });\n}\n\nexport function allPairs(xs, ys) {\n const ysCache = cache(ys);\n return delay(() => concat(map((x) => map((y) => [x, y], ysCache), xs)));\n}\n\nexport function mapFold(mapping, state, xs) {\n const patternInput = mapFold_1(mapping, state, toArray(xs));\n return [readOnly(patternInput[0]), patternInput[1]];\n}\n\nexport function mapFoldBack(mapping, xs, state) {\n const patternInput = mapFoldBack_1(mapping, toArray(xs), state);\n return [readOnly(patternInput[0]), patternInput[1]];\n}\n\nexport function tryPick(chooser, xs) {\n const e = ofSeq(xs);\n try {\n let res = void 0;\n while ((res == null) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) {\n res = chooser(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return res;\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function pick(chooser, xs) {\n const matchValue = tryPick(chooser, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function reduce(folder, xs) {\n const e = ofSeq(xs);\n try {\n const loop = (acc_mut) => {\n loop:\n while (true) {\n const acc = acc_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n acc_mut = folder(acc, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n continue loop;\n }\n else {\n return acc;\n }\n break;\n }\n };\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return loop(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n throw (new Error(SR_inputSequenceEmpty));\n }\n }\n finally {\n e.Dispose();\n }\n}\n\nexport function reduceBack(folder, xs) {\n const arr = toArray(xs);\n if (arr.length > 0) {\n return arr.reduceRight(folder);\n }\n else {\n throw (new Error(SR_inputSequenceEmpty));\n }\n}\n\nexport function replicate(n, x) {\n return initialize(n, (_arg1) => x);\n}\n\nexport function reverse(xs) {\n return delay(() => ofArray(reverse_1(toArray(xs))));\n}\n\nexport function scan(folder, state, xs) {\n return delay(() => {\n let acc = state;\n return concat([singleton(state), map((x) => {\n acc = folder(acc, x);\n return acc;\n }, xs)]);\n });\n}\n\nexport function scanBack(folder, xs, state) {\n return delay(() => ofArray(scanBack_1(folder, toArray(xs), state)));\n}\n\nexport function skip(count, xs) {\n return mkSeq(() => {\n const e = ofSeq(xs);\n try {\n for (let i = 1; i <= count; i++) {\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"source\"));\n }\n }\n return Enumerator_enumerateThenFinally(() => {\n }, e);\n }\n catch (matchValue) {\n e.Dispose();\n throw matchValue;\n }\n });\n}\n\nexport function skipWhile(predicate, xs) {\n return delay(() => {\n let skipped = true;\n return filter((x) => {\n if (skipped) {\n skipped = predicate(x);\n }\n return !skipped;\n }, xs);\n });\n}\n\nexport function tail(xs) {\n return skip(1, xs);\n}\n\nexport function take(count, xs) {\n return generateIndexed(() => ofSeq(xs), (i, e) => {\n if (i < count) {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"source\"));\n }\n }\n else {\n return void 0;\n }\n }, (e_1) => {\n e_1.Dispose();\n });\n}\n\nexport function takeWhile(predicate, xs) {\n return generate(() => ofSeq(xs), (e) => ((e[\"System.Collections.IEnumerator.MoveNext\"]() ? predicate(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : false) ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : (void 0)), (e_1) => {\n e_1.Dispose();\n });\n}\n\nexport function truncate(count, xs) {\n return generateIndexed(() => ofSeq(xs), (i, e) => (((i < count) ? e[\"System.Collections.IEnumerator.MoveNext\"]() : false) ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : (void 0)), (e_1) => {\n e_1.Dispose();\n });\n}\n\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\n\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\n\nexport function collect(mapping, xs) {\n return delay(() => concat(map(mapping, xs)));\n}\n\nexport function where(predicate, xs) {\n return filter(predicate, xs);\n}\n\nexport function pairwise(xs) {\n return delay(() => ofArray(pairwise_1(toArray(xs))));\n}\n\nexport function splitInto(chunks, xs) {\n return delay(() => ofArray(map_1((arr) => ofArray(arr), splitInto_1(chunks, toArray(xs)))));\n}\n\nexport function windowed(windowSize, xs) {\n return delay(() => ofArray(map_1((arr) => ofArray(arr), windowed_1(windowSize, toArray(xs)))));\n}\n\nexport function transpose(xss) {\n return delay(() => ofArray(map_1((arr) => ofArray(arr), transpose_1(map_1((xs_1) => toArray(xs_1), toArray(xss))))));\n}\n\nexport function sortWith(comparer, xs) {\n return delay(() => {\n const arr = toArray(xs);\n arr.sort(comparer);\n return ofArray(arr);\n });\n}\n\nexport function sort(xs, comparer) {\n return sortWith((x, y) => comparer.Compare(x, y), xs);\n}\n\nexport function sortBy(projection, xs, comparer) {\n return sortWith((x, y) => comparer.Compare(projection(x), projection(y)), xs);\n}\n\nexport function sortDescending(xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(x, y) * -1), xs);\n}\n\nexport function sortByDescending(projection, xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(projection(x), projection(y)) * -1), xs);\n}\n\nexport function sum(xs, adder) {\n return fold((acc, x) => adder.Add(acc, x), adder.GetZero(), xs);\n}\n\nexport function sumBy(f, xs, adder) {\n return fold((acc, x) => adder.Add(acc, f(x)), adder.GetZero(), xs);\n}\n\nexport function maxBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? y : x), xs);\n}\n\nexport function max(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? y : x), xs);\n}\n\nexport function minBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? x : y), xs);\n}\n\nexport function min(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? x : y), xs);\n}\n\nexport function average(xs, averager) {\n let count = 0;\n const total = fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, x);\n }, averager.GetZero(), xs);\n if (count === 0) {\n throw (new Error(\"The input sequence was empty\\\\nParameter name: xs\"));\n }\n else {\n return averager.DivideByInt(total, count);\n }\n}\n\nexport function averageBy(f, xs, averager) {\n let count = 0;\n const total = fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, f(x));\n }, averager.GetZero(), xs);\n if (count === 0) {\n throw (new Error(\"The input sequence was empty\\\\nParameter name: xs\"));\n }\n else {\n return averager.DivideByInt(total, count);\n }\n}\n\nexport function permute(f, xs) {\n return delay(() => ofArray(permute_1(f, toArray(xs))));\n}\n\nexport function chunkBySize(chunkSize, xs) {\n return delay(() => ofArray(map_1((arr) => ofArray(arr), chunkBySize_1(chunkSize, toArray(xs)))));\n}\n\n","import { Union } from \"../fable-library.3.2.1/Types.js\";\nimport { union_type, class_type, list_type, bool_type, string_type, float64_type } from \"../fable-library.3.2.1/Reflection.js\";\n\nexport class Json extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"JNumber\", \"JString\", \"JBool\", \"JNull\", \"JArray\", \"JObject\"];\n }\n}\n\nexport function Json$reflection() {\n return union_type(\"Fable.SimpleJson.Json\", [], Json, () => [[[\"Item\", float64_type]], [[\"Item\", string_type]], [[\"Item\", bool_type]], [], [[\"Item\", list_type(Json$reflection())]], [[\"Item\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, Json$reflection()])]]]);\n}\n\n","import { equals } from \"./Util.js\";\nimport { Union } from \"./Types.js\";\nconst CaseRules = {\n None: 0,\n LowerFirst: 1,\n SnakeCase: 2,\n SnakeCaseAllCaps: 3,\n KebabCase: 4,\n};\nfunction dashify(str, separator) {\n return str.replace(/[a-z]?[A-Z]/g, (m) => m.length === 1\n ? m.toLowerCase()\n : m.charAt(0) + separator + m.charAt(1).toLowerCase());\n}\nfunction changeCase(str, caseRule) {\n switch (caseRule) {\n case CaseRules.LowerFirst:\n return str.charAt(0).toLowerCase() + str.slice(1);\n case CaseRules.SnakeCase:\n return dashify(str, \"_\");\n case CaseRules.SnakeCaseAllCaps:\n return dashify(str, \"_\").toUpperCase();\n case CaseRules.KebabCase:\n return dashify(str, \"-\");\n case CaseRules.None:\n default:\n return str;\n }\n}\nexport function keyValueList(fields, caseRule = CaseRules.None) {\n const obj = {};\n const definedCaseRule = caseRule;\n function fail(kvPair) {\n throw new Error(\"Cannot infer key and value of \" + String(kvPair));\n }\n function assign(key, caseRule, value) {\n key = changeCase(key, caseRule);\n obj[key] = value;\n }\n for (let kvPair of fields) {\n let caseRule = CaseRules.None;\n if (kvPair == null) {\n fail(kvPair);\n }\n // Deflate unions and use the defined case rule\n if (kvPair instanceof Union) {\n const name = kvPair.cases()[kvPair.tag];\n kvPair = kvPair.fields.length === 0 ? name : [name].concat(kvPair.fields);\n caseRule = definedCaseRule;\n }\n if (Array.isArray(kvPair)) {\n switch (kvPair.length) {\n case 0:\n fail(kvPair);\n break;\n case 1:\n assign(kvPair[0], caseRule, true);\n break;\n case 2:\n const value = kvPair[1];\n assign(kvPair[0], caseRule, value);\n break;\n default:\n assign(kvPair[0], caseRule, kvPair.slice(1));\n }\n }\n else if (typeof kvPair === \"string\") {\n assign(kvPair, caseRule, true);\n }\n else {\n fail(kvPair);\n }\n }\n return obj;\n}\n// TODO: Move these methods to Map and Set modules\nexport function containsValue(v, map) {\n for (const kv of map) {\n if (equals(v, kv[1])) {\n return true;\n }\n }\n return false;\n}\nexport function tryGetValue(map, key, defaultValue) {\n if (map.has(key)) {\n defaultValue.contents = map.get(key);\n return true;\n }\n return false;\n}\nexport function addToSet(v, set) {\n if (set.has(v)) {\n return false;\n }\n set.add(v);\n return true;\n}\nexport function addToDict(dict, k, v) {\n if (dict.has(k)) {\n throw new Error(\"An item with the same key has already been added. Key: \" + k);\n }\n dict.set(k, v);\n}\nexport function getItemFromDict(map, key) {\n if (map.has(key)) {\n return map.get(key);\n }\n else {\n throw new Error(`The given key '${key}' was not present in the dictionary.`);\n }\n}\n","import { record_type, bool_type, list_type, option_type, class_type } from \"./Reflection.js\";\nimport { some, value as value_1 } from \"./Option.js\";\nimport { toString, Record } from \"./Types.js\";\nimport { FSharpList, fold as fold_2, cons, singleton as singleton_1, empty as empty_1, ofArrayWithTail, tail, head, isEmpty as isEmpty_1 } from \"./List.js\";\nimport { fold as fold_1, fill } from \"./Array.js\";\nimport { structuralHash, toIterator, getEnumerator, isArrayLike } from \"./Util.js\";\nimport { join } from \"./String.js\";\nimport { fold as fold_3, reduce, iterate as iterate_1, map as map_1 } from \"./Seq.js\";\n\nexport class SetTreeLeaf$1 {\n constructor(k) {\n this.k = k;\n }\n}\n\nexport function SetTreeLeaf$1$reflection(gen0) {\n return class_type(\"Set.SetTreeLeaf`1\", [gen0], SetTreeLeaf$1);\n}\n\nexport function SetTreeLeaf$1_$ctor_2B595(k) {\n return new SetTreeLeaf$1(k);\n}\n\nexport function SetTreeLeaf$1__get_Key(_) {\n return _.k;\n}\n\nexport class SetTreeNode$1 extends SetTreeLeaf$1 {\n constructor(v, left, right, h) {\n super(v);\n this.left = left;\n this.right = right;\n this.h = (h | 0);\n }\n}\n\nexport function SetTreeNode$1$reflection(gen0) {\n return class_type(\"Set.SetTreeNode`1\", [gen0], SetTreeNode$1, SetTreeLeaf$1$reflection(gen0));\n}\n\nexport function SetTreeNode$1_$ctor_Z6E7BE5F7(v, left, right, h) {\n return new SetTreeNode$1(v, left, right, h);\n}\n\nexport function SetTreeNode$1__get_Left(_) {\n return _.left;\n}\n\nexport function SetTreeNode$1__get_Right(_) {\n return _.right;\n}\n\nexport function SetTreeNode$1__get_Height(_) {\n return _.h;\n}\n\nexport function SetTreeModule_empty() {\n return void 0;\n}\n\nexport function SetTreeModule_countAux(t_mut, acc_mut) {\n SetTreeModule_countAux:\n while (true) {\n const t = t_mut, acc = acc_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n t_mut = SetTreeNode$1__get_Left(t2);\n acc_mut = SetTreeModule_countAux(SetTreeNode$1__get_Right(t2), acc + 1);\n continue SetTreeModule_countAux;\n }\n else {\n return (acc + 1) | 0;\n }\n }\n else {\n return acc | 0;\n }\n break;\n }\n}\n\nexport function SetTreeModule_count(s) {\n return SetTreeModule_countAux(s, 0);\n}\n\nexport function SetTreeModule_mk(l, k, r) {\n let hl;\n const t = l;\n if (t != null) {\n const t2 = t;\n hl = ((t2 instanceof SetTreeNode$1) ? SetTreeNode$1__get_Height(t2) : 1);\n }\n else {\n hl = 0;\n }\n let hr;\n const t_1 = r;\n if (t_1 != null) {\n const t2_1 = t_1;\n hr = ((t2_1 instanceof SetTreeNode$1) ? SetTreeNode$1__get_Height(t2_1) : 1);\n }\n else {\n hr = 0;\n }\n const m = ((hl < hr) ? hr : hl) | 0;\n if (m === 0) {\n return SetTreeLeaf$1_$ctor_2B595(k);\n }\n else {\n return SetTreeNode$1_$ctor_Z6E7BE5F7(k, l, r, m + 1);\n }\n}\n\nexport function SetTreeModule_rebalance(t1, v, t2) {\n let t_2, t2_3, t_3, t2_4;\n let t1h;\n const t = t1;\n if (t != null) {\n const t2_1 = t;\n t1h = ((t2_1 instanceof SetTreeNode$1) ? SetTreeNode$1__get_Height(t2_1) : 1);\n }\n else {\n t1h = 0;\n }\n let t2h;\n const t_1 = t2;\n if (t_1 != null) {\n const t2_2 = t_1;\n t2h = ((t2_2 instanceof SetTreeNode$1) ? SetTreeNode$1__get_Height(t2_2) : 1);\n }\n else {\n t2h = 0;\n }\n if (t2h > (t1h + 2)) {\n const matchValue = value_1(t2);\n if (matchValue instanceof SetTreeNode$1) {\n if ((t_2 = SetTreeNode$1__get_Left(matchValue), (t_2 != null) ? (t2_3 = t_2, (t2_3 instanceof SetTreeNode$1) ? SetTreeNode$1__get_Height(t2_3) : 1) : 0) > (t1h + 1)) {\n const matchValue_1 = value_1(SetTreeNode$1__get_Left(matchValue));\n if (matchValue_1 instanceof SetTreeNode$1) {\n return SetTreeModule_mk(SetTreeModule_mk(t1, v, SetTreeNode$1__get_Left(matchValue_1)), SetTreeLeaf$1__get_Key(matchValue_1), SetTreeModule_mk(SetTreeNode$1__get_Right(matchValue_1), SetTreeLeaf$1__get_Key(matchValue), SetTreeNode$1__get_Right(matchValue)));\n }\n else {\n throw (new Error(\"internal error: Set.rebalance\"));\n }\n }\n else {\n return SetTreeModule_mk(SetTreeModule_mk(t1, v, SetTreeNode$1__get_Left(matchValue)), SetTreeLeaf$1__get_Key(matchValue), SetTreeNode$1__get_Right(matchValue));\n }\n }\n else {\n throw (new Error(\"internal error: Set.rebalance\"));\n }\n }\n else if (t1h > (t2h + 2)) {\n const matchValue_2 = value_1(t1);\n if (matchValue_2 instanceof SetTreeNode$1) {\n if ((t_3 = SetTreeNode$1__get_Right(matchValue_2), (t_3 != null) ? (t2_4 = t_3, (t2_4 instanceof SetTreeNode$1) ? SetTreeNode$1__get_Height(t2_4) : 1) : 0) > (t2h + 1)) {\n const matchValue_3 = value_1(SetTreeNode$1__get_Right(matchValue_2));\n if (matchValue_3 instanceof SetTreeNode$1) {\n return SetTreeModule_mk(SetTreeModule_mk(SetTreeNode$1__get_Left(matchValue_2), SetTreeLeaf$1__get_Key(matchValue_2), SetTreeNode$1__get_Left(matchValue_3)), SetTreeLeaf$1__get_Key(matchValue_3), SetTreeModule_mk(SetTreeNode$1__get_Right(matchValue_3), v, t2));\n }\n else {\n throw (new Error(\"internal error: Set.rebalance\"));\n }\n }\n else {\n return SetTreeModule_mk(SetTreeNode$1__get_Left(matchValue_2), SetTreeLeaf$1__get_Key(matchValue_2), SetTreeModule_mk(SetTreeNode$1__get_Right(matchValue_2), v, t2));\n }\n }\n else {\n throw (new Error(\"internal error: Set.rebalance\"));\n }\n }\n else {\n return SetTreeModule_mk(t1, v, t2);\n }\n}\n\nexport function SetTreeModule_add(comparer, k, t) {\n if (t != null) {\n const t2 = t;\n const c = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (t2 instanceof SetTreeNode$1) {\n if (c < 0) {\n return SetTreeModule_rebalance(SetTreeModule_add(comparer, k, SetTreeNode$1__get_Left(t2)), SetTreeLeaf$1__get_Key(t2), SetTreeNode$1__get_Right(t2));\n }\n else if (c === 0) {\n return t;\n }\n else {\n return SetTreeModule_rebalance(SetTreeNode$1__get_Left(t2), SetTreeLeaf$1__get_Key(t2), SetTreeModule_add(comparer, k, SetTreeNode$1__get_Right(t2)));\n }\n }\n else {\n const c_1 = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (c_1 < 0) {\n return SetTreeNode$1_$ctor_Z6E7BE5F7(k, SetTreeModule_empty(), t, 2);\n }\n else if (c_1 === 0) {\n return t;\n }\n else {\n return SetTreeNode$1_$ctor_Z6E7BE5F7(k, t, SetTreeModule_empty(), 2);\n }\n }\n }\n else {\n return SetTreeLeaf$1_$ctor_2B595(k);\n }\n}\n\nexport function SetTreeModule_balance(comparer, t1, k, t2) {\n if (t1 != null) {\n const t1$0027 = t1;\n if (t2 != null) {\n const t2$0027 = t2;\n if (t1$0027 instanceof SetTreeNode$1) {\n if (t2$0027 instanceof SetTreeNode$1) {\n if ((SetTreeNode$1__get_Height(t1$0027) + 2) < SetTreeNode$1__get_Height(t2$0027)) {\n return SetTreeModule_rebalance(SetTreeModule_balance(comparer, t1, k, SetTreeNode$1__get_Left(t2$0027)), SetTreeLeaf$1__get_Key(t2$0027), SetTreeNode$1__get_Right(t2$0027));\n }\n else if ((SetTreeNode$1__get_Height(t2$0027) + 2) < SetTreeNode$1__get_Height(t1$0027)) {\n return SetTreeModule_rebalance(SetTreeNode$1__get_Left(t1$0027), SetTreeLeaf$1__get_Key(t1$0027), SetTreeModule_balance(comparer, SetTreeNode$1__get_Right(t1$0027), k, t2));\n }\n else {\n return SetTreeModule_mk(t1, k, t2);\n }\n }\n else {\n return SetTreeModule_add(comparer, k, SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2$0027), t1));\n }\n }\n else {\n return SetTreeModule_add(comparer, k, SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t1$0027), t2));\n }\n }\n else {\n return SetTreeModule_add(comparer, k, t1);\n }\n }\n else {\n return SetTreeModule_add(comparer, k, t2);\n }\n}\n\nexport function SetTreeModule_split(comparer, pivot, t) {\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n const c = comparer.Compare(pivot, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (c < 0) {\n const patternInput = SetTreeModule_split(comparer, pivot, SetTreeNode$1__get_Left(t2));\n return [patternInput[0], patternInput[1], SetTreeModule_balance(comparer, patternInput[2], SetTreeLeaf$1__get_Key(t2), SetTreeNode$1__get_Right(t2))];\n }\n else if (c === 0) {\n return [SetTreeNode$1__get_Left(t2), true, SetTreeNode$1__get_Right(t2)];\n }\n else {\n const patternInput_1 = SetTreeModule_split(comparer, pivot, SetTreeNode$1__get_Right(t2));\n return [SetTreeModule_balance(comparer, SetTreeNode$1__get_Left(t2), SetTreeLeaf$1__get_Key(t2), patternInput_1[0]), patternInput_1[1], patternInput_1[2]];\n }\n }\n else {\n const c_1 = comparer.Compare(SetTreeLeaf$1__get_Key(t2), pivot) | 0;\n if (c_1 < 0) {\n return [t, false, SetTreeModule_empty()];\n }\n else if (c_1 === 0) {\n return [SetTreeModule_empty(), true, SetTreeModule_empty()];\n }\n else {\n return [SetTreeModule_empty(), false, t];\n }\n }\n }\n else {\n return [SetTreeModule_empty(), false, SetTreeModule_empty()];\n }\n}\n\nexport function SetTreeModule_spliceOutSuccessor(t) {\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n if (SetTreeNode$1__get_Left(t2) == null) {\n return [SetTreeLeaf$1__get_Key(t2), SetTreeNode$1__get_Right(t2)];\n }\n else {\n const patternInput = SetTreeModule_spliceOutSuccessor(SetTreeNode$1__get_Left(t2));\n return [patternInput[0], SetTreeModule_mk(patternInput[1], SetTreeLeaf$1__get_Key(t2), SetTreeNode$1__get_Right(t2))];\n }\n }\n else {\n return [SetTreeLeaf$1__get_Key(t2), SetTreeModule_empty()];\n }\n }\n else {\n throw (new Error(\"internal error: Set.spliceOutSuccessor\"));\n }\n}\n\nexport function SetTreeModule_remove(comparer, k, t) {\n if (t != null) {\n const t2 = t;\n const c = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (t2 instanceof SetTreeNode$1) {\n if (c < 0) {\n return SetTreeModule_rebalance(SetTreeModule_remove(comparer, k, SetTreeNode$1__get_Left(t2)), SetTreeLeaf$1__get_Key(t2), SetTreeNode$1__get_Right(t2));\n }\n else if (c === 0) {\n if (SetTreeNode$1__get_Left(t2) == null) {\n return SetTreeNode$1__get_Right(t2);\n }\n else if (SetTreeNode$1__get_Right(t2) == null) {\n return SetTreeNode$1__get_Left(t2);\n }\n else {\n const patternInput = SetTreeModule_spliceOutSuccessor(SetTreeNode$1__get_Right(t2));\n return SetTreeModule_mk(SetTreeNode$1__get_Left(t2), patternInput[0], patternInput[1]);\n }\n }\n else {\n return SetTreeModule_rebalance(SetTreeNode$1__get_Left(t2), SetTreeLeaf$1__get_Key(t2), SetTreeModule_remove(comparer, k, SetTreeNode$1__get_Right(t2)));\n }\n }\n else if (c === 0) {\n return SetTreeModule_empty();\n }\n else {\n return t;\n }\n }\n else {\n return t;\n }\n}\n\nexport function SetTreeModule_mem(comparer_mut, k_mut, t_mut) {\n SetTreeModule_mem:\n while (true) {\n const comparer = comparer_mut, k = k_mut, t = t_mut;\n if (t != null) {\n const t2 = t;\n const c = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (t2 instanceof SetTreeNode$1) {\n if (c < 0) {\n comparer_mut = comparer;\n k_mut = k;\n t_mut = SetTreeNode$1__get_Left(t2);\n continue SetTreeModule_mem;\n }\n else if (c === 0) {\n return true;\n }\n else {\n comparer_mut = comparer;\n k_mut = k;\n t_mut = SetTreeNode$1__get_Right(t2);\n continue SetTreeModule_mem;\n }\n }\n else {\n return c === 0;\n }\n }\n else {\n return false;\n }\n break;\n }\n}\n\nexport function SetTreeModule_iter(f_mut, t_mut) {\n SetTreeModule_iter:\n while (true) {\n const f = f_mut, t = t_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n SetTreeModule_iter(f, SetTreeNode$1__get_Left(t2));\n f(SetTreeLeaf$1__get_Key(t2));\n f_mut = f;\n t_mut = SetTreeNode$1__get_Right(t2);\n continue SetTreeModule_iter;\n }\n else {\n f(SetTreeLeaf$1__get_Key(t2));\n }\n }\n break;\n }\n}\n\nexport function SetTreeModule_foldBackOpt(f_mut, t_mut, x_mut) {\n SetTreeModule_foldBackOpt:\n while (true) {\n const f = f_mut, t = t_mut, x = x_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n f_mut = f;\n t_mut = SetTreeNode$1__get_Left(t2);\n x_mut = f(SetTreeLeaf$1__get_Key(t2), SetTreeModule_foldBackOpt(f, SetTreeNode$1__get_Right(t2), x));\n continue SetTreeModule_foldBackOpt;\n }\n else {\n return f(SetTreeLeaf$1__get_Key(t2), x);\n }\n }\n else {\n return x;\n }\n break;\n }\n}\n\nexport function SetTreeModule_foldBack(f, m, x) {\n return SetTreeModule_foldBackOpt(f, m, x);\n}\n\nexport function SetTreeModule_foldOpt(f_mut, x_mut, t_mut) {\n SetTreeModule_foldOpt:\n while (true) {\n const f = f_mut, x = x_mut, t = t_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n f_mut = f;\n x_mut = f(SetTreeModule_foldOpt(f, x, SetTreeNode$1__get_Left(t2)), SetTreeLeaf$1__get_Key(t2));\n t_mut = SetTreeNode$1__get_Right(t2);\n continue SetTreeModule_foldOpt;\n }\n else {\n return f(x, SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return x;\n }\n break;\n }\n}\n\nexport function SetTreeModule_fold(f, x, m) {\n return SetTreeModule_foldOpt(f, x, m);\n}\n\nexport function SetTreeModule_forall(f_mut, t_mut) {\n SetTreeModule_forall:\n while (true) {\n const f = f_mut, t = t_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n if (f(SetTreeLeaf$1__get_Key(t2)) ? SetTreeModule_forall(f, SetTreeNode$1__get_Left(t2)) : false) {\n f_mut = f;\n t_mut = SetTreeNode$1__get_Right(t2);\n continue SetTreeModule_forall;\n }\n else {\n return false;\n }\n }\n else {\n return f(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return true;\n }\n break;\n }\n}\n\nexport function SetTreeModule_exists(f_mut, t_mut) {\n SetTreeModule_exists:\n while (true) {\n const f = f_mut, t = t_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n if (f(SetTreeLeaf$1__get_Key(t2)) ? true : SetTreeModule_exists(f, SetTreeNode$1__get_Left(t2))) {\n return true;\n }\n else {\n f_mut = f;\n t_mut = SetTreeNode$1__get_Right(t2);\n continue SetTreeModule_exists;\n }\n }\n else {\n return f(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return false;\n }\n break;\n }\n}\n\nexport function SetTreeModule_subset(comparer, a, b) {\n return SetTreeModule_forall((x) => SetTreeModule_mem(comparer, x, b), a);\n}\n\nexport function SetTreeModule_properSubset(comparer, a, b) {\n if (SetTreeModule_forall((x) => SetTreeModule_mem(comparer, x, b), a)) {\n return SetTreeModule_exists((x_1) => (!SetTreeModule_mem(comparer, x_1, a)), b);\n }\n else {\n return false;\n }\n}\n\nexport function SetTreeModule_filterAux(comparer_mut, f_mut, t_mut, acc_mut) {\n SetTreeModule_filterAux:\n while (true) {\n const comparer = comparer_mut, f = f_mut, t = t_mut, acc = acc_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n const acc_1 = f(SetTreeLeaf$1__get_Key(t2)) ? SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2), acc) : acc;\n comparer_mut = comparer;\n f_mut = f;\n t_mut = SetTreeNode$1__get_Left(t2);\n acc_mut = SetTreeModule_filterAux(comparer, f, SetTreeNode$1__get_Right(t2), acc_1);\n continue SetTreeModule_filterAux;\n }\n else if (f(SetTreeLeaf$1__get_Key(t2))) {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2), acc);\n }\n else {\n return acc;\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function SetTreeModule_filter(comparer, f, s) {\n return SetTreeModule_filterAux(comparer, f, s, SetTreeModule_empty());\n}\n\nexport function SetTreeModule_diffAux(comparer_mut, t_mut, acc_mut) {\n SetTreeModule_diffAux:\n while (true) {\n const comparer = comparer_mut, t = t_mut, acc = acc_mut;\n if (acc == null) {\n return acc;\n }\n else if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n t_mut = SetTreeNode$1__get_Left(t2);\n acc_mut = SetTreeModule_diffAux(comparer, SetTreeNode$1__get_Right(t2), SetTreeModule_remove(comparer, SetTreeLeaf$1__get_Key(t2), acc));\n continue SetTreeModule_diffAux;\n }\n else {\n return SetTreeModule_remove(comparer, SetTreeLeaf$1__get_Key(t2), acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function SetTreeModule_diff(comparer, a, b) {\n return SetTreeModule_diffAux(comparer, b, a);\n}\n\nexport function SetTreeModule_union(comparer, t1, t2) {\n if (t1 != null) {\n const t1$0027 = t1;\n if (t2 != null) {\n const t2$0027 = t2;\n if (t1$0027 instanceof SetTreeNode$1) {\n if (t2$0027 instanceof SetTreeNode$1) {\n if (SetTreeNode$1__get_Height(t1$0027) > SetTreeNode$1__get_Height(t2$0027)) {\n const patternInput = SetTreeModule_split(comparer, SetTreeLeaf$1__get_Key(t1$0027), t2);\n return SetTreeModule_balance(comparer, SetTreeModule_union(comparer, SetTreeNode$1__get_Left(t1$0027), patternInput[0]), SetTreeLeaf$1__get_Key(t1$0027), SetTreeModule_union(comparer, SetTreeNode$1__get_Right(t1$0027), patternInput[2]));\n }\n else {\n const patternInput_1 = SetTreeModule_split(comparer, SetTreeLeaf$1__get_Key(t2$0027), t1);\n return SetTreeModule_balance(comparer, SetTreeModule_union(comparer, SetTreeNode$1__get_Left(t2$0027), patternInput_1[0]), SetTreeLeaf$1__get_Key(t2$0027), SetTreeModule_union(comparer, SetTreeNode$1__get_Right(t2$0027), patternInput_1[2]));\n }\n }\n else {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2$0027), t1);\n }\n }\n else {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t1$0027), t2);\n }\n }\n else {\n return t1;\n }\n }\n else {\n return t2;\n }\n}\n\nexport function SetTreeModule_intersectionAux(comparer_mut, b_mut, t_mut, acc_mut) {\n SetTreeModule_intersectionAux:\n while (true) {\n const comparer = comparer_mut, b = b_mut, t = t_mut, acc = acc_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n const acc_1 = SetTreeModule_intersectionAux(comparer, b, SetTreeNode$1__get_Right(t2), acc);\n const acc_2 = SetTreeModule_mem(comparer, SetTreeLeaf$1__get_Key(t2), b) ? SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2), acc_1) : acc_1;\n comparer_mut = comparer;\n b_mut = b;\n t_mut = SetTreeNode$1__get_Left(t2);\n acc_mut = acc_2;\n continue SetTreeModule_intersectionAux;\n }\n else if (SetTreeModule_mem(comparer, SetTreeLeaf$1__get_Key(t2), b)) {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2), acc);\n }\n else {\n return acc;\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function SetTreeModule_intersection(comparer, a, b) {\n return SetTreeModule_intersectionAux(comparer, b, a, SetTreeModule_empty());\n}\n\nexport function SetTreeModule_partition1(comparer, f, k, acc1, acc2) {\n if (f(k)) {\n return [SetTreeModule_add(comparer, k, acc1), acc2];\n }\n else {\n return [acc1, SetTreeModule_add(comparer, k, acc2)];\n }\n}\n\nexport function SetTreeModule_partitionAux(comparer_mut, f_mut, t_mut, acc_0_mut, acc_1_mut) {\n SetTreeModule_partitionAux:\n while (true) {\n const comparer = comparer_mut, f = f_mut, t = t_mut, acc_0 = acc_0_mut, acc_1 = acc_1_mut;\n const acc = [acc_0, acc_1];\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n const acc_2 = SetTreeModule_partitionAux(comparer, f, SetTreeNode$1__get_Right(t2), acc[0], acc[1]);\n const acc_3 = SetTreeModule_partition1(comparer, f, SetTreeLeaf$1__get_Key(t2), acc_2[0], acc_2[1]);\n comparer_mut = comparer;\n f_mut = f;\n t_mut = SetTreeNode$1__get_Left(t2);\n acc_0_mut = acc_3[0];\n acc_1_mut = acc_3[1];\n continue SetTreeModule_partitionAux;\n }\n else {\n return SetTreeModule_partition1(comparer, f, SetTreeLeaf$1__get_Key(t2), acc[0], acc[1]);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function SetTreeModule_partition(comparer, f, s) {\n return SetTreeModule_partitionAux(comparer, f, s, SetTreeModule_empty(), SetTreeModule_empty());\n}\n\nexport function SetTreeModule_minimumElementAux(t_mut, n_mut) {\n SetTreeModule_minimumElementAux:\n while (true) {\n const t = t_mut, n = n_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n t_mut = SetTreeNode$1__get_Left(t2);\n n_mut = SetTreeLeaf$1__get_Key(t2);\n continue SetTreeModule_minimumElementAux;\n }\n else {\n return SetTreeLeaf$1__get_Key(t2);\n }\n }\n else {\n return n;\n }\n break;\n }\n}\n\nexport function SetTreeModule_minimumElementOpt(t) {\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n return some(SetTreeModule_minimumElementAux(SetTreeNode$1__get_Left(t2), SetTreeLeaf$1__get_Key(t2)));\n }\n else {\n return some(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return void 0;\n }\n}\n\nexport function SetTreeModule_maximumElementAux(t_mut, n_mut) {\n SetTreeModule_maximumElementAux:\n while (true) {\n const t = t_mut, n = n_mut;\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n t_mut = SetTreeNode$1__get_Right(t2);\n n_mut = SetTreeLeaf$1__get_Key(t2);\n continue SetTreeModule_maximumElementAux;\n }\n else {\n return SetTreeLeaf$1__get_Key(t2);\n }\n }\n else {\n return n;\n }\n break;\n }\n}\n\nexport function SetTreeModule_maximumElementOpt(t) {\n if (t != null) {\n const t2 = t;\n if (t2 instanceof SetTreeNode$1) {\n return some(SetTreeModule_maximumElementAux(SetTreeNode$1__get_Right(t2), SetTreeLeaf$1__get_Key(t2)));\n }\n else {\n return some(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return void 0;\n }\n}\n\nexport function SetTreeModule_minimumElement(s) {\n const matchValue = SetTreeModule_minimumElementOpt(s);\n if (matchValue == null) {\n throw (new Error(\"Set contains no elements\"));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function SetTreeModule_maximumElement(s) {\n const matchValue = SetTreeModule_maximumElementOpt(s);\n if (matchValue == null) {\n throw (new Error(\"Set contains no elements\"));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport class SetTreeModule_SetIterator$1 extends Record {\n constructor(stack, started) {\n super();\n this.stack = stack;\n this.started = started;\n }\n}\n\nexport function SetTreeModule_SetIterator$1$reflection(gen0) {\n return record_type(\"Set.SetTreeModule.SetIterator`1\", [gen0], SetTreeModule_SetIterator$1, () => [[\"stack\", list_type(option_type(SetTreeLeaf$1$reflection(gen0)))], [\"started\", bool_type]]);\n}\n\nexport function SetTreeModule_collapseLHS(stack_mut) {\n SetTreeModule_collapseLHS:\n while (true) {\n const stack = stack_mut;\n if (!isEmpty_1(stack)) {\n const x = head(stack);\n const rest = tail(stack);\n if (x != null) {\n const x2 = x;\n if (x2 instanceof SetTreeNode$1) {\n stack_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2)), SetTreeNode$1__get_Right(x2)], rest);\n continue SetTreeModule_collapseLHS;\n }\n else {\n return stack;\n }\n }\n else {\n stack_mut = rest;\n continue SetTreeModule_collapseLHS;\n }\n }\n else {\n return empty_1();\n }\n break;\n }\n}\n\nexport function SetTreeModule_mkIterator(s) {\n return new SetTreeModule_SetIterator$1(SetTreeModule_collapseLHS(singleton_1(s)), false);\n}\n\nexport function SetTreeModule_notStarted() {\n throw (new Error(\"Enumeration not started\"));\n}\n\nexport function SetTreeModule_alreadyFinished() {\n throw (new Error(\"Enumeration already started\"));\n}\n\nexport function SetTreeModule_current(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (isEmpty_1(matchValue)) {\n return SetTreeModule_alreadyFinished();\n }\n else if (head(matchValue) != null) {\n const t = head(matchValue);\n return SetTreeLeaf$1__get_Key(t);\n }\n else {\n throw (new Error(\"Please report error: Set iterator, unexpected stack for current\"));\n }\n }\n else {\n return SetTreeModule_notStarted();\n }\n}\n\nexport function SetTreeModule_moveNext(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (!isEmpty_1(matchValue)) {\n if (head(matchValue) != null) {\n const t = head(matchValue);\n if (t instanceof SetTreeNode$1) {\n throw (new Error(\"Please report error: Set iterator, unexpected stack for moveNext\"));\n }\n else {\n i.stack = SetTreeModule_collapseLHS(tail(matchValue));\n return !isEmpty_1(i.stack);\n }\n }\n else {\n throw (new Error(\"Please report error: Set iterator, unexpected stack for moveNext\"));\n }\n }\n else {\n return false;\n }\n }\n else {\n i.started = true;\n return !isEmpty_1(i.stack);\n }\n}\n\nexport function SetTreeModule_mkIEnumerator(s) {\n let i = SetTreeModule_mkIterator(s);\n return {\n [\"System.Collections.Generic.IEnumerator`1.get_Current\"]() {\n return SetTreeModule_current(i);\n },\n [\"System.Collections.IEnumerator.get_Current\"]() {\n return SetTreeModule_current(i);\n },\n [\"System.Collections.IEnumerator.MoveNext\"]() {\n return SetTreeModule_moveNext(i);\n },\n [\"System.Collections.IEnumerator.Reset\"]() {\n i = SetTreeModule_mkIterator(s);\n },\n Dispose() {\n },\n };\n}\n\nexport function SetTreeModule_compareStacks(comparer_mut, l1_mut, l2_mut) {\n SetTreeModule_compareStacks:\n while (true) {\n const comparer = comparer_mut, l1 = l1_mut, l2 = l2_mut;\n const matchValue = [l1, l2];\n if (!isEmpty_1(matchValue[0])) {\n if (!isEmpty_1(matchValue[1])) {\n if (head(matchValue[1]) != null) {\n if (head(matchValue[0]) != null) {\n const x1_3 = head(matchValue[0]);\n const x2_3 = head(matchValue[1]);\n if (x1_3 instanceof SetTreeNode$1) {\n if (SetTreeNode$1__get_Left(x1_3) == null) {\n if (x2_3 instanceof SetTreeNode$1) {\n if (SetTreeNode$1__get_Left(x2_3) == null) {\n const c = comparer.Compare(SetTreeLeaf$1__get_Key(x1_3), SetTreeLeaf$1__get_Key(x2_3)) | 0;\n if (c !== 0) {\n return c | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = cons(SetTreeNode$1__get_Right(x1_3), tail(matchValue[0]));\n l2_mut = cons(SetTreeNode$1__get_Right(x2_3), tail(matchValue[1]));\n continue SetTreeModule_compareStacks;\n }\n }\n else {\n const matchValue_3 = [l1, l2];\n let pattern_matching_result, t1_6, x1_4, t2_6, x2_4;\n if (!isEmpty_1(matchValue_3[0])) {\n if (head(matchValue_3[0]) != null) {\n pattern_matching_result = 0;\n t1_6 = tail(matchValue_3[0]);\n x1_4 = head(matchValue_3[0]);\n }\n else if (!isEmpty_1(matchValue_3[1])) {\n if (head(matchValue_3[1]) != null) {\n pattern_matching_result = 1;\n t2_6 = tail(matchValue_3[1]);\n x2_4 = head(matchValue_3[1]);\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (!isEmpty_1(matchValue_3[1])) {\n if (head(matchValue_3[1]) != null) {\n pattern_matching_result = 1;\n t2_6 = tail(matchValue_3[1]);\n x2_4 = head(matchValue_3[1]);\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n switch (pattern_matching_result) {\n case 0: {\n if (x1_4 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1_4), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x1_4), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1_4), 0)], t1_6);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_4))], t1_6);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n }\n case 1: {\n if (x2_4 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2_4), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x2_4), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2_4), 0)], t2_6);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_4))], t2_6);\n continue SetTreeModule_compareStacks;\n }\n }\n case 2: {\n throw (new Error(\"unexpected state in SetTree.compareStacks\"));\n }\n }\n }\n }\n else {\n const c_1 = comparer.Compare(SetTreeLeaf$1__get_Key(x1_3), SetTreeLeaf$1__get_Key(x2_3)) | 0;\n if (c_1 !== 0) {\n return c_1 | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = cons(SetTreeNode$1__get_Right(x1_3), tail(matchValue[0]));\n l2_mut = cons(SetTreeModule_empty(), tail(matchValue[1]));\n continue SetTreeModule_compareStacks;\n }\n }\n }\n else {\n const matchValue_4 = [l1, l2];\n let pattern_matching_result_1, t1_7, x1_5, t2_7, x2_5;\n if (!isEmpty_1(matchValue_4[0])) {\n if (head(matchValue_4[0]) != null) {\n pattern_matching_result_1 = 0;\n t1_7 = tail(matchValue_4[0]);\n x1_5 = head(matchValue_4[0]);\n }\n else if (!isEmpty_1(matchValue_4[1])) {\n if (head(matchValue_4[1]) != null) {\n pattern_matching_result_1 = 1;\n t2_7 = tail(matchValue_4[1]);\n x2_5 = head(matchValue_4[1]);\n }\n else {\n pattern_matching_result_1 = 2;\n }\n }\n else {\n pattern_matching_result_1 = 2;\n }\n }\n else if (!isEmpty_1(matchValue_4[1])) {\n if (head(matchValue_4[1]) != null) {\n pattern_matching_result_1 = 1;\n t2_7 = tail(matchValue_4[1]);\n x2_5 = head(matchValue_4[1]);\n }\n else {\n pattern_matching_result_1 = 2;\n }\n }\n else {\n pattern_matching_result_1 = 2;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n if (x1_5 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1_5), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x1_5), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1_5), 0)], t1_7);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_5))], t1_7);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n }\n case 1: {\n if (x2_5 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2_5), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x2_5), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2_5), 0)], t2_7);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_5))], t2_7);\n continue SetTreeModule_compareStacks;\n }\n }\n case 2: {\n throw (new Error(\"unexpected state in SetTree.compareStacks\"));\n }\n }\n }\n }\n else if (x2_3 instanceof SetTreeNode$1) {\n if (SetTreeNode$1__get_Left(x2_3) == null) {\n const c_2 = comparer.Compare(SetTreeLeaf$1__get_Key(x1_3), SetTreeLeaf$1__get_Key(x2_3)) | 0;\n if (c_2 !== 0) {\n return c_2 | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = cons(SetTreeModule_empty(), tail(matchValue[0]));\n l2_mut = cons(SetTreeNode$1__get_Right(x2_3), tail(matchValue[1]));\n continue SetTreeModule_compareStacks;\n }\n }\n else {\n const matchValue_5 = [l1, l2];\n let pattern_matching_result_2, t1_8, x1_6, t2_8, x2_6;\n if (!isEmpty_1(matchValue_5[0])) {\n if (head(matchValue_5[0]) != null) {\n pattern_matching_result_2 = 0;\n t1_8 = tail(matchValue_5[0]);\n x1_6 = head(matchValue_5[0]);\n }\n else if (!isEmpty_1(matchValue_5[1])) {\n if (head(matchValue_5[1]) != null) {\n pattern_matching_result_2 = 1;\n t2_8 = tail(matchValue_5[1]);\n x2_6 = head(matchValue_5[1]);\n }\n else {\n pattern_matching_result_2 = 2;\n }\n }\n else {\n pattern_matching_result_2 = 2;\n }\n }\n else if (!isEmpty_1(matchValue_5[1])) {\n if (head(matchValue_5[1]) != null) {\n pattern_matching_result_2 = 1;\n t2_8 = tail(matchValue_5[1]);\n x2_6 = head(matchValue_5[1]);\n }\n else {\n pattern_matching_result_2 = 2;\n }\n }\n else {\n pattern_matching_result_2 = 2;\n }\n switch (pattern_matching_result_2) {\n case 0: {\n if (x1_6 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1_6), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x1_6), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1_6), 0)], t1_8);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_6))], t1_8);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n }\n case 1: {\n if (x2_6 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2_6), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x2_6), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2_6), 0)], t2_8);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_6))], t2_8);\n continue SetTreeModule_compareStacks;\n }\n }\n case 2: {\n throw (new Error(\"unexpected state in SetTree.compareStacks\"));\n }\n }\n }\n }\n else {\n const c_3 = comparer.Compare(SetTreeLeaf$1__get_Key(x1_3), SetTreeLeaf$1__get_Key(x2_3)) | 0;\n if (c_3 !== 0) {\n return c_3 | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = tail(matchValue[0]);\n l2_mut = tail(matchValue[1]);\n continue SetTreeModule_compareStacks;\n }\n }\n }\n else {\n const x2 = head(matchValue[1]);\n const matchValue_1 = [l1, l2];\n let pattern_matching_result_3, t1_2, x1, t2_2, x2_1;\n if (!isEmpty_1(matchValue_1[0])) {\n if (head(matchValue_1[0]) != null) {\n pattern_matching_result_3 = 0;\n t1_2 = tail(matchValue_1[0]);\n x1 = head(matchValue_1[0]);\n }\n else if (!isEmpty_1(matchValue_1[1])) {\n if (head(matchValue_1[1]) != null) {\n pattern_matching_result_3 = 1;\n t2_2 = tail(matchValue_1[1]);\n x2_1 = head(matchValue_1[1]);\n }\n else {\n pattern_matching_result_3 = 2;\n }\n }\n else {\n pattern_matching_result_3 = 2;\n }\n }\n else if (!isEmpty_1(matchValue_1[1])) {\n if (head(matchValue_1[1]) != null) {\n pattern_matching_result_3 = 1;\n t2_2 = tail(matchValue_1[1]);\n x2_1 = head(matchValue_1[1]);\n }\n else {\n pattern_matching_result_3 = 2;\n }\n }\n else {\n pattern_matching_result_3 = 2;\n }\n switch (pattern_matching_result_3) {\n case 0: {\n if (x1 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x1), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1), 0)], t1_2);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1))], t1_2);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n }\n case 1: {\n if (x2_1 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2_1), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x2_1), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2_1), 0)], t2_2);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_1))], t2_2);\n continue SetTreeModule_compareStacks;\n }\n }\n case 2: {\n throw (new Error(\"unexpected state in SetTree.compareStacks\"));\n }\n }\n }\n }\n else if (head(matchValue[0]) != null) {\n const x1_1 = head(matchValue[0]);\n const matchValue_2 = [l1, l2];\n let pattern_matching_result_4, t1_4, x1_2, t2_4, x2_2;\n if (!isEmpty_1(matchValue_2[0])) {\n if (head(matchValue_2[0]) != null) {\n pattern_matching_result_4 = 0;\n t1_4 = tail(matchValue_2[0]);\n x1_2 = head(matchValue_2[0]);\n }\n else if (!isEmpty_1(matchValue_2[1])) {\n if (head(matchValue_2[1]) != null) {\n pattern_matching_result_4 = 1;\n t2_4 = tail(matchValue_2[1]);\n x2_2 = head(matchValue_2[1]);\n }\n else {\n pattern_matching_result_4 = 2;\n }\n }\n else {\n pattern_matching_result_4 = 2;\n }\n }\n else if (!isEmpty_1(matchValue_2[1])) {\n if (head(matchValue_2[1]) != null) {\n pattern_matching_result_4 = 1;\n t2_4 = tail(matchValue_2[1]);\n x2_2 = head(matchValue_2[1]);\n }\n else {\n pattern_matching_result_4 = 2;\n }\n }\n else {\n pattern_matching_result_4 = 2;\n }\n switch (pattern_matching_result_4) {\n case 0: {\n if (x1_2 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1_2), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x1_2), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1_2), 0)], t1_4);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_2))], t1_4);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n }\n case 1: {\n if (x2_2 instanceof SetTreeNode$1) {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2_2), SetTreeNode$1_$ctor_Z6E7BE5F7(SetTreeLeaf$1__get_Key(x2_2), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2_2), 0)], t2_4);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_2))], t2_4);\n continue SetTreeModule_compareStacks;\n }\n }\n case 2: {\n throw (new Error(\"unexpected state in SetTree.compareStacks\"));\n }\n }\n }\n else {\n comparer_mut = comparer;\n l1_mut = tail(matchValue[0]);\n l2_mut = tail(matchValue[1]);\n continue SetTreeModule_compareStacks;\n }\n }\n else {\n return 1;\n }\n }\n else if (isEmpty_1(matchValue[1])) {\n return 0;\n }\n else {\n return -1;\n }\n break;\n }\n}\n\nexport function SetTreeModule_compare(comparer, t1, t2) {\n if (t1 == null) {\n if (t2 == null) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (t2 == null) {\n return 1;\n }\n else {\n return SetTreeModule_compareStacks(comparer, singleton_1(t1), singleton_1(t2)) | 0;\n }\n}\n\nexport function SetTreeModule_choose(s) {\n return SetTreeModule_minimumElement(s);\n}\n\nexport function SetTreeModule_toList(t) {\n const loop = (t$0027_mut, acc_mut) => {\n loop:\n while (true) {\n const t$0027 = t$0027_mut, acc = acc_mut;\n if (t$0027 != null) {\n const t2 = t$0027;\n if (t2 instanceof SetTreeNode$1) {\n t$0027_mut = SetTreeNode$1__get_Left(t2);\n acc_mut = cons(SetTreeLeaf$1__get_Key(t2), loop(SetTreeNode$1__get_Right(t2), acc));\n continue loop;\n }\n else {\n return cons(SetTreeLeaf$1__get_Key(t2), acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n };\n return loop(t, empty_1());\n}\n\nexport function SetTreeModule_copyToArray(s, arr, i) {\n let j = i;\n SetTreeModule_iter((x) => {\n arr[j] = x;\n j = ((j + 1) | 0);\n }, s);\n}\n\nexport function SetTreeModule_toArray(s) {\n const n = SetTreeModule_count(s) | 0;\n const res = fill(new Array(n), 0, n, null);\n SetTreeModule_copyToArray(s, res, 0);\n return res;\n}\n\nexport function SetTreeModule_mkFromEnumerator(comparer_mut, acc_mut, e_mut) {\n SetTreeModule_mkFromEnumerator:\n while (true) {\n const comparer = comparer_mut, acc = acc_mut, e = e_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n comparer_mut = comparer;\n acc_mut = SetTreeModule_add(comparer, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), acc);\n e_mut = e;\n continue SetTreeModule_mkFromEnumerator;\n }\n else {\n return acc;\n }\n break;\n }\n}\n\nexport function SetTreeModule_ofArray(comparer, l) {\n return fold_1((acc, k) => SetTreeModule_add(comparer, k, acc), SetTreeModule_empty(), l);\n}\n\nexport function SetTreeModule_ofList(comparer, l) {\n return fold_2((acc, k) => SetTreeModule_add(comparer, k, acc), SetTreeModule_empty(), l);\n}\n\nexport function SetTreeModule_ofSeq(comparer, c) {\n if (isArrayLike(c)) {\n return SetTreeModule_ofArray(comparer, c);\n }\n else if (c instanceof FSharpList) {\n return SetTreeModule_ofList(comparer, c);\n }\n else {\n const ie = getEnumerator(c);\n try {\n return SetTreeModule_mkFromEnumerator(comparer, SetTreeModule_empty(), ie);\n }\n finally {\n ie.Dispose();\n }\n }\n}\n\nexport class FSharpSet {\n constructor(comparer, tree) {\n this.comparer = comparer;\n this.tree = tree;\n }\n GetHashCode() {\n const this$ = this;\n return FSharpSet__ComputeHashCode(this$) | 0;\n }\n Equals(that) {\n const this$ = this;\n return (that instanceof FSharpSet) ? (SetTreeModule_compare(FSharpSet__get_Comparer(this$), FSharpSet__get_Tree(this$), FSharpSet__get_Tree(that)) === 0) : false;\n }\n toString() {\n const this$ = this;\n return (\"set [\" + join(\"; \", map_1((x) => {\n let copyOfStruct = x;\n return toString(copyOfStruct);\n }, this$))) + \"]\";\n }\n get [Symbol.toStringTag]() {\n return \"FSharpSet\";\n }\n toJSON(_key) {\n const this$ = this;\n return Array.from(this$);\n }\n CompareTo(that) {\n const s = this;\n return SetTreeModule_compare(FSharpSet__get_Comparer(s), FSharpSet__get_Tree(s), FSharpSet__get_Tree(that)) | 0;\n }\n [\"System.Collections.Generic.ICollection`1.Add2B595\"](x) {\n throw (new Error(\"ReadOnlyCollection\"));\n }\n [\"System.Collections.Generic.ICollection`1.Clear\"]() {\n throw (new Error(\"ReadOnlyCollection\"));\n }\n [\"System.Collections.Generic.ICollection`1.Remove2B595\"](x) {\n throw (new Error(\"ReadOnlyCollection\"));\n }\n [\"System.Collections.Generic.ICollection`1.Contains2B595\"](x) {\n const s = this;\n return SetTreeModule_mem(FSharpSet__get_Comparer(s), x, FSharpSet__get_Tree(s));\n }\n [\"System.Collections.Generic.ICollection`1.CopyToZ2E171D71\"](arr, i) {\n const s = this;\n SetTreeModule_copyToArray(FSharpSet__get_Tree(s), arr, i);\n }\n [\"System.Collections.Generic.ICollection`1.get_IsReadOnly\"]() {\n return true;\n }\n [\"System.Collections.Generic.ICollection`1.get_Count\"]() {\n const s = this;\n return FSharpSet__get_Count(s) | 0;\n }\n [\"System.Collections.Generic.IReadOnlyCollection`1.get_Count\"]() {\n const s = this;\n return FSharpSet__get_Count(s) | 0;\n }\n GetEnumerator() {\n const s = this;\n return SetTreeModule_mkIEnumerator(FSharpSet__get_Tree(s));\n }\n [Symbol.iterator]() {\n return toIterator(this.GetEnumerator());\n }\n [\"System.Collections.IEnumerable.GetEnumerator\"]() {\n const s = this;\n return SetTreeModule_mkIEnumerator(FSharpSet__get_Tree(s));\n }\n get size() {\n const s = this;\n return FSharpSet__get_Count(s) | 0;\n }\n add(k) {\n const s = this;\n throw (new Error(\"Set cannot be mutated\"));\n return s;\n }\n clear() {\n throw (new Error(\"Set cannot be mutated\"));\n }\n delete(k) {\n throw (new Error(\"Set cannot be mutated\"));\n return false;\n }\n has(k) {\n const s = this;\n return FSharpSet__Contains(s, k);\n }\n keys() {\n const s = this;\n return map_1((x) => x, s);\n }\n values() {\n const s = this;\n return map_1((x) => x, s);\n }\n entries() {\n const s = this;\n return map_1((v) => [v, v], s);\n }\n forEach(f, thisArg) {\n const s = this;\n iterate_1((x) => {\n f(x, x, s);\n }, s);\n }\n}\n\nexport function FSharpSet$reflection(gen0) {\n return class_type(\"Set.FSharpSet\", [gen0], FSharpSet);\n}\n\nexport function FSharpSet_$ctor(comparer, tree) {\n return new FSharpSet(comparer, tree);\n}\n\nexport function FSharpSet__get_Comparer(set$) {\n return set$.comparer;\n}\n\nexport function FSharpSet__get_Tree(set$) {\n return set$.tree;\n}\n\nexport function FSharpSet_Empty(comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_empty());\n}\n\nexport function FSharpSet__Add(s, value) {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(s), SetTreeModule_add(FSharpSet__get_Comparer(s), value, FSharpSet__get_Tree(s)));\n}\n\nexport function FSharpSet__Remove(s, value) {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(s), SetTreeModule_remove(FSharpSet__get_Comparer(s), value, FSharpSet__get_Tree(s)));\n}\n\nexport function FSharpSet__get_Count(s) {\n return SetTreeModule_count(FSharpSet__get_Tree(s));\n}\n\nexport function FSharpSet__Contains(s, value) {\n return SetTreeModule_mem(FSharpSet__get_Comparer(s), value, FSharpSet__get_Tree(s));\n}\n\nexport function FSharpSet__Iterate(s, x) {\n SetTreeModule_iter(x, FSharpSet__get_Tree(s));\n}\n\nexport function FSharpSet__Fold(s, f, z) {\n const f_1 = f;\n return SetTreeModule_fold((x, z_1) => f_1(z_1, x), z, FSharpSet__get_Tree(s));\n}\n\nexport function FSharpSet__get_IsEmpty(s) {\n return FSharpSet__get_Tree(s) == null;\n}\n\nexport function FSharpSet__Partition(s, f) {\n if (FSharpSet__get_Tree(s) == null) {\n return [s, s];\n }\n else {\n const patternInput = SetTreeModule_partition(FSharpSet__get_Comparer(s), f, FSharpSet__get_Tree(s));\n return [FSharpSet_$ctor(FSharpSet__get_Comparer(s), patternInput[0]), FSharpSet_$ctor(FSharpSet__get_Comparer(s), patternInput[1])];\n }\n}\n\nexport function FSharpSet__Filter(s, f) {\n if (FSharpSet__get_Tree(s) == null) {\n return s;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(s), SetTreeModule_filter(FSharpSet__get_Comparer(s), f, FSharpSet__get_Tree(s)));\n }\n}\n\nexport function FSharpSet__Map(s, f, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_fold((acc, k) => SetTreeModule_add(comparer, f(k), acc), SetTreeModule_empty(), FSharpSet__get_Tree(s)));\n}\n\nexport function FSharpSet__Exists(s, f) {\n return SetTreeModule_exists(f, FSharpSet__get_Tree(s));\n}\n\nexport function FSharpSet__ForAll(s, f) {\n return SetTreeModule_forall(f, FSharpSet__get_Tree(s));\n}\n\nexport function FSharpSet_op_Subtraction(set1, set2) {\n if (FSharpSet__get_Tree(set1) == null) {\n return set1;\n }\n else if (FSharpSet__get_Tree(set2) == null) {\n return set1;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(set1), SetTreeModule_diff(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2)));\n }\n}\n\nexport function FSharpSet_op_Addition(set1, set2) {\n if (FSharpSet__get_Tree(set2) == null) {\n return set1;\n }\n else if (FSharpSet__get_Tree(set1) == null) {\n return set2;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(set1), SetTreeModule_union(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2)));\n }\n}\n\nexport function FSharpSet_Intersection(a, b) {\n if (FSharpSet__get_Tree(b) == null) {\n return b;\n }\n else if (FSharpSet__get_Tree(a) == null) {\n return a;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(a), SetTreeModule_intersection(FSharpSet__get_Comparer(a), FSharpSet__get_Tree(a), FSharpSet__get_Tree(b)));\n }\n}\n\nexport function FSharpSet_IntersectionMany(sets) {\n return reduce((s1, s2) => FSharpSet_Intersection(s1, s2), sets);\n}\n\nexport function FSharpSet_Equality(a, b) {\n return SetTreeModule_compare(FSharpSet__get_Comparer(a), FSharpSet__get_Tree(a), FSharpSet__get_Tree(b)) === 0;\n}\n\nexport function FSharpSet_Compare(a, b) {\n return SetTreeModule_compare(FSharpSet__get_Comparer(a), FSharpSet__get_Tree(a), FSharpSet__get_Tree(b));\n}\n\nexport function FSharpSet__get_Choose(x) {\n return SetTreeModule_choose(FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__get_MinimumElement(x) {\n return SetTreeModule_minimumElement(FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__get_MaximumElement(x) {\n return SetTreeModule_maximumElement(FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__IsSubsetOf(x, otherSet) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(x), FSharpSet__get_Tree(otherSet));\n}\n\nexport function FSharpSet__IsSupersetOf(x, otherSet) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(otherSet), FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__IsProperSubsetOf(x, otherSet) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(x), FSharpSet__get_Tree(otherSet));\n}\n\nexport function FSharpSet__IsProperSupersetOf(x, otherSet) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(otherSet), FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__ToList(x) {\n return SetTreeModule_toList(FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__ToArray(x) {\n return SetTreeModule_toArray(FSharpSet__get_Tree(x));\n}\n\nexport function FSharpSet__ComputeHashCode(this$) {\n let res = 0;\n const enumerator = getEnumerator(this$);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x_1 = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n res = ((((res << 1) + structuralHash(x_1)) + 631) | 0);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return Math.abs(res) | 0;\n}\n\nexport function isEmpty(set$) {\n return FSharpSet__get_IsEmpty(set$);\n}\n\nexport function contains(element, set$) {\n return FSharpSet__Contains(set$, element);\n}\n\nexport function add(value, set$) {\n return FSharpSet__Add(set$, value);\n}\n\nexport function singleton(value, comparer) {\n return FSharpSet__Add(FSharpSet_Empty(comparer), value);\n}\n\nexport function remove(value, set$) {\n return FSharpSet__Remove(set$, value);\n}\n\nexport function union(set1, set2) {\n return FSharpSet_op_Addition(set1, set2);\n}\n\nexport function unionMany(sets, comparer) {\n return fold_3((s1, s2) => FSharpSet_op_Addition(s1, s2), FSharpSet_Empty(comparer), sets);\n}\n\nexport function intersect(set1, set2) {\n return FSharpSet_Intersection(set1, set2);\n}\n\nexport function intersectMany(sets) {\n return FSharpSet_IntersectionMany(sets);\n}\n\nexport function iterate(action, set$) {\n FSharpSet__Iterate(set$, action);\n}\n\nexport function empty(comparer) {\n return FSharpSet_Empty(comparer);\n}\n\nexport function forAll(predicate, set$) {\n return FSharpSet__ForAll(set$, predicate);\n}\n\nexport function exists(predicate, set$) {\n return FSharpSet__Exists(set$, predicate);\n}\n\nexport function filter(predicate, set$) {\n return FSharpSet__Filter(set$, predicate);\n}\n\nexport function partition(predicate, set$) {\n return FSharpSet__Partition(set$, predicate);\n}\n\nexport function fold(folder, state, set$) {\n return SetTreeModule_fold(folder, state, FSharpSet__get_Tree(set$));\n}\n\nexport function foldBack(folder, set$, state) {\n return SetTreeModule_foldBack(folder, FSharpSet__get_Tree(set$), state);\n}\n\nexport function map(mapping, set$, comparer) {\n return FSharpSet__Map(set$, mapping, comparer);\n}\n\nexport function count(set$) {\n return FSharpSet__get_Count(set$);\n}\n\nexport function ofList(elements, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_ofSeq(comparer, elements));\n}\n\nexport function ofArray(array, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_ofArray(comparer, array));\n}\n\nexport function toList(set$) {\n return FSharpSet__ToList(set$);\n}\n\nexport function toArray(set$) {\n return FSharpSet__ToArray(set$);\n}\n\nexport function toSeq(set$) {\n return map_1((x) => x, set$);\n}\n\nexport function ofSeq(elements, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_ofSeq(comparer, elements));\n}\n\nexport function difference(set1, set2) {\n return FSharpSet_op_Subtraction(set1, set2);\n}\n\nexport function isSubset(set1, set2) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2));\n}\n\nexport function isSuperset(set1, set2) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set2), FSharpSet__get_Tree(set1));\n}\n\nexport function isProperSubset(set1, set2) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2));\n}\n\nexport function isProperSuperset(set1, set2) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set2), FSharpSet__get_Tree(set1));\n}\n\nexport function minElement(set$) {\n return FSharpSet__get_MinimumElement(set$);\n}\n\nexport function maxElement(set$) {\n return FSharpSet__get_MaximumElement(set$);\n}\n\nexport function unionWith(s1, s2) {\n return fold_3((acc, x) => acc.add(x), s1, s2);\n}\n\nexport function intersectWith(s1, s2, comparer) {\n const s2_1 = ofSeq(s2, comparer);\n const enumerator = getEnumerator(s1.keys());\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (!FSharpSet__Contains(s2_1, x)) {\n void s1.delete(x);\n }\n }\n }\n finally {\n enumerator.Dispose();\n }\n}\n\nexport function exceptWith(s1, s2) {\n const enumerator = getEnumerator(s2);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n void s1.delete(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n }\n finally {\n enumerator.Dispose();\n }\n}\n\nexport function isSubsetOf(s1, s2, comparer) {\n return isSubset(ofSeq(s1.values(), comparer), ofSeq(s2, comparer));\n}\n\nexport function isSupersetOf(s1, s2, comparer) {\n return isSuperset(ofSeq(s1.values(), comparer), ofSeq(s2, comparer));\n}\n\nexport function isProperSubsetOf(s1, s2, comparer) {\n return isProperSubset(ofSeq(s1.values(), comparer), ofSeq(s2, comparer));\n}\n\nexport function isProperSupersetOf(s1, s2, comparer) {\n return isProperSuperset(ofSeq(s1.values(), comparer), ofSeq(s2, comparer));\n}\n\n","import { join } from \"./String.js\";\nimport { uncurry, isArrayLike, getEnumerator, toIterator, compare, structuralHash, equals } from \"./Util.js\";\nimport { Record } from \"./Types.js\";\nimport { class_type, record_type, option_type } from \"./Reflection.js\";\nimport { defaultArg, value as value_1, some } from \"./Option.js\";\nimport { transpose as transpose_1, splitInto as splitInto_1, windowed as windowed_1, pairwise as pairwise_1, chunkBySize as chunkBySize_1, map as map_1, permute as permute_1, tryFindIndexBack as tryFindIndexBack_1, tryFindBack as tryFindBack_1, scanBack as scanBack_1, foldBack2 as foldBack2_1, foldBack as foldBack_1, fill } from \"./Array.js\";\n\nexport const SR_indexOutOfBounds = \"The index was outside the range of elements in the list.\";\n\nexport const SR_inputListWasEmpty = \"List was empty\";\n\nexport const SR_inputMustBeNonNegative = \"The input must be non-negative.\";\n\nexport const SR_inputSequenceEmpty = \"The input sequence was empty.\";\n\nexport const SR_inputSequenceTooLong = \"The input sequence contains more than one element.\";\n\nexport const SR_keyNotFoundAlt = \"An index satisfying the predicate was not found in the collection.\";\n\nexport const SR_listsHadDifferentLengths = \"The lists had different lengths.\";\n\nexport const SR_notEnoughElements = \"The input sequence has an insufficient number of elements.\";\n\nexport class FSharpList extends Record {\n constructor(head, tail) {\n super();\n this.head = head;\n this.tail = tail;\n }\n toString() {\n const xs = this;\n return (\"[\" + join(\"; \", xs)) + \"]\";\n }\n Equals(other) {\n const xs = this;\n if (xs === other) {\n return true;\n }\n else {\n const loop = (xs_1_mut, ys_1_mut) => {\n loop:\n while (true) {\n const xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n const matchValue = [xs_1.tail, ys_1.tail];\n if (matchValue[0] != null) {\n if (matchValue[1] != null) {\n const xt = matchValue[0];\n const yt = matchValue[1];\n if (equals(xs_1.head, ys_1.head)) {\n xs_1_mut = xt;\n ys_1_mut = yt;\n continue loop;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n else if (matchValue[1] != null) {\n return false;\n }\n else {\n return true;\n }\n break;\n }\n };\n return loop(xs, other);\n }\n }\n GetHashCode() {\n const xs = this;\n const loop = (i_mut, h_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, h = h_mut, xs_1 = xs_1_mut;\n const matchValue = xs_1.tail;\n if (matchValue != null) {\n const t = matchValue;\n if (i > 18) {\n return h | 0;\n }\n else {\n i_mut = (i + 1);\n h_mut = (((h << 1) + structuralHash(xs_1.head)) + (631 * i));\n xs_1_mut = t;\n continue loop;\n }\n }\n else {\n return h | 0;\n }\n break;\n }\n };\n return loop(0, 0, xs) | 0;\n }\n toJSON(_key) {\n const this$ = this;\n return Array.from(this$);\n }\n CompareTo(other) {\n const xs = this;\n const loop = (xs_1_mut, ys_1_mut) => {\n loop:\n while (true) {\n const xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n const matchValue = [xs_1.tail, ys_1.tail];\n if (matchValue[0] != null) {\n if (matchValue[1] != null) {\n const xt = matchValue[0];\n const yt = matchValue[1];\n const c = compare(xs_1.head, ys_1.head) | 0;\n if (c === 0) {\n xs_1_mut = xt;\n ys_1_mut = yt;\n continue loop;\n }\n else {\n return c | 0;\n }\n }\n else {\n return 1;\n }\n }\n else if (matchValue[1] != null) {\n return -1;\n }\n else {\n return 0;\n }\n break;\n }\n };\n return loop(xs, other) | 0;\n }\n GetEnumerator() {\n const xs = this;\n return ListEnumerator$1_$ctor_3002E699(xs);\n }\n [Symbol.iterator]() {\n return toIterator(this.GetEnumerator());\n }\n [\"System.Collections.IEnumerable.GetEnumerator\"]() {\n const xs = this;\n return getEnumerator(xs);\n }\n}\n\nexport function FSharpList$reflection(gen0) {\n return record_type(\"ListModule.FSharpList\", [gen0], FSharpList, () => [[\"head\", gen0], [\"tail\", option_type(FSharpList$reflection(gen0))]]);\n}\n\nexport class ListEnumerator$1 {\n constructor(xs) {\n this.xs = xs;\n this.it = this.xs;\n this.current = null;\n }\n [\"System.Collections.Generic.IEnumerator`1.get_Current\"]() {\n const __ = this;\n return __.current;\n }\n [\"System.Collections.IEnumerator.get_Current\"]() {\n const __ = this;\n return __.current;\n }\n [\"System.Collections.IEnumerator.MoveNext\"]() {\n const __ = this;\n const matchValue = __.it.tail;\n if (matchValue != null) {\n const t = matchValue;\n __.current = __.it.head;\n __.it = t;\n return true;\n }\n else {\n return false;\n }\n }\n [\"System.Collections.IEnumerator.Reset\"]() {\n const __ = this;\n __.it = __.xs;\n __.current = null;\n }\n Dispose() {\n }\n}\n\nexport function ListEnumerator$1$reflection(gen0) {\n return class_type(\"ListModule.ListEnumerator`1\", [gen0], ListEnumerator$1);\n}\n\nexport function ListEnumerator$1_$ctor_3002E699(xs) {\n return new ListEnumerator$1(xs);\n}\n\nexport function FSharpList_get_Empty() {\n return new FSharpList(null, void 0);\n}\n\nexport function FSharpList_Cons_305B8EAC(x, xs) {\n return new FSharpList(x, xs);\n}\n\nexport function FSharpList__get_IsEmpty(xs) {\n return xs.tail == null;\n}\n\nexport function FSharpList__get_Length(xs) {\n const loop = (i_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n const matchValue = xs_1.tail;\n if (matchValue != null) {\n i_mut = (i + 1);\n xs_1_mut = matchValue;\n continue loop;\n }\n else {\n return i | 0;\n }\n break;\n }\n };\n return loop(0, xs) | 0;\n}\n\nexport function FSharpList__get_Head(xs) {\n const matchValue = xs.tail;\n if (matchValue != null) {\n return xs.head;\n }\n else {\n throw (new Error((SR_inputListWasEmpty + \"\\\\nParameter name: \") + \"list\"));\n }\n}\n\nexport function FSharpList__get_Tail(xs) {\n const matchValue = xs.tail;\n if (matchValue != null) {\n return matchValue;\n }\n else {\n throw (new Error((SR_inputListWasEmpty + \"\\\\nParameter name: \") + \"list\"));\n }\n}\n\nexport function FSharpList__get_Item_Z524259A4(xs, index) {\n const loop = (i_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n const matchValue = xs_1.tail;\n if (matchValue != null) {\n if (i === index) {\n return xs_1.head;\n }\n else {\n i_mut = (i + 1);\n xs_1_mut = matchValue;\n continue loop;\n }\n }\n else {\n throw (new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\"));\n }\n break;\n }\n };\n return loop(0, xs);\n}\n\nexport function empty() {\n return FSharpList_get_Empty();\n}\n\nexport function cons(x, xs) {\n return FSharpList_Cons_305B8EAC(x, xs);\n}\n\nexport function singleton(x) {\n return FSharpList_Cons_305B8EAC(x, FSharpList_get_Empty());\n}\n\nexport function isEmpty(xs) {\n return FSharpList__get_IsEmpty(xs);\n}\n\nexport function length(xs) {\n return FSharpList__get_Length(xs);\n}\n\nexport function head(xs) {\n return FSharpList__get_Head(xs);\n}\n\nexport function tryHead(xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n return void 0;\n }\n else {\n return some(FSharpList__get_Head(xs));\n }\n}\n\nexport function tail(xs) {\n return FSharpList__get_Tail(xs);\n}\n\nexport function tryLast(xs_mut) {\n tryLast:\n while (true) {\n const xs = xs_mut;\n if (FSharpList__get_IsEmpty(xs)) {\n return void 0;\n }\n else {\n const t = FSharpList__get_Tail(xs);\n if (FSharpList__get_IsEmpty(t)) {\n return some(FSharpList__get_Head(xs));\n }\n else {\n xs_mut = t;\n continue tryLast;\n }\n }\n break;\n }\n}\n\nexport function last(xs) {\n const matchValue = tryLast(xs);\n if (matchValue == null) {\n throw (new Error(SR_inputListWasEmpty));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function compareWith(comparer, xs, ys) {\n const loop = (xs_1_mut, ys_1_mut) => {\n loop:\n while (true) {\n const xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n const matchValue = [FSharpList__get_IsEmpty(xs_1), FSharpList__get_IsEmpty(ys_1)];\n if (matchValue[0]) {\n if (matchValue[1]) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (matchValue[1]) {\n return 1;\n }\n else {\n const c = comparer(FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1)) | 0;\n if (c === 0) {\n xs_1_mut = FSharpList__get_Tail(xs_1);\n ys_1_mut = FSharpList__get_Tail(ys_1);\n continue loop;\n }\n else {\n return c | 0;\n }\n }\n break;\n }\n };\n return loop(xs, ys) | 0;\n}\n\nexport function toArray(xs) {\n const len = FSharpList__get_Length(xs) | 0;\n const res = fill(new Array(len), 0, len, null);\n const loop = (i_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n if (!FSharpList__get_IsEmpty(xs_1)) {\n res[i] = FSharpList__get_Head(xs_1);\n i_mut = (i + 1);\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n loop(0, xs);\n return res;\n}\n\nexport function fold(folder, state, xs) {\n let acc = state;\n let xs_1 = xs;\n while (!FSharpList__get_IsEmpty(xs_1)) {\n acc = folder(acc, FSharpList__get_Head(xs_1));\n xs_1 = FSharpList__get_Tail(xs_1);\n }\n return acc;\n}\n\nexport function reverse(xs) {\n return fold((acc, x) => FSharpList_Cons_305B8EAC(x, acc), FSharpList_get_Empty(), xs);\n}\n\nexport function foldBack(folder, xs, state) {\n return foldBack_1(folder, toArray(xs), state);\n}\n\nexport function foldIndexed(folder, state, xs) {\n const loop = (i_mut, acc_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return acc;\n }\n else {\n i_mut = (i + 1);\n acc_mut = folder(i, acc, FSharpList__get_Head(xs_1));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n return loop(0, state, xs);\n}\n\nexport function fold2(folder, state, xs, ys) {\n let acc = state;\n let xs_1 = xs;\n let ys_1 = ys;\n while ((!FSharpList__get_IsEmpty(xs_1)) ? (!FSharpList__get_IsEmpty(ys_1)) : false) {\n acc = folder(acc, FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1));\n xs_1 = FSharpList__get_Tail(xs_1);\n ys_1 = FSharpList__get_Tail(ys_1);\n }\n return acc;\n}\n\nexport function foldBack2(folder, xs, ys, state) {\n return foldBack2_1(folder, toArray(xs), toArray(ys), state);\n}\n\nexport function unfold(gen, state) {\n const loop = (acc_mut, node_mut) => {\n let t;\n loop:\n while (true) {\n const acc = acc_mut, node = node_mut;\n const matchValue = gen(acc);\n if (matchValue != null) {\n acc_mut = matchValue[1];\n node_mut = (t = (new FSharpList(matchValue[0], void 0)), (node.tail = t, t));\n continue loop;\n }\n else {\n return node;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node_1 = loop(state, root);\n const t_2 = FSharpList_get_Empty();\n node_1.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function iterate(action, xs) {\n fold((unitVar0, x) => {\n action(x);\n }, void 0, xs);\n}\n\nexport function iterate2(action, xs, ys) {\n fold2((unitVar0, x, y) => {\n action(x, y);\n }, void 0, xs, ys);\n}\n\nexport function iterateIndexed(action, xs) {\n void fold((i, x) => {\n action(i, x);\n return (i + 1) | 0;\n }, 0, xs);\n}\n\nexport function iterateIndexed2(action, xs, ys) {\n void fold2((i, x, y) => {\n action(i, x, y);\n return (i + 1) | 0;\n }, 0, xs, ys);\n}\n\nexport function toSeq(xs) {\n return xs;\n}\n\nexport function ofArrayWithTail(xs, tail_1) {\n let res = tail_1;\n for (let i = xs.length - 1; i >= 0; i--) {\n res = FSharpList_Cons_305B8EAC(xs[i], res);\n }\n return res;\n}\n\nexport function ofArray(xs) {\n return ofArrayWithTail(xs, FSharpList_get_Empty());\n}\n\nexport function ofSeq(xs) {\n let xs_3, t;\n if (isArrayLike(xs)) {\n return ofArray(xs);\n }\n else if (xs instanceof FSharpList) {\n return xs;\n }\n else {\n const root = FSharpList_get_Empty();\n let node = root;\n const enumerator = getEnumerator(xs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n node = (xs_3 = node, (t = (new FSharpList(x, void 0)), (xs_3.tail = t, t)));\n }\n }\n finally {\n enumerator.Dispose();\n }\n const xs_5 = node;\n const t_2 = FSharpList_get_Empty();\n xs_5.tail = t_2;\n return FSharpList__get_Tail(root);\n }\n}\n\nexport function concat(lists) {\n const root = FSharpList_get_Empty();\n let node = root;\n const action = (xs) => {\n node = fold((acc, x) => {\n const t = new FSharpList(x, void 0);\n acc.tail = t;\n return t;\n }, node, xs);\n };\n if (isArrayLike(lists)) {\n lists.forEach(action);\n }\n else if (lists instanceof FSharpList) {\n iterate(action, lists);\n }\n else {\n const enumerator = getEnumerator(lists);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n action(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n }\n finally {\n enumerator.Dispose();\n }\n }\n const xs_6 = node;\n const t_2 = FSharpList_get_Empty();\n xs_6.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function scan(folder, state, xs) {\n let xs_4, t_2;\n const root = FSharpList_get_Empty();\n let node;\n const t = new FSharpList(state, void 0);\n root.tail = t;\n node = t;\n let acc = state;\n let xs_3 = xs;\n while (!FSharpList__get_IsEmpty(xs_3)) {\n acc = folder(acc, FSharpList__get_Head(xs_3));\n node = (xs_4 = node, (t_2 = (new FSharpList(acc, void 0)), (xs_4.tail = t_2, t_2)));\n xs_3 = FSharpList__get_Tail(xs_3);\n }\n const xs_6 = node;\n const t_4 = FSharpList_get_Empty();\n xs_6.tail = t_4;\n return FSharpList__get_Tail(root);\n}\n\nexport function scanBack(folder, xs, state) {\n return ofArray(scanBack_1(folder, toArray(xs), state));\n}\n\nexport function append(xs, ys) {\n return fold((acc, x) => FSharpList_Cons_305B8EAC(x, acc), ys, reverse(xs));\n}\n\nexport function collect(mapping, xs) {\n let xs_1, t;\n const root = FSharpList_get_Empty();\n let node = root;\n let ys = xs;\n while (!FSharpList__get_IsEmpty(ys)) {\n let zs = mapping(FSharpList__get_Head(ys));\n while (!FSharpList__get_IsEmpty(zs)) {\n node = (xs_1 = node, (t = (new FSharpList(FSharpList__get_Head(zs), void 0)), (xs_1.tail = t, t)));\n zs = FSharpList__get_Tail(zs);\n }\n ys = FSharpList__get_Tail(ys);\n }\n const xs_3 = node;\n const t_2 = FSharpList_get_Empty();\n xs_3.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function mapIndexed(mapping, xs) {\n const root = FSharpList_get_Empty();\n const node = foldIndexed((i, acc, x) => {\n const t = new FSharpList(mapping(i, x), void 0);\n acc.tail = t;\n return t;\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function map(mapping, xs) {\n const root = FSharpList_get_Empty();\n const node = fold((acc, x) => {\n const t = new FSharpList(mapping(x), void 0);\n acc.tail = t;\n return t;\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\n\nexport function map2(mapping, xs, ys) {\n const root = FSharpList_get_Empty();\n const node = fold2((acc, x, y) => {\n const t = new FSharpList(mapping(x, y), void 0);\n acc.tail = t;\n return t;\n }, root, xs, ys);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function mapIndexed2(mapping, xs, ys) {\n const loop = (i_mut, acc_mut, xs_1_mut, ys_1_mut) => {\n let t;\n loop:\n while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n if (FSharpList__get_IsEmpty(xs_1) ? true : FSharpList__get_IsEmpty(ys_1)) {\n return acc;\n }\n else {\n i_mut = (i + 1);\n acc_mut = (t = (new FSharpList(mapping(i, FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1)), void 0)), (acc.tail = t, t));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n ys_1_mut = FSharpList__get_Tail(ys_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node_1 = loop(0, root, xs, ys);\n const t_2 = FSharpList_get_Empty();\n node_1.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function map3(mapping, xs, ys, zs) {\n const loop = (acc_mut, xs_1_mut, ys_1_mut, zs_1_mut) => {\n let t;\n loop:\n while (true) {\n const acc = acc_mut, xs_1 = xs_1_mut, ys_1 = ys_1_mut, zs_1 = zs_1_mut;\n if ((FSharpList__get_IsEmpty(xs_1) ? true : FSharpList__get_IsEmpty(ys_1)) ? true : FSharpList__get_IsEmpty(zs_1)) {\n return acc;\n }\n else {\n acc_mut = (t = (new FSharpList(mapping(FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1), FSharpList__get_Head(zs_1)), void 0)), (acc.tail = t, t));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n ys_1_mut = FSharpList__get_Tail(ys_1);\n zs_1_mut = FSharpList__get_Tail(zs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node_1 = loop(root, xs, ys, zs);\n const t_2 = FSharpList_get_Empty();\n node_1.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function mapFold(mapping, state, xs) {\n const root = FSharpList_get_Empty();\n const patternInput_1 = fold((tupledArg, x) => {\n let t;\n const patternInput = mapping(tupledArg[1], x);\n return [(t = (new FSharpList(patternInput[0], void 0)), (tupledArg[0].tail = t, t)), patternInput[1]];\n }, [root, state], xs);\n const t_2 = FSharpList_get_Empty();\n patternInput_1[0].tail = t_2;\n return [FSharpList__get_Tail(root), patternInput_1[1]];\n}\n\nexport function mapFoldBack(mapping, xs, state) {\n return mapFold((acc, x) => mapping(x, acc), state, reverse(xs));\n}\n\nexport function tryPick(f, xs) {\n const loop = (xs_1_mut) => {\n loop:\n while (true) {\n const xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return void 0;\n }\n else {\n const matchValue = f(FSharpList__get_Head(xs_1));\n if (matchValue == null) {\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n else {\n return matchValue;\n }\n }\n break;\n }\n };\n return loop(xs);\n}\n\nexport function pick(f, xs) {\n const matchValue = tryPick(f, xs);\n if (matchValue == null) {\n throw (new Error(SR_keyNotFoundAlt));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function tryFind(f, xs) {\n return tryPick((x) => (f(x) ? some(x) : (void 0)), xs);\n}\n\nexport function find(f, xs) {\n const matchValue = tryFind(f, xs);\n if (matchValue == null) {\n throw (new Error(SR_keyNotFoundAlt));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function tryFindBack(f, xs) {\n return tryFindBack_1(f, toArray(xs));\n}\n\nexport function findBack(f, xs) {\n const matchValue = tryFindBack(f, xs);\n if (matchValue == null) {\n throw (new Error(SR_keyNotFoundAlt));\n }\n else {\n return value_1(matchValue);\n }\n}\n\nexport function tryFindIndex(f, xs) {\n const loop = (i_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return void 0;\n }\n else if (f(FSharpList__get_Head(xs_1))) {\n return i;\n }\n else {\n i_mut = (i + 1);\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n return loop(0, xs);\n}\n\nexport function findIndex(f, xs) {\n const matchValue = tryFindIndex(f, xs);\n if (matchValue == null) {\n throw (new Error(SR_keyNotFoundAlt));\n }\n else {\n return matchValue | 0;\n }\n}\n\nexport function tryFindIndexBack(f, xs) {\n return tryFindIndexBack_1(f, toArray(xs));\n}\n\nexport function findIndexBack(f, xs) {\n const matchValue = tryFindIndexBack(f, xs);\n if (matchValue == null) {\n throw (new Error(SR_keyNotFoundAlt));\n }\n else {\n return matchValue | 0;\n }\n}\n\nexport function tryItem(n, xs) {\n const loop = (i_mut, xs_1_mut) => {\n loop:\n while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return void 0;\n }\n else if (i === n) {\n return some(FSharpList__get_Head(xs_1));\n }\n else {\n i_mut = (i + 1);\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n return loop(0, xs);\n}\n\nexport function item(n, xs) {\n return FSharpList__get_Item_Z524259A4(xs, n);\n}\n\nexport function filter(f, xs) {\n const root = FSharpList_get_Empty();\n const node = fold((acc, x) => {\n if (f(x)) {\n const t = new FSharpList(x, void 0);\n acc.tail = t;\n return t;\n }\n else {\n return acc;\n }\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function partition(f, xs) {\n const patternInput = [FSharpList_get_Empty(), FSharpList_get_Empty()];\n const root2 = patternInput[1];\n const root1 = patternInput[0];\n const patternInput_1 = fold(uncurry(2, (tupledArg) => {\n const lacc = tupledArg[0];\n const racc = tupledArg[1];\n return (x) => {\n let t, t_2;\n return f(x) ? [(t = (new FSharpList(x, void 0)), (lacc.tail = t, t)), racc] : [lacc, (t_2 = (new FSharpList(x, void 0)), (racc.tail = t_2, t_2))];\n };\n }), [root1, root2], xs);\n const t_4 = FSharpList_get_Empty();\n patternInput_1[0].tail = t_4;\n const t_5 = FSharpList_get_Empty();\n patternInput_1[1].tail = t_5;\n return [FSharpList__get_Tail(root1), FSharpList__get_Tail(root2)];\n}\n\nexport function choose(f, xs) {\n const root = FSharpList_get_Empty();\n const node = fold((acc, x) => {\n const matchValue = f(x);\n if (matchValue == null) {\n return acc;\n }\n else {\n const t = new FSharpList(value_1(matchValue), void 0);\n acc.tail = t;\n return t;\n }\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function contains(value, xs, eq) {\n return tryFindIndex((v) => eq.Equals(value, v), xs) != null;\n}\n\nexport function initialize(n, f) {\n let xs, t;\n const root = FSharpList_get_Empty();\n let node = root;\n for (let i = 0; i <= (n - 1); i++) {\n node = (xs = node, (t = (new FSharpList(f(i), void 0)), (xs.tail = t, t)));\n }\n const xs_2 = node;\n const t_2 = FSharpList_get_Empty();\n xs_2.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function replicate(n, x) {\n return initialize(n, (_arg1) => x);\n}\n\nexport function reduce(f, xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n throw (new Error(SR_inputListWasEmpty));\n }\n else {\n return fold(f, head(xs), tail(xs));\n }\n}\n\nexport function reduceBack(f, xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n throw (new Error(SR_inputListWasEmpty));\n }\n else {\n return foldBack(f, tail(xs), head(xs));\n }\n}\n\nexport function forAll(f, xs) {\n return fold((acc, x) => (acc ? f(x) : false), true, xs);\n}\n\nexport function forAll2(f, xs, ys) {\n return fold2((acc, x, y) => (acc ? f(x, y) : false), true, xs, ys);\n}\n\nexport function exists(f, xs) {\n return tryFindIndex(f, xs) != null;\n}\n\nexport function exists2(f_mut, xs_mut, ys_mut) {\n exists2:\n while (true) {\n const f = f_mut, xs = xs_mut, ys = ys_mut;\n const matchValue = [FSharpList__get_IsEmpty(xs), FSharpList__get_IsEmpty(ys)];\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[1]) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[1]) {\n pattern_matching_result = 2;\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return false;\n }\n case 1: {\n if (f(FSharpList__get_Head(xs), FSharpList__get_Head(ys))) {\n return true;\n }\n else {\n f_mut = f;\n xs_mut = FSharpList__get_Tail(xs);\n ys_mut = FSharpList__get_Tail(ys);\n continue exists2;\n }\n }\n case 2: {\n throw (new Error((SR_listsHadDifferentLengths + \"\\\\nParameter name: \") + \"list2\"));\n }\n }\n break;\n }\n}\n\nexport function unzip(xs) {\n return foldBack((tupledArg, tupledArg_1) => [FSharpList_Cons_305B8EAC(tupledArg[0], tupledArg_1[0]), FSharpList_Cons_305B8EAC(tupledArg[1], tupledArg_1[1])], xs, [FSharpList_get_Empty(), FSharpList_get_Empty()]);\n}\n\nexport function unzip3(xs) {\n return foldBack((tupledArg, tupledArg_1) => [FSharpList_Cons_305B8EAC(tupledArg[0], tupledArg_1[0]), FSharpList_Cons_305B8EAC(tupledArg[1], tupledArg_1[1]), FSharpList_Cons_305B8EAC(tupledArg[2], tupledArg_1[2])], xs, [FSharpList_get_Empty(), FSharpList_get_Empty(), FSharpList_get_Empty()]);\n}\n\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\n\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\n\nexport function sortWith(comparer, xs) {\n const arr = toArray(xs);\n arr.sort(comparer);\n return ofArray(arr);\n}\n\nexport function sort(xs, comparer) {\n return sortWith((x, y) => comparer.Compare(x, y), xs);\n}\n\nexport function sortBy(projection, xs, comparer) {\n return sortWith((x, y) => comparer.Compare(projection(x), projection(y)), xs);\n}\n\nexport function sortDescending(xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(x, y) * -1), xs);\n}\n\nexport function sortByDescending(projection, xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(projection(x), projection(y)) * -1), xs);\n}\n\nexport function sum(xs, adder) {\n return fold((acc, x) => adder.Add(acc, x), adder.GetZero(), xs);\n}\n\nexport function sumBy(f, xs, adder) {\n return fold((acc, x) => adder.Add(acc, f(x)), adder.GetZero(), xs);\n}\n\nexport function maxBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? y : x), xs);\n}\n\nexport function max(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? y : x), xs);\n}\n\nexport function minBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? x : y), xs);\n}\n\nexport function min(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? x : y), xs);\n}\n\nexport function average(xs, averager) {\n let count = 0;\n return averager.DivideByInt(fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, x);\n }, averager.GetZero(), xs), count);\n}\n\nexport function averageBy(f, xs, averager) {\n let count = 0;\n return averager.DivideByInt(fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, f(x));\n }, averager.GetZero(), xs), count);\n}\n\nexport function permute(f, xs) {\n return ofArray(permute_1(f, toArray(xs)));\n}\n\nexport function chunkBySize(chunkSize, xs) {\n return ofArray(map_1((xs_1) => ofArray(xs_1), chunkBySize_1(chunkSize, toArray(xs))));\n}\n\nexport function allPairs(xs, ys) {\n const root = FSharpList_get_Empty();\n let node = root;\n iterate((x) => {\n iterate((y) => {\n let xs_1, t;\n node = (xs_1 = node, (t = (new FSharpList([x, y], void 0)), (xs_1.tail = t, t)));\n }, ys);\n }, xs);\n const xs_3 = node;\n const t_2 = FSharpList_get_Empty();\n xs_3.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function skip(count_mut, xs_mut) {\n skip:\n while (true) {\n const count = count_mut, xs = xs_mut;\n if (count <= 0) {\n return xs;\n }\n else if (FSharpList__get_IsEmpty(xs)) {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"list\"));\n }\n else {\n count_mut = (count - 1);\n xs_mut = FSharpList__get_Tail(xs);\n continue skip;\n }\n break;\n }\n}\n\nexport function skipWhile(predicate_mut, xs_mut) {\n skipWhile:\n while (true) {\n const predicate = predicate_mut, xs = xs_mut;\n if (FSharpList__get_IsEmpty(xs)) {\n return xs;\n }\n else if (!predicate(FSharpList__get_Head(xs))) {\n return xs;\n }\n else {\n predicate_mut = predicate;\n xs_mut = FSharpList__get_Tail(xs);\n continue skipWhile;\n }\n break;\n }\n}\n\nexport function take(count, xs) {\n if (count < 0) {\n throw (new Error((SR_inputMustBeNonNegative + \"\\\\nParameter name: \") + \"count\"));\n }\n const loop = (i_mut, acc_mut, xs_1_mut) => {\n let t;\n loop:\n while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut;\n if (i <= 0) {\n return acc;\n }\n else if (FSharpList__get_IsEmpty(xs_1)) {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"list\"));\n }\n else {\n i_mut = (i - 1);\n acc_mut = (t = (new FSharpList(FSharpList__get_Head(xs_1), void 0)), (acc.tail = t, t));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node = loop(count, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function takeWhile(predicate, xs) {\n const loop = (acc_mut, xs_1_mut) => {\n let t;\n loop:\n while (true) {\n const acc = acc_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return acc;\n }\n else if (!predicate(FSharpList__get_Head(xs_1))) {\n return acc;\n }\n else {\n acc_mut = (t = (new FSharpList(FSharpList__get_Head(xs_1), void 0)), (acc.tail = t, t));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node = loop(root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function truncate(count, xs) {\n const loop = (i_mut, acc_mut, xs_1_mut) => {\n let t;\n loop:\n while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut;\n if (i <= 0) {\n return acc;\n }\n else if (FSharpList__get_IsEmpty(xs_1)) {\n return acc;\n }\n else {\n i_mut = (i - 1);\n acc_mut = (t = (new FSharpList(FSharpList__get_Head(xs_1), void 0)), (acc.tail = t, t));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node = loop(count, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\n\nexport function getSlice(startIndex, endIndex, xs) {\n const len = length(xs) | 0;\n const startIndex_1 = defaultArg(startIndex, 0) | 0;\n const endIndex_1 = defaultArg(endIndex, len - 1) | 0;\n if (startIndex_1 < 0) {\n throw (new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"startIndex\"));\n }\n else if (endIndex_1 >= len) {\n throw (new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"endIndex\"));\n }\n else if (endIndex_1 < startIndex_1) {\n return FSharpList_get_Empty();\n }\n else {\n return take((endIndex_1 - startIndex_1) + 1, skip(startIndex_1, xs));\n }\n}\n\nexport function splitAt(index, xs) {\n if (index < 0) {\n throw (new Error((SR_inputMustBeNonNegative + \"\\\\nParameter name: \") + \"index\"));\n }\n if (index > FSharpList__get_Length(xs)) {\n throw (new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"index\"));\n }\n return [take(index, xs), skip(index, xs)];\n}\n\nexport function exactlyOne(xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n throw (new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"list\"));\n }\n else if (FSharpList__get_IsEmpty(FSharpList__get_Tail(xs))) {\n return FSharpList__get_Head(xs);\n }\n else {\n throw (new Error((SR_inputSequenceTooLong + \"\\\\nParameter name: \") + \"list\"));\n }\n}\n\nexport function tryExactlyOne(xs) {\n if ((!FSharpList__get_IsEmpty(xs)) ? FSharpList__get_IsEmpty(FSharpList__get_Tail(xs)) : false) {\n return some(FSharpList__get_Head(xs));\n }\n else {\n return void 0;\n }\n}\n\nexport function where(predicate, xs) {\n return filter(predicate, xs);\n}\n\nexport function pairwise(xs) {\n return ofArray(pairwise_1(toArray(xs)));\n}\n\nexport function windowed(windowSize, xs) {\n return ofArray(map_1((xs_1) => ofArray(xs_1), windowed_1(windowSize, toArray(xs))));\n}\n\nexport function splitInto(chunks, xs) {\n return ofArray(map_1((xs_1) => ofArray(xs_1), splitInto_1(chunks, toArray(xs))));\n}\n\nexport function transpose(lists) {\n return ofArray(map_1((xs_1) => ofArray(xs_1), transpose_1(map_1((xs) => toArray(xs), Array.from(lists)))));\n}\n\n","export const symbol = Symbol(\"numeric\");\nexport function isNumeric(x) {\n return typeof x === \"number\" || (x === null || x === void 0 ? void 0 : x[symbol]);\n}\nexport function compare(x, y) {\n if (typeof x === \"number\") {\n return x < y ? -1 : (x > y ? 1 : 0);\n }\n else {\n return x.CompareTo(y);\n }\n}\nexport function multiply(x, y) {\n if (typeof x === \"number\") {\n return x * y;\n }\n else {\n return x[symbol]().multiply(y);\n }\n}\nexport function toFixed(x, dp) {\n if (typeof x === \"number\") {\n return x.toFixed(dp);\n }\n else {\n return x[symbol]().toFixed(dp);\n }\n}\nexport function toPrecision(x, sd) {\n if (typeof x === \"number\") {\n return x.toPrecision(sd);\n }\n else {\n return x[symbol]().toPrecision(sd);\n }\n}\nexport function toExponential(x, dp) {\n if (typeof x === \"number\") {\n return x.toExponential(dp);\n }\n else {\n return x[symbol]().toExponential(dp);\n }\n}\nexport function toHex(x) {\n if (typeof x === \"number\") {\n return (Number(x) >>> 0).toString(16);\n }\n else {\n return x[symbol]().toHex();\n }\n}\n","// export type decimal = Decimal;\nexport var NumberStyles;\n(function (NumberStyles) {\n // None = 0x00000000,\n // AllowLeadingWhite = 0x00000001,\n // AllowTrailingWhite = 0x00000002,\n // AllowLeadingSign = 0x00000004,\n // AllowTrailingSign = 0x00000008,\n // AllowParentheses = 0x00000010,\n // AllowDecimalPoint = 0x00000020,\n // AllowThousands = 0x00000040,\n // AllowExponent = 0x00000080,\n // AllowCurrencySymbol = 0x00000100,\n NumberStyles[NumberStyles[\"AllowHexSpecifier\"] = 512] = \"AllowHexSpecifier\";\n // Integer = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign,\n // HexNumber = AllowLeadingWhite | AllowTrailingWhite | AllowHexSpecifier,\n // Number = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign |\n // AllowTrailingSign | AllowDecimalPoint | AllowThousands,\n // Float = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign |\n // AllowDecimalPoint | AllowExponent,\n // Currency = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |\n // AllowParentheses | AllowDecimalPoint | AllowThousands | AllowCurrencySymbol,\n // Any = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |\n // AllowParentheses | AllowDecimalPoint | AllowThousands | AllowCurrencySymbol | AllowExponent,\n})(NumberStyles || (NumberStyles = {}));\nfunction validResponse(regexMatch, radix) {\n const [/*all*/ , sign, prefix, digits] = regexMatch;\n return {\n sign: sign || \"\",\n prefix: prefix || \"\",\n digits,\n radix,\n };\n}\nfunction getRange(unsigned, bitsize) {\n switch (bitsize) {\n case 8: return unsigned ? [0, 255] : [-128, 127];\n case 16: return unsigned ? [0, 65535] : [-32768, 32767];\n case 32: return unsigned ? [0, 4294967295] : [-2147483648, 2147483647];\n default: throw new Error(\"Invalid bit size.\");\n }\n}\nfunction getInvalidDigits(radix) {\n switch (radix) {\n case 2: return /[^0-1]/;\n case 8: return /[^0-7]/;\n case 10: return /[^0-9]/;\n case 16: return /[^0-9a-fA-F]/;\n default:\n throw new Error(\"Invalid Base.\");\n }\n}\nfunction getRadix(prefix, style) {\n if (style & NumberStyles.AllowHexSpecifier) {\n return 16;\n }\n else {\n switch (prefix) {\n case \"0b\":\n case \"0B\": return 2;\n case \"0o\":\n case \"0O\": return 8;\n case \"0x\":\n case \"0X\": return 16;\n default: return 10;\n }\n }\n}\nexport function isValid(str, style, radix) {\n const integerRegex = /^\\s*([\\+\\-])?(0[xXoObB])?([0-9a-fA-F]+)\\s*$/;\n const res = integerRegex.exec(str.replace(/_/g, \"\"));\n if (res != null) {\n const [/*all*/ , /*sign*/ , prefix, digits] = res;\n radix = radix || getRadix(prefix, style);\n const invalidDigits = getInvalidDigits(radix);\n if (!invalidDigits.test(digits)) {\n return validResponse(res, radix);\n }\n }\n return null;\n}\nexport function parse(str, style, unsigned, bitsize, radix) {\n const res = isValid(str, style, radix);\n if (res != null) {\n let v = Number.parseInt(res.sign + res.digits, res.radix);\n if (!Number.isNaN(v)) {\n const [umin, umax] = getRange(true, bitsize);\n if (!unsigned && res.radix !== 10 && v >= umin && v <= umax) {\n v = v << (32 - bitsize) >> (32 - bitsize);\n }\n const [min, max] = getRange(unsigned, bitsize);\n if (v >= min && v <= max) {\n return v;\n }\n }\n }\n throw new Error(\"Input string was not in a correct format.\");\n}\nexport function tryParse(str, style, unsigned, bitsize, defValue) {\n try {\n defValue.contents = parse(str, style, unsigned, bitsize);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexport function op_UnaryNegation_Int8(x) {\n return x === -128 ? x : -x;\n}\nexport function op_UnaryNegation_Int16(x) {\n return x === -32768 ? x : -x;\n}\nexport function op_UnaryNegation_Int32(x) {\n return x === -2147483648 ? x : -x;\n}\n","\"use strict\";\r\n\r\nexport function Parsimmon(action) {\r\n if (!(this instanceof Parsimmon)) {\r\n return new Parsimmon(action);\r\n }\r\n this._ = action;\r\n}\r\n\r\nvar _ = Parsimmon.prototype;\r\n\r\nexport function times(n, f) {\r\n var i = 0;\r\n for (i; i < n; i++) {\r\n f(i);\r\n }\r\n}\r\n\r\nexport function forEach(f, arr) {\r\n times(arr.length, function(i) {\r\n f(arr[i], i, arr);\r\n });\r\n}\r\n\r\nexport function reduce(f, seed, arr) {\r\n forEach(function(elem, i, arr) {\r\n seed = f(seed, elem, i, arr);\r\n }, arr);\r\n return seed;\r\n}\r\n\r\nexport function map(f, arr) {\r\n return reduce(\r\n function(acc, elem, i, a) {\r\n return acc.concat([f(elem, i, a)]);\r\n },\r\n [],\r\n arr\r\n );\r\n}\r\n\r\nexport function lshiftBuffer(input) {\r\n var asTwoBytes = reduce(\r\n function(a, v, i, b) {\r\n return a.concat(\r\n i === b.length - 1\r\n ? Buffer.from([v, 0]).readUInt16BE(0)\r\n : b.readUInt16BE(i)\r\n );\r\n },\r\n [],\r\n input\r\n );\r\n return Buffer.from(\r\n map(function(x) {\r\n return ((x << 1) & 0xffff) >> 8;\r\n }, asTwoBytes)\r\n );\r\n}\r\n\r\nfunction consumeBitsFromBuffer(n, input) {\r\n var state = { v: 0, buf: input };\r\n times(n, function() {\r\n state = {\r\n v: (state.v << 1) | bitPeekBuffer(state.buf),\r\n buf: lshiftBuffer(state.buf)\r\n };\r\n });\r\n return state;\r\n}\r\n\r\nfunction bitPeekBuffer(input) {\r\n return input[0] >> 7;\r\n}\r\n\r\nexport function sum(numArr) {\r\n return reduce(\r\n function(x, y) {\r\n return x + y;\r\n },\r\n 0,\r\n numArr\r\n );\r\n}\r\n\r\nexport function find(pred, arr) {\r\n return reduce(\r\n function(found, elem) {\r\n return found || (pred(elem) ? elem : found);\r\n },\r\n null,\r\n arr\r\n );\r\n}\r\n\r\nfunction bufferExists() {\r\n return typeof Buffer !== \"undefined\";\r\n}\r\n\r\nfunction ensureBuffer() {\r\n if (!bufferExists()) {\r\n throw new Error(\r\n \"Buffer global does not exist; please consider using https://github.com/feross/buffer if you are running Parsimmon in a browser.\"\r\n );\r\n }\r\n}\r\n\r\nfunction bitSeq(alignments) {\r\n ensureBuffer();\r\n var totalBits = sum(alignments);\r\n if (totalBits % 8 !== 0) {\r\n throw new Error(\r\n \"The bits [\" +\r\n alignments.join(\", \") +\r\n \"] add up to \" +\r\n totalBits +\r\n \" which is not an even number of bytes; the total should be divisible by 8\"\r\n );\r\n }\r\n var bytes = totalBits / 8;\r\n\r\n var tooBigRange = find(function(x) {\r\n return x > 48;\r\n }, alignments);\r\n if (tooBigRange) {\r\n throw new Error(\r\n tooBigRange + \" bit range requested exceeds 48 bit (6 byte) Number max.\"\r\n );\r\n }\r\n\r\n return new Parsimmon(function(input, i) {\r\n var newPos = bytes + i;\r\n if (newPos > input.length) {\r\n return makeFailure(i, bytes.toString() + \" bytes\");\r\n }\r\n return makeSuccess(\r\n newPos,\r\n reduce(\r\n function(acc, bits) {\r\n var state = consumeBitsFromBuffer(bits, acc.buf);\r\n return {\r\n coll: acc.coll.concat(state.v),\r\n buf: state.buf\r\n };\r\n },\r\n { coll: [], buf: input.slice(i, newPos) },\r\n alignments\r\n ).coll\r\n );\r\n });\r\n}\r\n\r\nfunction bitSeqObj(namedAlignments) {\r\n ensureBuffer();\r\n var seenKeys = {};\r\n var totalKeys = 0;\r\n var fullAlignments = map(function(item) {\r\n if (isArray(item)) {\r\n var pair = item;\r\n if (pair.length !== 2) {\r\n throw new Error(\r\n \"[\" +\r\n pair.join(\", \") +\r\n \"] should be length 2, got length \" +\r\n pair.length\r\n );\r\n }\r\n assertString(pair[0]);\r\n assertNumber(pair[1]);\r\n if (Object.prototype.hasOwnProperty.call(seenKeys, pair[0])) {\r\n throw new Error(\"duplicate key in bitSeqObj: \" + pair[0]);\r\n }\r\n seenKeys[pair[0]] = true;\r\n totalKeys++;\r\n return pair;\r\n } else {\r\n assertNumber(item);\r\n return [null, item];\r\n }\r\n }, namedAlignments);\r\n if (totalKeys < 1) {\r\n throw new Error(\r\n \"bitSeqObj expects at least one named pair, got [\" +\r\n namedAlignments.join(\", \") +\r\n \"]\"\r\n );\r\n }\r\n var namesOnly = map(function(pair) {\r\n return pair[0];\r\n }, fullAlignments);\r\n var alignmentsOnly = map(function(pair) {\r\n return pair[1];\r\n }, fullAlignments);\r\n\r\n return bitSeq(alignmentsOnly).map(function(parsed) {\r\n var namedParsed = map(function(name, i) {\r\n return [name, parsed[i]];\r\n }, namesOnly);\r\n\r\n return reduce(\r\n function(obj, kv) {\r\n if (kv[0] !== null) {\r\n obj[kv[0]] = kv[1];\r\n }\r\n return obj;\r\n },\r\n {},\r\n namedParsed\r\n );\r\n });\r\n}\r\n\r\nfunction parseBufferFor(other, length) {\r\n ensureBuffer();\r\n return new Parsimmon(function(input, i) {\r\n if (i + length > input.length) {\r\n return makeFailure(i, length + \" bytes for \" + other);\r\n }\r\n return makeSuccess(i + length, input.slice(i, i + length));\r\n });\r\n}\r\n\r\nfunction parseBuffer(length) {\r\n return parseBufferFor(\"buffer\", length).map(function(unsafe) {\r\n return Buffer.from(unsafe);\r\n });\r\n}\r\n\r\nfunction encodedString(encoding, length) {\r\n return parseBufferFor(\"string\", length).map(function(buff) {\r\n return buff.toString(encoding);\r\n });\r\n}\r\n\r\nfunction isInteger(value) {\r\n return typeof value === \"number\" && Math.floor(value) === value;\r\n}\r\n\r\nfunction assertValidIntegerByteLengthFor(who, length) {\r\n if (!isInteger(length) || length < 0 || length > 6) {\r\n throw new Error(who + \" requires integer length in range [0, 6].\");\r\n }\r\n}\r\n\r\nfunction uintBE(length) {\r\n assertValidIntegerByteLengthFor(\"uintBE\", length);\r\n return parseBufferFor(\"uintBE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readUIntBE(0, length);\r\n });\r\n}\r\n\r\nfunction uintLE(length) {\r\n assertValidIntegerByteLengthFor(\"uintLE\", length);\r\n return parseBufferFor(\"uintLE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readUIntLE(0, length);\r\n });\r\n}\r\n\r\nfunction intBE(length) {\r\n assertValidIntegerByteLengthFor(\"intBE\", length);\r\n return parseBufferFor(\"intBE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readIntBE(0, length);\r\n });\r\n}\r\n\r\nfunction intLE(length) {\r\n assertValidIntegerByteLengthFor(\"intLE\", length);\r\n return parseBufferFor(\"intLE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readIntLE(0, length);\r\n });\r\n}\r\n\r\nfunction floatBE() {\r\n return parseBufferFor(\"floatBE\", 4).map(function(buff) {\r\n return buff.readFloatBE(0);\r\n });\r\n}\r\n\r\nfunction floatLE() {\r\n return parseBufferFor(\"floatLE\", 4).map(function(buff) {\r\n return buff.readFloatLE(0);\r\n });\r\n}\r\n\r\nfunction doubleBE() {\r\n return parseBufferFor(\"doubleBE\", 8).map(function(buff) {\r\n return buff.readDoubleBE(0);\r\n });\r\n}\r\n\r\nfunction doubleLE() {\r\n return parseBufferFor(\"doubleLE\", 8).map(function(buff) {\r\n return buff.readDoubleLE(0);\r\n });\r\n}\r\n\r\nfunction toArray(arrLike) {\r\n return Array.prototype.slice.call(arrLike);\r\n}\r\n// -*- Helpers -*-\r\n\r\nfunction isParser(obj) {\r\n return obj instanceof Parsimmon;\r\n}\r\n\r\nfunction isArray(x) {\r\n return {}.toString.call(x) === \"[object Array]\";\r\n}\r\n\r\nfunction isBuffer(x) {\r\n /* global Buffer */\r\n return bufferExists() && Buffer.isBuffer(x);\r\n}\r\n\r\nexport function makeSuccess(index, value) {\r\n return {\r\n status: true,\r\n index: index,\r\n value: value,\r\n furthest: -1,\r\n expected: []\r\n };\r\n}\r\n\r\nexport function makeFailure(index, expected) {\r\n if (!isArray(expected)) {\r\n expected = [expected];\r\n }\r\n return {\r\n status: false,\r\n index: -1,\r\n value: null,\r\n furthest: index,\r\n expected: expected\r\n };\r\n}\r\n\r\nfunction mergeReplies(result, last) {\r\n if (!last) {\r\n return result;\r\n }\r\n if (result.furthest > last.furthest) {\r\n return result;\r\n }\r\n var expected =\r\n result.furthest === last.furthest\r\n ? union(result.expected, last.expected)\r\n : last.expected;\r\n return {\r\n status: result.status,\r\n index: result.index,\r\n value: result.value,\r\n furthest: last.furthest,\r\n expected: expected\r\n };\r\n}\r\n\r\nfunction makeLineColumnIndex(input, i) {\r\n if (isBuffer(input)) {\r\n return {\r\n offset: i,\r\n line: -1,\r\n column: -1\r\n };\r\n }\r\n var lines = input.slice(0, i).split(\"\\n\");\r\n // Note that unlike the character offset, the line and column offsets are\r\n // 1-based.\r\n var lineWeAreUpTo = lines.length;\r\n var columnWeAreUpTo = lines[lines.length - 1].length + 1;\r\n return {\r\n offset: i,\r\n line: lineWeAreUpTo,\r\n column: columnWeAreUpTo\r\n };\r\n}\r\n\r\n// Returns the sorted set union of two arrays of strings\r\nfunction union(xs, ys) {\r\n var obj = {};\r\n for (var i = 0; i < xs.length; i++) {\r\n obj[xs[i]] = true;\r\n }\r\n for (var j = 0; j < ys.length; j++) {\r\n obj[ys[j]] = true;\r\n }\r\n var keys = [];\r\n for (var k in obj) {\r\n if ({}.hasOwnProperty.call(obj, k)) {\r\n keys.push(k);\r\n }\r\n }\r\n keys.sort();\r\n return keys;\r\n}\r\n\r\nfunction assertParser(p) {\r\n if (!isParser(p)) {\r\n throw new Error(\"not a parser: \" + p);\r\n }\r\n}\r\n\r\nfunction get(input, i) {\r\n if (typeof input === \"string\") {\r\n return input.charAt(i);\r\n }\r\n return input[i];\r\n}\r\n\r\n// TODO[ES5]: Switch to Array.isArray eventually.\r\nfunction assertArray(x) {\r\n if (!isArray(x)) {\r\n throw new Error(\"not an array: \" + x);\r\n }\r\n}\r\n\r\nfunction assertNumber(x) {\r\n if (typeof x !== \"number\") {\r\n throw new Error(\"not a number: \" + x);\r\n }\r\n}\r\n\r\nfunction assertRegexp(x) {\r\n if (!(x instanceof RegExp)) {\r\n throw new Error(\"not a regexp: \" + x);\r\n }\r\n var f = flags(x);\r\n for (var i = 0; i < f.length; i++) {\r\n var c = f.charAt(i);\r\n // Only allow regexp flags [imu] for now, since [g] and [y] specifically\r\n // mess up Parsimmon. If more non-stateful regexp flags are added in the\r\n // future, this will need to be revisited.\r\n if (c !== \"i\" && c !== \"m\" && c !== \"u\") {\r\n throw new Error('unsupported regexp flag \"' + c + '\": ' + x);\r\n }\r\n }\r\n}\r\n\r\nfunction assertFunction(x) {\r\n if (typeof x !== \"function\") {\r\n throw new Error(\"not a function: \" + x);\r\n }\r\n}\r\n\r\nfunction assertString(x) {\r\n if (typeof x !== \"string\") {\r\n throw new Error(\"not a string: \" + x);\r\n }\r\n}\r\n\r\n// -*- Error Formatting -*-\r\n\r\nvar linesBeforeStringError = 2;\r\nvar linesAfterStringError = 3;\r\nvar bytesPerLine = 8;\r\nvar bytesBefore = bytesPerLine * 5;\r\nvar bytesAfter = bytesPerLine * 4;\r\nvar defaultLinePrefix = \" \";\r\n\r\nexport function repeat(string, amount) {\r\n return new Array(amount + 1).join(string);\r\n}\r\n\r\nexport function formatExpected(expected) {\r\n if (expected.length === 1) {\r\n return \"Expected:\\n\\n\" + expected[0];\r\n }\r\n return \"Expected one of the following: \\n\\n\" + expected.join(\", \");\r\n}\r\n\r\nexport function leftPad(str, pad, char) {\r\n var add = pad - str.length;\r\n if (add <= 0) {\r\n return str;\r\n }\r\n return repeat(char, add) + str;\r\n}\r\n\r\nfunction toChunks(arr, chunkSize) {\r\n var length = arr.length;\r\n var chunks = [];\r\n var chunkIndex = 0;\r\n\r\n if (length <= chunkSize) {\r\n return [arr.slice()];\r\n }\r\n\r\n for (var i = 0; i < length; i++) {\r\n if (!chunks[chunkIndex]) {\r\n chunks.push([]);\r\n }\r\n\r\n chunks[chunkIndex].push(arr[i]);\r\n\r\n if ((i + 1) % chunkSize === 0) {\r\n chunkIndex++;\r\n }\r\n }\r\n\r\n return chunks;\r\n}\r\n\r\n// Get a range of indexes including `i`-th element and `before` and `after` amount of elements from `arr`.\r\nexport function rangeFromIndexAndOffsets(i, before, after, length) {\r\n return {\r\n // Guard against the negative upper bound for lines included in the output.\r\n from: i - before > 0 ? i - before : 0,\r\n to: i + after > length ? length : i + after\r\n };\r\n}\r\n\r\nexport function byteRangeToRange(byteRange) {\r\n // Exception for inputs smaller than `bytesPerLine`\r\n if (byteRange.from === 0 && byteRange.to === 1) {\r\n return {\r\n from: byteRange.from,\r\n to: byteRange.to\r\n };\r\n }\r\n\r\n return {\r\n from: byteRange.from / bytesPerLine,\r\n // Round `to`, so we don't get float if the amount of bytes is not divisible by `bytesPerLine`\r\n to: Math.floor(byteRange.to / bytesPerLine)\r\n };\r\n}\r\n\r\nexport function formatGot(input, error) {\r\n var index = error.index;\r\n var i = index.offset;\r\n\r\n var verticalMarkerLength = 1;\r\n var column;\r\n var lineWithErrorIndex;\r\n var lines;\r\n var lineRange;\r\n var lastLineNumberLabelLength;\r\n\r\n if (i === input.length) {\r\n return \"Got the end of the input\";\r\n }\r\n\r\n if (isBuffer(input)) {\r\n var byteLineWithErrorIndex = i - (i % bytesPerLine);\r\n var columnByteIndex = i - byteLineWithErrorIndex;\r\n var byteRange = rangeFromIndexAndOffsets(\r\n byteLineWithErrorIndex,\r\n bytesBefore,\r\n bytesAfter + bytesPerLine,\r\n input.length\r\n );\r\n var bytes = input.slice(byteRange.from, byteRange.to);\r\n var bytesInChunks = toChunks(bytes.toJSON().data, bytesPerLine);\r\n\r\n var byteLines = map(function(byteRow) {\r\n return map(function(byteValue) {\r\n // Prefix byte values with a `0` if they are shorter than 2 characters.\r\n return leftPad(byteValue.toString(16), 2, \"0\");\r\n }, byteRow);\r\n }, bytesInChunks);\r\n\r\n lineRange = byteRangeToRange(byteRange);\r\n lineWithErrorIndex = byteLineWithErrorIndex / bytesPerLine;\r\n column = columnByteIndex * 3;\r\n\r\n // Account for an extra space.\r\n if (columnByteIndex >= 4) {\r\n column += 1;\r\n }\r\n\r\n verticalMarkerLength = 2;\r\n lines = map(function(byteLine) {\r\n return byteLine.length <= 4\r\n ? byteLine.join(\" \")\r\n : byteLine.slice(0, 4).join(\" \") + \" \" + byteLine.slice(4).join(\" \");\r\n }, byteLines);\r\n lastLineNumberLabelLength = (\r\n (lineRange.to > 0 ? lineRange.to - 1 : lineRange.to) * 8\r\n ).toString(16).length;\r\n\r\n if (lastLineNumberLabelLength < 2) {\r\n lastLineNumberLabelLength = 2;\r\n }\r\n } else {\r\n var inputLines = input.split(/\\r\\n|[\\n\\r\\u2028\\u2029]/);\r\n column = index.column - 1;\r\n lineWithErrorIndex = index.line - 1;\r\n lineRange = rangeFromIndexAndOffsets(\r\n lineWithErrorIndex,\r\n linesBeforeStringError,\r\n linesAfterStringError,\r\n inputLines.length\r\n );\r\n\r\n lines = inputLines.slice(lineRange.from, lineRange.to);\r\n lastLineNumberLabelLength = lineRange.to.toString().length;\r\n }\r\n\r\n var lineWithErrorCurrentIndex = lineWithErrorIndex - lineRange.from;\r\n\r\n if (isBuffer(input)) {\r\n lastLineNumberLabelLength = (\r\n (lineRange.to > 0 ? lineRange.to - 1 : lineRange.to) * 8\r\n ).toString(16).length;\r\n\r\n if (lastLineNumberLabelLength < 2) {\r\n lastLineNumberLabelLength = 2;\r\n }\r\n }\r\n\r\n var linesWithLineNumbers = reduce(\r\n function(acc, lineSource, index) {\r\n var isLineWithError = index === lineWithErrorCurrentIndex;\r\n var prefix = isLineWithError ? \"> \" : defaultLinePrefix;\r\n var lineNumberLabel;\r\n\r\n if (isBuffer(input)) {\r\n lineNumberLabel = leftPad(\r\n ((lineRange.from + index) * 8).toString(16),\r\n lastLineNumberLabelLength,\r\n \"0\"\r\n );\r\n } else {\r\n lineNumberLabel = leftPad(\r\n (lineRange.from + index + 1).toString(),\r\n lastLineNumberLabelLength,\r\n \" \"\r\n );\r\n }\r\n\r\n return [].concat(\r\n acc,\r\n [prefix + lineNumberLabel + \" | \" + lineSource],\r\n isLineWithError\r\n ? [\r\n defaultLinePrefix +\r\n repeat(\" \", lastLineNumberLabelLength) +\r\n \" | \" +\r\n leftPad(\"\", column, \" \") +\r\n repeat(\"^\", verticalMarkerLength)\r\n ]\r\n : []\r\n );\r\n },\r\n [],\r\n lines\r\n );\r\n\r\n return linesWithLineNumbers.join(\"\\n\");\r\n}\r\n\r\nexport function formatError(input, error) {\r\n return [\r\n \"\\n\",\r\n \"-- PARSING FAILED \" + repeat(\"-\", 50),\r\n \"\\n\\n\",\r\n formatGot(input, error),\r\n \"\\n\\n\",\r\n formatExpected(error.expected),\r\n \"\\n\"\r\n ].join(\"\");\r\n}\r\n\r\nexport function flags(re) {\r\n var s = \"\" + re;\r\n return s.slice(s.lastIndexOf(\"/\") + 1);\r\n}\r\n\r\nexport function anchoredRegexp(re) {\r\n return RegExp(\"^(?:\" + re.source + \")\", flags(re));\r\n}\r\n\r\n// -*- Combinators -*-\r\n\r\nexport function seq() {\r\n var parsers = [].slice.call(arguments);\r\n var numParsers = parsers.length;\r\n for (var j = 0; j < numParsers; j += 1) {\r\n assertParser(parsers[j]);\r\n }\r\n return Parsimmon(function(input, i) {\r\n var result;\r\n var accum = new Array(numParsers);\r\n for (var j = 0; j < numParsers; j += 1) {\r\n result = mergeReplies(parsers[j]._(input, i), result);\r\n if (!result.status) {\r\n return result;\r\n }\r\n accum[j] = result.value;\r\n i = result.index;\r\n }\r\n return mergeReplies(makeSuccess(i, accum), result);\r\n });\r\n}\r\n\r\nexport function seqObj() {\r\n var seenKeys = {};\r\n var totalKeys = 0;\r\n var parsers = toArray(arguments);\r\n var numParsers = parsers.length;\r\n for (var j = 0; j < numParsers; j += 1) {\r\n var p = parsers[j];\r\n if (isParser(p)) {\r\n continue;\r\n }\r\n if (isArray(p)) {\r\n var isWellFormed =\r\n p.length === 2 && typeof p[0] === \"string\" && isParser(p[1]);\r\n if (isWellFormed) {\r\n var key = p[0];\r\n if (Object.prototype.hasOwnProperty.call(seenKeys, key)) {\r\n throw new Error(\"seqObj: duplicate key \" + key);\r\n }\r\n seenKeys[key] = true;\r\n totalKeys++;\r\n continue;\r\n }\r\n }\r\n throw new Error(\r\n \"seqObj arguments must be parsers or [string, parser] array pairs.\"\r\n );\r\n }\r\n if (totalKeys === 0) {\r\n throw new Error(\"seqObj expects at least one named parser, found zero\");\r\n }\r\n return Parsimmon(function(input, i) {\r\n var result;\r\n var accum = {};\r\n for (var j = 0; j < numParsers; j += 1) {\r\n var name;\r\n var parser;\r\n if (isArray(parsers[j])) {\r\n name = parsers[j][0];\r\n parser = parsers[j][1];\r\n } else {\r\n name = null;\r\n parser = parsers[j];\r\n }\r\n result = mergeReplies(parser._(input, i), result);\r\n if (!result.status) {\r\n return result;\r\n }\r\n if (name) {\r\n accum[name] = result.value;\r\n }\r\n i = result.index;\r\n }\r\n return mergeReplies(makeSuccess(i, accum), result);\r\n });\r\n}\r\n\r\nexport function seqMap() {\r\n var args = [].slice.call(arguments);\r\n if (args.length === 0) {\r\n throw new Error(\"seqMap needs at least one argument\");\r\n }\r\n var mapper = args.pop();\r\n assertFunction(mapper);\r\n return seq.apply(null, args).map(function(results) {\r\n return mapper.apply(null, results);\r\n });\r\n}\r\n\r\n// TODO[ES5]: Revisit this with Object.keys and .bind.\r\nexport function createLanguage(parsers) {\r\n var language = {};\r\n for (var key in parsers) {\r\n if ({}.hasOwnProperty.call(parsers, key)) {\r\n (function(key) {\r\n var func = function() {\r\n return parsers[key](language);\r\n };\r\n language[key] = lazy(func);\r\n })(key);\r\n }\r\n }\r\n return language;\r\n}\r\n\r\nexport function alt() {\r\n var parsers = [].slice.call(arguments);\r\n var numParsers = parsers.length;\r\n if (numParsers === 0) {\r\n return fail(\"zero alternates\");\r\n }\r\n for (var j = 0; j < numParsers; j += 1) {\r\n assertParser(parsers[j]);\r\n }\r\n return Parsimmon(function(input, i) {\r\n var result;\r\n for (var j = 0; j < parsers.length; j += 1) {\r\n result = mergeReplies(parsers[j]._(input, i), result);\r\n if (result.status) {\r\n return result;\r\n }\r\n }\r\n return result;\r\n });\r\n}\r\n\r\nexport function sepBy(parser, separator) {\r\n // Argument asserted by sepBy1\r\n return sepBy1(parser, separator).or(succeed([]));\r\n}\r\n\r\nexport function sepBy1(parser, separator) {\r\n assertParser(parser);\r\n assertParser(separator);\r\n var pairs = separator.then(parser).many();\r\n return seqMap(parser, pairs, function(r, rs) {\r\n return [r].concat(rs);\r\n });\r\n}\r\n\r\n// -*- Core Parsing Methods -*-\r\n\r\n_.parse = function(input) {\r\n if (typeof input !== \"string\" && !isBuffer(input)) {\r\n throw new Error(\r\n \".parse must be called with a string or Buffer as its argument\"\r\n );\r\n }\r\n var result = this.skip(eof)._(input, 0);\r\n if (result.status) {\r\n return {\r\n status: true,\r\n value: result.value\r\n };\r\n }\r\n return {\r\n status: false,\r\n index: makeLineColumnIndex(input, result.furthest),\r\n expected: result.expected\r\n };\r\n};\r\n\r\n// -*- Other Methods -*-\r\n\r\n_.tryParse = function(str) {\r\n var result = this.parse(str);\r\n if (result.status) {\r\n return result.value;\r\n } else {\r\n var msg = formatError(str, result);\r\n var err = new Error(msg);\r\n err.type = \"ParsimmonError\";\r\n err.result = result;\r\n throw err;\r\n }\r\n};\r\n\r\n_.or = function(alternative) {\r\n return alt(this, alternative);\r\n};\r\n\r\n_.trim = function(parser) {\r\n return this.wrap(parser, parser);\r\n};\r\n\r\n_.wrap = function(leftParser, rightParser) {\r\n return seqMap(leftParser, this, rightParser, function(left, middle) {\r\n return middle;\r\n });\r\n};\r\n\r\n_.thru = function(wrapper) {\r\n return wrapper(this);\r\n};\r\n\r\n_.then = function(next) {\r\n assertParser(next);\r\n return seq(this, next).map(function(results) {\r\n return results[1];\r\n });\r\n};\r\n\r\n_.many = function() {\r\n var self = this;\r\n\r\n return Parsimmon(function(input, i) {\r\n var accum = [];\r\n var result = undefined;\r\n\r\n for (;;) {\r\n result = mergeReplies(self._(input, i), result);\r\n if (result.status) {\r\n if (i === result.index) {\r\n throw new Error(\r\n \"infinite loop detected in .many() parser --- calling .many() on \" +\r\n \"a parser which can accept zero characters is usually the cause\"\r\n );\r\n }\r\n i = result.index;\r\n accum.push(result.value);\r\n } else {\r\n return mergeReplies(makeSuccess(i, accum), result);\r\n }\r\n }\r\n });\r\n};\r\n\r\n_.tieWith = function(separator) {\r\n assertString(separator);\r\n return this.map(function(args) {\r\n assertArray(args);\r\n if (args.length) {\r\n assertString(args[0]);\r\n var s = args[0];\r\n for (var i = 1; i < args.length; i++) {\r\n assertString(args[i]);\r\n s += separator + args[i];\r\n }\r\n return s;\r\n } else {\r\n return \"\";\r\n }\r\n });\r\n};\r\n\r\n_.tie = function() {\r\n return this.tieWith(\"\");\r\n};\r\n\r\n_.times = function(min, max) {\r\n var self = this;\r\n if (arguments.length < 2) {\r\n max = min;\r\n }\r\n assertNumber(min);\r\n assertNumber(max);\r\n return Parsimmon(function(input, i) {\r\n var accum = [];\r\n var result = undefined;\r\n var prevResult = undefined;\r\n for (var times = 0; times < min; times += 1) {\r\n result = self._(input, i);\r\n prevResult = mergeReplies(result, prevResult);\r\n if (result.status) {\r\n i = result.index;\r\n accum.push(result.value);\r\n } else {\r\n return prevResult;\r\n }\r\n }\r\n for (; times < max; times += 1) {\r\n result = self._(input, i);\r\n prevResult = mergeReplies(result, prevResult);\r\n if (result.status) {\r\n i = result.index;\r\n accum.push(result.value);\r\n } else {\r\n break;\r\n }\r\n }\r\n return mergeReplies(makeSuccess(i, accum), prevResult);\r\n });\r\n};\r\n\r\n_.result = function(res) {\r\n return this.map(function() {\r\n return res;\r\n });\r\n};\r\n\r\n_.atMost = function(n) {\r\n return this.times(0, n);\r\n};\r\n\r\n_.atLeast = function(n) {\r\n return seqMap(this.times(n), this.many(), function(init, rest) {\r\n return init.concat(rest);\r\n });\r\n};\r\n\r\n_.map = function(fn) {\r\n assertFunction(fn);\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var result = self._(input, i);\r\n if (!result.status) {\r\n return result;\r\n }\r\n return mergeReplies(makeSuccess(result.index, fn(result.value)), result);\r\n });\r\n};\r\n\r\n_.contramap = function(fn) {\r\n assertFunction(fn);\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var result = self.parse(fn(input.slice(i)));\r\n if (!result.status) {\r\n return result;\r\n }\r\n return makeSuccess(i + input.length, result.value);\r\n });\r\n};\r\n\r\n_.promap = function(f, g) {\r\n assertFunction(f);\r\n assertFunction(g);\r\n return this.contramap(f).map(g);\r\n};\r\n\r\n_.skip = function(next) {\r\n return seq(this, next).map(function(results) {\r\n return results[0];\r\n });\r\n};\r\n\r\n_.mark = function() {\r\n return seqMap(index, this, index, function(start, value, end) {\r\n return {\r\n start: start,\r\n value: value,\r\n end: end\r\n };\r\n });\r\n};\r\n\r\n_.node = function(name) {\r\n return seqMap(index, this, index, function(start, value, end) {\r\n return {\r\n name: name,\r\n value: value,\r\n start: start,\r\n end: end\r\n };\r\n });\r\n};\r\n\r\n_.sepBy = function(separator) {\r\n return sepBy(this, separator);\r\n};\r\n\r\n_.sepBy1 = function(separator) {\r\n return sepBy1(this, separator);\r\n};\r\n\r\n_.lookahead = function(x) {\r\n return this.skip(lookahead(x));\r\n};\r\n\r\n_.notFollowedBy = function(x) {\r\n return this.skip(notFollowedBy(x));\r\n};\r\n\r\n_.desc = function(expected) {\r\n if (!isArray(expected)) {\r\n expected = [expected];\r\n }\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var reply = self._(input, i);\r\n if (!reply.status) {\r\n reply.expected = expected;\r\n }\r\n return reply;\r\n });\r\n};\r\n\r\n_.fallback = function(result) {\r\n return this.or(succeed(result));\r\n};\r\n\r\n_.ap = function(other) {\r\n return seqMap(other, this, function(f, x) {\r\n return f(x);\r\n });\r\n};\r\n\r\n_.chain = function(f) {\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var result = self._(input, i);\r\n if (!result.status) {\r\n return result;\r\n }\r\n var nextParser = f(result.value);\r\n return mergeReplies(nextParser._(input, result.index), result);\r\n });\r\n};\r\n\r\n// -*- Constructors -*-\r\n\r\nexport function string(str) {\r\n assertString(str);\r\n var expected = \"'\" + str + \"'\";\r\n return Parsimmon(function(input, i) {\r\n var j = i + str.length;\r\n var head = input.slice(i, j);\r\n if (head === str) {\r\n return makeSuccess(j, head);\r\n } else {\r\n return makeFailure(i, expected);\r\n }\r\n });\r\n}\r\n\r\nexport function byte(b) {\r\n ensureBuffer();\r\n assertNumber(b);\r\n if (b > 0xff) {\r\n throw new Error(\r\n \"Value specified to byte constructor (\" +\r\n b +\r\n \"=0x\" +\r\n b.toString(16) +\r\n \") is larger in value than a single byte.\"\r\n );\r\n }\r\n var expected = (b > 0xf ? \"0x\" : \"0x0\") + b.toString(16);\r\n return Parsimmon(function(input, i) {\r\n var head = get(input, i);\r\n if (head === b) {\r\n return makeSuccess(i + 1, head);\r\n } else {\r\n return makeFailure(i, expected);\r\n }\r\n });\r\n}\r\n\r\nexport function regexp(re, group) {\r\n assertRegexp(re);\r\n if (arguments.length >= 2) {\r\n assertNumber(group);\r\n } else {\r\n group = 0;\r\n }\r\n var anchored = anchoredRegexp(re);\r\n var expected = \"\" + re;\r\n return Parsimmon(function(input, i) {\r\n var match = anchored.exec(input.slice(i));\r\n if (match) {\r\n if (0 <= group && group <= match.length) {\r\n var fullMatch = match[0];\r\n var groupMatch = match[group];\r\n return makeSuccess(i + fullMatch.length, groupMatch);\r\n }\r\n var message =\r\n \"valid match group (0 to \" + match.length + \") in \" + expected;\r\n return makeFailure(i, message);\r\n }\r\n return makeFailure(i, expected);\r\n });\r\n}\r\n\r\nexport function succeed(value) {\r\n return Parsimmon(function(input, i) {\r\n return makeSuccess(i, value);\r\n });\r\n}\r\n\r\nexport function fail(expected) {\r\n return Parsimmon(function(input, i) {\r\n return makeFailure(i, expected);\r\n });\r\n}\r\n\r\nexport function lookahead(x) {\r\n if (isParser(x)) {\r\n return Parsimmon(function(input, i) {\r\n var result = x._(input, i);\r\n result.index = i;\r\n result.value = \"\";\r\n return result;\r\n });\r\n } else if (typeof x === \"string\") {\r\n return lookahead(string(x));\r\n } else if (x instanceof RegExp) {\r\n return lookahead(regexp(x));\r\n }\r\n throw new Error(\"not a string, regexp, or parser: \" + x);\r\n}\r\n\r\nexport function notFollowedBy(parser) {\r\n assertParser(parser);\r\n return Parsimmon(function(input, i) {\r\n var result = parser._(input, i);\r\n var text = input.slice(i, result.index);\r\n return result.status\r\n ? makeFailure(i, 'not \"' + text + '\"')\r\n : makeSuccess(i, null);\r\n });\r\n}\r\n\r\nexport function test(predicate) {\r\n assertFunction(predicate);\r\n return Parsimmon(function(input, i) {\r\n var char = get(input, i);\r\n if (i < input.length && predicate(char)) {\r\n return makeSuccess(i + 1, char);\r\n } else {\r\n return makeFailure(i, \"a character/byte matching \" + predicate);\r\n }\r\n });\r\n}\r\n\r\nexport function oneOf(str) {\r\n var expected = str.split(\"\");\r\n for (var idx = 0; idx < expected.length; idx++) {\r\n expected[idx] = \"'\" + expected[idx] + \"'\";\r\n }\r\n return test(function(ch) {\r\n return str.indexOf(ch) >= 0;\r\n }).desc(expected);\r\n}\r\n\r\nexport function noneOf(str) {\r\n return test(function(ch) {\r\n return str.indexOf(ch) < 0;\r\n }).desc(\"none of '\" + str + \"'\");\r\n}\r\n\r\nexport function custom(parsingFunction) {\r\n return Parsimmon(parsingFunction(makeSuccess, makeFailure));\r\n}\r\n\r\n// TODO[ES5]: Improve error message using JSON.stringify eventually.\r\nexport function range(begin, end) {\r\n return test(function(ch) {\r\n return begin <= ch && ch <= end;\r\n }).desc(begin + \"-\" + end);\r\n}\r\n\r\nexport function takeWhile(predicate) {\r\n assertFunction(predicate);\r\n\r\n return Parsimmon(function(input, i) {\r\n var j = i;\r\n while (j < input.length && predicate(get(input, j))) {\r\n j++;\r\n }\r\n return makeSuccess(j, input.slice(i, j));\r\n });\r\n}\r\n\r\nexport function lazy(desc, f) {\r\n if (arguments.length < 2) {\r\n f = desc;\r\n desc = undefined;\r\n }\r\n\r\n var parser = Parsimmon(function(input, i) {\r\n parser._ = f()._;\r\n return parser._(input, i);\r\n });\r\n\r\n if (desc) {\r\n return parser.desc(desc);\r\n } else {\r\n return parser;\r\n }\r\n}\r\n\r\n// -*- Fantasy Land Extras -*-\r\n\r\nfunction empty() {\r\n return fail(\"fantasy-land/empty\");\r\n}\r\n\r\n_.concat = _.or;\r\n_.empty = empty;\r\n_.of = succeed;\r\n_[\"fantasy-land/ap\"] = _.ap;\r\n_[\"fantasy-land/chain\"] = _.chain;\r\n_[\"fantasy-land/concat\"] = _.concat;\r\n_[\"fantasy-land/empty\"] = _.empty;\r\n_[\"fantasy-land/of\"] = _.of;\r\n_[\"fantasy-land/map\"] = _.map;\r\n\r\n// -*- Base Parsers -*-\r\n\r\nexport const index = Parsimmon(function(input, i) {\r\n return makeSuccess(i, makeLineColumnIndex(input, i));\r\n});\r\n\r\nexport const any = Parsimmon(function(input, i) {\r\n if (i >= input.length) {\r\n return makeFailure(i, \"any character/byte\");\r\n }\r\n return makeSuccess(i + 1, get(input, i));\r\n});\r\n\r\nexport const all = Parsimmon(function(input, i) {\r\n return makeSuccess(input.length, input.slice(i));\r\n});\r\n\r\nexport const eof = Parsimmon(function(input, i) {\r\n if (i < input.length) {\r\n return makeFailure(i, \"EOF\");\r\n }\r\n return makeSuccess(i, null);\r\n});\r\n\r\nexport const digit = regexp(/[0-9]/).desc(\"a digit\");\r\nexport const digits = regexp(/[0-9]*/).desc(\"optional digits\");\r\nexport const letter = regexp(/[a-z]/i).desc(\"a letter\");\r\nexport const letters = regexp(/[a-z]*/i).desc(\"optional letters\");\r\nexport const optWhitespace = regexp(/\\s*/).desc(\"optional whitespace\");\r\nexport const whitespace = regexp(/\\s+/).desc(\"whitespace\");\r\nexport const cr = string(\"\\r\");\r\nexport const lf = string(\"\\n\");\r\nexport const crlf = string(\"\\r\\n\");\r\nexport const newline = alt(crlf, lf, cr).desc(\"newline\");\r\nexport const end = alt(newline, eof);","import { trim } from \"./String.js\";\n// RFC 4122 compliant. From https://stackoverflow.com/a/13653180/3922220\n// const guidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;\n// Relax GUID parsing, see #1637\nconst guidRegex = /^[\\(\\{]{0,2}[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[\\)\\}]{0,2}$/;\nconst guidRegexNoHyphen = /^([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$/;\nconst guidRegexHex = /^\\{0x[0-9a-f]{8},(0x[0-9a-f]{4},){2}\\{(0x[0-9a-f]{2},){7}0x[0-9a-f]{2}\\}\\}$/;\nconst guidHexCaptures = /^([0-9a-f]{8})-(([0-9a-f]{4})-)(([0-9a-f]{4})-)([0-9a-f]{2})([0-9a-f]{2})-([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/;\nexport function toString(str, format, _provider) {\n if (format && (format === null || format === void 0 ? void 0 : format.length) > 0) {\n switch (format) {\n case \"N\":\n return str.replace(/-/g, '');\n case \"D\":\n return str;\n case \"B\":\n return \"{\" + str + \"}\";\n case \"P\":\n return \"(\" + str + \")\";\n case \"X\":\n return str.replace(guidHexCaptures, \"{0x$1,0x$3,0x$5,{0x$6,0x$7,0x$8,0x$9,0x$10,0x$11,0x$12,0x$13}}\");\n default:\n throw new Error(\"Unrecognized Guid print format\");\n }\n }\n else {\n return str;\n }\n}\n/** Validates UUID as specified in RFC4122 (versions 1-5). */\nexport function parse(str) {\n function hyphenateGuid(str) {\n return str.replace(guidRegexNoHyphen, \"$1-$2-$3-$4-$5\");\n }\n const wsTrimAndLowered = str.trim().toLowerCase();\n if (guidRegex.test(wsTrimAndLowered)) {\n return trim(wsTrimAndLowered, \"{\", \"}\", \"(\", \")\");\n }\n else if (guidRegexNoHyphen.test(wsTrimAndLowered)) {\n return hyphenateGuid(wsTrimAndLowered);\n }\n else if (guidRegexHex.test(wsTrimAndLowered)) {\n return hyphenateGuid(wsTrimAndLowered.replace(/[\\{\\},]|0x/g, ''));\n }\n else {\n throw new Error(\"Guid should contain 32 digits with 4 dashes: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\");\n }\n}\nexport function tryParse(str, defValue) {\n try {\n defValue.contents = parse(str);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n// From https://gist.github.com/LeverOne/1308368\nexport function newGuid() {\n let b = \"\";\n for (let a = 0; a++ < 36;) {\n b += a * 51 & 52\n ? (a ^ 15 ? 8 ^ Math.random() * (a ^ 20 ? 16 : 4) : 4).toString(16)\n : \"-\";\n }\n return b;\n}\n// Maps for number <-> hex string conversion\nlet _convertMapsInitialized = false;\nlet _byteToHex;\nlet _hexToByte;\nfunction initConvertMaps() {\n _byteToHex = new Array(256);\n _hexToByte = {};\n for (let i = 0; i < 256; i++) {\n _byteToHex[i] = (i + 0x100).toString(16).substr(1);\n _hexToByte[_byteToHex[i]] = i;\n }\n _convertMapsInitialized = true;\n}\n/** Parse a UUID into it's component bytes */\n// Adapted from https://github.com/zefferus/uuid-parse\nexport function guidToArray(s) {\n if (!_convertMapsInitialized) {\n initConvertMaps();\n }\n let i = 0;\n const buf = new Uint8Array(16);\n s.toLowerCase().replace(/[0-9a-f]{2}/g, ((oct) => {\n switch (i) {\n // .NET saves first three byte groups with different endianness\n // See https://stackoverflow.com/a/16722909/3922220\n case 0:\n case 1:\n case 2:\n case 3:\n buf[3 - i++] = _hexToByte[oct];\n break;\n case 4:\n case 5:\n buf[9 - i++] = _hexToByte[oct];\n break;\n case 6:\n case 7:\n buf[13 - i++] = _hexToByte[oct];\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n buf[i++] = _hexToByte[oct];\n break;\n }\n }));\n // Zero out remaining bytes if string was short\n while (i < 16) {\n buf[i++] = 0;\n }\n return buf;\n}\n/** Convert UUID byte array into a string */\nexport function arrayToGuid(buf) {\n if (buf.length !== 16) {\n throw new Error(\"Byte array for GUID must be exactly 16 bytes long\");\n }\n if (!_convertMapsInitialized) {\n initConvertMaps();\n }\n const guid = _byteToHex[buf[3]] + _byteToHex[buf[2]] +\n _byteToHex[buf[1]] + _byteToHex[buf[0]] + \"-\" +\n _byteToHex[buf[5]] + _byteToHex[buf[4]] + \"-\" +\n _byteToHex[buf[7]] + _byteToHex[buf[6]] + \"-\" +\n _byteToHex[buf[8]] + _byteToHex[buf[9]] + \"-\" +\n _byteToHex[buf[10]] + _byteToHex[buf[11]] +\n _byteToHex[buf[12]] + _byteToHex[buf[13]] +\n _byteToHex[buf[14]] + _byteToHex[buf[15]];\n return guid;\n}\n","export class CancellationToken {\n constructor(cancelled = false) {\n this._id = 0;\n this._cancelled = cancelled;\n this._listeners = new Map();\n }\n get isCancelled() {\n return this._cancelled;\n }\n cancel() {\n if (!this._cancelled) {\n this._cancelled = true;\n for (const [, listener] of this._listeners) {\n listener();\n }\n }\n }\n addListener(f) {\n const id = this._id;\n this._listeners.set(this._id++, f);\n return id;\n }\n removeListener(id) {\n return this._listeners.delete(id);\n }\n register(f, state) {\n const $ = this;\n const id = this.addListener(state == null ? f : () => f(state));\n return { Dispose() { $.removeListener(id); } };\n }\n}\nexport class OperationCanceledError extends Error {\n constructor() {\n super(\"The operation was canceled\");\n Object.setPrototypeOf(this, OperationCanceledError.prototype);\n }\n}\nexport class Trampoline {\n constructor() {\n this.callCount = 0;\n }\n static get maxTrampolineCallCount() {\n return 2000;\n }\n incrementAndCheck() {\n return this.callCount++ > Trampoline.maxTrampolineCallCount;\n }\n hijack(f) {\n this.callCount = 0;\n setTimeout(f, 0);\n }\n}\nexport function protectedCont(f) {\n return (ctx) => {\n if (ctx.cancelToken.isCancelled) {\n ctx.onCancel(new OperationCanceledError());\n }\n else if (ctx.trampoline.incrementAndCheck()) {\n ctx.trampoline.hijack(() => {\n try {\n f(ctx);\n }\n catch (err) {\n ctx.onError(err);\n }\n });\n }\n else {\n try {\n f(ctx);\n }\n catch (err) {\n ctx.onError(err);\n }\n }\n };\n}\nexport function protectedBind(computation, binder) {\n return protectedCont((ctx) => {\n computation({\n onSuccess: (x) => {\n try {\n binder(x)(ctx);\n }\n catch (ex) {\n ctx.onError(ex);\n }\n },\n onError: ctx.onError,\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n}\nexport function protectedReturn(value) {\n return protectedCont((ctx) => ctx.onSuccess(value));\n}\nexport class AsyncBuilder {\n Bind(computation, binder) {\n return protectedBind(computation, binder);\n }\n Combine(computation1, computation2) {\n return this.Bind(computation1, () => computation2);\n }\n Delay(generator) {\n return protectedCont((ctx) => generator()(ctx));\n }\n For(sequence, body) {\n const iter = sequence[Symbol.iterator]();\n let cur = iter.next();\n return this.While(() => !cur.done, this.Delay(() => {\n const res = body(cur.value);\n cur = iter.next();\n return res;\n }));\n }\n Return(value) {\n return protectedReturn(value);\n }\n ReturnFrom(computation) {\n return computation;\n }\n TryFinally(computation, compensation) {\n return protectedCont((ctx) => {\n computation({\n onSuccess: (x) => {\n compensation();\n ctx.onSuccess(x);\n },\n onError: (x) => {\n compensation();\n ctx.onError(x);\n },\n onCancel: (x) => {\n compensation();\n ctx.onCancel(x);\n },\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n }\n TryWith(computation, catchHandler) {\n return protectedCont((ctx) => {\n computation({\n onSuccess: ctx.onSuccess,\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n onError: (ex) => {\n try {\n catchHandler(ex)(ctx);\n }\n catch (ex2) {\n ctx.onError(ex2);\n }\n },\n });\n });\n }\n Using(resource, binder) {\n return this.TryFinally(binder(resource), () => resource.Dispose());\n }\n While(guard, computation) {\n if (guard()) {\n return this.Bind(computation, () => this.While(guard, computation));\n }\n else {\n return this.Return(void 0);\n }\n }\n Zero() {\n return protectedCont((ctx) => ctx.onSuccess(void 0));\n }\n}\nexport const singleton = new AsyncBuilder();\n","import { Union } from \"./Types.js\";\nimport { union_type } from \"./Reflection.js\";\nimport { some } from \"./Option.js\";\n\nexport class FSharpResult$2 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Ok\", \"Error\"];\n }\n}\n\nexport function FSharpResult$2$reflection(gen0, gen1) {\n return union_type(\"FSharp.Core.FSharpResult`2\", [gen0, gen1], FSharpResult$2, () => [[[\"ResultValue\", gen0]], [[\"ErrorValue\", gen1]]]);\n}\n\nexport function Result_Map(mapping, result) {\n if (result.tag === 0) {\n return new FSharpResult$2(0, mapping(result.fields[0]));\n }\n else {\n return new FSharpResult$2(1, result.fields[0]);\n }\n}\n\nexport function Result_MapError(mapping, result) {\n if (result.tag === 0) {\n return new FSharpResult$2(0, result.fields[0]);\n }\n else {\n return new FSharpResult$2(1, mapping(result.fields[0]));\n }\n}\n\nexport function Result_Bind(binder, result) {\n if (result.tag === 0) {\n return binder(result.fields[0]);\n }\n else {\n return new FSharpResult$2(1, result.fields[0]);\n }\n}\n\nexport class FSharpChoice$2 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Choice1Of2\", \"Choice2Of2\"];\n }\n}\n\nexport function FSharpChoice$2$reflection(gen0, gen1) {\n return union_type(\"FSharp.Core.FSharpChoice`2\", [gen0, gen1], FSharpChoice$2, () => [[[\"Item\", gen0]], [[\"Item\", gen1]]]);\n}\n\nexport class FSharpChoice$3 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Choice1Of3\", \"Choice2Of3\", \"Choice3Of3\"];\n }\n}\n\nexport function FSharpChoice$3$reflection(gen0, gen1, gen2) {\n return union_type(\"FSharp.Core.FSharpChoice`3\", [gen0, gen1, gen2], FSharpChoice$3, () => [[[\"Item\", gen0]], [[\"Item\", gen1]], [[\"Item\", gen2]]]);\n}\n\nexport class FSharpChoice$4 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Choice1Of4\", \"Choice2Of4\", \"Choice3Of4\", \"Choice4Of4\"];\n }\n}\n\nexport function FSharpChoice$4$reflection(gen0, gen1, gen2, gen3) {\n return union_type(\"FSharp.Core.FSharpChoice`4\", [gen0, gen1, gen2, gen3], FSharpChoice$4, () => [[[\"Item\", gen0]], [[\"Item\", gen1]], [[\"Item\", gen2]], [[\"Item\", gen3]]]);\n}\n\nexport class FSharpChoice$5 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Choice1Of5\", \"Choice2Of5\", \"Choice3Of5\", \"Choice4Of5\", \"Choice5Of5\"];\n }\n}\n\nexport function FSharpChoice$5$reflection(gen0, gen1, gen2, gen3, gen4) {\n return union_type(\"FSharp.Core.FSharpChoice`5\", [gen0, gen1, gen2, gen3, gen4], FSharpChoice$5, () => [[[\"Item\", gen0]], [[\"Item\", gen1]], [[\"Item\", gen2]], [[\"Item\", gen3]], [[\"Item\", gen4]]]);\n}\n\nexport class FSharpChoice$6 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Choice1Of6\", \"Choice2Of6\", \"Choice3Of6\", \"Choice4Of6\", \"Choice5Of6\", \"Choice6Of6\"];\n }\n}\n\nexport function FSharpChoice$6$reflection(gen0, gen1, gen2, gen3, gen4, gen5) {\n return union_type(\"FSharp.Core.FSharpChoice`6\", [gen0, gen1, gen2, gen3, gen4, gen5], FSharpChoice$6, () => [[[\"Item\", gen0]], [[\"Item\", gen1]], [[\"Item\", gen2]], [[\"Item\", gen3]], [[\"Item\", gen4]], [[\"Item\", gen5]]]);\n}\n\nexport class FSharpChoice$7 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Choice1Of7\", \"Choice2Of7\", \"Choice3Of7\", \"Choice4Of7\", \"Choice5Of7\", \"Choice6Of7\", \"Choice7Of7\"];\n }\n}\n\nexport function FSharpChoice$7$reflection(gen0, gen1, gen2, gen3, gen4, gen5, gen6) {\n return union_type(\"FSharp.Core.FSharpChoice`7\", [gen0, gen1, gen2, gen3, gen4, gen5, gen6], FSharpChoice$7, () => [[[\"Item\", gen0]], [[\"Item\", gen1]], [[\"Item\", gen2]], [[\"Item\", gen3]], [[\"Item\", gen4]], [[\"Item\", gen5]], [[\"Item\", gen6]]]);\n}\n\nexport function Choice_makeChoice1Of2(x) {\n return new FSharpChoice$2(0, x);\n}\n\nexport function Choice_makeChoice2Of2(x) {\n return new FSharpChoice$2(1, x);\n}\n\nexport function Choice_tryValueIfChoice1Of2(x) {\n if (x.tag === 0) {\n return some(x.fields[0]);\n }\n else {\n return void 0;\n }\n}\n\nexport function Choice_tryValueIfChoice2Of2(x) {\n if (x.tag === 1) {\n return some(x.fields[0]);\n }\n else {\n return void 0;\n }\n}\n\n","import { OperationCanceledError, Trampoline } from \"./AsyncBuilder.js\";\nimport { CancellationToken } from \"./AsyncBuilder.js\";\nimport { protectedCont } from \"./AsyncBuilder.js\";\nimport { protectedBind } from \"./AsyncBuilder.js\";\nimport { protectedReturn } from \"./AsyncBuilder.js\";\nimport { Choice_makeChoice1Of2, Choice_makeChoice2Of2 } from \"./Choice.js\";\n// Implemented just for type references\nexport class Async {\n}\nfunction emptyContinuation(_x) {\n // NOP\n}\n// MakeAsync: body:(AsyncActivation<'T> -> AsyncReturn) -> Async<'T>\nexport function makeAsync(body) {\n return body;\n}\n// Invoke: computation: Async<'T> -> ctxt:AsyncActivation<'T> -> AsyncReturn\nexport function invoke(computation, ctx) {\n return computation(ctx);\n}\n// CallThenInvoke: ctxt:AsyncActivation<'T> -> result1:'U -> part2:('U -> Async<'T>) -> AsyncReturn\nexport function callThenInvoke(ctx, result1, part2) {\n return part2(result1)(ctx);\n}\n// Bind: ctxt:AsyncActivation<'T> -> part1:Async<'U> -> part2:('U -> Async<'T>) -> AsyncReturn\nexport function bind(ctx, part1, part2) {\n return protectedBind(part1, part2)(ctx);\n}\nexport function createCancellationToken(arg) {\n const token = new CancellationToken(typeof arg === \"boolean\" ? arg : false);\n if (typeof arg === \"number\") {\n setTimeout(() => { token.cancel(); }, arg);\n }\n return token;\n}\nexport function cancel(token) {\n token.cancel();\n}\nexport function cancelAfter(token, ms) {\n setTimeout(() => { token.cancel(); }, ms);\n}\nexport function isCancellationRequested(token) {\n return token != null && token.isCancelled;\n}\nexport function throwIfCancellationRequested(token) {\n if (token != null && token.isCancelled) {\n throw new Error(\"Operation is cancelled\");\n }\n}\nexport function startChild(computation) {\n const promise = startAsPromise(computation);\n // JS Promises are hot, computation has already started\n // but we delay returning the result\n return protectedCont((ctx) => protectedReturn(awaitPromise(promise))(ctx));\n}\nexport function awaitPromise(p) {\n return fromContinuations((conts) => p.then(conts[0]).catch((err) => (err instanceof OperationCanceledError\n ? conts[2] : conts[1])(err)));\n}\nexport function cancellationToken() {\n return protectedCont((ctx) => ctx.onSuccess(ctx.cancelToken));\n}\nexport const defaultCancellationToken = new CancellationToken();\nexport function catchAsync(work) {\n return protectedCont((ctx) => {\n work({\n onSuccess: (x) => ctx.onSuccess(Choice_makeChoice1Of2(x)),\n onError: (ex) => ctx.onSuccess(Choice_makeChoice2Of2(ex)),\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n}\nexport function fromContinuations(f) {\n return protectedCont((ctx) => f([ctx.onSuccess, ctx.onError, ctx.onCancel]));\n}\nexport function ignore(computation) {\n return protectedBind(computation, (_x) => protectedReturn(void 0));\n}\nexport function parallel(computations) {\n return awaitPromise(Promise.all(Array.from(computations, (w) => startAsPromise(w))));\n}\nexport function sleep(millisecondsDueTime) {\n return protectedCont((ctx) => {\n let tokenId;\n const timeoutId = setTimeout(() => {\n ctx.cancelToken.removeListener(tokenId);\n ctx.onSuccess(void 0);\n }, millisecondsDueTime);\n tokenId = ctx.cancelToken.addListener(() => {\n clearTimeout(timeoutId);\n ctx.onCancel(new OperationCanceledError());\n });\n });\n}\nexport function start(computation, cancellationToken) {\n return startWithContinuations(computation, cancellationToken);\n}\nexport function startImmediate(computation, cancellationToken) {\n return start(computation, cancellationToken);\n}\nexport function startWithContinuations(computation, continuation, exceptionContinuation, cancellationContinuation, cancelToken) {\n if (typeof continuation !== \"function\") {\n cancelToken = continuation;\n continuation = undefined;\n }\n const trampoline = new Trampoline();\n computation({\n onSuccess: continuation ? continuation : emptyContinuation,\n onError: exceptionContinuation ? exceptionContinuation : emptyContinuation,\n onCancel: cancellationContinuation ? cancellationContinuation : emptyContinuation,\n cancelToken: cancelToken ? cancelToken : defaultCancellationToken,\n trampoline,\n });\n}\nexport function startAsPromise(computation, cancellationToken) {\n return new Promise((resolve, reject) => startWithContinuations(computation, resolve, reject, reject, cancellationToken ? cancellationToken : defaultCancellationToken));\n}\nexport default Async;\n","import { some } from \"../fable-library.3.2.1/Option.js\";\nimport Timer from \"../fable-library.3.2.1/Timer.js\";\nimport { add } from \"../fable-library.3.2.1/Observable.js\";\n\nexport function Log_onError(text, ex) {\n console.error(some(text), ex);\n}\n\nexport function Log_toConsole(text, o) {\n console.log(some(text), o);\n}\n\nexport function Timer_delay(interval, callback) {\n let t;\n let returnVal = new Timer(interval);\n returnVal.AutoReset = false;\n t = returnVal;\n add(callback, t.Elapsed());\n t.Enabled = true;\n t.Start();\n}\n\n","import { singleton, concat, map, empty, iterate } from \"../fable-library.3.2.1/List.js\";\nimport { singleton as singleton_1 } from \"../fable-library.3.2.1/AsyncBuilder.js\";\nimport { startImmediate, catchAsync } from \"../fable-library.3.2.1/Async.js\";\nimport { Timer_delay } from \"./prelude.fs.js\";\n\nexport function Cmd_exec(onError, dispatch, cmd) {\n iterate((call) => {\n try {\n call(dispatch);\n }\n catch (ex) {\n onError(ex);\n }\n }, cmd);\n}\n\nexport function Cmd_none() {\n return empty();\n}\n\nexport function Cmd_map(f, cmd) {\n return map((g) => ((arg_1) => {\n g((arg) => {\n arg_1(f(arg));\n });\n }), cmd);\n}\n\nexport function Cmd_batch(cmds) {\n return concat(cmds);\n}\n\nexport function Cmd_ofSub(sub) {\n return singleton(sub);\n}\n\nexport function Cmd_OfFunc_either(task, arg, ofSuccess, ofError) {\n return singleton((dispatch) => {\n try {\n return dispatch(ofSuccess(task(arg)));\n }\n catch (x) {\n return dispatch(ofError(x));\n }\n });\n}\n\nexport function Cmd_OfFunc_perform(task, arg, ofSuccess) {\n return singleton((dispatch) => {\n try {\n dispatch(ofSuccess(task(arg)));\n }\n catch (x) {\n }\n });\n}\n\nexport function Cmd_OfFunc_attempt(task, arg, ofError) {\n return singleton((dispatch) => {\n try {\n task(arg);\n }\n catch (x) {\n dispatch(ofError(x));\n }\n });\n}\n\nexport function Cmd_OfFunc_result(msg) {\n return singleton((dispatch) => {\n dispatch(msg);\n });\n}\n\nexport function Cmd_OfAsyncWith_either(start, task, arg, ofSuccess, ofError) {\n return singleton((arg_1) => {\n start(singleton_1.Delay(() => singleton_1.Bind(catchAsync(task(arg)), (_arg1) => {\n const r = _arg1;\n arg_1((r.tag === 1) ? ofError(r.fields[0]) : ofSuccess(r.fields[0]));\n return singleton_1.Zero();\n })));\n });\n}\n\nexport function Cmd_OfAsyncWith_perform(start, task, arg, ofSuccess) {\n return singleton((arg_1) => {\n start(singleton_1.Delay(() => singleton_1.Bind(catchAsync(task(arg)), (_arg1) => {\n const r = _arg1;\n if (r.tag === 0) {\n arg_1(ofSuccess(r.fields[0]));\n return singleton_1.Zero();\n }\n else {\n return singleton_1.Zero();\n }\n })));\n });\n}\n\nexport function Cmd_OfAsyncWith_attempt(start, task, arg, ofError) {\n return singleton((arg_1) => {\n start(singleton_1.Delay(() => singleton_1.Bind(catchAsync(task(arg)), (_arg1) => {\n const r = _arg1;\n if (r.tag === 1) {\n arg_1(ofError(r.fields[0]));\n return singleton_1.Zero();\n }\n else {\n return singleton_1.Zero();\n }\n })));\n });\n}\n\nexport function Cmd_OfAsyncWith_result(start, task) {\n return singleton((arg) => {\n start(singleton_1.Delay(() => singleton_1.Bind(task, (_arg1) => {\n arg(_arg1);\n return singleton_1.Zero();\n })));\n });\n}\n\nexport function Cmd_OfAsync_start(x) {\n Timer_delay(0, (_arg1) => {\n startImmediate(x);\n });\n}\n\nexport function Cmd_OfPromise_either(task, arg, ofSuccess, ofError) {\n return singleton((dispatch) => {\n void task(arg).then((arg_1) => dispatch(ofSuccess(arg_1))).catch((arg_3) => dispatch(ofError(arg_3)));\n });\n}\n\nexport function Cmd_OfPromise_perform(task, arg, ofSuccess) {\n return singleton((dispatch) => {\n void task(arg).then((arg_1) => dispatch(ofSuccess(arg_1)));\n });\n}\n\nexport function Cmd_OfPromise_attempt(task, arg, ofError) {\n return singleton((dispatch) => {\n void task(arg).catch((arg_2) => {\n dispatch(ofError(arg_2));\n });\n });\n}\n\nexport function Cmd_OfPromise_result(task) {\n return singleton((dispatch) => {\n void task.then(dispatch);\n });\n}\n\nexport function Cmd_attemptFunc(task, arg, ofError) {\n return Cmd_OfFunc_attempt(task, arg, ofError);\n}\n\n","import { compare } from \"./Util.js\";\nimport { unfold, delay } from \"./Seq.js\";\nimport { op_Addition, fromZero } from \"./BigInt.js\";\nimport { op_Addition as op_Addition_1, fromParts } from \"./Decimal.js\";\nimport { op_Addition as op_Addition_2, fromBits } from \"./Long.js\";\n\nexport function makeRangeStepFunction(step, stop, zero, add) {\n const stepComparedWithZero = compare(step, zero) | 0;\n if (stepComparedWithZero === 0) {\n throw (new Error(\"The step of a range cannot be zero\"));\n }\n const stepGreaterThanZero = stepComparedWithZero > 0;\n return (x) => {\n const comparedWithLast = compare(x, stop) | 0;\n return ((stepGreaterThanZero ? (comparedWithLast <= 0) : false) ? true : ((!stepGreaterThanZero) ? (comparedWithLast >= 0) : false)) ? [x, add(x, step)] : (void 0);\n };\n}\n\nexport function integralRangeStep(start, step, stop, zero, add) {\n const stepFn = makeRangeStepFunction(step, stop, zero, add);\n return delay(() => unfold(stepFn, start));\n}\n\nexport function rangeBigInt(start, step, stop) {\n return integralRangeStep(start, step, stop, fromZero(), (x, y) => op_Addition(x, y));\n}\n\nexport function rangeDecimal(start, step, stop) {\n return integralRangeStep(start, step, stop, fromParts(0, 0, 0, false, 0), (x, y) => op_Addition_1(x, y));\n}\n\nexport function rangeDouble(start, step, stop) {\n return integralRangeStep(start, step, stop, 0, (x, y) => (x + y));\n}\n\nexport function rangeInt64(start, step, stop) {\n return integralRangeStep(start, step, stop, fromBits(0, 0, false), (x, y) => op_Addition_2(x, y));\n}\n\nexport function rangeUInt64(start, step, stop) {\n return integralRangeStep(start, step, stop, fromBits(0, 0, true), (x, y) => op_Addition_2(x, y));\n}\n\nexport function rangeChar(start, stop) {\n const intStop = stop.charCodeAt(0) | 0;\n return delay(() => unfold((c) => {\n if (c <= intStop) {\n return [String.fromCharCode(c), c + 1];\n }\n else {\n return void 0;\n }\n }, start.charCodeAt(0)));\n}\n\n","import { Union } from \"../fable-library.3.2.1/Types.js\";\nimport { class_type, union_type, int32_type, array_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { fill } from \"../fable-library.3.2.1/Array.js\";\nimport { comparePrimitives, max } from \"../fable-library.3.2.1/Util.js\";\nimport { some } from \"../fable-library.3.2.1/Option.js\";\nimport { singleton, collect, take, skip, append, delay } from \"../fable-library.3.2.1/Seq.js\";\nimport { rangeDouble } from \"../fable-library.3.2.1/Range.js\";\n\nexport class RingState$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Writable\", \"ReadWritable\"];\n }\n}\n\nexport function RingState$1$reflection(gen0) {\n return union_type(\"Elmish.RingState`1\", [gen0], RingState$1, () => [[[\"wx\", array_type(gen0)], [\"ix\", int32_type]], [[\"rw\", array_type(gen0)], [\"wix\", int32_type], [\"rix\", int32_type]]]);\n}\n\nexport class RingBuffer$1 {\n constructor(size) {\n this.state = (new RingState$1(0, fill(new Array(max((x, y) => comparePrimitives(x, y), size, 10)), 0, max((x, y) => comparePrimitives(x, y), size, 10), null), 0));\n }\n}\n\nexport function RingBuffer$1$reflection(gen0) {\n return class_type(\"Elmish.RingBuffer`1\", [gen0], RingBuffer$1);\n}\n\nexport function RingBuffer$1_$ctor_Z524259A4(size) {\n return new RingBuffer$1(size);\n}\n\nexport function RingBuffer$1__Pop(__) {\n const matchValue = __.state;\n if (matchValue.tag === 1) {\n const wix = matchValue.fields[1] | 0;\n const rix = matchValue.fields[2] | 0;\n const items = matchValue.fields[0];\n const rix$0027 = ((rix + 1) % items.length) | 0;\n if (rix$0027 === wix) {\n __.state = (new RingState$1(0, items, wix));\n }\n else {\n __.state = (new RingState$1(1, items, wix, rix$0027));\n }\n return some(items[rix]);\n }\n else {\n return void 0;\n }\n}\n\nexport function RingBuffer$1__Push_2B595(__, item) {\n const matchValue = __.state;\n if (matchValue.tag === 1) {\n const wix_1 = matchValue.fields[1] | 0;\n const rix = matchValue.fields[2] | 0;\n const items_1 = matchValue.fields[0];\n items_1[wix_1] = item;\n const wix$0027 = ((wix_1 + 1) % items_1.length) | 0;\n if (wix$0027 === rix) {\n __.state = (new RingState$1(1, RingBuffer$1__doubleSize(__, rix, items_1), items_1.length, 0));\n }\n else {\n __.state = (new RingState$1(1, items_1, wix$0027, rix));\n }\n }\n else {\n const ix = matchValue.fields[1] | 0;\n const items = matchValue.fields[0];\n items[ix] = item;\n const wix = ((ix + 1) % items.length) | 0;\n __.state = (new RingState$1(1, items, wix, ix));\n }\n}\n\nfunction RingBuffer$1__doubleSize(this$, ix, items) {\n return Array.from(delay(() => append(skip(ix, items), delay(() => append(take(ix, items), delay(() => collect((matchValue) => singleton(null), rangeDouble(0, 1, items.length))))))));\n}\n\n","import { Record } from \"../fable-library.3.2.1/Types.js\";\nimport { record_type, class_type, string_type, tuple_type, list_type, lambda_type, unit_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { Cmd_exec, Cmd_batch, Cmd_none } from \"./cmd.fs.js\";\nimport { Log_toConsole, Log_onError } from \"./prelude.fs.js\";\nimport { curry, partialApply, uncurry } from \"../fable-library.3.2.1/Util.js\";\nimport { ofArray } from \"../fable-library.3.2.1/List.js\";\nimport { RingBuffer$1__Pop, RingBuffer$1__Push_2B595, RingBuffer$1_$ctor_Z524259A4 } from \"./ring.fs.js\";\nimport { value as value_1, some } from \"../fable-library.3.2.1/Option.js\";\nimport { printf, toText } from \"../fable-library.3.2.1/String.js\";\n\nexport class Program$4 extends Record {\n constructor(init, update, subscribe, view, setState, onError, syncDispatch) {\n super();\n this.init = init;\n this.update = update;\n this.subscribe = subscribe;\n this.view = view;\n this.setState = setState;\n this.onError = onError;\n this.syncDispatch = syncDispatch;\n }\n}\n\nexport function Program$4$reflection(gen0, gen1, gen2, gen3) {\n return record_type(\"Elmish.Program`4\", [gen0, gen1, gen2, gen3], Program$4, () => [[\"init\", lambda_type(gen0, tuple_type(gen1, list_type(lambda_type(lambda_type(gen2, unit_type), unit_type))))], [\"update\", lambda_type(gen2, lambda_type(gen1, tuple_type(gen1, list_type(lambda_type(lambda_type(gen2, unit_type), unit_type)))))], [\"subscribe\", lambda_type(gen1, list_type(lambda_type(lambda_type(gen2, unit_type), unit_type)))], [\"view\", lambda_type(gen1, lambda_type(lambda_type(gen2, unit_type), gen3))], [\"setState\", lambda_type(gen1, lambda_type(lambda_type(gen2, unit_type), unit_type))], [\"onError\", lambda_type(tuple_type(string_type, class_type(\"System.Exception\")), unit_type)], [\"syncDispatch\", lambda_type(lambda_type(gen2, unit_type), lambda_type(gen2, unit_type))]]);\n}\n\nexport function ProgramModule_mkProgram(init, update, view) {\n return new Program$4(init, update, (_arg1) => Cmd_none(), view, (model, arg) => {\n void view(model, arg);\n }, (tupledArg) => {\n Log_onError(tupledArg[0], tupledArg[1]);\n }, uncurry(2, (x) => x));\n}\n\nexport function ProgramModule_mkSimple(init, update, view) {\n return new Program$4((arg) => [init(arg), Cmd_none()], (msg, arg_1) => [update(msg, arg_1), Cmd_none()], (_arg1) => Cmd_none(), view, (model, arg_2) => {\n void view(model, arg_2);\n }, (tupledArg) => {\n Log_onError(tupledArg[0], tupledArg[1]);\n }, uncurry(2, (x) => x));\n}\n\nexport function ProgramModule_withSubscription(subscribe, program) {\n return new Program$4(program.init, program.update, (model) => Cmd_batch(ofArray([program.subscribe(model), subscribe(model)])), program.view, program.setState, program.onError, program.syncDispatch);\n}\n\nexport function ProgramModule_withConsoleTrace(program) {\n return new Program$4((arg) => {\n const patternInput = program.init(arg);\n const initModel = patternInput[0];\n Log_toConsole(\"Initial state:\", initModel);\n return [initModel, patternInput[1]];\n }, (msg, model) => {\n Log_toConsole(\"New message:\", msg);\n const patternInput_1 = program.update(msg, model);\n const newModel = patternInput_1[0];\n Log_toConsole(\"Updated state:\", newModel);\n return [newModel, patternInput_1[1]];\n }, program.subscribe, program.view, program.setState, program.onError, program.syncDispatch);\n}\n\nexport function ProgramModule_withTrace(trace, program) {\n return new Program$4(program.init, (msg, model) => {\n const patternInput = program.update(msg, model);\n const state = patternInput[0];\n trace(msg, state);\n return [state, patternInput[1]];\n }, program.subscribe, program.view, program.setState, program.onError, program.syncDispatch);\n}\n\nexport function ProgramModule_withErrorHandler(onError, program) {\n return new Program$4(program.init, program.update, program.subscribe, program.view, program.setState, onError, program.syncDispatch);\n}\n\nexport function ProgramModule_mapErrorHandler(map, program) {\n return new Program$4(program.init, program.update, program.subscribe, program.view, program.setState, partialApply(1, map, [program.onError]), program.syncDispatch);\n}\n\nexport function ProgramModule_onError(program) {\n return program.onError;\n}\n\nexport function ProgramModule_withSetState(setState, program) {\n return new Program$4(program.init, program.update, program.subscribe, program.view, setState, program.onError, program.syncDispatch);\n}\n\nexport function ProgramModule_setState(program) {\n return curry(2, program.setState);\n}\n\nexport function ProgramModule_view(program) {\n return curry(2, program.view);\n}\n\nexport function ProgramModule_withSyncDispatch(syncDispatch, program) {\n return new Program$4(program.init, program.update, program.subscribe, program.view, program.setState, program.onError, syncDispatch);\n}\n\nexport function ProgramModule_map(mapInit, mapUpdate, mapView, mapSetState, mapSubscribe, program) {\n const init = partialApply(1, mapInit, [program.init]);\n const update = partialApply(2, mapUpdate, [program.update]);\n const view = partialApply(2, mapView, [program.view]);\n const setState = partialApply(2, mapSetState, [program.setState]);\n return new Program$4(init, uncurry(2, update), partialApply(1, mapSubscribe, [program.subscribe]), uncurry(2, view), uncurry(2, setState), program.onError, uncurry(2, (x) => x));\n}\n\nexport function ProgramModule_runWith(arg, program) {\n const patternInput = program.init(arg);\n const model = patternInput[0];\n const rb = RingBuffer$1_$ctor_Z524259A4(10);\n let reentered = false;\n let state = model;\n const dispatch = (msg) => {\n if (reentered) {\n RingBuffer$1__Push_2B595(rb, msg);\n }\n else {\n reentered = true;\n let nextMsg = some(msg);\n while (nextMsg != null) {\n const msg_1 = value_1(nextMsg);\n try {\n const patternInput_1 = program.update(msg_1, state);\n const model$0027 = patternInput_1[0];\n program.setState(model$0027, syncDispatch);\n Cmd_exec((ex) => {\n program.onError([toText(printf(\"Error in command while handling: %A\"))(msg_1), ex]);\n }, syncDispatch, patternInput_1[1]);\n state = model$0027;\n }\n catch (ex_1) {\n program.onError([toText(printf(\"Unable to process the message: %A\"))(msg_1), ex_1]);\n }\n nextMsg = RingBuffer$1__Pop(rb);\n }\n reentered = false;\n }\n };\n const syncDispatch = partialApply(1, program.syncDispatch, [dispatch]);\n program.setState(model, syncDispatch);\n Cmd_exec((ex_3) => {\n program.onError([\"Error intitializing:\", ex_3]);\n }, syncDispatch, Cmd_batch(ofArray([(() => {\n try {\n return program.subscribe(model);\n }\n catch (ex_2) {\n program.onError([\"Unable to subscribe:\", ex_2]);\n return Cmd_none();\n }\n })(), patternInput[1]])));\n}\n\nexport function ProgramModule_run(program) {\n ProgramModule_runWith(void 0, program);\n}\n\n","import { Record } from \"../fable-library.3.2.1/Types.js\";\nimport { obj_type, record_type, bool_type, lambda_type, class_type, unit_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { Component } from \"react\";\nimport * as react from \"react\";\nimport { equalArrays, equals } from \"../fable-library.3.2.1/Util.js\";\n\nexport class LazyProps$1 extends Record {\n constructor(model, render, equal) {\n super();\n this.model = model;\n this.render = render;\n this.equal = equal;\n }\n}\n\nexport function LazyProps$1$reflection(gen0) {\n return record_type(\"Elmish.React.LazyProps`1\", [gen0], LazyProps$1, () => [[\"model\", gen0], [\"render\", lambda_type(unit_type, class_type(\"Fable.React.ReactElement\"))], [\"equal\", lambda_type(gen0, lambda_type(gen0, bool_type))]]);\n}\n\nexport class Components_LazyView$1 extends Component {\n constructor(props) {\n super(props);\n }\n shouldComponentUpdate(nextProps, _nextState) {\n const this$ = this;\n return !(this$.props).equal((this$.props).model, nextProps.model);\n }\n render() {\n const this$ = this;\n return (this$.props).render();\n }\n}\n\nexport function Components_LazyView$1$reflection(gen0) {\n return class_type(\"Elmish.React.Components.LazyView`1\", [gen0], Components_LazyView$1, class_type(\"Fable.React.Component`2\", [LazyProps$1$reflection(gen0), obj_type]));\n}\n\nexport function Components_LazyView$1_$ctor_Z7829D94B(props) {\n return new Components_LazyView$1(props);\n}\n\nexport function Common_lazyViewWith(equal, view, state) {\n return react.createElement(Components_LazyView$1, new LazyProps$1(state, () => view(state), equal));\n}\n\nexport function Common_lazyView2With(equal, view, state, dispatch) {\n return react.createElement(Components_LazyView$1, new LazyProps$1(state, () => view(state, dispatch), equal));\n}\n\nexport function Common_lazyView3With(equal, view, state1, state2, dispatch) {\n return react.createElement(Components_LazyView$1, new LazyProps$1([state1, state2], () => view(state1, state2, dispatch), equal));\n}\n\nexport function Common_lazyView(view) {\n return (state) => Common_lazyViewWith((x, y) => equals(x, y), view, state);\n}\n\nexport function Common_lazyView2(view) {\n return (state) => ((dispatch) => Common_lazyView2With((x, y) => equals(x, y), view, state, dispatch));\n}\n\nexport function Common_lazyView3(view) {\n return (state1) => ((state2) => ((dispatch) => Common_lazyView3With((x, y) => equalArrays(x, y), view, state1, state2, dispatch)));\n}\n\n","import { ProgramModule_view, ProgramModule_withSetState } from \"../Fable.Elmish.3.1.0/program.fs.js\";\nimport * as react$002Ddom from \"react-dom\";\nimport { uncurry } from \"../fable-library.3.2.1/Util.js\";\nimport { Common_lazyView2With } from \"./common.fs.js\";\n\nexport function Program_Internal_withReactBatchedUsing(lazyView2With, placeholderId, program) {\n let lastRequest = void 0;\n return ProgramModule_withSetState((model, dispatch) => {\n if (lastRequest != null) {\n window.cancelAnimationFrame(lastRequest);\n }\n lastRequest = window.requestAnimationFrame((_arg1) => {\n react$002Ddom.render(lazyView2With((x, y) => (x === y), uncurry(2, ProgramModule_view(program)), model, dispatch), document.getElementById(placeholderId));\n });\n }, program);\n}\n\nexport function Program_Internal_withReactSynchronousUsing(lazyView2With, placeholderId, program) {\n return ProgramModule_withSetState((model, dispatch) => {\n react$002Ddom.render(lazyView2With((x, y) => (x === y), uncurry(2, ProgramModule_view(program)), model, dispatch), document.getElementById(placeholderId));\n }, program);\n}\n\nexport function Program_Internal_withReactHydrateUsing(lazyView2With, placeholderId, program) {\n return ProgramModule_withSetState((model, dispatch) => {\n react$002Ddom.hydrate(lazyView2With((x, y) => (x === y), uncurry(2, ProgramModule_view(program)), model, dispatch), document.getElementById(placeholderId));\n }, program);\n}\n\nexport function Program_withReactBatched(placeholderId, program) {\n return Program_Internal_withReactBatchedUsing((equal, view, state, dispatch) => Common_lazyView2With(equal, view, state, dispatch), placeholderId, program);\n}\n\nexport function Program_withReactSynchronous(placeholderId, program) {\n return Program_Internal_withReactSynchronousUsing((equal, view, state, dispatch) => Common_lazyView2With(equal, view, state, dispatch), placeholderId, program);\n}\n\nexport function Program_withReact(placeholderId, program) {\n return Program_Internal_withReactBatchedUsing((equal, view, state, dispatch) => Common_lazyView2With(equal, view, state, dispatch), placeholderId, program);\n}\n\nexport function Program_withReactUnoptimized(placeholderId, program) {\n return Program_Internal_withReactSynchronousUsing((equal, view, state, dispatch) => Common_lazyView2With(equal, view, state, dispatch), placeholderId, program);\n}\n\nexport function Program_withReactHydrate(placeholderId, program) {\n return Program_Internal_withReactHydrateUsing((equal, view, state, dispatch) => Common_lazyView2With(equal, view, state, dispatch), placeholderId, program);\n}\n\n","import { Union } from \"../fable-library.3.2.1/Types.js\";\nimport { union_type, class_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { ofArray, singleton } from \"../fable-library.3.2.1/List.js\";\nimport { Cmd_batch, Cmd_map } from \"../Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { ProgramModule_map } from \"../Fable.Elmish.3.1.0/program.fs.js\";\n\nexport class Navigable$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Change\", \"UserMsg\"];\n }\n}\n\nexport function Navigable$1$reflection(gen0) {\n return union_type(\"Elmish.Navigation.Navigable`1\", [gen0], Navigable$1, () => [[[\"Item\", class_type(\"Browser.Types.Location\")]], [[\"Item\", gen0]]]);\n}\n\nexport function Navigation_modifyUrl(newUrl) {\n return singleton((_arg1) => {\n history.replaceState(void 0, \"\", newUrl);\n });\n}\n\nexport function Navigation_newUrl(newUrl) {\n return singleton((_arg1) => {\n history.pushState(void 0, \"\", newUrl);\n void window.dispatchEvent(new CustomEvent(\"NavigatedEvent\"));\n });\n}\n\nexport function Navigation_jump(n) {\n return singleton((_arg1) => {\n history.go(n);\n });\n}\n\nlet ProgramModule_Internal_onChangeRef = (_arg1) => {\n throw (new Error(\"`onChangeRef` has not been initialized.\\nPlease make sure you used Elmish.Navigation.Program.Internal.subscribe\"));\n};\n\nexport function ProgramModule_Internal_subscribe(dispatch) {\n let clo1, clo1_1, clo1_2;\n let lastLocation = void 0;\n ProgramModule_Internal_onChangeRef = ((_arg1) => {\n let value;\n let pattern_matching_result;\n if (lastLocation != null) {\n if (lastLocation === window.location.href) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n value = (void 0);\n break;\n }\n case 1: {\n lastLocation = window.location.href;\n value = dispatch(new Navigable$1(0, window.location));\n break;\n }\n }\n return void 0;\n });\n window.addEventListener(\"popstate\", (clo1 = ProgramModule_Internal_onChangeRef, (arg10) => {\n clo1(arg10);\n }));\n window.addEventListener(\"hashchange\", (clo1_1 = ProgramModule_Internal_onChangeRef, (arg10_1) => {\n clo1_1(arg10_1);\n }));\n window.addEventListener(\"NavigatedEvent\", (clo1_2 = ProgramModule_Internal_onChangeRef, (arg10_2) => {\n clo1_2(arg10_2);\n }));\n}\n\nexport function ProgramModule_Internal_unsubscribe() {\n let clo1, clo1_1, clo1_2;\n window.removeEventListener(\"popstate\", (clo1 = ProgramModule_Internal_onChangeRef, (arg10) => {\n clo1(arg10);\n }));\n window.removeEventListener(\"hashchange\", (clo1_1 = ProgramModule_Internal_onChangeRef, (arg10_1) => {\n clo1_1(arg10_1);\n }));\n window.removeEventListener(\"NavigatedEvent\", (clo1_2 = ProgramModule_Internal_onChangeRef, (arg10_2) => {\n clo1_2(arg10_2);\n }));\n}\n\nexport function ProgramModule_Internal_toNavigableWith(parser, urlUpdate, program, onLocationChange) {\n const map = (tupledArg) => [tupledArg[0], Cmd_map((arg0) => (new Navigable$1(1, arg0)), tupledArg[1])];\n return ProgramModule_map((userInit, unitVar1) => map(userInit(parser(window.location))), (userUpdate, msg, model_1) => map((msg.tag === 1) ? userUpdate(msg.fields[0], model_1) : urlUpdate(parser(msg.fields[0]), model_1)), (userView, model_4, dispatch_1) => userView(model_4, (arg_1) => dispatch_1(new Navigable$1(1, arg_1))), (userSetState, model_3, dispatch) => userSetState(model_3, (arg) => dispatch(new Navigable$1(1, arg))), (userSubscribe, model_2) => Cmd_batch(ofArray([singleton(onLocationChange), Cmd_map((arg0_1) => (new Navigable$1(1, arg0_1)), userSubscribe(model_2))])), program);\n}\n\nexport function ProgramModule_toNavigable(parser, urlUpdate, program) {\n return ProgramModule_Internal_toNavigableWith(parser, urlUpdate, program, (dispatch) => {\n ProgramModule_Internal_subscribe(dispatch);\n });\n}\n\n","import { some, value } from \"../fable-library.3.2.1/Option.js\";\n\nexport function tuple(a, b) {\n const matchValue = [a, b];\n let pattern_matching_result, a_1, b_1;\n if (matchValue[0] != null) {\n if (matchValue[1] != null) {\n pattern_matching_result = 0;\n a_1 = value(matchValue[0]);\n b_1 = value(matchValue[1]);\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return [a_1, b_1];\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function ofFunc(f, arg) {\n try {\n return some(f(arg));\n }\n catch (matchValue) {\n return void 0;\n }\n}\n\n","import { FSharpRef, Record } from \"../fable-library.3.2.1/Types.js\";\nimport { record_type, class_type, list_type, string_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { ofArray, collect, map as map_1, singleton, tail, cons, empty, head, isEmpty } from \"../fable-library.3.2.1/List.js\";\nimport { FSharpResult$2 } from \"../fable-library.3.2.1/Choice.js\";\nimport { tryParse } from \"../fable-library.3.2.1/Int32.js\";\nimport { empty as empty_1, ofSeq, tryFind } from \"../fable-library.3.2.1/Map.js\";\nimport { some, bind } from \"../fable-library.3.2.1/Option.js\";\nimport { substring, split } from \"../fable-library.3.2.1/String.js\";\nimport { equalsWith } from \"../fable-library.3.2.1/Array.js\";\nimport { comparePrimitives } from \"../fable-library.3.2.1/Util.js\";\nimport { ofFunc, tuple } from \"./prelude.fs.js\";\nimport { map as map_2, choose } from \"../fable-library.3.2.1/Seq.js\";\n\nexport class State$1 extends Record {\n constructor(visited, unvisited, args, value) {\n super();\n this.visited = visited;\n this.unvisited = unvisited;\n this.args = args;\n this.value = value;\n }\n}\n\nexport function State$1$reflection(gen0) {\n return record_type(\"Elmish.UrlParser.State`1\", [gen0], State$1, () => [[\"visited\", list_type(string_type)], [\"unvisited\", list_type(string_type)], [\"args\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, string_type])], [\"value\", gen0]]);\n}\n\nexport function StateModule_mkState(visited, unvisited, args, value) {\n return new State$1(visited, unvisited, args, value);\n}\n\nexport function StateModule_map(f, _arg1) {\n return new State$1(_arg1.visited, _arg1.unvisited, _arg1.args, f(_arg1.value));\n}\n\nexport function custom(tipe, stringToSomething) {\n return (_arg1) => {\n const unvisited = _arg1.unvisited;\n if (!isEmpty(unvisited)) {\n const next = head(unvisited);\n const matchValue = stringToSomething(next);\n if (matchValue.tag === 1) {\n return empty();\n }\n else {\n return singleton(StateModule_mkState(cons(next, _arg1.visited), tail(unvisited), _arg1.args, _arg1.value(matchValue.fields[0])));\n }\n }\n else {\n return empty();\n }\n };\n}\n\nexport function str(state) {\n return custom(\"string\", (arg0) => (new FSharpResult$2(0, arg0)))(state);\n}\n\nexport function i32(state) {\n return custom(\"i32\", (arg) => {\n let _arg1;\n let outArg = 0;\n _arg1 = [tryParse(arg, 511, false, 32, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n return _arg1[0] ? (new FSharpResult$2(0, _arg1[1])) : (new FSharpResult$2(1, \"Can\\u0027t parse int\"));\n })(state);\n}\n\nexport function s(str_1) {\n return (_arg1) => {\n const unvisited = _arg1.unvisited;\n if (!isEmpty(unvisited)) {\n const next = head(unvisited);\n if (next === str_1) {\n return singleton(StateModule_mkState(cons(next, _arg1.visited), tail(unvisited), _arg1.args, _arg1.value));\n }\n else {\n return empty();\n }\n }\n else {\n return empty();\n }\n };\n}\n\nexport function map(subValue, parse_1) {\n return (_arg1) => map_1((arg10$0040) => StateModule_map(_arg1.value, arg10$0040), parse_1(new State$1(_arg1.visited, _arg1.unvisited, _arg1.args, subValue)));\n}\n\nexport function oneOf(parsers, state) {\n return collect((parser) => parser(state), parsers);\n}\n\nexport function top(state) {\n return singleton(state);\n}\n\nexport function customParam(key, func) {\n return (_arg1) => {\n const args = _arg1.args;\n return singleton(StateModule_mkState(_arg1.visited, _arg1.unvisited, args, _arg1.value(func(tryFind(key, args)))));\n };\n}\n\nexport function stringParam(name) {\n return customParam(name, (x) => x);\n}\n\nexport const intParamHelp = (option) => bind((value) => {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse(value, 511, false, 32, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return void 0;\n }\n}, option);\n\nexport function intParam(name) {\n return customParam(name, intParamHelp);\n}\n\nexport function parseHelp(states_mut) {\n parseHelp:\n while (true) {\n const states = states_mut;\n if (!isEmpty(states)) {\n const state = head(states);\n const matchValue = state.unvisited;\n let pattern_matching_result;\n if (!isEmpty(matchValue)) {\n if (head(matchValue) === \"\") {\n if (isEmpty(tail(matchValue))) {\n pattern_matching_result = 1;\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return some(state.value);\n }\n case 1: {\n return some(state.value);\n }\n case 2: {\n states_mut = tail(states);\n continue parseHelp;\n }\n }\n }\n else {\n return void 0;\n }\n break;\n }\n}\n\nexport function splitUrl(url) {\n const matchValue = ofArray(url.split(\"/\"));\n let pattern_matching_result, segments, segments_1;\n if (!isEmpty(matchValue)) {\n if (head(matchValue) === \"\") {\n pattern_matching_result = 0;\n segments = tail(matchValue);\n }\n else {\n pattern_matching_result = 1;\n segments_1 = matchValue;\n }\n }\n else {\n pattern_matching_result = 1;\n segments_1 = matchValue;\n }\n switch (pattern_matching_result) {\n case 0: {\n return segments;\n }\n case 1: {\n return segments_1;\n }\n }\n}\n\nexport function parse(parser, url, args) {\n return parseHelp(parser(new State$1(empty(), splitUrl(url), args, (x) => x)));\n}\n\nexport function toKeyValuePair(segment) {\n const matchValue = split(segment, [\"=\"], null, 0);\n if ((!equalsWith((x, y) => comparePrimitives(x, y), matchValue, null)) ? (matchValue.length === 2) : false) {\n const value = matchValue[1];\n return tuple(ofFunc(decodeURIComponent, matchValue[0]), ofFunc(decodeURIComponent, value));\n }\n else {\n return void 0;\n }\n}\n\nexport function parseParams(querystring) {\n if (querystring.length > 1) {\n return ofSeq(choose((x) => x, map_2((segment) => toKeyValuePair(segment), split(substring(querystring, 1), [\"\\u0026\"], null, 0))));\n }\n else {\n return empty_1();\n }\n}\n\nexport function parsePath(parser, location) {\n return parse(parser, location.pathname, parseParams(location.search));\n}\n\nexport function parseHash(parser, location) {\n let patternInput;\n const hash = (location.hash.length > 1) ? substring(location.hash, 1) : \"\";\n if (hash.indexOf(\"?\") >= 0) {\n const h = substring(hash, 0, hash.indexOf(\"?\"));\n patternInput = [h, substring(hash, h.length)];\n }\n else {\n patternInput = [hash, \"?\"];\n }\n return parse(parser, patternInput[0], parseParams(patternInput[1]));\n}\n\n","import { toList, toArray, map, filter, delay } from \"./Seq.js\";\nimport { HashSet } from \"./MutableSet.js\";\nimport { addToDict, getItemFromDict, tryGetValue, addToSet } from \"./MapUtil.js\";\nimport { Dictionary } from \"./MutableMap.js\";\nimport { getEnumerator } from \"./Util.js\";\nimport { FSharpRef } from \"./Types.js\";\n\nexport function distinct(xs, comparer) {\n return delay(() => {\n const hashSet = new HashSet([], comparer);\n return filter((x) => addToSet(x, hashSet), xs);\n });\n}\n\nexport function distinctBy(projection, xs, comparer) {\n return delay(() => {\n const hashSet = new HashSet([], comparer);\n return filter((x) => addToSet(projection(x), hashSet), xs);\n });\n}\n\nexport function except(itemsToExclude, xs, comparer) {\n return delay(() => {\n const hashSet = new HashSet(itemsToExclude, comparer);\n return filter((x) => addToSet(x, hashSet), xs);\n });\n}\n\nexport function countBy(projection, xs, comparer) {\n return delay(() => {\n const dict = new Dictionary([], comparer);\n const keys = [];\n const enumerator = getEnumerator(xs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const key = projection(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n let matchValue;\n let outArg = 0;\n matchValue = [tryGetValue(dict, key, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n if (matchValue[0]) {\n dict.set(key, matchValue[1] + 1);\n }\n else {\n dict.set(key, 1);\n void (keys.push(key));\n }\n }\n }\n finally {\n enumerator.Dispose();\n }\n return map((key_1) => [key_1, getItemFromDict(dict, key_1)], keys);\n });\n}\n\nexport function groupBy(projection, xs, comparer) {\n return delay(() => {\n const dict = new Dictionary([], comparer);\n const keys = [];\n const enumerator = getEnumerator(xs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n const key = projection(x);\n let matchValue;\n let outArg = null;\n matchValue = [tryGetValue(dict, key, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n void (matchValue[1].push(x));\n }\n else {\n addToDict(dict, key, [x]);\n void (keys.push(key));\n }\n }\n }\n finally {\n enumerator.Dispose();\n }\n return map((key_1) => [key_1, getItemFromDict(dict, key_1)], keys);\n });\n}\n\nexport function Array_distinct(xs, comparer) {\n return toArray(distinct(xs, comparer));\n}\n\nexport function Array_distinctBy(projection, xs, comparer) {\n return toArray(distinctBy(projection, xs, comparer));\n}\n\nexport function Array_except(itemsToExclude, xs, comparer) {\n return toArray(except(itemsToExclude, xs, comparer));\n}\n\nexport function Array_countBy(projection, xs, comparer) {\n return toArray(countBy(projection, xs, comparer));\n}\n\nexport function Array_groupBy(projection, xs, comparer) {\n return toArray(map((tupledArg) => [tupledArg[0], toArray(tupledArg[1])], groupBy(projection, xs, comparer)));\n}\n\nexport function List_distinct(xs, comparer) {\n return toList(distinct(xs, comparer));\n}\n\nexport function List_distinctBy(projection, xs, comparer) {\n return toList(distinctBy(projection, xs, comparer));\n}\n\nexport function List_except(itemsToExclude, xs, comparer) {\n return toList(except(itemsToExclude, xs, comparer));\n}\n\nexport function List_countBy(projection, xs, comparer) {\n return toList(countBy(projection, xs, comparer));\n}\n\nexport function List_groupBy(projection, xs, comparer) {\n return toList(map((tupledArg) => [tupledArg[0], toList(tupledArg[1])], groupBy(projection, xs, comparer)));\n}\n\n","import { Record, Union, FSharpRef, toString } from \"../Client/.fable/fable-library.3.2.1/Types.js\";\nimport { op_UnaryNegation_Int32, parse as parse_1, tryParse } from \"../Client/.fable/fable-library.3.2.1/Int32.js\";\nimport { some, value as value_2, bind, defaultArgWith, map as map_1, defaultArg } from \"../Client/.fable/fable-library.3.2.1/Option.js\";\nimport { bool_type, array_type, unit_type, lambda_type, enum_type, class_type, list_type, record_type, option_type, tuple_type, string_type, int32_type, union_type } from \"../Client/.fable/fable-library.3.2.1/Reflection.js\";\nimport { singleton } from \"../Client/.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { substring, join, padLeft, interpolate, toText } from \"../Client/.fable/fable-library.3.2.1/String.js\";\nimport { toString as toString_1, newGuid, parse } from \"../Client/.fable/fable-library.3.2.1/Guid.js\";\nimport { round, safeHash, getEnumerator, comparePrimitives, max, equals, int32ToString } from \"../Client/.fable/fable-library.3.2.1/Util.js\";\nimport { sumBy as sumBy_1, ofSeq, ofArray, map } from \"../Client/.fable/fable-library.3.2.1/List.js\";\nimport { FSharpResult$2 } from \"../Client/.fable/fable-library.3.2.1/Choice.js\";\nimport { now, create, year as year_1, dayOfYear, addDays, dayOfWeek as dayOfWeek_1 } from \"../Client/.fable/fable-library.3.2.1/Date.js\";\nimport { fold, append as append_1, choose, map as map_3, singleton as singleton_1, collect, delay, toArray, toList } from \"../Client/.fable/fable-library.3.2.1/Seq.js\";\nimport { rangeDouble } from \"../Client/.fable/fable-library.3.2.1/Range.js\";\nimport { sumBy, tryHead, sum, tryFind, map as map_2, append, tryFindIndex } from \"../Client/.fable/fable-library.3.2.1/Array.js\";\nimport { distinct } from \"../Client/.fable/fable-library.3.2.1/Seq2.js\";\n\nexport function Common_str(x) {\n let copyOfStruct = x;\n return toString(copyOfStruct);\n}\n\nexport function Common_tryParseInt(str) {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse(str, 511, false, 32, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return void 0;\n }\n}\n\nexport function Common_parseIntOrZero(str) {\n return defaultArg(Common_tryParseInt(str), 0);\n}\n\nexport class Resource$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"HasNotLoadedYet\", \"Loaded\"];\n }\n}\n\nexport function Resource$1$reflection(gen0) {\n return union_type(\"Shared.Resource`1\", [gen0], Resource$1, () => [[], [[\"Item\", gen0]]]);\n}\n\nexport class Sorting extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Ascending\", \"Descending\"];\n }\n}\n\nexport function Sorting$reflection() {\n return union_type(\"Shared.Sorting\", [], Sorting, () => [[], []]);\n}\n\nexport function SortingModule_toggle(_arg1) {\n if (_arg1.tag === 1) {\n return new Sorting(0);\n }\n else {\n return new Sorting(1);\n }\n}\n\nexport class PagingQuery$1 extends Record {\n constructor(Payload, Page, PageSize, SortBy) {\n super();\n this.Payload = Payload;\n this.Page = (Page | 0);\n this.PageSize = (PageSize | 0);\n this.SortBy = SortBy;\n }\n}\n\nexport function PagingQuery$1$reflection(gen0) {\n return record_type(\"Shared.PagingQuery`1\", [gen0], PagingQuery$1, () => [[\"Payload\", gen0], [\"Page\", int32_type], [\"PageSize\", int32_type], [\"SortBy\", option_type(tuple_type(string_type, Sorting$reflection()))]]);\n}\n\nexport class PagingResult$2 extends Record {\n constructor(Query, Page, PageSize, Total, Result) {\n super();\n this.Query = Query;\n this.Page = (Page | 0);\n this.PageSize = (PageSize | 0);\n this.Total = (Total | 0);\n this.Result = Result;\n }\n}\n\nexport function PagingResult$2$reflection(gen0, gen1) {\n return record_type(\"Shared.PagingResult`2\", [gen0, gen1], PagingResult$2, () => [[\"Query\", gen0], [\"Page\", int32_type], [\"PageSize\", int32_type], [\"Total\", int32_type], [\"Result\", list_type(gen1)]]);\n}\n\nexport function PagingResult_getAsList(query, payload) {\n return singleton.Delay(() => singleton.Bind(query(new PagingQuery$1(payload, 1, 1000, void 0)), (_arg1) => singleton.Return(_arg1.Result)));\n}\n\nexport function Route_builder(typeName, methodName) {\n return toText(interpolate(\"/api/%s%P()/%s%P()\", [typeName, methodName]));\n}\n\nexport class CalendarDay_CalendarDay extends Record {\n constructor(Year, Period, Week, Day) {\n super();\n this.Year = (Year | 0);\n this.Period = (Period | 0);\n this.Week = (Week | 0);\n this.Day = (Day | 0);\n }\n}\n\nexport function CalendarDay_CalendarDay$reflection() {\n return record_type(\"Shared.CalendarDay.CalendarDay\", [], CalendarDay_CalendarDay, () => [[\"Year\", int32_type], [\"Period\", int32_type], [\"Week\", int32_type], [\"Day\", int32_type]]);\n}\n\nexport function UserIdModule_toString(x) {\n return x;\n}\n\nexport function UserIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function UserIdModule_fromGuid(x) {\n return x;\n}\n\nexport const UserIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function EmailModule_toString(value) {\n return value;\n}\n\nexport function EmailModule_ofString(s) {\n return s;\n}\n\nexport function EmailModule_map(f, value) {\n return f(EmailModule_toString(value));\n}\n\nexport const EmailModule_normalize = (value) => EmailModule_map((x) => x.toUpperCase(), value);\n\nexport const EmailModule_empty = EmailModule_ofString(\"\");\n\nexport function ResetPasswordCodeModule_toString(value) {\n return value;\n}\n\nexport function ResetPasswordCodeModule_ofString(x) {\n return x;\n}\n\nexport const ResetPasswordCodeModule_empty = ResetPasswordCodeModule_ofString(\"\");\n\nexport function ResetPasswordCodeModule_mkNew() {\n let copyOfStruct;\n return ResetPasswordCodeModule_ofString((copyOfStruct = newGuid(), toString_1(copyOfStruct, \"N\")));\n}\n\nexport function PasswordHashModule_toString(value) {\n return value;\n}\n\nexport function PasswordHashModule_ofString(x) {\n return x;\n}\n\nexport const PasswordHashModule_empty = PasswordHashModule_ofString(\"\");\n\nexport function NotificationIdModule_toString(x) {\n return x;\n}\n\nexport function NotificationIdModule_fromString(x) {\n return x;\n}\n\nexport const NotificationIdModule_empty = \"\";\n\nexport function NotificationIdModule_newId() {\n let copyOfStruct;\n return NotificationIdModule_fromString((copyOfStruct = newGuid(), toString_1(copyOfStruct, \"N\")));\n}\n\nexport function GroupIdModule_toString(x) {\n return x;\n}\n\nexport function GroupIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function GroupIdModule_fromGuid(x) {\n return x;\n}\n\nexport const GroupIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function SchoolIdModule_toString(x) {\n return x;\n}\n\nexport function SchoolIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function SchoolIdModule_fromGuid(x) {\n return x;\n}\n\nexport const SchoolIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function StudentDayIdModule_toString(x) {\n return x;\n}\n\nexport function StudentDayIdModule_fromString(x) {\n return x;\n}\n\nexport function StudentDayIdModule_createStr(studentId, calendarDay) {\n return toText(interpolate(\"%P()-%P()-%P()-%P()-%P()\", [UserIdModule_toString(studentId), calendarDay.Year, calendarDay.Period, calendarDay.Week, calendarDay.Day]));\n}\n\nexport function StudentDayIdModule_create(studentId, calendarDay) {\n return StudentDayIdModule_createStr(studentId, calendarDay);\n}\n\nexport const StudentDayIdModule_empty = \"\";\n\nexport function ScheduleIdModule_toString(x) {\n return x;\n}\n\nexport function ScheduleIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function ScheduleIdModule_fromGuid(x) {\n return x;\n}\n\nexport const ScheduleIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function WorkoutIdModule_toString(x) {\n return x;\n}\n\nexport function WorkoutIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function WorkoutIdModule_fromGuid(x) {\n return x;\n}\n\nexport const WorkoutIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function WorkoutTemplateIdModule_toString(x) {\n return x;\n}\n\nexport function WorkoutTemplateIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function WorkoutTemplateIdModule_fromGuid(x) {\n return x;\n}\n\nexport const WorkoutTemplateIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function FavoriteIdModule_toString(x) {\n return x;\n}\n\nexport function FavoriteIdModule_fromString(x) {\n return parse(x);\n}\n\nexport function FavoriteIdModule_fromGuid(x) {\n return x;\n}\n\nexport const FavoriteIdModule_empty = \"00000000-0000-0000-0000-000000000000\";\n\nexport function DurationModule_toInt(x) {\n return x;\n}\n\nexport function DurationModule_fromString(x) {\n return parse_1(x, 511, false, 32);\n}\n\nexport function DurationModule_fromInt(x) {\n return x;\n}\n\nexport const DurationModule_empty = 0;\n\nexport function DurationModule_toHMS(x) {\n const sec = DurationModule_toInt(x) | 0;\n return [~(~(sec / 3600)), (~(~(sec / 60))) % 60, sec % 60];\n}\n\nexport function DurationModule_toHMSString(x) {\n const patternInput = DurationModule_toHMS(x);\n return (int32ToString(patternInput[0]) + \":\") + padLeft(int32ToString(patternInput[1]), 2, \"0\");\n}\n\nexport function DurationModule_intToHMSString(x) {\n return DurationModule_toHMSString(DurationModule_fromInt(x));\n}\n\nexport class Errors_ValidationErrorType extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"EmptyChangePasswordId\", \"FieldChangePasswordIdIsNone\"];\n }\n}\n\nexport function Errors_ValidationErrorType$reflection() {\n return union_type(\"Shared.Errors.ValidationErrorType\", [], Errors_ValidationErrorType, () => [[[\"Item\", class_type(\"System.Guid\")]], []]);\n}\n\nexport class Errors_ValidationError extends Record {\n constructor(Field, Type) {\n super();\n this.Field = Field;\n this.Type = Type;\n }\n}\n\nexport function Errors_ValidationError$reflection() {\n return record_type(\"Shared.Errors.ValidationError\", [], Errors_ValidationError, () => [[\"Field\", string_type], [\"Type\", Errors_ValidationErrorType$reflection()]]);\n}\n\nexport class Errors_DomainError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountEmailNotExist\", \"AccountEmailAlreadyRegistered\", \"PasswordAndConfirmationAreDifferent\", \"PasswordOrUserInvalid\", \"ChangePasswordIdIsNone\", \"AccountChangePasswordIdNotExist\"];\n }\n}\n\nexport function Errors_DomainError$reflection() {\n return union_type(\"Shared.Errors.DomainError\", [], Errors_DomainError, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [], [], [], [[\"Item\", string_type]]]);\n}\n\nexport class Errors_ServiceInfo extends Record {\n constructor(Name, Endpoint) {\n super();\n this.Name = Name;\n this.Endpoint = Endpoint;\n }\n}\n\nexport function Errors_ServiceInfo$reflection() {\n return record_type(\"Shared.Errors.ServiceInfo\", [], Errors_ServiceInfo, () => [[\"Name\", string_type], [\"Endpoint\", string_type]]);\n}\n\nexport class Errors_RemoteServiceError extends Record {\n constructor(Service, Errors) {\n super();\n this.Service = Service;\n this.Errors = Errors;\n }\n}\n\nexport function Errors_RemoteServiceError$reflection() {\n return record_type(\"Shared.Errors.RemoteServiceError\", [], Errors_RemoteServiceError, () => [[\"Service\", Errors_ServiceInfo$reflection()], [\"Errors\", list_type(string_type)]]);\n}\n\nexport function Errors_RemoteServiceErrorModule_create(serviceName, endpoint, errors) {\n return new Errors_RemoteServiceError(new Errors_ServiceInfo(serviceName, endpoint), errors);\n}\n\nexport class Errors_ServerError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Exception\", \"Validation\", \"DatabaseItemNotFound\", \"Domain\", \"RemoteServiceError\"];\n }\n}\n\nexport function Errors_ServerError$reflection() {\n return union_type(\"Shared.Errors.ServerError\", [], Errors_ServerError, () => [[[\"Item\", string_type]], [[\"Item\", list_type(Errors_ValidationError$reflection())]], [[\"Item\", string_type]], [[\"Item\", Errors_DomainError$reflection()]], [[\"Item\", Errors_RemoteServiceError$reflection()]]]);\n}\n\nexport function Errors_DomainErrorModule_explain(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return toText(interpolate(\"Account with email \\u0027%s%P()\\u0027 already registered\", [_arg1.fields[0]]));\n }\n case 2: {\n return \"Password and password confirmation are different\";\n }\n case 3: {\n return \"Invalid user or password\";\n }\n case 4: {\n return \"Id for changing password was not found in database\";\n }\n case 5: {\n return toText(interpolate(\"Account with this id for changing password %A%P() doesn\\u0027t exist\", [_arg1.fields[0]]));\n }\n default: {\n return toText(interpolate(\"Account with email \\u0027%s%P()\\u0027 doesn\\u0027t exist\", [_arg1.fields[0]]));\n }\n }\n}\n\nexport function Errors_ValidationErrorModule_create(fieldName, error) {\n return new Errors_ValidationError(fieldName, error);\n}\n\nexport function Errors_ValidationErrorModule_explainType(_arg1) {\n if (_arg1.tag === 1) {\n return \"Change password Id wasn\\u0027t created\";\n }\n else {\n return toText(interpolate(\"Change password Id is empty %A%P()\", [_arg1.fields[0]]));\n }\n}\n\nexport function Errors_ValidationErrorModule_explain(error) {\n return toText(interpolate(\"Field \\u0027%s%P()\\u0027 %s%P()\", [error.Field, Errors_ValidationErrorModule_explainType(error.Type)]));\n}\n\nexport function Errors_ServerErrorModule_explain(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return join(\", \", map((error) => Errors_ValidationErrorModule_explain(error), _arg1.fields[0]));\n }\n case 2: {\n return \"Not found in database\";\n }\n case 3: {\n return Errors_DomainErrorModule_explain(_arg1.fields[0]);\n }\n case 4: {\n return \"Problem with third party services\";\n }\n default: {\n return toText(interpolate(\"Ops, something wrong happened. Details: %s%P()\", [_arg1.fields[0]]));\n }\n }\n}\n\nexport function ChangePasswordId_create(changePasswordId) {\n if (changePasswordId == null) {\n return new FSharpResult$2(1, Errors_ValidationErrorModule_create(\"ChangePasswordIdId\", new Errors_ValidationErrorType(1)));\n }\n else {\n const passwordId = changePasswordId;\n if (passwordId === \"00000000-0000-0000-0000-000000000000\") {\n return new FSharpResult$2(1, Errors_ValidationErrorModule_create(\"changePasswordId\", new Errors_ValidationErrorType(0, passwordId)));\n }\n else {\n return new FSharpResult$2(0, passwordId);\n }\n }\n}\n\nexport class Auth_SignedInUser extends Record {\n constructor(Email, FullName, SchoolId, GroupId, GdprAcceptDate, AccessToken, Role, UserId, ChatText, ChatChangeDate) {\n super();\n this.Email = Email;\n this.FullName = FullName;\n this.SchoolId = SchoolId;\n this.GroupId = GroupId;\n this.GdprAcceptDate = GdprAcceptDate;\n this.AccessToken = AccessToken;\n this.Role = (Role | 0);\n this.UserId = UserId;\n this.ChatText = ChatText;\n this.ChatChangeDate = ChatChangeDate;\n }\n}\n\nexport function Auth_SignedInUser$reflection() {\n return record_type(\"Shared.Auth.SignedInUser\", [], Auth_SignedInUser, () => [[\"Email\", string_type], [\"FullName\", string_type], [\"SchoolId\", option_type(class_type(\"System.Guid\"))], [\"GroupId\", option_type(class_type(\"System.Guid\"))], [\"GdprAcceptDate\", option_type(class_type(\"System.DateTimeOffset\"))], [\"AccessToken\", string_type], [\"Role\", enum_type(\"Shared.Auth.UserRole\", int32_type, [[\"Admin\", 1], [\"Teacher\", 2], [\"Student\", 3]])], [\"UserId\", class_type(\"System.Guid\")], [\"ChatText\", string_type], [\"ChatChangeDate\", option_type(class_type(\"System.DateTimeOffset\"))]]);\n}\n\nexport class Auth_LogInRequest extends Record {\n constructor(Email, Password) {\n super();\n this.Email = Email;\n this.Password = Password;\n }\n}\n\nexport function Auth_LogInRequest$reflection() {\n return record_type(\"Shared.Auth.LogInRequest\", [], Auth_LogInRequest, () => [[\"Email\", string_type], [\"Password\", string_type]]);\n}\n\nexport class Auth_VerifyActivationCodeResult extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Valid\", \"Invalid\", \"AlreadyActivated\"];\n }\n}\n\nexport function Auth_VerifyActivationCodeResult$reflection() {\n return union_type(\"Shared.Auth.VerifyActivationCodeResult\", [], Auth_VerifyActivationCodeResult, () => [[], [], []]);\n}\n\nexport class Auth_SignInApi extends Record {\n constructor(logIn, logOut) {\n super();\n this.logIn = logIn;\n this.logOut = logOut;\n }\n}\n\nexport function Auth_SignInApi$reflection() {\n return record_type(\"Shared.Auth.SignInApi\", [], Auth_SignInApi, () => [[\"logIn\", lambda_type(Auth_LogInRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Auth_SignedInUser$reflection(), Errors_ServerError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Auth_SignedInUser$reflection()]], [[\"ErrorValue\", Errors_ServerError$reflection()]]])]))], [\"logOut\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [unit_type]))]]);\n}\n\nexport class Users_User extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Anonymous\", \"Logged\"];\n }\n}\n\nexport function Users_User$reflection() {\n return union_type(\"Shared.Users.User\", [], Users_User, () => [[], [[\"Item\", Auth_SignedInUser$reflection()]]]);\n}\n\nexport class Users_RegisteredUser extends Record {\n constructor(Id, Email, FullName, DeletedDate) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n this.DeletedDate = DeletedDate;\n }\n}\n\nexport function Users_RegisteredUser$reflection() {\n return record_type(\"Shared.Users.RegisteredUser\", [], Users_RegisteredUser, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type], [\"DeletedDate\", option_type(class_type(\"System.DateTimeOffset\"))]]);\n}\n\nexport class Users_ResetPasswordRequest extends Record {\n constructor(Code, Password) {\n super();\n this.Code = Code;\n this.Password = Password;\n }\n}\n\nexport function Users_ResetPasswordRequest$reflection() {\n return record_type(\"Shared.Users.ResetPasswordRequest\", [], Users_ResetPasswordRequest, () => [[\"Code\", string_type], [\"Password\", string_type]]);\n}\n\nexport class Users_RegisterUserError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountAlreadyRegistered\"];\n }\n}\n\nexport function Users_RegisterUserError$reflection() {\n return union_type(\"Shared.Users.RegisterUserError\", [], Users_RegisterUserError, () => [[[\"Item\", string_type]]]);\n}\n\nexport class Users_RequestResetPasswordError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountWithGivenEmailDoesNotExists\"];\n }\n}\n\nexport function Users_RequestResetPasswordError$reflection() {\n return union_type(\"Shared.Users.RequestResetPasswordError\", [], Users_RequestResetPasswordError, () => [[[\"Item\", string_type]]]);\n}\n\nexport class Users_ResetPasswordError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"CodeIsInvalid\"];\n }\n}\n\nexport function Users_ResetPasswordError$reflection() {\n return union_type(\"Shared.Users.ResetPasswordError\", [], Users_ResetPasswordError, () => [[[\"Item\", string_type]]]);\n}\n\nexport class Users_UsersApi extends Record {\n constructor(requestResetPassword, resetPassword, getUser, restore) {\n super();\n this.requestResetPassword = requestResetPassword;\n this.resetPassword = resetPassword;\n this.getUser = getUser;\n this.restore = restore;\n }\n}\n\nexport function Users_UsersApi$reflection() {\n return record_type(\"Shared.Users.UsersApi\", [], Users_UsersApi, () => [[\"requestResetPassword\", lambda_type(string_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [string_type, Users_RequestResetPasswordError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", string_type]], [[\"ErrorValue\", Users_RequestResetPasswordError$reflection()]]])]))], [\"resetPassword\", lambda_type(Users_ResetPasswordRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, Users_ResetPasswordError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", Users_ResetPasswordError$reflection()]]])]))], [\"getUser\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [option_type(Users_RegisteredUser$reflection())]))], [\"restore\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport function Users_UserModule_toOption(_arg1) {\n if (_arg1.tag === 1) {\n return _arg1.fields[0];\n }\n else {\n return void 0;\n }\n}\n\nexport const Users_UserModule_userId = (arg) => map_1((x) => x.UserId, Users_UserModule_toOption(arg));\n\nexport function Users_UserModule_isAnonymous(user) {\n return equals(user, new Users_User(0));\n}\n\nexport class Settings_ChangeEmail extends Record {\n constructor(Email) {\n super();\n this.Email = Email;\n }\n}\n\nexport function Settings_ChangeEmail$reflection() {\n return record_type(\"Shared.Settings.ChangeEmail\", [], Settings_ChangeEmail, () => [[\"Email\", string_type]]);\n}\n\nexport class Settings_ChangeEmailError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountDoesNotExists\"];\n }\n}\n\nexport function Settings_ChangeEmailError$reflection() {\n return union_type(\"Shared.Settings.ChangeEmailError\", [], Settings_ChangeEmailError, () => [[]]);\n}\n\nexport class Settings_ChangeFullName extends Record {\n constructor(FullName) {\n super();\n this.FullName = FullName;\n }\n}\n\nexport function Settings_ChangeFullName$reflection() {\n return record_type(\"Shared.Settings.ChangeFullName\", [], Settings_ChangeFullName, () => [[\"FullName\", string_type]]);\n}\n\nexport class Settings_ChangeFullNameError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountDoesNotExists\"];\n }\n}\n\nexport function Settings_ChangeFullNameError$reflection() {\n return union_type(\"Shared.Settings.ChangeFullNameError\", [], Settings_ChangeFullNameError, () => [[]]);\n}\n\nexport class Settings_ChangePassword extends Record {\n constructor(CurrentPassword, NewPassword) {\n super();\n this.CurrentPassword = CurrentPassword;\n this.NewPassword = NewPassword;\n }\n}\n\nexport function Settings_ChangePassword$reflection() {\n return record_type(\"Shared.Settings.ChangePassword\", [], Settings_ChangePassword, () => [[\"CurrentPassword\", string_type], [\"NewPassword\", string_type]]);\n}\n\nexport class Settings_ChangePasswordError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountDoesNotExists\", \"InvalidPassword\"];\n }\n}\n\nexport function Settings_ChangePasswordError$reflection() {\n return union_type(\"Shared.Settings.ChangePasswordError\", [], Settings_ChangePasswordError, () => [[], []]);\n}\n\nexport class Settings_AcceptGdprError extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"AccountDoesNotExists\"];\n }\n}\n\nexport function Settings_AcceptGdprError$reflection() {\n return union_type(\"Shared.Settings.AcceptGdprError\", [], Settings_AcceptGdprError, () => [[]]);\n}\n\nexport class Settings_SettingsApi extends Record {\n constructor(changeEmail, changeFullName, changePassword, acceptGdpr) {\n super();\n this.changeEmail = changeEmail;\n this.changeFullName = changeFullName;\n this.changePassword = changePassword;\n this.acceptGdpr = acceptGdpr;\n }\n}\n\nexport function Settings_SettingsApi$reflection() {\n return record_type(\"Shared.Settings.SettingsApi\", [], Settings_SettingsApi, () => [[\"changeEmail\", lambda_type(Settings_ChangeEmail$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, Settings_ChangeEmailError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", Settings_ChangeEmailError$reflection()]]])]))], [\"changeFullName\", lambda_type(Settings_ChangeFullName$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, Settings_ChangeFullNameError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", Settings_ChangeFullNameError$reflection()]]])]))], [\"changePassword\", lambda_type(Settings_ChangePassword$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, Settings_ChangePasswordError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", Settings_ChangePasswordError$reflection()]]])]))], [\"acceptGdpr\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, Settings_AcceptGdprError$reflection()], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", Settings_AcceptGdprError$reflection()]]])]))]]);\n}\n\nexport const Calendar_startWeek = 17;\n\nexport class Calendar_YearWeek extends Record {\n constructor(Year, Week) {\n super();\n this.Year = (Year | 0);\n this.Week = (Week | 0);\n }\n}\n\nexport function Calendar_YearWeek$reflection() {\n return record_type(\"Shared.Calendar.YearWeek\", [], Calendar_YearWeek, () => [[\"Year\", int32_type], [\"Week\", int32_type]]);\n}\n\nexport function Calendar_getWeekDayIndex0Based(date) {\n const dayOfWeek = dayOfWeek_1(date) | 0;\n if (dayOfWeek === 0) {\n return 6;\n }\n else {\n return (dayOfWeek - 1) | 0;\n }\n}\n\nexport function Calendar_getWeekDayDate(date, weekDay0Based) {\n return addDays(date, (-Calendar_getWeekDayIndex0Based(date)) + weekDay0Based);\n}\n\nexport function Calendar_getWeekOfYear(date) {\n const dateThursday = Calendar_getWeekDayDate(date, 3);\n const week = (~(~Math.ceil(dayOfYear(dateThursday) / 7))) | 0;\n return new Calendar_YearWeek(year_1(dateThursday), week);\n}\n\nexport function Calendar_getYearWeeksCount(year) {\n return max((x, y) => comparePrimitives(x, y), Calendar_getWeekOfYear(create(year, 12, 25)).Week, Calendar_getWeekOfYear(create(year, 12, 31)).Week);\n}\n\nexport const Calendar_yearPeriodsRange = toList(rangeDouble(0, 1, 12));\n\nexport const Calendar_periodWeeksRange = toList(rangeDouble(0, 1, 3));\n\nexport const Calendar_weekDaysRange = toList(rangeDouble(0, 1, 6));\n\nexport class Calendar_PeriodInfo extends Record {\n constructor(PeriodYear, Period) {\n super();\n this.PeriodYear = (PeriodYear | 0);\n this.Period = (Period | 0);\n }\n}\n\nexport function Calendar_PeriodInfo$reflection() {\n return record_type(\"Shared.Calendar.PeriodInfo\", [], Calendar_PeriodInfo, () => [[\"PeriodYear\", int32_type], [\"Period\", int32_type]]);\n}\n\nexport function Calendar_PeriodInfo__Previous(this$) {\n if (this$.Period === 0) {\n return new Calendar_PeriodInfo(this$.PeriodYear - 1, 12);\n }\n else {\n return new Calendar_PeriodInfo(this$.PeriodYear, this$.Period - 1);\n }\n}\n\nexport function Calendar_PeriodInfo__PreviousN_Z524259A4(this$, n) {\n let period = this$;\n const enumerator = getEnumerator(toList(rangeDouble(1, 1, n)));\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]() | 0;\n period = Calendar_PeriodInfo__Previous(period);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return period;\n}\n\nexport function Calendar_PeriodInfo__Next(this$) {\n if (this$.Period >= 12) {\n return new Calendar_PeriodInfo(this$.PeriodYear + 1, 0);\n }\n else {\n return new Calendar_PeriodInfo(this$.PeriodYear, this$.Period + 1);\n }\n}\n\nexport function Calendar_PeriodInfo__NextN_Z524259A4(this$, n) {\n let period = this$;\n const enumerator = getEnumerator(toList(rangeDouble(1, 1, n)));\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]() | 0;\n period = Calendar_PeriodInfo__Next(period);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return period;\n}\n\nexport function Calendar_PeriodInfo__ShiftN_Z524259A4(this$, periodShift) {\n if (periodShift < 0) {\n return Calendar_PeriodInfo__PreviousN_Z524259A4(this$, op_UnaryNegation_Int32(periodShift));\n }\n else {\n return Calendar_PeriodInfo__NextN_Z524259A4(this$, periodShift);\n }\n}\n\nexport class Calendar_Period13Behavior extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LeavePeriod13AsItIs\", \"HandlePeriod13AsPrevYearLastWeek\", \"HandlePeriod13AsNextYearFirstWeek\"];\n }\n}\n\nexport function Calendar_Period13Behavior$reflection() {\n return union_type(\"Shared.Calendar.Period13Behavior\", [], Calendar_Period13Behavior, () => [[], [], []]);\n}\n\nexport class Calendar_WeekInfo extends Record {\n constructor(PeriodInfo, PeriodWeek) {\n super();\n this.PeriodInfo = PeriodInfo;\n this.PeriodWeek = (PeriodWeek | 0);\n }\n}\n\nexport function Calendar_WeekInfo$reflection() {\n return record_type(\"Shared.Calendar.WeekInfo\", [], Calendar_WeekInfo, () => [[\"PeriodInfo\", Calendar_PeriodInfo$reflection()], [\"PeriodWeek\", int32_type]]);\n}\n\nexport function Calendar_WeekInfo_FromDate(date, period13Behavior) {\n const weekInfoCurrent = Calendar_getWeekOfYear(date);\n const weekCurrent = weekInfoCurrent.Week | 0;\n let weekInfoFromStartWeek;\n if (weekCurrent < Calendar_startWeek) {\n const prevYear = (weekInfoCurrent.Year - 1) | 0;\n weekInfoFromStartWeek = (new Calendar_YearWeek(prevYear, weekCurrent + Calendar_getYearWeeksCount(prevYear)));\n }\n else {\n weekInfoFromStartWeek = weekInfoCurrent;\n }\n const weekFromStart = (weekInfoFromStartWeek.Week - Calendar_startWeek) | 0;\n const year = weekInfoFromStartWeek.Year | 0;\n const period = (~(~(weekFromStart / 4))) | 0;\n const weekInfo = new Calendar_WeekInfo(new Calendar_PeriodInfo(year, period), weekFromStart - (period * 4));\n if (weekInfo.PeriodInfo.Period !== 13) {\n return weekInfo;\n }\n else {\n switch (period13Behavior.tag) {\n case 1: {\n return new Calendar_WeekInfo(new Calendar_PeriodInfo(year, 12), 3);\n }\n case 2: {\n return new Calendar_WeekInfo(new Calendar_PeriodInfo(year + 1, 0), 0);\n }\n default: {\n return weekInfo;\n }\n }\n }\n}\n\nexport function Calendar_WeekInfo_get_Current() {\n return Calendar_WeekInfo_FromDate(now(), new Calendar_Period13Behavior(2));\n}\n\nexport function Calendar_WeekInfo__Next(this$) {\n if (this$.PeriodWeek >= 3) {\n return new Calendar_WeekInfo(Calendar_PeriodInfo__Next(this$.PeriodInfo), 0);\n }\n else {\n return new Calendar_WeekInfo(this$.PeriodInfo, this$.PeriodWeek + 1);\n }\n}\n\nexport function Calendar_WeekInfo__NextN_Z524259A4(this$, n) {\n let week = this$;\n const enumerator = getEnumerator(toList(rangeDouble(1, 1, n)));\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]() | 0;\n week = Calendar_WeekInfo__Next(week);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return week;\n}\n\nexport function Calendar_WeekInfo__Previous(this$) {\n if (this$.PeriodWeek === 0) {\n return new Calendar_WeekInfo(Calendar_PeriodInfo__Previous(this$.PeriodInfo), 3);\n }\n else {\n return new Calendar_WeekInfo(this$.PeriodInfo, this$.PeriodWeek - 1);\n }\n}\n\nexport function Calendar_PeriodInfo_FromDate_7F9DDECF(date) {\n return Calendar_WeekInfo_FromDate(date, new Calendar_Period13Behavior(2)).PeriodInfo;\n}\n\nexport function Calendar_PeriodInfo_get_Current() {\n return Calendar_PeriodInfo_FromDate_7F9DDECF(now());\n}\n\nexport function Calendar_getYearWeekIndex(weekInfo) {\n const yearWeeksCount = Calendar_getYearWeeksCount(weekInfo.PeriodInfo.PeriodYear) | 0;\n const yearWeekIndex = ((Calendar_startWeek + (weekInfo.PeriodInfo.Period * 4)) + weekInfo.PeriodWeek) | 0;\n if (yearWeekIndex > yearWeeksCount) {\n return (yearWeekIndex - yearWeeksCount) | 0;\n }\n else {\n return yearWeekIndex | 0;\n }\n}\n\nexport function Calendar_getPeriodInfo(periodYear, period) {\n return new Calendar_PeriodInfo(periodYear, period);\n}\n\nexport function Calendar_getWeekInfo(periodInfo, periodWeek) {\n return new Calendar_WeekInfo(periodInfo, periodWeek);\n}\n\nexport function Calendar_getWeekInfoYPW(periodYear, period, periodWeek) {\n return new Calendar_WeekInfo(Calendar_getPeriodInfo(periodYear, period), periodWeek);\n}\n\nexport function Calendar_isBiggerWeekInfo(left, right) {\n return (((left.PeriodInfo.PeriodYear * 53) + (left.PeriodInfo.Period * 4)) + left.PeriodWeek) > (((right.PeriodInfo.PeriodYear * 53) + (right.PeriodInfo.Period * 4)) + right.PeriodWeek);\n}\n\nexport function Calendar_isNotBiggerWeekInfo(left, right) {\n return !Calendar_isBiggerWeekInfo(left, right);\n}\n\nexport function Calendar_getWeekStartDate(weekInfo) {\n const weekIndex = (((Calendar_startWeek - 1) + (weekInfo.PeriodInfo.Period * 4)) + weekInfo.PeriodWeek) | 0;\n let weekStartDate = Calendar_getWeekDayDate(addDays(create(weekInfo.PeriodInfo.PeriodYear, 1, 1), weekIndex * 7), 0);\n let weekStartDateWeekInfo = Calendar_WeekInfo_FromDate(weekStartDate, new Calendar_Period13Behavior(2));\n while (Calendar_isBiggerWeekInfo(weekInfo, weekStartDateWeekInfo)) {\n weekStartDate = addDays(weekStartDate, 7);\n weekStartDateWeekInfo = Calendar_WeekInfo_FromDate(weekStartDate, new Calendar_Period13Behavior(2));\n }\n return weekStartDate;\n}\n\nexport function Calendar_getWeekEndDate(weekInfo) {\n let copyOfStruct = Calendar_getWeekStartDate(weekInfo);\n return addDays(copyOfStruct, 6);\n}\n\nexport function Calendar_getPeriodStartDate(periodInfo) {\n return Calendar_getWeekStartDate(Calendar_getWeekInfo(periodInfo, 0));\n}\n\nexport function Calendar_getPeriodEndDate(periodInfo) {\n return Calendar_getWeekEndDate(Calendar_getWeekInfo(periodInfo, 3));\n}\n\nexport function Calendar_getYearStartDate(year) {\n return Calendar_getWeekStartDate(Calendar_getWeekInfoYPW(year, 0, 0));\n}\n\nexport function Calendar_getYearEndDate(year) {\n return Calendar_getWeekEndDate(Calendar_getWeekInfoYPW(year, 12, 3));\n}\n\nexport function Calendar_getDayDate(weekInfo, weekDay) {\n return addDays(Calendar_getWeekStartDate(weekInfo), weekDay);\n}\n\nexport function Calendar_getMonthTitle(month1Based) {\n switch (month1Based) {\n case 1: {\n return \"Januari\";\n }\n case 2: {\n return \"Februari\";\n }\n case 3: {\n return \"Mars\";\n }\n case 4: {\n return \"April\";\n }\n case 5: {\n return \"Maj\";\n }\n case 6: {\n return \"Juni\";\n }\n case 7: {\n return \"Juli\";\n }\n case 8: {\n return \"Augusti\";\n }\n case 9: {\n return \"September\";\n }\n case 10: {\n return \"Oktober\";\n }\n case 11: {\n return \"November\";\n }\n case 12: {\n return \"December\";\n }\n default: {\n return void 0;\n }\n }\n}\n\nexport function Calendar_getMonth3LetterTitle(month1Based) {\n return map_1((x) => substring(x, 0, 3), Calendar_getMonthTitle(month1Based));\n}\n\nexport function Calendar_getWeekDayTitle(weekDay0Based) {\n switch (weekDay0Based) {\n case 0: {\n return \"Måndag\";\n }\n case 1: {\n return \"Tisdag\";\n }\n case 2: {\n return \"Onsdag\";\n }\n case 3: {\n return \"Torsdag\";\n }\n case 4: {\n return \"Fredag\";\n }\n case 5: {\n return \"Lördag\";\n }\n case 6: {\n return \"Söndag\";\n }\n default: {\n return void 0;\n }\n }\n}\n\nexport function Calendar_getWeekDay3LetterTitle(weekDay0Based) {\n return map_1((x) => substring(x, 0, 3), Calendar_getWeekDayTitle(weekDay0Based));\n}\n\nexport class Calendar_DayInfo extends Record {\n constructor(WeekInfo, WeekDay) {\n super();\n this.WeekInfo = WeekInfo;\n this.WeekDay = (WeekDay | 0);\n }\n}\n\nexport function Calendar_DayInfo$reflection() {\n return record_type(\"Shared.Calendar.DayInfo\", [], Calendar_DayInfo, () => [[\"WeekInfo\", Calendar_WeekInfo$reflection()], [\"WeekDay\", int32_type]]);\n}\n\nexport function Calendar_DayInfo_FromDate_7F9DDECF(date) {\n return new Calendar_DayInfo(Calendar_WeekInfo_FromDate(date, new Calendar_Period13Behavior(2)), Calendar_getWeekDayIndex0Based(date));\n}\n\nexport function Calendar_DayInfo_get_Current() {\n return Calendar_DayInfo_FromDate_7F9DDECF(now());\n}\n\nexport function Calendar_getCalendarDayFromWeekInfo(weekInfo, weekDay) {\n return new CalendarDay_CalendarDay(weekInfo.PeriodInfo.PeriodYear, weekInfo.PeriodInfo.Period, weekInfo.PeriodWeek, weekDay);\n}\n\nexport function Calendar_getCalendarDayFromDayInfo(dayInfo) {\n return Calendar_getCalendarDayFromWeekInfo(dayInfo.WeekInfo, dayInfo.WeekDay);\n}\n\nexport function Calendar_getCalendarDayFromDate(date) {\n return Calendar_getCalendarDayFromDayInfo(Calendar_DayInfo_FromDate_7F9DDECF(date));\n}\n\nexport function Calendar_getCalendarDayDate(calendarDay) {\n return Calendar_getDayDate(Calendar_getWeekInfo(Calendar_getPeriodInfo(calendarDay.Year, calendarDay.Period), calendarDay.Week), calendarDay.Day);\n}\n\nexport function Shared_CalendarDay_CalendarDay__CalendarDay_PeriodInfo(this$) {\n return new Calendar_PeriodInfo(this$.Year, this$.Period);\n}\n\nexport function Shared_CalendarDay_CalendarDay__CalendarDay_WeekInfo(this$) {\n return new Calendar_WeekInfo(Shared_CalendarDay_CalendarDay__CalendarDay_PeriodInfo(this$), this$.Week);\n}\n\nexport class Plans_PeriodPlan extends Record {\n constructor(TotalHours, WeekHours) {\n super();\n this.TotalHours = (TotalHours | 0);\n this.WeekHours = WeekHours;\n }\n}\n\nexport function Plans_PeriodPlan$reflection() {\n return record_type(\"Shared.Plans.PeriodPlan\", [], Plans_PeriodPlan, () => [[\"TotalHours\", int32_type], [\"WeekHours\", array_type(int32_type)]]);\n}\n\nexport function Plans_PeriodPlan_Create(totalHours, weekHours) {\n return new Plans_PeriodPlan(totalHours, weekHours);\n}\n\nexport class Plans_YearPlan extends Record {\n constructor(Year, TotalHours, PeriodPlans) {\n super();\n this.Year = (Year | 0);\n this.TotalHours = (TotalHours | 0);\n this.PeriodPlans = PeriodPlans;\n }\n}\n\nexport function Plans_YearPlan$reflection() {\n return record_type(\"Shared.Plans.YearPlan\", [], Plans_YearPlan, () => [[\"Year\", int32_type], [\"TotalHours\", int32_type], [\"PeriodPlans\", array_type(Plans_PeriodPlan$reflection())]]);\n}\n\nexport function Plans_YearPlan_Default_4019FA9(year) {\n return new Plans_YearPlan(defaultArgWith(year, () => Calendar_WeekInfo_get_Current().PeriodInfo.PeriodYear), 0, toArray(delay(() => collect((matchValue) => singleton_1(new Plans_PeriodPlan(0, new Int32Array([0, 0, 0, 0]))), rangeDouble(0, 1, 12)))));\n}\n\nexport function Plans_YearPlan_AddOrUpdateYearPlan(yearPlan, yearPlans) {\n const index = tryFindIndex((plan) => (plan.Year === yearPlan.Year), yearPlans);\n if (index == null) {\n return append(yearPlans, [yearPlan]);\n }\n else {\n return map_2((plan_1) => ((plan_1.Year === yearPlan.Year) ? yearPlan : plan_1), yearPlans);\n }\n}\n\nexport class Groups_GroupCreateRequest extends Record {\n constructor(Id, Title, YearPlan) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.YearPlan = YearPlan;\n }\n}\n\nexport function Groups_GroupCreateRequest$reflection() {\n return record_type(\"Shared.Groups.GroupCreateRequest\", [], Groups_GroupCreateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"YearPlan\", Plans_YearPlan$reflection()]]);\n}\n\nexport class Groups_GroupUpdateRequest extends Record {\n constructor(Id, Title, YearPlan) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.YearPlan = YearPlan;\n }\n}\n\nexport function Groups_GroupUpdateRequest$reflection() {\n return record_type(\"Shared.Groups.GroupUpdateRequest\", [], Groups_GroupUpdateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"YearPlan\", Plans_YearPlan$reflection()]]);\n}\n\nexport class Groups_Group extends Record {\n constructor(Id, Title, YearPlans) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.YearPlans = YearPlans;\n }\n}\n\nexport function Groups_Group$reflection() {\n return record_type(\"Shared.Groups.Group\", [], Groups_Group, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"YearPlans\", array_type(Plans_YearPlan$reflection())]]);\n}\n\nexport function Groups_Group_Default_4019FA9(year) {\n return new Groups_Group(GroupIdModule_fromGuid(newGuid()), \"New group\", [Plans_YearPlan_Default_4019FA9(year)]);\n}\n\nexport function Groups_getYearPlanOrDefault(plans, year) {\n return defaultArg(tryFind((x) => (x.Year === year), plans), Plans_YearPlan_Default_4019FA9(year));\n}\n\nexport class Groups_GroupListItem extends Record {\n constructor(Id, Title) {\n super();\n this.Id = Id;\n this.Title = Title;\n }\n}\n\nexport function Groups_GroupListItem$reflection() {\n return record_type(\"Shared.Groups.GroupListItem\", [], Groups_GroupListItem, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type]]);\n}\n\nexport class Groups_GroupsOrderUpdateRequest extends Record {\n constructor(GroupIds) {\n super();\n this.GroupIds = GroupIds;\n }\n}\n\nexport function Groups_GroupsOrderUpdateRequest$reflection() {\n return record_type(\"Shared.Groups.GroupsOrderUpdateRequest\", [], Groups_GroupsOrderUpdateRequest, () => [[\"GroupIds\", array_type(class_type(\"System.Guid\"))]]);\n}\n\nexport class Groups_GroupsApi extends Record {\n constructor(list, get$, create, update, delete$, getGroupsOrder, updateGroupsOrder) {\n super();\n this.list = list;\n this.get = get$;\n this.create = create;\n this.update = update;\n this.delete = delete$;\n this.getGroupsOrder = getGroupsOrder;\n this.updateGroupsOrder = updateGroupsOrder;\n }\n}\n\nexport function Groups_GroupsApi$reflection() {\n return record_type(\"Shared.Groups.GroupsApi\", [], Groups_GroupsApi, () => [[\"list\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Groups_GroupListItem$reflection())]))], [\"get\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [Groups_Group$reflection()]))], [\"create\", lambda_type(Groups_GroupCreateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"update\", lambda_type(Groups_GroupUpdateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"delete\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"getGroupsOrder\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [array_type(class_type(\"System.Guid\"))]))], [\"updateGroupsOrder\", lambda_type(Groups_GroupsOrderUpdateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport class Students_StudentSettings extends Record {\n constructor(Id, Email, FullName, GroupId, ChatText, ChatChangeDate) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n this.GroupId = GroupId;\n this.ChatText = ChatText;\n this.ChatChangeDate = ChatChangeDate;\n }\n}\n\nexport function Students_StudentSettings$reflection() {\n return record_type(\"Shared.Students.StudentSettings\", [], Students_StudentSettings, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type], [\"GroupId\", class_type(\"System.Guid\")], [\"ChatText\", string_type], [\"ChatChangeDate\", option_type(class_type(\"System.DateTimeOffset\"))]]);\n}\n\nexport function Students_StudentSettings_Default_Z3CDDBBFA(groupId) {\n return new Students_StudentSettings(UserIdModule_fromGuid(newGuid()), EmailModule_empty, \"New user\", groupId, \"\", void 0);\n}\n\nexport class Students_StudentPlans extends Record {\n constructor(Id, YearPlans) {\n super();\n this.Id = Id;\n this.YearPlans = YearPlans;\n }\n}\n\nexport function Students_StudentPlans$reflection() {\n return record_type(\"Shared.Students.StudentPlans\", [], Students_StudentPlans, () => [[\"Id\", class_type(\"System.Guid\")], [\"YearPlans\", array_type(Plans_YearPlan$reflection())]]);\n}\n\nexport function Students_getYearPlanOrGroupOrDefault(studentPlans, groupPlans, year) {\n return defaultArg(defaultArg(tryFind((x) => (x.Year === year), studentPlans), tryFind((x_1) => (x_1.Year === year), groupPlans)), Plans_YearPlan_Default_4019FA9(year));\n}\n\nexport class Students_StudentCreateRequest extends Record {\n constructor(Id, Email, Password, FullName, GroupId) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n this.GroupId = GroupId;\n }\n}\n\nexport function Students_StudentCreateRequest$reflection() {\n return record_type(\"Shared.Students.StudentCreateRequest\", [], Students_StudentCreateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type], [\"GroupId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Students_StudentUpdateSettingsRequest extends Record {\n constructor(Id, Email, Password, FullName, GroupId) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n this.GroupId = GroupId;\n }\n}\n\nexport function Students_StudentUpdateSettingsRequest$reflection() {\n return record_type(\"Shared.Students.StudentUpdateSettingsRequest\", [], Students_StudentUpdateSettingsRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type], [\"GroupId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Students_StudentUpdatePlanRequest extends Record {\n constructor(Id, YearPlan) {\n super();\n this.Id = Id;\n this.YearPlan = YearPlan;\n }\n}\n\nexport function Students_StudentUpdatePlanRequest$reflection() {\n return record_type(\"Shared.Students.StudentUpdatePlanRequest\", [], Students_StudentUpdatePlanRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"YearPlan\", Plans_YearPlan$reflection()]]);\n}\n\nexport class Students_StudentUpdateChatTextRequest extends Record {\n constructor(Id, ChatText) {\n super();\n this.Id = Id;\n this.ChatText = ChatText;\n }\n}\n\nexport function Students_StudentUpdateChatTextRequest$reflection() {\n return record_type(\"Shared.Students.StudentUpdateChatTextRequest\", [], Students_StudentUpdateChatTextRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"ChatText\", string_type]]);\n}\n\nexport class Students_StudentListItem extends Record {\n constructor(Id, Email, FullName, GroupId, SchoolId, ChatChangeDate) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n this.GroupId = GroupId;\n this.SchoolId = SchoolId;\n this.ChatChangeDate = ChatChangeDate;\n }\n}\n\nexport function Students_StudentListItem$reflection() {\n return record_type(\"Shared.Students.StudentListItem\", [], Students_StudentListItem, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type], [\"GroupId\", class_type(\"System.Guid\")], [\"SchoolId\", class_type(\"System.Guid\")], [\"ChatChangeDate\", option_type(class_type(\"System.DateTimeOffset\"))]]);\n}\n\nexport class Students_TeacherListItem extends Record {\n constructor(Id, Email, FullName, SchoolId) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n this.SchoolId = SchoolId;\n }\n}\n\nexport function Students_TeacherListItem$reflection() {\n return record_type(\"Shared.Students.TeacherListItem\", [], Students_TeacherListItem, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type], [\"SchoolId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Students_StudentsApi extends Record {\n constructor(list, getSettings, getPlans, create, updateSettings, updatePlan, updateChatText, delete$, getStudentExternalTeachers, listExternalStudents, addExternalTeacher, deleteExternalTeacher) {\n super();\n this.list = list;\n this.getSettings = getSettings;\n this.getPlans = getPlans;\n this.create = create;\n this.updateSettings = updateSettings;\n this.updatePlan = updatePlan;\n this.updateChatText = updateChatText;\n this.delete = delete$;\n this.getStudentExternalTeachers = getStudentExternalTeachers;\n this.listExternalStudents = listExternalStudents;\n this.addExternalTeacher = addExternalTeacher;\n this.deleteExternalTeacher = deleteExternalTeacher;\n }\n}\n\nexport function Students_StudentsApi$reflection() {\n return record_type(\"Shared.Students.StudentsApi\", [], Students_StudentsApi, () => [[\"list\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Students_StudentListItem$reflection())]))], [\"getSettings\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Students_StudentSettings$reflection(), string_type], FSharpResult$2, () => [[[\"ResultValue\", Students_StudentSettings$reflection()]], [[\"ErrorValue\", string_type]]])]))], [\"getPlans\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [Students_StudentPlans$reflection()]))], [\"create\", lambda_type(Students_StudentCreateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"updateSettings\", lambda_type(Students_StudentUpdateSettingsRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"updatePlan\", lambda_type(Students_StudentUpdatePlanRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"updateChatText\", lambda_type(Students_StudentUpdateChatTextRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"delete\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"getStudentExternalTeachers\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Students_TeacherListItem$reflection())]))], [\"listExternalStudents\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Students_StudentListItem$reflection())]))], [\"addExternalTeacher\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"deleteExternalTeacher\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport class Teachers_TeacherSettings extends Record {\n constructor(Id, Email, FullName) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n }\n}\n\nexport function Teachers_TeacherSettings$reflection() {\n return record_type(\"Shared.Teachers.TeacherSettings\", [], Teachers_TeacherSettings, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type]]);\n}\n\nexport function Teachers_TeacherSettings_Default() {\n return new Teachers_TeacherSettings(UserIdModule_fromGuid(newGuid()), EmailModule_empty, \"New trainer\");\n}\n\nexport class Teachers_TeacherCreateRequest extends Record {\n constructor(Id, Email, Password, FullName) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n }\n}\n\nexport function Teachers_TeacherCreateRequest$reflection() {\n return record_type(\"Shared.Teachers.TeacherCreateRequest\", [], Teachers_TeacherCreateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type]]);\n}\n\nexport class Teachers_TeacherUpdateSettingsRequest extends Record {\n constructor(Id, Email, Password, FullName) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n }\n}\n\nexport function Teachers_TeacherUpdateSettingsRequest$reflection() {\n return record_type(\"Shared.Teachers.TeacherUpdateSettingsRequest\", [], Teachers_TeacherUpdateSettingsRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type]]);\n}\n\nexport class Teachers_TeachersApi extends Record {\n constructor(list, getSettings, getTeacherByEmail, create, updateSettings, delete$) {\n super();\n this.list = list;\n this.getSettings = getSettings;\n this.getTeacherByEmail = getTeacherByEmail;\n this.create = create;\n this.updateSettings = updateSettings;\n this.delete = delete$;\n }\n}\n\nexport function Teachers_TeachersApi$reflection() {\n return record_type(\"Shared.Teachers.TeachersApi\", [], Teachers_TeachersApi, () => [[\"list\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Students_TeacherListItem$reflection())]))], [\"getSettings\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Teachers_TeacherSettings$reflection(), string_type], FSharpResult$2, () => [[[\"ResultValue\", Teachers_TeacherSettings$reflection()]], [[\"ErrorValue\", string_type]]])]))], [\"getTeacherByEmail\", lambda_type(string_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [option_type(Students_TeacherListItem$reflection())]))], [\"create\", lambda_type(Teachers_TeacherCreateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"updateSettings\", lambda_type(Teachers_TeacherUpdateSettingsRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"delete\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport class Admin_Favorite extends Record {\n constructor(Id, Title, UserIds) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.UserIds = UserIds;\n }\n}\n\nexport function Admin_Favorite$reflection() {\n return record_type(\"Shared.Admin.Favorite\", [], Admin_Favorite, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"UserIds\", array_type(class_type(\"System.Guid\"))]]);\n}\n\nexport function Admin_Favorite_AddOrUpdateFavorite(favorite, favorites) {\n const index = tryFindIndex((x) => (x.Id === favorite.Id), favorites);\n if (index == null) {\n return append(favorites, [favorite]);\n }\n else {\n return map_2((x_1) => ((x_1.Id === favorite.Id) ? favorite : x_1), favorites);\n }\n}\n\nexport function Admin_Favorite_DeleteFavorite(favoriteId, favorites) {\n return favorites.filter((x) => (x.Id !== favoriteId));\n}\n\nexport class Admin_FavoriteCreateRequest extends Record {\n constructor(Id, Title, UserIds) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.UserIds = UserIds;\n }\n}\n\nexport function Admin_FavoriteCreateRequest$reflection() {\n return record_type(\"Shared.Admin.FavoriteCreateRequest\", [], Admin_FavoriteCreateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"UserIds\", array_type(class_type(\"System.Guid\"))]]);\n}\n\nexport class Admin_FavoriteUpdateRequest extends Record {\n constructor(Id, Title, UserIds) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.UserIds = UserIds;\n }\n}\n\nexport function Admin_FavoriteUpdateRequest$reflection() {\n return record_type(\"Shared.Admin.FavoriteUpdateRequest\", [], Admin_FavoriteUpdateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"UserIds\", array_type(class_type(\"System.Guid\"))]]);\n}\n\nexport class Admin_GroupAdminItem extends Record {\n constructor(Id, Title, SchoolId) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.SchoolId = SchoolId;\n }\n}\n\nexport function Admin_GroupAdminItem$reflection() {\n return record_type(\"Shared.Admin.GroupAdminItem\", [], Admin_GroupAdminItem, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"SchoolId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Admin_StudentSchool extends Record {\n constructor(Id, Email, FullName, SchoolId, GroupId) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n this.SchoolId = SchoolId;\n this.GroupId = GroupId;\n }\n}\n\nexport function Admin_StudentSchool$reflection() {\n return record_type(\"Shared.Admin.StudentSchool\", [], Admin_StudentSchool, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type], [\"SchoolId\", class_type(\"System.Guid\")], [\"GroupId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Admin_StudentSchoolUpdateRequest extends Record {\n constructor(Id, SchoolId, GroupId) {\n super();\n this.Id = Id;\n this.SchoolId = SchoolId;\n this.GroupId = GroupId;\n }\n}\n\nexport function Admin_StudentSchoolUpdateRequest$reflection() {\n return record_type(\"Shared.Admin.StudentSchoolUpdateRequest\", [], Admin_StudentSchoolUpdateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"SchoolId\", class_type(\"System.Guid\")], [\"GroupId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Admin_FavoritesApi extends Record {\n constructor(favoriteList, updateFavorite, deleteFavorite, addFavoriteUser, deleteFavoriteUser, studentsByIds, getAllGroups, getStudentSchool, updateStudentSchool) {\n super();\n this.favoriteList = favoriteList;\n this.updateFavorite = updateFavorite;\n this.deleteFavorite = deleteFavorite;\n this.addFavoriteUser = addFavoriteUser;\n this.deleteFavoriteUser = deleteFavoriteUser;\n this.studentsByIds = studentsByIds;\n this.getAllGroups = getAllGroups;\n this.getStudentSchool = getStudentSchool;\n this.updateStudentSchool = updateStudentSchool;\n }\n}\n\nexport function Admin_FavoritesApi$reflection() {\n return record_type(\"Shared.Admin.FavoritesApi\", [], Admin_FavoritesApi, () => [[\"favoriteList\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [array_type(Admin_Favorite$reflection())]))], [\"updateFavorite\", lambda_type(Admin_FavoriteUpdateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"deleteFavorite\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"addFavoriteUser\", lambda_type(tuple_type(class_type(\"System.Guid\"), class_type(\"System.Guid\")), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"deleteFavoriteUser\", lambda_type(tuple_type(class_type(\"System.Guid\"), class_type(\"System.Guid\")), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"studentsByIds\", lambda_type(list_type(class_type(\"System.Guid\")), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Students_StudentListItem$reflection())]))], [\"getAllGroups\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Admin_GroupAdminItem$reflection())]))], [\"getStudentSchool\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [Admin_StudentSchool$reflection()]))], [\"updateStudentSchool\", lambda_type(Admin_StudentSchoolUpdateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport class EnduranceIntensity_EnduranceIntensity extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Aerob1\", \"Aerob2\", \"Aerob3Minus\", \"Aerob3\", \"Aerob3Plus\", \"Competition\"];\n }\n}\n\nexport function EnduranceIntensity_EnduranceIntensity$reflection() {\n return union_type(\"Shared.EnduranceIntensity.EnduranceIntensity\", [], EnduranceIntensity_EnduranceIntensity, () => [[], [], [], [], [], []]);\n}\n\nexport const EnduranceIntensity_list = ofArray([new EnduranceIntensity_EnduranceIntensity(0), new EnduranceIntensity_EnduranceIntensity(1), new EnduranceIntensity_EnduranceIntensity(2), new EnduranceIntensity_EnduranceIntensity(3), new EnduranceIntensity_EnduranceIntensity(4), new EnduranceIntensity_EnduranceIntensity(5)]);\n\nexport function EnduranceIntensity_parseEnduranceIntensityStr(_arg1) {\n switch (_arg1) {\n case \"Aerob1\": {\n return new EnduranceIntensity_EnduranceIntensity(0);\n }\n case \"Aerob2\": {\n return new EnduranceIntensity_EnduranceIntensity(1);\n }\n case \"Aerob3Minus\": {\n return new EnduranceIntensity_EnduranceIntensity(2);\n }\n case \"Aerob3\": {\n return new EnduranceIntensity_EnduranceIntensity(3);\n }\n case \"Aerob3Plus\": {\n return new EnduranceIntensity_EnduranceIntensity(4);\n }\n case \"Competition\": {\n return new EnduranceIntensity_EnduranceIntensity(5);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong endurance intensity string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function EnduranceIntensity_strEnduranceIntensity(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Aerob 2\";\n }\n case 2: {\n return \"Aerob 3-\";\n }\n case 3: {\n return \"Aerob 3\";\n }\n case 4: {\n return \"Aerob 3+\";\n }\n case 5: {\n return \"Tävling\";\n }\n default: {\n return \"Aerob 1\";\n }\n }\n}\n\nexport function EnduranceIntensity_getEnduranceIntensityColor(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"#ffcc00\";\n }\n case 2: {\n return \"#ff9900\";\n }\n case 3: {\n return \"#ff6600\";\n }\n case 4: {\n return \"#ff6600\";\n }\n case 5: {\n return \"#ff6600\";\n }\n default: {\n return \"#ffff00\";\n }\n }\n}\n\nexport function EnduranceIntensity_parseEnduranceIntensityCode(_arg1) {\n switch (_arg1) {\n case 0: {\n return new EnduranceIntensity_EnduranceIntensity(0);\n }\n case 1: {\n return new EnduranceIntensity_EnduranceIntensity(1);\n }\n case 2: {\n return new EnduranceIntensity_EnduranceIntensity(3);\n }\n case 3: {\n return new EnduranceIntensity_EnduranceIntensity(5);\n }\n case 4: {\n return new EnduranceIntensity_EnduranceIntensity(2);\n }\n case 5: {\n return new EnduranceIntensity_EnduranceIntensity(4);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong endurance intensity code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class EnduranceActivity_EnduranceActivity extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Running\", \"Orientation\", \"RollerSkisClassic\", \"RollerSkisFree\", \"SkisClassic\", \"SkisFree\", \"Skiing\", \"UpperBody\", \"Bike\", \"OtherTraining\"];\n }\n}\n\nexport function EnduranceActivity_EnduranceActivity$reflection() {\n return union_type(\"Shared.EnduranceActivity.EnduranceActivity\", [], EnduranceActivity_EnduranceActivity, () => [[], [], [], [], [], [], [], [], [], []]);\n}\n\nexport const EnduranceActivity_list = ofArray([new EnduranceActivity_EnduranceActivity(0), new EnduranceActivity_EnduranceActivity(1), new EnduranceActivity_EnduranceActivity(2), new EnduranceActivity_EnduranceActivity(3), new EnduranceActivity_EnduranceActivity(4), new EnduranceActivity_EnduranceActivity(5), new EnduranceActivity_EnduranceActivity(6), new EnduranceActivity_EnduranceActivity(7), new EnduranceActivity_EnduranceActivity(8), new EnduranceActivity_EnduranceActivity(9)]);\n\nexport function EnduranceActivity_parseEnduranceActivityStr(_arg1) {\n switch (_arg1) {\n case \"Running\": {\n return new EnduranceActivity_EnduranceActivity(0);\n }\n case \"RollerSkisClassic\": {\n return new EnduranceActivity_EnduranceActivity(2);\n }\n case \"RollerSkisFree\": {\n return new EnduranceActivity_EnduranceActivity(3);\n }\n case \"SkisClassic\": {\n return new EnduranceActivity_EnduranceActivity(4);\n }\n case \"SkisFree\": {\n return new EnduranceActivity_EnduranceActivity(5);\n }\n case \"Bike\": {\n return new EnduranceActivity_EnduranceActivity(8);\n }\n case \"Orientation\": {\n return new EnduranceActivity_EnduranceActivity(1);\n }\n case \"Skiing\": {\n return new EnduranceActivity_EnduranceActivity(6);\n }\n case \"UpperBody\": {\n return new EnduranceActivity_EnduranceActivity(7);\n }\n case \"OtherTraining\": {\n return new EnduranceActivity_EnduranceActivity(9);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong endurance activity string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function EnduranceActivity_strEnduranceActivity(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Orientering\";\n }\n case 2: {\n return \"Rullskidor Klassiskt\";\n }\n case 3: {\n return \"Rullskidor Fri\";\n }\n case 4: {\n return \"Skidor Klassiskt\";\n }\n case 5: {\n return \"Skidor Fri\";\n }\n case 6: {\n return \"Skidgång\";\n }\n case 7: {\n return \"Överkropp\";\n }\n case 8: {\n return \"Cykel\";\n }\n case 9: {\n return \"Övrig Träning\";\n }\n default: {\n return \"Löpning\";\n }\n }\n}\n\nexport function EnduranceActivity_getEnduranceActivityColor(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"#ffa500\";\n }\n case 2: {\n return \"#ff0000\";\n }\n case 3: {\n return \"#f08080\";\n }\n case 4: {\n return \"#00008b\";\n }\n case 5: {\n return \"#add8e6\";\n }\n case 6: {\n return \"#006400\";\n }\n case 7: {\n return \"#90ee90\";\n }\n case 8: {\n return \"#a52a2a\";\n }\n case 9: {\n return \"#800080\";\n }\n default: {\n return \"#ffff00\";\n }\n }\n}\n\nexport function EnduranceActivity_parseEnduranceActivityCode(_arg1) {\n switch (_arg1) {\n case 0: {\n return new EnduranceActivity_EnduranceActivity(0);\n }\n case 1: {\n return new EnduranceActivity_EnduranceActivity(2);\n }\n case 2: {\n return new EnduranceActivity_EnduranceActivity(3);\n }\n case 3: {\n return new EnduranceActivity_EnduranceActivity(4);\n }\n case 4: {\n return new EnduranceActivity_EnduranceActivity(5);\n }\n case 5: {\n return new EnduranceActivity_EnduranceActivity(8);\n }\n case 6: {\n return new EnduranceActivity_EnduranceActivity(1);\n }\n case 7: {\n return new EnduranceActivity_EnduranceActivity(6);\n }\n case 8: {\n return new EnduranceActivity_EnduranceActivity(7);\n }\n case 9: {\n return new EnduranceActivity_EnduranceActivity(9);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong endurance activity code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class StrengthActivity_StrengthActivity extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"StrengthOverall\", \"StrengthSpecific\", \"StrengthMax\"];\n }\n}\n\nexport function StrengthActivity_StrengthActivity$reflection() {\n return union_type(\"Shared.StrengthActivity.StrengthActivity\", [], StrengthActivity_StrengthActivity, () => [[], [], []]);\n}\n\nexport const StrengthActivity_list = ofArray([new StrengthActivity_StrengthActivity(0), new StrengthActivity_StrengthActivity(1), new StrengthActivity_StrengthActivity(2)]);\n\nexport function StrengthActivity_parseStrengthActivityStr(_arg1) {\n switch (_arg1) {\n case \"StrengthOverall\": {\n return new StrengthActivity_StrengthActivity(0);\n }\n case \"StrengthSpecific\": {\n return new StrengthActivity_StrengthActivity(1);\n }\n case \"StrengthMax\": {\n return new StrengthActivity_StrengthActivity(2);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong strength activity string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function StrengthActivity_strStrengthActivity(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Styrka specifik\";\n }\n case 2: {\n return \"Styrka max\";\n }\n default: {\n return \"Styrka allmän\";\n }\n }\n}\n\nexport function StrengthActivity_getStrengthActivityColor(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"#333333\";\n }\n case 2: {\n return \"#000000\";\n }\n default: {\n return \"#666666\";\n }\n }\n}\n\nexport function StrengthActivity_parseStrengthActivityCode(_arg1) {\n switch (_arg1) {\n case 0: {\n return new StrengthActivity_StrengthActivity(0);\n }\n case 1: {\n return new StrengthActivity_StrengthActivity(1);\n }\n case 2: {\n return new StrengthActivity_StrengthActivity(2);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong strength activity code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class SpeedActivity_SpeedActivity extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LongImpulses\", \"ShortImpulses\", \"RiseRace\"];\n }\n}\n\nexport function SpeedActivity_SpeedActivity$reflection() {\n return union_type(\"Shared.SpeedActivity.SpeedActivity\", [], SpeedActivity_SpeedActivity, () => [[], [], []]);\n}\n\nexport const SpeedActivity_list = ofArray([new SpeedActivity_SpeedActivity(0), new SpeedActivity_SpeedActivity(1), new SpeedActivity_SpeedActivity(2)]);\n\nexport function SpeedActivity_parseSpeedActivityStr(_arg1) {\n switch (_arg1) {\n case \"LongImpulses\": {\n return new SpeedActivity_SpeedActivity(0);\n }\n case \"ShortImpulses\": {\n return new SpeedActivity_SpeedActivity(1);\n }\n case \"RiseRace\": {\n return new SpeedActivity_SpeedActivity(2);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong speed activity string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function SpeedActivity_strSpeedActivity(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Korta impulser\";\n }\n case 2: {\n return \"Stegringslopp\";\n }\n default: {\n return \"Långa impulser\";\n }\n }\n}\n\nexport function SpeedActivity_getSpeedActivityColor(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"#0066ff\";\n }\n case 2: {\n return \"#00ccff\";\n }\n default: {\n return \"#0000ff\";\n }\n }\n}\n\nexport function SpeedActivity_parseSpeedActivityCode(_arg1) {\n switch (_arg1) {\n case 0: {\n return new SpeedActivity_SpeedActivity(0);\n }\n case 1: {\n return new SpeedActivity_SpeedActivity(1);\n }\n case 2: {\n return new SpeedActivity_SpeedActivity(2);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong speed activity code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class WorkoutType_EnduranceInfo extends Record {\n constructor(Activity, Intensity, Duration) {\n super();\n this.Activity = Activity;\n this.Intensity = Intensity;\n this.Duration = (Duration | 0);\n }\n}\n\nexport function WorkoutType_EnduranceInfo$reflection() {\n return record_type(\"Shared.WorkoutType.EnduranceInfo\", [], WorkoutType_EnduranceInfo, () => [[\"Activity\", EnduranceActivity_EnduranceActivity$reflection()], [\"Intensity\", EnduranceIntensity_EnduranceIntensity$reflection()], [\"Duration\", int32_type]]);\n}\n\nexport function WorkoutType_EnduranceInfo_get_Default() {\n return new WorkoutType_EnduranceInfo(new EnduranceActivity_EnduranceActivity(0), new EnduranceIntensity_EnduranceIntensity(0), DurationModule_fromInt(0));\n}\n\nexport class WorkoutType_StrengthInfo extends Record {\n constructor(Activity, Duration) {\n super();\n this.Activity = Activity;\n this.Duration = (Duration | 0);\n }\n}\n\nexport function WorkoutType_StrengthInfo$reflection() {\n return record_type(\"Shared.WorkoutType.StrengthInfo\", [], WorkoutType_StrengthInfo, () => [[\"Activity\", StrengthActivity_StrengthActivity$reflection()], [\"Duration\", int32_type]]);\n}\n\nexport function WorkoutType_StrengthInfo_get_Default() {\n return new WorkoutType_StrengthInfo(new StrengthActivity_StrengthActivity(0), DurationModule_fromInt(0));\n}\n\nexport class WorkoutType_MobilityInfo extends Record {\n constructor(Duration) {\n super();\n this.Duration = (Duration | 0);\n }\n}\n\nexport function WorkoutType_MobilityInfo$reflection() {\n return record_type(\"Shared.WorkoutType.MobilityInfo\", [], WorkoutType_MobilityInfo, () => [[\"Duration\", int32_type]]);\n}\n\nexport function WorkoutType_MobilityInfo_get_Default() {\n return new WorkoutType_MobilityInfo(DurationModule_fromInt(0));\n}\n\nexport class WorkoutType_SpeedInfo extends Record {\n constructor(Activity, Amount) {\n super();\n this.Activity = Activity;\n this.Amount = (Amount | 0);\n }\n}\n\nexport function WorkoutType_SpeedInfo$reflection() {\n return record_type(\"Shared.WorkoutType.SpeedInfo\", [], WorkoutType_SpeedInfo, () => [[\"Activity\", SpeedActivity_SpeedActivity$reflection()], [\"Amount\", int32_type]]);\n}\n\nexport function WorkoutType_SpeedInfo_get_Default() {\n return new WorkoutType_SpeedInfo(new SpeedActivity_SpeedActivity(0), 0);\n}\n\nexport class WorkoutType_WorkoutType extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Endurance\", \"Strength\", \"Mobility\", \"Speed\", \"Rest\"];\n }\n}\n\nexport function WorkoutType_WorkoutType$reflection() {\n return union_type(\"Shared.WorkoutType.WorkoutType\", [], WorkoutType_WorkoutType, () => [[[\"Item\", WorkoutType_EnduranceInfo$reflection()]], [[\"Item\", WorkoutType_StrengthInfo$reflection()]], [[\"Item\", WorkoutType_MobilityInfo$reflection()]], [[\"Item\", WorkoutType_SpeedInfo$reflection()]], []]);\n}\n\nexport function WorkoutType_WorkoutType_get_MobilityDefaultColor() {\n return \"#cccccc\";\n}\n\nexport function WorkoutType_WorkoutType_get_RestDefaultColor() {\n return \"#00ff00\";\n}\n\nexport function WorkoutType_getWorkoutTypeTotalDuration(workoutType) {\n switch (workoutType.tag) {\n case 1: {\n return workoutType.fields[0].Duration | 0;\n }\n case 2: {\n return workoutType.fields[0].Duration | 0;\n }\n case 3:\n case 4: {\n return DurationModule_fromInt(0) | 0;\n }\n default: {\n return workoutType.fields[0].Duration | 0;\n }\n }\n}\n\nexport function WorkoutType_getWorkoutTypeColor(workoutType) {\n switch (workoutType.tag) {\n case 1: {\n return StrengthActivity_getStrengthActivityColor(workoutType.fields[0].Activity);\n }\n case 2: {\n return WorkoutType_WorkoutType_get_MobilityDefaultColor();\n }\n case 3: {\n return SpeedActivity_getSpeedActivityColor(workoutType.fields[0].Activity);\n }\n case 4: {\n return WorkoutType_WorkoutType_get_RestDefaultColor();\n }\n default: {\n return EnduranceIntensity_getEnduranceIntensityColor(workoutType.fields[0].Intensity);\n }\n }\n}\n\nexport function WorkoutType_strWorkoutType(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Styrka\";\n }\n case 2: {\n return \"Rörlighet\";\n }\n case 3: {\n return \"Snabbhet\";\n }\n case 4: {\n return \"Vila\";\n }\n default: {\n return \"Uthållighet\";\n }\n }\n}\n\nexport function WorkoutType_titleWorkoutType(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return StrengthActivity_strStrengthActivity(_arg1.fields[0].Activity);\n }\n case 2: {\n return WorkoutType_strWorkoutType(new WorkoutType_WorkoutType(2, WorkoutType_MobilityInfo_get_Default()));\n }\n case 3: {\n return SpeedActivity_strSpeedActivity(_arg1.fields[0].Activity);\n }\n case 4: {\n return WorkoutType_strWorkoutType(new WorkoutType_WorkoutType(4));\n }\n default: {\n return EnduranceActivity_strEnduranceActivity(_arg1.fields[0].Activity);\n }\n }\n}\n\nexport class Workout_WorkoutPart extends Record {\n constructor(IsPrimary, WorkoutType) {\n super();\n this.IsPrimary = IsPrimary;\n this.WorkoutType = WorkoutType;\n }\n}\n\nexport function Workout_WorkoutPart$reflection() {\n return record_type(\"Shared.Workout.WorkoutPart\", [], Workout_WorkoutPart, () => [[\"IsPrimary\", bool_type], [\"WorkoutType\", WorkoutType_WorkoutType$reflection()]]);\n}\n\nexport function Workout_getWorkoutPartTotalDuration(workoutPart) {\n return WorkoutType_getWorkoutTypeTotalDuration(workoutPart.WorkoutType);\n}\n\nexport function Workout_getWorkoutPartColor(workoutPart) {\n return WorkoutType_getWorkoutTypeColor(workoutPart.WorkoutType);\n}\n\nexport class Workout_Workout extends Record {\n constructor(Title, Comment$, WorkoutParts) {\n super();\n this.Title = Title;\n this.Comment = Comment$;\n this.WorkoutParts = WorkoutParts;\n }\n}\n\nexport function Workout_Workout$reflection() {\n return record_type(\"Shared.Workout.Workout\", [], Workout_Workout, () => [[\"Title\", string_type], [\"Comment\", string_type], [\"WorkoutParts\", array_type(Workout_WorkoutPart$reflection())]]);\n}\n\nexport function Workout_Workout_get_Default() {\n return new Workout_Workout(\"\", \"\", []);\n}\n\nexport function Workout_Workout_get_DefaultColor() {\n return \"#339966\";\n}\n\nexport function Workout_getWorkoutTotalDurationSec(workout) {\n return sum(map_2((x) => DurationModule_toInt(Workout_getWorkoutPartTotalDuration(x)), workout.WorkoutParts, Int32Array), {\n GetZero: () => 0,\n Add: (x_2, y) => (x_2 + y),\n });\n}\n\nexport function Workout_getWorkoutTotalDuration(workout) {\n return DurationModule_fromInt(Workout_getWorkoutTotalDurationSec(workout));\n}\n\nexport function Workout_getWorkoutColor(workout) {\n return defaultArg(map_1((x_1) => Workout_getWorkoutPartColor(x_1), defaultArg(tryFind((x) => x.IsPrimary, workout.WorkoutParts), tryHead(workout.WorkoutParts))), Workout_Workout_get_DefaultColor());\n}\n\nexport class WorkoutTemplates_WorkoutTemplateInfo extends Record {\n constructor(Id, IsGlobal, Workout) {\n super();\n this.Id = Id;\n this.IsGlobal = IsGlobal;\n this.Workout = Workout;\n }\n}\n\nexport function WorkoutTemplates_WorkoutTemplateInfo$reflection() {\n return record_type(\"Shared.WorkoutTemplates.WorkoutTemplateInfo\", [], WorkoutTemplates_WorkoutTemplateInfo, () => [[\"Id\", class_type(\"System.Guid\")], [\"IsGlobal\", bool_type], [\"Workout\", Workout_Workout$reflection()]]);\n}\n\nexport function WorkoutTemplates_WorkoutTemplateInfo_get_Default() {\n return new WorkoutTemplates_WorkoutTemplateInfo(WorkoutTemplateIdModule_fromGuid(newGuid()), false, Workout_Workout_get_Default());\n}\n\nexport class WorkoutTemplates_WorkoutTemplatesApi extends Record {\n constructor(listUser, listSchool, get$, create, update, delete$) {\n super();\n this.listUser = listUser;\n this.listSchool = listSchool;\n this.get = get$;\n this.create = create;\n this.update = update;\n this.delete = delete$;\n }\n}\n\nexport function WorkoutTemplates_WorkoutTemplatesApi$reflection() {\n return record_type(\"Shared.WorkoutTemplates.WorkoutTemplatesApi\", [], WorkoutTemplates_WorkoutTemplatesApi, () => [[\"listUser\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection())]))], [\"listSchool\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection())]))], [\"get\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [WorkoutTemplates_WorkoutTemplateInfo$reflection()]))], [\"create\", lambda_type(WorkoutTemplates_WorkoutTemplateInfo$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"update\", lambda_type(WorkoutTemplates_WorkoutTemplateInfo$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"delete\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport class DaySegment_DaySegment extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Mo\", \"Fm\", \"Em\", \"Kv\"];\n }\n}\n\nexport function DaySegment_DaySegment$reflection() {\n return union_type(\"Shared.DaySegment.DaySegment\", [], DaySegment_DaySegment, () => [[], [], [], []]);\n}\n\nexport function DaySegment_isLatestDaySegment(x) {\n return equals(x, new DaySegment_DaySegment(3));\n}\n\nexport const DaySegment_list = ofArray([new DaySegment_DaySegment(0), new DaySegment_DaySegment(1), new DaySegment_DaySegment(2), new DaySegment_DaySegment(3)]);\n\nexport function DaySegment_strDaySegment(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Fm.\";\n }\n case 2: {\n return \"Em.\";\n }\n case 3: {\n return \"Kv.\";\n }\n default: {\n return \"Mo.\";\n }\n }\n}\n\nexport function DaySegment_parseDaySegment(_arg1) {\n switch (_arg1) {\n case 0: {\n return new DaySegment_DaySegment(0);\n }\n case 1: {\n return new DaySegment_DaySegment(1);\n }\n case 2: {\n return new DaySegment_DaySegment(2);\n }\n case 3: {\n return new DaySegment_DaySegment(3);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong day segment code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class Shape_Shape extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"ExtremelyLight\", \"VeryVeryLight\", \"VeryLight\", \"Light\", \"OK\", \"LitleHeavy\", \"VeryHeavy\", \"VeryVeryHeavy\", \"ExtremelyHeavy\"];\n }\n}\n\nexport function Shape_Shape$reflection() {\n return union_type(\"Shared.Shape.Shape\", [], Shape_Shape, () => [[], [], [], [], [], [], [], [], []]);\n}\n\nexport const Shape_list = ofArray([new Shape_Shape(0), new Shape_Shape(1), new Shape_Shape(2), new Shape_Shape(3), new Shape_Shape(4), new Shape_Shape(5), new Shape_Shape(6), new Shape_Shape(7), new Shape_Shape(8)]);\n\nexport function Shape_parseShapeStr(_arg1) {\n switch (_arg1) {\n case \"ExtremelyLight\": {\n return new Shape_Shape(0);\n }\n case \"VeryVeryLight\": {\n return new Shape_Shape(1);\n }\n case \"VeryLight\": {\n return new Shape_Shape(2);\n }\n case \"Light\": {\n return new Shape_Shape(3);\n }\n case \"OK\": {\n return new Shape_Shape(4);\n }\n case \"LitleHeavy\": {\n return new Shape_Shape(5);\n }\n case \"VeryHeavy\": {\n return new Shape_Shape(6);\n }\n case \"VeryVeryHeavy\": {\n return new Shape_Shape(7);\n }\n case \"ExtremelyHeavy\": {\n return new Shape_Shape(8);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong shape string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function Shape_strShape(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"+3 Mycket mycket lätt\";\n }\n case 2: {\n return \"+2 Mycket lätt\";\n }\n case 3: {\n return \"+1 Lätt/pigg\";\n }\n case 4: {\n return \"0 OK\";\n }\n case 5: {\n return \"-1 Lite tungt\";\n }\n case 6: {\n return \"-2 Mycket tungt\";\n }\n case 7: {\n return \"-3 Mycket mycket tungt\";\n }\n case 8: {\n return \"-4 Extremt tungt\";\n }\n default: {\n return \"+4 Extremt lätt\";\n }\n }\n}\n\nexport function Shape_getShapeIntValue(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return 3;\n }\n case 2: {\n return 2;\n }\n case 3: {\n return 1;\n }\n case 4: {\n return 0;\n }\n case 5: {\n return -1;\n }\n case 6: {\n return -2;\n }\n case 7: {\n return -3;\n }\n case 8: {\n return -4;\n }\n default: {\n return 4;\n }\n }\n}\n\nexport function Shape_parseShape(_arg1) {\n switch (_arg1) {\n case 0: {\n return new Shape_Shape(0);\n }\n case 1: {\n return new Shape_Shape(1);\n }\n case 2: {\n return new Shape_Shape(2);\n }\n case 3: {\n return new Shape_Shape(3);\n }\n case 4: {\n return new Shape_Shape(4);\n }\n case 5: {\n return new Shape_Shape(5);\n }\n case 6: {\n return new Shape_Shape(6);\n }\n case 7: {\n return new Shape_Shape(7);\n }\n case 8: {\n return new Shape_Shape(8);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong shape code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class DayPlan_DayPlan extends Record {\n constructor(DaySegment, Workout) {\n super();\n this.DaySegment = DaySegment;\n this.Workout = Workout;\n }\n}\n\nexport function DayPlan_DayPlan$reflection() {\n return record_type(\"Shared.DayPlan.DayPlan\", [], DayPlan_DayPlan, () => [[\"DaySegment\", DaySegment_DaySegment$reflection()], [\"Workout\", Workout_Workout$reflection()]]);\n}\n\nexport class DayFact_DayFact extends Record {\n constructor(DaySegment, Shape, CommentAfterTraining, Workout) {\n super();\n this.DaySegment = DaySegment;\n this.Shape = Shape;\n this.CommentAfterTraining = CommentAfterTraining;\n this.Workout = Workout;\n }\n}\n\nexport function DayFact_DayFact$reflection() {\n return record_type(\"Shared.DayFact.DayFact\", [], DayFact_DayFact, () => [[\"DaySegment\", DaySegment_DaySegment$reflection()], [\"Shape\", Shape_Shape$reflection()], [\"CommentAfterTraining\", string_type], [\"Workout\", Workout_Workout$reflection()]]);\n}\n\nexport function DayFact_DayFact_Default_Z38742B54(daySegment) {\n return new DayFact_DayFact(daySegment, new Shape_Shape(4), \"\", Workout_Workout_get_Default());\n}\n\nexport function DayFact_createFromDayPlan(dayPlan) {\n return new DayFact_DayFact(dayPlan.DaySegment, new Shape_Shape(4), \"\", dayPlan.Workout);\n}\n\nexport class DayPlanFact_DayPlanFact extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Plan\", \"Fact\"];\n }\n}\n\nexport function DayPlanFact_DayPlanFact$reflection() {\n return union_type(\"Shared.DayPlanFact.DayPlanFact\", [], DayPlanFact_DayPlanFact, () => [[[\"Item\", DayPlan_DayPlan$reflection()]], [[\"Item\", DayFact_DayFact$reflection()]]]);\n}\n\nexport class SleepQuality_SleepQuality extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"HardToSleep\", \"RestlessSleep\", \"OkSleep\", \"GoodSleep\", \"DeepSleep\"];\n }\n}\n\nexport function SleepQuality_SleepQuality$reflection() {\n return union_type(\"Shared.SleepQuality.SleepQuality\", [], SleepQuality_SleepQuality, () => [[], [], [], [], []]);\n}\n\nexport const SleepQuality_list = ofArray([new SleepQuality_SleepQuality(0), new SleepQuality_SleepQuality(1), new SleepQuality_SleepQuality(2), new SleepQuality_SleepQuality(3), new SleepQuality_SleepQuality(4)]);\n\nexport function SleepQuality_getSleepQualityCode(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return -1;\n }\n case 2: {\n return 0;\n }\n case 3: {\n return 1;\n }\n case 4: {\n return 2;\n }\n default: {\n return -2;\n }\n }\n}\n\nexport function SleepQuality_strSleepQuality(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Orolig sömn\";\n }\n case 2: {\n return \"OK Sömn\";\n }\n case 3: {\n return \"God sömn\";\n }\n case 4: {\n return \"Djupsömn\";\n }\n default: {\n return \"Svårt att sova\";\n }\n }\n}\n\nexport function SleepQuality_displaySleepQuality(x) {\n return toText(interpolate(\"%P() %P()\", [SleepQuality_getSleepQualityCode(x), SleepQuality_strSleepQuality(x)]));\n}\n\nexport function SleepQuality_parseSleepQualityStr(_arg1) {\n switch (_arg1) {\n case \"HardToSleep\": {\n return new SleepQuality_SleepQuality(0);\n }\n case \"RestlessSleep\": {\n return new SleepQuality_SleepQuality(1);\n }\n case \"OkSleep\": {\n return new SleepQuality_SleepQuality(2);\n }\n case \"GoodSleep\": {\n return new SleepQuality_SleepQuality(3);\n }\n case \"DeepSleep\": {\n return new SleepQuality_SleepQuality(4);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong sleep quality string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function SleepQuality_parseSleepQuality(_arg1) {\n switch (_arg1) {\n case -2: {\n return new SleepQuality_SleepQuality(0);\n }\n case -1: {\n return new SleepQuality_SleepQuality(1);\n }\n case 0: {\n return new SleepQuality_SleepQuality(2);\n }\n case 1: {\n return new SleepQuality_SleepQuality(3);\n }\n case 2: {\n return new SleepQuality_SleepQuality(4);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong sleep quality code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class Menstruation_Menstruation extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"NoMenstruation\", \"MenstruationStarted\", \"MenstruationCompleted\"];\n }\n}\n\nexport function Menstruation_Menstruation$reflection() {\n return union_type(\"Shared.Menstruation.Menstruation\", [], Menstruation_Menstruation, () => [[], [], []]);\n}\n\nexport const Menstruation_list = ofArray([new Menstruation_Menstruation(0), new Menstruation_Menstruation(1), new Menstruation_Menstruation(2)]);\n\nexport function Menstruation_getMenstruationCode(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return 2;\n }\n case 2: {\n return 3;\n }\n default: {\n return 1;\n }\n }\n}\n\nexport function Menstruation_strMenstruation(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"Menstruation påbörjad\";\n }\n case 2: {\n return \"Menstruation avslutad\";\n }\n default: {\n return \"Ingen menstruation\";\n }\n }\n}\n\nexport function Menstruation_displayMenstruation(x) {\n return toText(interpolate(\"%P() %P()\", [Menstruation_getMenstruationCode(x), Menstruation_strMenstruation(x)]));\n}\n\nexport function Menstruation_parseMenstruationStr(_arg1) {\n switch (_arg1) {\n case \"NoMenstruation\": {\n return new Menstruation_Menstruation(0);\n }\n case \"MenstruationStarted\": {\n return new Menstruation_Menstruation(1);\n }\n case \"MenstruationCompleted\": {\n return new Menstruation_Menstruation(2);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong menstruation string! %s%P()\", [_arg1]))));\n }\n }\n}\n\nexport function Menstruation_parseMenstruation(_arg1) {\n switch (_arg1) {\n case 1: {\n return new Menstruation_Menstruation(0);\n }\n case 2: {\n return new Menstruation_Menstruation(1);\n }\n case 3: {\n return new Menstruation_Menstruation(2);\n }\n default: {\n throw (new Error(toText(interpolate(\"Wrong menstruation code! %i%P()\", [_arg1]))));\n }\n }\n}\n\nexport class DayData_DayData extends Record {\n constructor(IsSick, IsDamaged, IsTravelDay, Heartrate, Sleep, SleepQuality, Menstruation) {\n super();\n this.IsSick = IsSick;\n this.IsDamaged = IsDamaged;\n this.IsTravelDay = IsTravelDay;\n this.Heartrate = (Heartrate | 0);\n this.Sleep = (Sleep | 0);\n this.SleepQuality = SleepQuality;\n this.Menstruation = Menstruation;\n }\n}\n\nexport function DayData_DayData$reflection() {\n return record_type(\"Shared.DayData.DayData\", [], DayData_DayData, () => [[\"IsSick\", bool_type], [\"IsDamaged\", bool_type], [\"IsTravelDay\", bool_type], [\"Heartrate\", int32_type], [\"Sleep\", int32_type], [\"SleepQuality\", SleepQuality_SleepQuality$reflection()], [\"Menstruation\", Menstruation_Menstruation$reflection()]]);\n}\n\nexport function DayData_DayData_get_Default() {\n return new DayData_DayData(false, false, false, 0, 1, new SleepQuality_SleepQuality(2), new Menstruation_Menstruation(0));\n}\n\nexport class PlanFact_PlanFact extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Plan\", \"Fact\"];\n }\n}\n\nexport function PlanFact_PlanFact$reflection() {\n return union_type(\"Shared.PlanFact.PlanFact\", [], PlanFact_PlanFact, () => [[], []]);\n}\n\nexport const PlanFact_list = ofArray([new PlanFact_PlanFact(0), new PlanFact_PlanFact(1)]);\n\nexport function PlanFact_strPlanFact(_arg1) {\n if (_arg1.tag === 1) {\n return \"Genomfört\";\n }\n else {\n return \"Planering\";\n }\n}\n\nexport class DragType_DayPlanFactDrop extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Plan\", \"Fact\", \"WorkoutTemplate\"];\n }\n}\n\nexport function DragType_DayPlanFactDrop$reflection() {\n return union_type(\"Shared.DragType.DayPlanFactDrop\", [], DragType_DayPlanFactDrop, () => [[[\"Item\", DayPlan_DayPlan$reflection()]], [[\"Item\", DayFact_DayFact$reflection()]], [[\"Item\", WorkoutTemplates_WorkoutTemplateInfo$reflection()]]]);\n}\n\nexport function DayHelpers_withDaySegment(daySegment, dayPlanFact) {\n if (dayPlanFact.tag === 1) {\n const fact = dayPlanFact.fields[0];\n return new DayPlanFact_DayPlanFact(1, new DayFact_DayFact(daySegment, fact.Shape, fact.CommentAfterTraining, fact.Workout));\n }\n else {\n return new DayPlanFact_DayPlanFact(0, new DayPlan_DayPlan(daySegment, dayPlanFact.fields[0].Workout));\n }\n}\n\nexport function DayHelpers_tryFindPlan(daySegment, dayPlans) {\n return tryFind((x) => equals(x.DaySegment, daySegment), dayPlans);\n}\n\nexport function DayHelpers_tryFindFact(daySegment, dayFacts) {\n return tryFind((x) => equals(x.DaySegment, daySegment), dayFacts);\n}\n\nexport function DayHelpers_tryFindPlanFact(dayPlans, dayFacts, planFact, daySegment) {\n if (planFact.tag === 1) {\n return map_1((arg0_1) => (new DayPlanFact_DayPlanFact(1, arg0_1)), DayHelpers_tryFindFact(daySegment, dayFacts));\n }\n else {\n return map_1((arg0) => (new DayPlanFact_DayPlanFact(0, arg0)), DayHelpers_tryFindPlan(daySegment, dayPlans));\n }\n}\n\nexport function DayHelpers_deletePlan(daySegment, dayPlans) {\n return dayPlans.filter((d) => (!equals(d.DaySegment, daySegment)));\n}\n\nexport function DayHelpers_deleteFact(daySegment, dayFacts) {\n return dayFacts.filter((d) => (!equals(d.DaySegment, daySegment)));\n}\n\nexport function DayHelpers_deletePlanFact(daySegment, planFact, dayPlans, dayFacts) {\n if (planFact.tag === 1) {\n return [dayPlans, DayHelpers_deleteFact(daySegment, dayFacts)];\n }\n else {\n return [DayHelpers_deletePlan(daySegment, dayPlans), dayFacts];\n }\n}\n\nexport function DayHelpers_addUpdatePlan(dayPlan, dayPlans) {\n const matchValue = DayHelpers_tryFindPlan(dayPlan.DaySegment, dayPlans);\n if (matchValue == null) {\n return append(dayPlans, [dayPlan]);\n }\n else {\n return map_2((d) => (equals(d.DaySegment, dayPlan.DaySegment) ? dayPlan : d), dayPlans);\n }\n}\n\nexport function DayHelpers_addUpdateFact(dayFact, dayFacts) {\n const matchValue = DayHelpers_tryFindFact(dayFact.DaySegment, dayFacts);\n if (matchValue == null) {\n return append(dayFacts, [dayFact]);\n }\n else {\n return map_2((d) => (equals(d.DaySegment, dayFact.DaySegment) ? dayFact : d), dayFacts);\n }\n}\n\nexport function DayHelpers_addUpdatePlanFact(dayPlanFact, dayPlans, dayFacts) {\n if (dayPlanFact.tag === 1) {\n return [dayPlans, DayHelpers_addUpdateFact(dayPlanFact.fields[0], dayFacts)];\n }\n else {\n return [DayHelpers_addUpdatePlan(dayPlanFact.fields[0], dayPlans), dayFacts];\n }\n}\n\nexport function DayHelpers_appendDayPlans(dayPlans, originalDayPlans) {\n const originalSegments = map_3((x) => x.DaySegment, originalDayPlans);\n return Array.from(choose((daySegment) => {\n let originalDayPlan, inputRecord;\n const matchValue = [DayHelpers_tryFindPlan(daySegment, originalDayPlans), DayHelpers_tryFindPlan(daySegment, dayPlans)];\n if (matchValue[0] == null) {\n if (matchValue[1] == null) {\n return void 0;\n }\n else {\n const dayPlan_2 = matchValue[1];\n return dayPlan_2;\n }\n }\n else if (matchValue[1] != null) {\n const dayPlan_3 = matchValue[1];\n const originalDayPlan_3 = matchValue[0];\n return originalDayPlan = originalDayPlan_3, new DayPlan_DayPlan(originalDayPlan.DaySegment, (inputRecord = originalDayPlan.Workout, new Workout_Workout(inputRecord.Title, inputRecord.Comment, append(originalDayPlan.Workout.WorkoutParts, dayPlan_3.Workout.WorkoutParts))));\n }\n else {\n const originalDayPlan_2 = matchValue[0];\n return originalDayPlan_2;\n }\n }, distinct(append_1(map_3((x_1) => x_1.DaySegment, dayPlans), originalSegments), {\n Equals: (x_2, y) => equals(x_2, y),\n GetHashCode: (x_2) => safeHash(x_2),\n })));\n}\n\nexport class ScheduleDay_ScheduleDay extends Record {\n constructor(WeekDay, DayPlans) {\n super();\n this.WeekDay = (WeekDay | 0);\n this.DayPlans = DayPlans;\n }\n}\n\nexport function ScheduleDay_ScheduleDay$reflection() {\n return record_type(\"Shared.ScheduleDay.ScheduleDay\", [], ScheduleDay_ScheduleDay, () => [[\"WeekDay\", int32_type], [\"DayPlans\", array_type(DayPlan_DayPlan$reflection())]]);\n}\n\nexport function ScheduleDay_ScheduleDay_Default_Z524259A4(weekDay) {\n return new ScheduleDay_ScheduleDay(weekDay, []);\n}\n\nexport class ScheduleWeek_ScheduleWeek extends Record {\n constructor(PeriodWeek, ScheduleDays) {\n super();\n this.PeriodWeek = (PeriodWeek | 0);\n this.ScheduleDays = ScheduleDays;\n }\n}\n\nexport function ScheduleWeek_ScheduleWeek$reflection() {\n return record_type(\"Shared.ScheduleWeek.ScheduleWeek\", [], ScheduleWeek_ScheduleWeek, () => [[\"PeriodWeek\", int32_type], [\"ScheduleDays\", array_type(ScheduleDay_ScheduleDay$reflection())]]);\n}\n\nexport function ScheduleWeek_ScheduleWeek_Default_Z524259A4(periodWeek) {\n return new ScheduleWeek_ScheduleWeek(periodWeek, []);\n}\n\nexport class StudentDays_StudentDayKey extends Record {\n constructor(StudentId, CalendarDay) {\n super();\n this.StudentId = StudentId;\n this.CalendarDay = CalendarDay;\n }\n}\n\nexport function StudentDays_StudentDayKey$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayKey\", [], StudentDays_StudentDayKey, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDay\", CalendarDay_CalendarDay$reflection()]]);\n}\n\nexport class StudentDays_StudentDayInfo extends Record {\n constructor(StudentId, CalendarDay, DayPlans, DayFacts, DayData) {\n super();\n this.StudentId = StudentId;\n this.CalendarDay = CalendarDay;\n this.DayPlans = DayPlans;\n this.DayFacts = DayFacts;\n this.DayData = DayData;\n }\n}\n\nexport function StudentDays_StudentDayInfo$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayInfo\", [], StudentDays_StudentDayInfo, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDay\", CalendarDay_CalendarDay$reflection()], [\"DayPlans\", array_type(DayPlan_DayPlan$reflection())], [\"DayFacts\", array_type(DayFact_DayFact$reflection())], [\"DayData\", option_type(DayData_DayData$reflection())]]);\n}\n\nexport function StudentDays_StudentDayInfo_Empty(studentId, calendarDay) {\n return new StudentDays_StudentDayInfo(studentId, calendarDay, [], [], void 0);\n}\n\nexport class StudentDays_StudentDayListRequest extends Record {\n constructor(StudentId, Year, Period, Week, WeekDay) {\n super();\n this.StudentId = StudentId;\n this.Year = (Year | 0);\n this.Period = (Period | 0);\n this.Week = Week;\n this.WeekDay = WeekDay;\n }\n}\n\nexport function StudentDays_StudentDayListRequest$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayListRequest\", [], StudentDays_StudentDayListRequest, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"Year\", int32_type], [\"Period\", int32_type], [\"Week\", option_type(int32_type)], [\"WeekDay\", option_type(int32_type)]]);\n}\n\nexport class StudentDays_StudentDayUpdatePlanFactRequest extends Record {\n constructor(StudentId, CalendarDay, DayPlanFact) {\n super();\n this.StudentId = StudentId;\n this.CalendarDay = CalendarDay;\n this.DayPlanFact = DayPlanFact;\n }\n}\n\nexport function StudentDays_StudentDayUpdatePlanFactRequest$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayUpdatePlanFactRequest\", [], StudentDays_StudentDayUpdatePlanFactRequest, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDay\", CalendarDay_CalendarDay$reflection()], [\"DayPlanFact\", DayPlanFact_DayPlanFact$reflection()]]);\n}\n\nexport class StudentDays_StudentDayMovePlanFactRequest extends Record {\n constructor(StudentId, CalendarDayTo, DaySegmentTo, CalendarDayFrom, DaySegmentFrom, PlanFact) {\n super();\n this.StudentId = StudentId;\n this.CalendarDayTo = CalendarDayTo;\n this.DaySegmentTo = DaySegmentTo;\n this.CalendarDayFrom = CalendarDayFrom;\n this.DaySegmentFrom = DaySegmentFrom;\n this.PlanFact = PlanFact;\n }\n}\n\nexport function StudentDays_StudentDayMovePlanFactRequest$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayMovePlanFactRequest\", [], StudentDays_StudentDayMovePlanFactRequest, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDayTo\", CalendarDay_CalendarDay$reflection()], [\"DaySegmentTo\", DaySegment_DaySegment$reflection()], [\"CalendarDayFrom\", CalendarDay_CalendarDay$reflection()], [\"DaySegmentFrom\", DaySegment_DaySegment$reflection()], [\"PlanFact\", PlanFact_PlanFact$reflection()]]);\n}\n\nexport class StudentDays_StudentDayDeletePlanFactRequest extends Record {\n constructor(StudentId, CalendarDay, DaySegment, PlanFact) {\n super();\n this.StudentId = StudentId;\n this.CalendarDay = CalendarDay;\n this.DaySegment = DaySegment;\n this.PlanFact = PlanFact;\n }\n}\n\nexport function StudentDays_StudentDayDeletePlanFactRequest$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayDeletePlanFactRequest\", [], StudentDays_StudentDayDeletePlanFactRequest, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDay\", CalendarDay_CalendarDay$reflection()], [\"DaySegment\", DaySegment_DaySegment$reflection()], [\"PlanFact\", PlanFact_PlanFact$reflection()]]);\n}\n\nexport class StudentDays_StudentDayImplementPlanRequest extends Record {\n constructor(StudentId, CalendarDay, DayFact) {\n super();\n this.StudentId = StudentId;\n this.CalendarDay = CalendarDay;\n this.DayFact = DayFact;\n }\n}\n\nexport function StudentDays_StudentDayImplementPlanRequest$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayImplementPlanRequest\", [], StudentDays_StudentDayImplementPlanRequest, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDay\", CalendarDay_CalendarDay$reflection()], [\"DayFact\", DayFact_DayFact$reflection()]]);\n}\n\nexport class StudentDays_StudentDayUpdateDataRequest extends Record {\n constructor(StudentId, CalendarDay, DayData) {\n super();\n this.StudentId = StudentId;\n this.CalendarDay = CalendarDay;\n this.DayData = DayData;\n }\n}\n\nexport function StudentDays_StudentDayUpdateDataRequest$reflection() {\n return record_type(\"Shared.StudentDays.StudentDayUpdateDataRequest\", [], StudentDays_StudentDayUpdateDataRequest, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CalendarDay\", CalendarDay_CalendarDay$reflection()], [\"DayData\", DayData_DayData$reflection()]]);\n}\n\nexport class StudentDays_ScheduleAssignMode extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Add\", \"Append\", \"Overwrite\"];\n }\n}\n\nexport function StudentDays_ScheduleAssignMode$reflection() {\n return union_type(\"Shared.StudentDays.ScheduleAssignMode\", [], StudentDays_ScheduleAssignMode, () => [[], [], []]);\n}\n\nexport class StudentDays_ScheduleAssignRequest extends Record {\n constructor(ScheduleId, StudentIds, Period, ScheduleWeeks, ScheduleAssignMode) {\n super();\n this.ScheduleId = ScheduleId;\n this.StudentIds = StudentIds;\n this.Period = Period;\n this.ScheduleWeeks = ScheduleWeeks;\n this.ScheduleAssignMode = ScheduleAssignMode;\n }\n}\n\nexport function StudentDays_ScheduleAssignRequest$reflection() {\n return record_type(\"Shared.StudentDays.ScheduleAssignRequest\", [], StudentDays_ScheduleAssignRequest, () => [[\"ScheduleId\", class_type(\"System.Guid\")], [\"StudentIds\", list_type(class_type(\"System.Guid\"))], [\"Period\", Calendar_PeriodInfo$reflection()], [\"ScheduleWeeks\", array_type(ScheduleWeek_ScheduleWeek$reflection())], [\"ScheduleAssignMode\", StudentDays_ScheduleAssignMode$reflection()]]);\n}\n\nexport class StudentDays_StudentDaysApi extends Record {\n constructor(list, create, updatePlanFact, movePlanFact, deletePlanFact, implementPlan, updateData, assign) {\n super();\n this.list = list;\n this.create = create;\n this.updatePlanFact = updatePlanFact;\n this.movePlanFact = movePlanFact;\n this.deletePlanFact = deletePlanFact;\n this.implementPlan = implementPlan;\n this.updateData = updateData;\n this.assign = assign;\n }\n}\n\nexport function StudentDays_StudentDaysApi$reflection() {\n return record_type(\"Shared.StudentDays.StudentDaysApi\", [], StudentDays_StudentDaysApi, () => [[\"list\", lambda_type(StudentDays_StudentDayListRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(StudentDays_StudentDayInfo$reflection())]))], [\"create\", lambda_type(StudentDays_StudentDayInfo$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"updatePlanFact\", lambda_type(StudentDays_StudentDayUpdatePlanFactRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"movePlanFact\", lambda_type(StudentDays_StudentDayMovePlanFactRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, tuple_type(string_type, option_type(string_type))], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", tuple_type(string_type, option_type(string_type))]]])]))], [\"deletePlanFact\", lambda_type(StudentDays_StudentDayDeletePlanFactRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"implementPlan\", lambda_type(StudentDays_StudentDayImplementPlanRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, tuple_type(string_type, option_type(string_type))], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", tuple_type(string_type, option_type(string_type))]]])]))], [\"updateData\", lambda_type(StudentDays_StudentDayUpdateDataRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"assign\", lambda_type(StudentDays_ScheduleAssignRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport function ScheduleHelpers_addUpdateScheduleDayPlan(dayPlan, scheduleDay) {\n return new ScheduleDay_ScheduleDay(scheduleDay.WeekDay, DayHelpers_addUpdatePlan(dayPlan, scheduleDay.DayPlans));\n}\n\nexport function ScheduleHelpers_deleteScheduleDayPlan(daySegment, scheduleDay) {\n return new ScheduleDay_ScheduleDay(scheduleDay.WeekDay, DayHelpers_deletePlan(daySegment, scheduleDay.DayPlans));\n}\n\nexport function ScheduleHelpers_tryFindScheduleDay(weekDay, scheduleDays) {\n return tryFind((x) => (x.WeekDay === weekDay), scheduleDays);\n}\n\nexport function ScheduleHelpers_updateScheduleDays(weekDay, f, scheduleDays) {\n return map_2((x) => {\n if (x.WeekDay === weekDay) {\n return f(x);\n }\n else {\n return x;\n }\n }, scheduleDays);\n}\n\nexport function ScheduleHelpers_addUpdateScheduleDaysPlan(weekDay, dayPlan, scheduleDays) {\n const matchValue = ScheduleHelpers_tryFindScheduleDay(weekDay, scheduleDays);\n if (matchValue == null) {\n return append(scheduleDays, [ScheduleHelpers_addUpdateScheduleDayPlan(dayPlan, ScheduleDay_ScheduleDay_Default_Z524259A4(weekDay))]);\n }\n else {\n return ScheduleHelpers_updateScheduleDays(weekDay, (scheduleDay) => ScheduleHelpers_addUpdateScheduleDayPlan(dayPlan, scheduleDay), scheduleDays);\n }\n}\n\nexport function ScheduleHelpers_deleteScheduleDaysPlan(weekDay, daySegment, scheduleDays) {\n return ScheduleHelpers_updateScheduleDays(weekDay, (scheduleDay) => ScheduleHelpers_deleteScheduleDayPlan(daySegment, scheduleDay), scheduleDays);\n}\n\nexport function ScheduleHelpers_addUpdateScheduleWeekPlan(weekDay, dayPlan, scheduleWeek) {\n return new ScheduleWeek_ScheduleWeek(scheduleWeek.PeriodWeek, ScheduleHelpers_addUpdateScheduleDaysPlan(weekDay, dayPlan, scheduleWeek.ScheduleDays));\n}\n\nexport function ScheduleHelpers_deleteScheduleWeekPlan(weekDay, daySegment, scheduleWeek) {\n return new ScheduleWeek_ScheduleWeek(scheduleWeek.PeriodWeek, ScheduleHelpers_deleteScheduleDaysPlan(weekDay, daySegment, scheduleWeek.ScheduleDays));\n}\n\nexport function ScheduleHelpers_tryFindScheduleWeek(periodWeek, scheduleWeeks) {\n return tryFind((x) => (x.PeriodWeek === periodWeek), scheduleWeeks);\n}\n\nexport function ScheduleHelpers_updateScheduleWeeks(periodWeek, f, scheduleWeeks) {\n return map_2((x) => {\n if (x.PeriodWeek === periodWeek) {\n return f(x);\n }\n else {\n return x;\n }\n }, scheduleWeeks);\n}\n\nexport function ScheduleHelpers_addUpdateScheduleWeeksPlan(periodWeek, weekDay, dayPlan, scheduleWeeks) {\n const matchValue = ScheduleHelpers_tryFindScheduleWeek(periodWeek, scheduleWeeks);\n if (matchValue == null) {\n return append(scheduleWeeks, [ScheduleHelpers_addUpdateScheduleWeekPlan(weekDay, dayPlan, ScheduleWeek_ScheduleWeek_Default_Z524259A4(periodWeek))]);\n }\n else {\n return ScheduleHelpers_updateScheduleWeeks(periodWeek, (scheduleWeek) => ScheduleHelpers_addUpdateScheduleWeekPlan(weekDay, dayPlan, scheduleWeek), scheduleWeeks);\n }\n}\n\nexport function ScheduleHelpers_deleteScheduleWeeksPlan(periodWeek, weekDay, daySegment, scheduleWeeks) {\n return ScheduleHelpers_updateScheduleWeeks(periodWeek, (scheduleWeek) => ScheduleHelpers_deleteScheduleWeekPlan(weekDay, daySegment, scheduleWeek), scheduleWeeks);\n}\n\nexport function ScheduleHelpers_tryFindScheduleWeeksDayPlan(periodWeek, weekDay, daySegment, scheduleWeeks) {\n return bind((dayPlans) => DayHelpers_tryFindPlan(daySegment, dayPlans), map_1((x_1) => x_1.DayPlans, bind((scheduleDays) => ScheduleHelpers_tryFindScheduleDay(weekDay, scheduleDays), map_1((x) => x.ScheduleDays, ScheduleHelpers_tryFindScheduleWeek(periodWeek, scheduleWeeks)))));\n}\n\nexport class Schedules_ScheduleDayKey extends Record {\n constructor(ScheduleId, PeriodWeek, WeekDay) {\n super();\n this.ScheduleId = ScheduleId;\n this.PeriodWeek = (PeriodWeek | 0);\n this.WeekDay = (WeekDay | 0);\n }\n}\n\nexport function Schedules_ScheduleDayKey$reflection() {\n return record_type(\"Shared.Schedules.ScheduleDayKey\", [], Schedules_ScheduleDayKey, () => [[\"ScheduleId\", class_type(\"System.Guid\")], [\"PeriodWeek\", int32_type], [\"WeekDay\", int32_type]]);\n}\n\nexport class Schedules_ScheduleInfo extends Record {\n constructor(Id, TeacherId, Title, IsGlobal, ScheduleWeeks) {\n super();\n this.Id = Id;\n this.TeacherId = TeacherId;\n this.Title = Title;\n this.IsGlobal = IsGlobal;\n this.ScheduleWeeks = ScheduleWeeks;\n }\n}\n\nexport function Schedules_ScheduleInfo$reflection() {\n return record_type(\"Shared.Schedules.ScheduleInfo\", [], Schedules_ScheduleInfo, () => [[\"Id\", class_type(\"System.Guid\")], [\"TeacherId\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"IsGlobal\", bool_type], [\"ScheduleWeeks\", array_type(ScheduleWeek_ScheduleWeek$reflection())]]);\n}\n\nexport function Schedules_ScheduleInfo_Default_Z1043BF58(teacherId) {\n return new Schedules_ScheduleInfo(ScheduleIdModule_fromGuid(newGuid()), teacherId, \"\", false, []);\n}\n\nexport class Schedules_ScheduleListItem extends Record {\n constructor(Id, TeacherId, Title, IsGlobal) {\n super();\n this.Id = Id;\n this.TeacherId = TeacherId;\n this.Title = Title;\n this.IsGlobal = IsGlobal;\n }\n}\n\nexport function Schedules_ScheduleListItem$reflection() {\n return record_type(\"Shared.Schedules.ScheduleListItem\", [], Schedules_ScheduleListItem, () => [[\"Id\", class_type(\"System.Guid\")], [\"TeacherId\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"IsGlobal\", bool_type]]);\n}\n\nexport function Schedules_ScheduleListItem_Default_Z1043BF58(teacherId) {\n return new Schedules_ScheduleListItem(ScheduleIdModule_fromGuid(newGuid()), teacherId, \"\", false);\n}\n\nexport class Schedules_ScheduleCreateRequest extends Record {\n constructor(Id, Title, IsGlobal, ScheduleWeeks) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.IsGlobal = IsGlobal;\n this.ScheduleWeeks = ScheduleWeeks;\n }\n}\n\nexport function Schedules_ScheduleCreateRequest$reflection() {\n return record_type(\"Shared.Schedules.ScheduleCreateRequest\", [], Schedules_ScheduleCreateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"IsGlobal\", bool_type], [\"ScheduleWeeks\", array_type(ScheduleWeek_ScheduleWeek$reflection())]]);\n}\n\nexport class Schedules_ScheduleCreateAsDuplicateRequest extends Record {\n constructor(Id, Title, IsGlobal, ScheduleWeeks, SourceScheduleId) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.IsGlobal = IsGlobal;\n this.ScheduleWeeks = ScheduleWeeks;\n this.SourceScheduleId = SourceScheduleId;\n }\n}\n\nexport function Schedules_ScheduleCreateAsDuplicateRequest$reflection() {\n return record_type(\"Shared.Schedules.ScheduleCreateAsDuplicateRequest\", [], Schedules_ScheduleCreateAsDuplicateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"IsGlobal\", bool_type], [\"ScheduleWeeks\", array_type(ScheduleWeek_ScheduleWeek$reflection())], [\"SourceScheduleId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Schedules_ScheduleUpdateRequest extends Record {\n constructor(Id, Title, IsGlobal, ScheduleWeeks) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.IsGlobal = IsGlobal;\n this.ScheduleWeeks = ScheduleWeeks;\n }\n}\n\nexport function Schedules_ScheduleUpdateRequest$reflection() {\n return record_type(\"Shared.Schedules.ScheduleUpdateRequest\", [], Schedules_ScheduleUpdateRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"IsGlobal\", bool_type], [\"ScheduleWeeks\", option_type(array_type(ScheduleWeek_ScheduleWeek$reflection()))]]);\n}\n\nexport class Schedules_ScheduleUpdatePlanRequest extends Record {\n constructor(Id, PeriodWeek, WeekDay, DayPlan) {\n super();\n this.Id = Id;\n this.PeriodWeek = (PeriodWeek | 0);\n this.WeekDay = (WeekDay | 0);\n this.DayPlan = DayPlan;\n }\n}\n\nexport function Schedules_ScheduleUpdatePlanRequest$reflection() {\n return record_type(\"Shared.Schedules.ScheduleUpdatePlanRequest\", [], Schedules_ScheduleUpdatePlanRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"PeriodWeek\", int32_type], [\"WeekDay\", int32_type], [\"DayPlan\", DayPlan_DayPlan$reflection()]]);\n}\n\nexport class Schedules_ScheduleMovePlanRequest extends Record {\n constructor(Id, PeriodWeekTo, WeekDayTo, DaySegmentTo, PeriodWeekFrom, WeekDayFrom, DaySegmentFrom) {\n super();\n this.Id = Id;\n this.PeriodWeekTo = (PeriodWeekTo | 0);\n this.WeekDayTo = (WeekDayTo | 0);\n this.DaySegmentTo = DaySegmentTo;\n this.PeriodWeekFrom = (PeriodWeekFrom | 0);\n this.WeekDayFrom = (WeekDayFrom | 0);\n this.DaySegmentFrom = DaySegmentFrom;\n }\n}\n\nexport function Schedules_ScheduleMovePlanRequest$reflection() {\n return record_type(\"Shared.Schedules.ScheduleMovePlanRequest\", [], Schedules_ScheduleMovePlanRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"PeriodWeekTo\", int32_type], [\"WeekDayTo\", int32_type], [\"DaySegmentTo\", DaySegment_DaySegment$reflection()], [\"PeriodWeekFrom\", int32_type], [\"WeekDayFrom\", int32_type], [\"DaySegmentFrom\", DaySegment_DaySegment$reflection()]]);\n}\n\nexport class Schedules_ScheduleDeletePlanRequest extends Record {\n constructor(Id, PeriodWeek, WeekDay, DaySegment) {\n super();\n this.Id = Id;\n this.PeriodWeek = (PeriodWeek | 0);\n this.WeekDay = (WeekDay | 0);\n this.DaySegment = DaySegment;\n }\n}\n\nexport function Schedules_ScheduleDeletePlanRequest$reflection() {\n return record_type(\"Shared.Schedules.ScheduleDeletePlanRequest\", [], Schedules_ScheduleDeletePlanRequest, () => [[\"Id\", class_type(\"System.Guid\")], [\"PeriodWeek\", int32_type], [\"WeekDay\", int32_type], [\"DaySegment\", DaySegment_DaySegment$reflection()]]);\n}\n\nexport class Schedules_SchedulesApi extends Record {\n constructor(list, get$, create, createAsDuplicate, update, updatePlan, movePlan, deletePlan, delete$) {\n super();\n this.list = list;\n this.get = get$;\n this.create = create;\n this.createAsDuplicate = createAsDuplicate;\n this.update = update;\n this.updatePlan = updatePlan;\n this.movePlan = movePlan;\n this.deletePlan = deletePlan;\n this.delete = delete$;\n }\n}\n\nexport function Schedules_SchedulesApi$reflection() {\n return record_type(\"Shared.Schedules.SchedulesApi\", [], Schedules_SchedulesApi, () => [[\"list\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Schedules_ScheduleListItem$reflection())]))], [\"get\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [Schedules_ScheduleInfo$reflection()]))], [\"create\", lambda_type(Schedules_ScheduleCreateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"createAsDuplicate\", lambda_type(Schedules_ScheduleCreateAsDuplicateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"update\", lambda_type(Schedules_ScheduleUpdateRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"updatePlan\", lambda_type(Schedules_ScheduleUpdatePlanRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"movePlan\", lambda_type(Schedules_ScheduleMovePlanRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"deletePlan\", lambda_type(Schedules_ScheduleDeletePlanRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))], [\"delete\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]])]))]]);\n}\n\nexport class Statistics_StatisticType extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"School\", \"Group\", \"Student\"];\n }\n}\n\nexport function Statistics_StatisticType$reflection() {\n return union_type(\"Shared.Statistics.StatisticType\", [], Statistics_StatisticType, () => [[[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]]]);\n}\n\nexport class Statistics_StatisticRequest extends Record {\n constructor(StatisticType, DateFrom, DateTo) {\n super();\n this.StatisticType = StatisticType;\n this.DateFrom = DateFrom;\n this.DateTo = DateTo;\n }\n}\n\nexport function Statistics_StatisticRequest$reflection() {\n return record_type(\"Shared.Statistics.StatisticRequest\", [], Statistics_StatisticRequest, () => [[\"StatisticType\", Statistics_StatisticType$reflection()], [\"DateFrom\", class_type(\"System.DateTime\")], [\"DateTo\", class_type(\"System.DateTime\")]]);\n}\n\nexport const Statistics_StatisticsExportApiBasePath = \"/api/statistic-export\";\n\nexport const Statistics_StatisticsExportXlsxPath = \"/xlsx\";\n\nexport class Statistics_StatisticsApi extends Record {\n constructor(daysList, yearPlanSeconds) {\n super();\n this.daysList = daysList;\n this.yearPlanSeconds = yearPlanSeconds;\n }\n}\n\nexport function Statistics_StatisticsApi$reflection() {\n return record_type(\"Shared.Statistics.StatisticsApi\", [], Statistics_StatisticsApi, () => [[\"daysList\", lambda_type(Statistics_StatisticRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(StudentDays_StudentDayInfo$reflection())]))], [\"yearPlanSeconds\", lambda_type(Statistics_StatisticRequest$reflection(), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [int32_type]))]]);\n}\n\nexport class Schools_School extends Record {\n constructor(Id, Title) {\n super();\n this.Id = Id;\n this.Title = Title;\n }\n}\n\nexport function Schools_School$reflection() {\n return record_type(\"Shared.Schools.School\", [], Schools_School, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type]]);\n}\n\nexport class Schools_SchoolsApi extends Record {\n constructor(list, get$) {\n super();\n this.list = list;\n this.get = get$;\n }\n}\n\nexport function Schools_SchoolsApi$reflection() {\n return record_type(\"Shared.Schools.SchoolsApi\", [], Schools_SchoolsApi, () => [[\"list\", lambda_type(unit_type, class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [list_type(Schools_School$reflection())]))], [\"get\", lambda_type(class_type(\"System.Guid\"), class_type(\"Microsoft.FSharp.Control.FSharpAsync`1\", [Schools_School$reflection()]))]]);\n}\n\nexport function StatisticHelpers_folderOpt(sumFunc, accOpt, itemOpt) {\n const matchValue = [accOpt, itemOpt];\n if (matchValue[0] == null) {\n if (matchValue[1] == null) {\n return void 0;\n }\n else {\n return itemOpt;\n }\n }\n else if (matchValue[1] == null) {\n return accOpt;\n }\n else {\n const acc = value_2(matchValue[0]);\n const item = value_2(matchValue[1]);\n return some(sumFunc(acc, item));\n }\n}\n\nexport function StatisticHelpers_foldDurationOpt(list) {\n return fold((accOpt, itemOpt) => StatisticHelpers_folderOpt((x, y) => (x + y), accOpt, itemOpt), void 0, list);\n}\n\nexport function StatisticHelpers_calcEnduranceActivityDuration(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result, x_1;\n if (matchValue.tag === 0) {\n if (equals(matchValue.fields[0].Activity, i)) {\n pattern_matching_result = 0;\n x_1 = matchValue.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return DurationModule_toInt(x_1.Duration);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcEnduranceActivityCount(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result;\n if (matchValue.tag === 0) {\n if (equals(matchValue.fields[0].Activity, i)) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return 1;\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcEnduranceIntensityDuration(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result, x_1;\n if (matchValue.tag === 0) {\n if (equals(matchValue.fields[0].Intensity, i)) {\n pattern_matching_result = 0;\n x_1 = matchValue.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return DurationModule_toInt(x_1.Duration);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcEnduranceIntensityCount(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result;\n if (matchValue.tag === 0) {\n if (equals(matchValue.fields[0].Intensity, i)) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return 1;\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_intBool(x) {\n if (x) {\n return 1;\n }\n else {\n return 0;\n }\n}\n\nexport class StatisticHelpers_StatSummary extends Record {\n constructor(DurationSeconds, Amount, Count, IsPrimaryCount) {\n super();\n this.DurationSeconds = (DurationSeconds | 0);\n this.Amount = (Amount | 0);\n this.Count = (Count | 0);\n this.IsPrimaryCount = (IsPrimaryCount | 0);\n }\n}\n\nexport function StatisticHelpers_StatSummary$reflection() {\n return record_type(\"Shared.StatisticHelpers.StatSummary\", [], StatisticHelpers_StatSummary, () => [[\"DurationSeconds\", int32_type], [\"Amount\", int32_type], [\"Count\", int32_type], [\"IsPrimaryCount\", int32_type]]);\n}\n\nexport function StatisticHelpers_createStatSummary(durationSeconds, amount, count, isPrimaryCount) {\n return new StatisticHelpers_StatSummary(durationSeconds, amount, count, isPrimaryCount);\n}\n\nexport function StatisticHelpers_statSummary(duration, amount, count, isPrimary) {\n return StatisticHelpers_createStatSummary(DurationModule_toInt(duration), amount, count, StatisticHelpers_intBool(isPrimary));\n}\n\nexport function StatisticHelpers_sumStatSummary(x, y) {\n return StatisticHelpers_createStatSummary(x.DurationSeconds + y.DurationSeconds, x.Amount + y.Amount, x.Count + y.Count, x.IsPrimaryCount + y.IsPrimaryCount);\n}\n\nexport function StatisticHelpers_calcWorkoutPart(workoutPart) {\n return StatisticHelpers_statSummary(Workout_getWorkoutPartTotalDuration(workoutPart), 0, 1, workoutPart.IsPrimary);\n}\n\nexport function StatisticHelpers_calcEnduranceIntensity(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result, x_1;\n if (matchValue.tag === 0) {\n if (equals(matchValue.fields[0].Intensity, i)) {\n pattern_matching_result = 0;\n x_1 = matchValue.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return StatisticHelpers_statSummary(x_1.Duration, 0, 1, workoutPart.IsPrimary);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcEnduranceActivity(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result, x_1;\n if (matchValue.tag === 0) {\n if (equals(matchValue.fields[0].Activity, i)) {\n pattern_matching_result = 0;\n x_1 = matchValue.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return StatisticHelpers_statSummary(x_1.Duration, 0, 1, workoutPart.IsPrimary);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcStrength(workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n if (matchValue.tag === 1) {\n return StatisticHelpers_statSummary(matchValue.fields[0].Duration, 0, 1, workoutPart.IsPrimary);\n }\n else {\n return void 0;\n }\n}\n\nexport function StatisticHelpers_calcStrengthActivity(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result, x_1;\n if (matchValue.tag === 1) {\n if (equals(matchValue.fields[0].Activity, i)) {\n pattern_matching_result = 0;\n x_1 = matchValue.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return StatisticHelpers_statSummary(x_1.Duration, 0, 1, workoutPart.IsPrimary);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcMobility(workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n if (matchValue.tag === 2) {\n return StatisticHelpers_statSummary(matchValue.fields[0].Duration, 0, 1, workoutPart.IsPrimary);\n }\n else {\n return void 0;\n }\n}\n\nexport function StatisticHelpers_calcSpeed(workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n if (matchValue.tag === 3) {\n return StatisticHelpers_statSummary(DurationModule_empty, matchValue.fields[0].Amount, 1, workoutPart.IsPrimary);\n }\n else {\n return void 0;\n }\n}\n\nexport function StatisticHelpers_calcSpeedActivity(i, workoutPart) {\n const matchValue = workoutPart.WorkoutType;\n let pattern_matching_result, x_1;\n if (matchValue.tag === 3) {\n if (equals(matchValue.fields[0].Activity, i)) {\n pattern_matching_result = 0;\n x_1 = matchValue.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return StatisticHelpers_statSummary(DurationModule_empty, x_1.Amount, 1, workoutPart.IsPrimary);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function StatisticHelpers_calcRest(workoutPart) {\n if (workoutPart.WorkoutType.tag === 4) {\n return StatisticHelpers_statSummary(DurationModule_empty, 1, 1, workoutPart.IsPrimary);\n }\n else {\n return void 0;\n }\n}\n\nexport function StatisticHelpers_facts(list) {\n return map_3((x_1) => x_1.Workout, collect((x) => x.DayFacts, list));\n}\n\nexport function StatisticHelpers_plans(list) {\n return map_3((x_1) => x_1.Workout, collect((x) => x.DayPlans, list));\n}\n\nexport function StatisticHelpers_mapWorkoutParts(f, list) {\n return map_3((x_1) => f(x_1), collect((x) => x.WorkoutParts, list));\n}\n\nexport function StatisticHelpers_foldStatSummaryOpt(list) {\n return fold((accOpt, itemOpt) => StatisticHelpers_folderOpt((x, y) => StatisticHelpers_sumStatSummary(x, y), accOpt, itemOpt), void 0, list);\n}\n\nexport function StatisticHelpers_strSummary(summaryOpt) {\n return defaultArg(map_1((summary) => [DurationModule_intToHMSString(summary.DurationSeconds), toText(interpolate(\"%P() st\", [summary.Amount])), int32ToString(summary.IsPrimaryCount)], summaryOpt), [\"\", \"\", \"\"]);\n}\n\nexport function StatisticHelpers_getSummaryIsPrimaryCount(summaryOpt) {\n return defaultArg(map_1((summary) => summary.IsPrimaryCount, summaryOpt), 0);\n}\n\nexport function StatisticHelpers_calcPlanSummary(f, list) {\n return StatisticHelpers_foldStatSummaryOpt(StatisticHelpers_mapWorkoutParts(f, StatisticHelpers_plans(list)));\n}\n\nexport function StatisticHelpers_calcFactSummary(f, list) {\n return StatisticHelpers_foldStatSummaryOpt(StatisticHelpers_mapWorkoutParts(f, StatisticHelpers_facts(list)));\n}\n\nexport function StatisticHelpers_folded3Sum(x, y, z, s_x, s_y, s_z) {\n return [s_x + x, s_y + y, s_z + z];\n}\n\nexport function StatisticHelpers_calcDayDataSummary(list) {\n return fold((tupledArg, tupledArg_1) => StatisticHelpers_folded3Sum(tupledArg[0], tupledArg[1], tupledArg[2], tupledArg_1[0], tupledArg_1[1], tupledArg_1[2]), [0, 0, 0], map_3((x_2) => [StatisticHelpers_intBool(x_2.IsSick), StatisticHelpers_intBool(x_2.IsDamaged), StatisticHelpers_intBool(x_2.IsTravelDay)], choose((x_1) => x_1, map_3((x) => x.DayData, list))));\n}\n\nexport function StatisticHelpers_calcForm(list) {\n const dayForms = ofSeq(map_3((x_3) => ((dayFact) => [Shape_getShapeIntValue(dayFact.Shape), sumBy((x) => {\n if (equals(x.WorkoutType, new WorkoutType_WorkoutType(4))) {\n return 0;\n }\n else {\n return 1;\n }\n }, dayFact.Workout.WorkoutParts, {\n GetZero: () => 0,\n Add: (x_1, y) => (x_1 + y),\n })])(x_3), collect((x_2) => x_2.DayFacts, list)));\n const formSum = sumBy_1((tuple) => tuple[0], dayForms, {\n GetZero: () => 0,\n Add: (x_4, y_1) => (x_4 + y_1),\n }) | 0;\n const formPartsSum = sumBy_1((tuple_1) => tuple_1[1], dayForms, {\n GetZero: () => 0,\n Add: (x_5, y_2) => (x_5 + y_2),\n }) | 0;\n if (formPartsSum === 0) {\n return 0;\n }\n else {\n return round(formSum / formPartsSum, 1);\n }\n}\n\n","import { oneOf, i32, s, map, custom } from \"./.fable/Fable.Elmish.Browser.3.0.4/parser.fs.js\";\nimport { Calendar_DayInfo, Calendar_WeekInfo, Calendar_PeriodInfo, Calendar_WeekInfo$reflection, Calendar_PeriodInfo$reflection, Calendar_DayInfo$reflection, ScheduleIdModule_fromString, UserIdModule_fromString, GroupIdModule_fromString, SchoolIdModule_fromString, ResetPasswordCodeModule_ofString } from \"../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"./.fable/fable-library.3.2.1/Choice.js\";\nimport { Union } from \"./.fable/fable-library.3.2.1/Types.js\";\nimport { union_type, int32_type, class_type, string_type } from \"./.fable/fable-library.3.2.1/Reflection.js\";\nimport { ofArray, collect } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { interpolate, toText } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { Navigation_modifyUrl, Navigation_newUrl } from \"./.fable/Fable.Elmish.Browser.3.0.4/navigation.fs.js\";\n\nexport function resetPasswordCode(state) {\n return custom(\"ResetPasswordCode\", (arg) => (new FSharpResult$2(0, ResetPasswordCodeModule_ofString(arg))))(state);\n}\n\nexport function schoolId(state) {\n return custom(\"SchoolId\", (arg) => (new FSharpResult$2(0, SchoolIdModule_fromString(arg))))(state);\n}\n\nexport function groupId(state) {\n return custom(\"GroupId\", (arg) => (new FSharpResult$2(0, GroupIdModule_fromString(arg))))(state);\n}\n\nexport function userId(state) {\n return custom(\"UserId\", (arg) => (new FSharpResult$2(0, UserIdModule_fromString(arg))))(state);\n}\n\nexport function scheduleId(state) {\n return custom(\"ScheduleId\", (arg) => (new FSharpResult$2(0, ScheduleIdModule_fromString(arg))))(state);\n}\n\nexport class Route extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Login\", \"ForgotPassword\", \"ResetPassword\", \"Gdpr\", \"Application\", \"Settings\", \"Chat\", \"GroupList\", \"GroupAdd\", \"GroupEdit\", \"StudentList\", \"StudentAdd\", \"StudentEdit\", \"StudentPlan\", \"StudentExternalTeachers\", \"StudentStatistics\", \"GroupStatistics\", \"SchoolStatistics\", \"TeacherList\", \"TeacherAdd\", \"TeacherEdit\", \"ScheduleList\", \"ScheduleAssign\", \"ScheduleCalendarPeriod\", \"ScheduleCalendarWeek\", \"ActivityToday\", \"Activity\", \"Pass\", \"OverviewToday\", \"OverviewPeriod\", \"OverviewWeek\", \"AdminOverview\", \"StudentSchoolEdit\", \"UserRestore\"];\n }\n}\n\nexport function Route$reflection() {\n return union_type(\"Router.Route\", [], Route, () => [[], [], [[\"Item\", string_type]], [], [], [], [[\"Item\", class_type(\"System.Guid\")]], [], [], [[\"Item\", class_type(\"System.Guid\")]], [], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [], [], [[\"Item\", class_type(\"System.Guid\")]], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", int32_type]], [], [[\"Item\", Calendar_DayInfo$reflection()]], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", Calendar_PeriodInfo$reflection()]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", Calendar_WeekInfo$reflection()]], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]]]);\n}\n\nexport const overviewWeekStateParser = (parse_1) => map((userId_1) => ((year) => ((period) => ((week) => [userId_1, new Calendar_WeekInfo(new Calendar_PeriodInfo(year, period), week)]))), parse_1);\n\nexport const overviewPeriodStateParser = (parse_1) => map((userId_1) => ((year) => ((period) => [userId_1, new Calendar_PeriodInfo(year, period)])), parse_1);\n\nexport const activityDayStateParser = (parse_1) => map((year) => ((period) => ((week) => ((weekDay) => (new Calendar_DayInfo(new Calendar_WeekInfo(new Calendar_PeriodInfo(year, period), week), weekDay))))), parse_1);\n\nexport const scheduleCalendarWeekStateParser = (parse_1) => map((scheduleId_1) => ((periodWeek) => [scheduleId_1, periodWeek]), parse_1);\n\nexport const routeParser = (() => {\n let parseBefore, parseBefore_4, parseBefore_2, parseAfter_2, parseBefore_6, parseAfter_6, parseBefore_8, parseAfter_8, parseBefore_12, parseBefore_10, parseAfter_10, parseBefore_14, parseAfter_14, parseBefore_16, parseAfter_16, parseBefore_20, parseBefore_18, parseAfter_18, parseBefore_24, parseBefore_22, parseAfter_22, parseBefore_28, parseBefore_26, parseAfter_26, parseBefore_32, parseBefore_30, parseAfter_30, parseBefore_36, parseBefore_34, parseAfter_34, parseBefore_40, parseBefore_38, parseAfter_38, parseBefore_42, parseAfter_42, parseBefore_44, parseAfter_44, parseBefore_48, parseBefore_46, parseAfter_46, parseBefore_50, parseBefore_58, parseBefore_56, parseBefore_54, parseBefore_52, parseAfter_58, parseBefore_66, parseBefore_64, parseBefore_62, parseBefore_60, parseBefore_74, parseBefore_72, parseBefore_70, parseBefore_68, parseBefore_76, parseAfter_76, parseBefore_78, parseAfter_78, parseBefore_82, parseBefore_80, parseAfter_80, parseBefore_88, parseBefore_86, parseBefore_84, parseAfter_84, parseAfter_88, parseBefore_94, parseBefore_92, parseBefore_90, parseAfter_90, parseBefore_98, parseBefore_96, parseAfter_96, parseBefore_102, parseBefore_100, parseAfter_100;\n const parsers = ofArray([map(new Route(0), s(\"login\")), map(new Route(1), s(\"forgot\")), map((arg0) => (new Route(2, arg0)), (parseBefore = s(\"changepassword\"), (state_1) => collect((state) => resetPasswordCode(state), parseBefore(state_1)))), map(new Route(3), s(\"gdpr\")), map(new Route(4), s(\"application\")), map(new Route(5), s(\"settings\")), map((arg0_1) => (new Route(6, arg0_1)), (parseBefore_4 = (parseBefore_2 = s(\"student\"), (parseAfter_2 = s(\"chat\"), (state_3) => collect(parseAfter_2, parseBefore_2(state_3)))), (state_6) => collect((state_5) => userId(state_5), parseBefore_4(state_6)))), map(new Route(7), (parseBefore_6 = s(\"group\"), (parseAfter_6 = s(\"list\"), (state_8) => collect(parseAfter_6, parseBefore_6(state_8))))), map(new Route(8), (parseBefore_8 = s(\"group\"), (parseAfter_8 = s(\"add\"), (state_10) => collect(parseAfter_8, parseBefore_8(state_10))))), map((arg0_2) => (new Route(9, arg0_2)), (parseBefore_12 = (parseBefore_10 = s(\"group\"), (parseAfter_10 = s(\"edit\"), (state_12) => collect(parseAfter_10, parseBefore_10(state_12)))), (state_15) => collect((state_14) => groupId(state_14), parseBefore_12(state_15)))), map(new Route(10), (parseBefore_14 = s(\"student\"), (parseAfter_14 = s(\"list\"), (state_17) => collect(parseAfter_14, parseBefore_14(state_17))))), map(new Route(11), (parseBefore_16 = s(\"student\"), (parseAfter_16 = s(\"add\"), (state_19) => collect(parseAfter_16, parseBefore_16(state_19))))), map((arg0_3) => (new Route(12, arg0_3)), (parseBefore_20 = (parseBefore_18 = s(\"student\"), (parseAfter_18 = s(\"edit\"), (state_21) => collect(parseAfter_18, parseBefore_18(state_21)))), (state_24) => collect((state_23) => userId(state_23), parseBefore_20(state_24)))), map((arg0_4) => (new Route(13, arg0_4)), (parseBefore_24 = (parseBefore_22 = s(\"student\"), (parseAfter_22 = s(\"plan\"), (state_26) => collect(parseAfter_22, parseBefore_22(state_26)))), (state_29) => collect((state_28) => userId(state_28), parseBefore_24(state_29)))), map((arg0_5) => (new Route(14, arg0_5)), (parseBefore_28 = (parseBefore_26 = s(\"student\"), (parseAfter_26 = s(\"coaches\"), (state_31) => collect(parseAfter_26, parseBefore_26(state_31)))), (state_34) => collect((state_33) => userId(state_33), parseBefore_28(state_34)))), map((arg0_6) => (new Route(15, arg0_6)), (parseBefore_32 = (parseBefore_30 = s(\"student\"), (parseAfter_30 = s(\"statistics\"), (state_36) => collect(parseAfter_30, parseBefore_30(state_36)))), (state_39) => collect((state_38) => userId(state_38), parseBefore_32(state_39)))), map((arg0_7) => (new Route(16, arg0_7)), (parseBefore_36 = (parseBefore_34 = s(\"group\"), (parseAfter_34 = s(\"statistics\"), (state_41) => collect(parseAfter_34, parseBefore_34(state_41)))), (state_44) => collect((state_43) => groupId(state_43), parseBefore_36(state_44)))), map((arg0_8) => (new Route(17, arg0_8)), (parseBefore_40 = (parseBefore_38 = s(\"school\"), (parseAfter_38 = s(\"statistics\"), (state_46) => collect(parseAfter_38, parseBefore_38(state_46)))), (state_49) => collect((state_48) => schoolId(state_48), parseBefore_40(state_49)))), map(new Route(18), (parseBefore_42 = s(\"trainer\"), (parseAfter_42 = s(\"list\"), (state_51) => collect(parseAfter_42, parseBefore_42(state_51))))), map(new Route(19), (parseBefore_44 = s(\"trainer\"), (parseAfter_44 = s(\"add\"), (state_53) => collect(parseAfter_44, parseBefore_44(state_53))))), map((arg0_9) => (new Route(20, arg0_9)), (parseBefore_48 = (parseBefore_46 = s(\"trainer\"), (parseAfter_46 = s(\"edit\"), (state_55) => collect(parseAfter_46, parseBefore_46(state_55)))), (state_58) => collect((state_57) => userId(state_57), parseBefore_48(state_58)))), map((arg0_10) => (new Route(28, arg0_10)), (parseBefore_50 = s(\"overview\"), (state_61) => collect((state_60) => userId(state_60), parseBefore_50(state_61)))), map((tupledArg) => (new Route(29, tupledArg[0], tupledArg[1])), overviewPeriodStateParser((parseBefore_58 = (parseBefore_56 = (parseBefore_54 = (parseBefore_52 = s(\"overview\"), (state_64) => collect((state_63) => userId(state_63), parseBefore_52(state_64))), (state_67) => collect((state_66) => i32(state_66), parseBefore_54(state_67))), (state_70) => collect((state_69) => i32(state_69), parseBefore_56(state_70))), (parseAfter_58 = s(\"5\"), (state_72) => collect(parseAfter_58, parseBefore_58(state_72)))))), map((tupledArg_1) => (new Route(30, tupledArg_1[0], tupledArg_1[1])), overviewWeekStateParser((parseBefore_66 = (parseBefore_64 = (parseBefore_62 = (parseBefore_60 = s(\"overview\"), (state_75) => collect((state_74) => userId(state_74), parseBefore_60(state_75))), (state_78) => collect((state_77) => i32(state_77), parseBefore_62(state_78))), (state_81) => collect((state_80) => i32(state_80), parseBefore_64(state_81))), (state_84) => collect((state_83) => i32(state_83), parseBefore_66(state_84))))), map(new Route(25), s(\"activity\")), map((arg0_13) => (new Route(26, arg0_13)), activityDayStateParser((parseBefore_74 = (parseBefore_72 = (parseBefore_70 = (parseBefore_68 = s(\"activity\"), (state_87) => collect((state_86) => i32(state_86), parseBefore_68(state_87))), (state_90) => collect((state_89) => i32(state_89), parseBefore_70(state_90))), (state_93) => collect((state_92) => i32(state_92), parseBefore_72(state_93))), (state_96) => collect((state_95) => i32(state_95), parseBefore_74(state_96))))), map(new Route(27), (parseBefore_76 = s(\"template\"), (parseAfter_76 = s(\"workout\"), (state_98) => collect(parseAfter_76, parseBefore_76(state_98))))), map(new Route(21), (parseBefore_78 = s(\"schedule\"), (parseAfter_78 = s(\"list\"), (state_100) => collect(parseAfter_78, parseBefore_78(state_100))))), map((arg0_14) => (new Route(22, arg0_14)), (parseBefore_82 = (parseBefore_80 = s(\"schedule\"), (parseAfter_80 = s(\"assign\"), (state_102) => collect(parseAfter_80, parseBefore_80(state_102)))), (state_105) => collect((state_104) => scheduleId(state_104), parseBefore_82(state_105)))), map((arg0_15) => (new Route(23, arg0_15)), (parseBefore_88 = (parseBefore_86 = (parseBefore_84 = s(\"schedule\"), (parseAfter_84 = s(\"calendar\"), (state_107) => collect(parseAfter_84, parseBefore_84(state_107)))), (state_110) => collect((state_109) => scheduleId(state_109), parseBefore_86(state_110))), (parseAfter_88 = s(\"5\"), (state_112) => collect(parseAfter_88, parseBefore_88(state_112))))), map((tupledArg_2) => (new Route(24, tupledArg_2[0], tupledArg_2[1])), scheduleCalendarWeekStateParser((parseBefore_94 = (parseBefore_92 = (parseBefore_90 = s(\"schedule\"), (parseAfter_90 = s(\"calendar\"), (state_114) => collect(parseAfter_90, parseBefore_90(state_114)))), (state_117) => collect((state_116) => scheduleId(state_116), parseBefore_92(state_117))), (state_120) => collect((state_119) => i32(state_119), parseBefore_94(state_120))))), map(new Route(31), s(\"ssf\")), map((arg0_17) => (new Route(32, arg0_17)), (parseBefore_98 = (parseBefore_96 = s(\"student\"), (parseAfter_96 = s(\"school-edit\"), (state_122) => collect(parseAfter_96, parseBefore_96(state_122)))), (state_125) => collect((state_124) => userId(state_124), parseBefore_98(state_125)))), map((arg0_18) => (new Route(33, arg0_18)), (parseBefore_102 = (parseBefore_100 = s(\"user\"), (parseAfter_100 = s(\"restore\"), (state_127) => collect(parseAfter_100, parseBefore_100(state_127)))), (state_130) => collect((state_129) => userId(state_129), parseBefore_102(state_130))))]);\n return (state_132) => oneOf(parsers, state_132);\n})();\n\nexport function toPath(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return \"/#/forgot\";\n }\n case 2: {\n return toText(interpolate(\"/#/changepassword/%A%P()\", [_arg1.fields[0]]));\n }\n case 3: {\n return \"/#/gdpr\";\n }\n case 4: {\n return \"/#/application\";\n }\n case 5: {\n return \"/#/settings\";\n }\n case 6: {\n return toText(interpolate(\"/#/student/chat/%A%P()\", [_arg1.fields[0]]));\n }\n case 7: {\n return \"/#/group/list\";\n }\n case 8: {\n return \"/#/group/add\";\n }\n case 9: {\n return toText(interpolate(\"/#/group/edit/%A%P()\", [_arg1.fields[0]]));\n }\n case 10: {\n return \"/#/student/list\";\n }\n case 11: {\n return \"/#/student/add\";\n }\n case 12: {\n return toText(interpolate(\"/#/student/edit/%A%P()\", [_arg1.fields[0]]));\n }\n case 13: {\n return toText(interpolate(\"/#/student/plan/%A%P()\", [_arg1.fields[0]]));\n }\n case 14: {\n return toText(interpolate(\"/#/student/coaches/%A%P()\", [_arg1.fields[0]]));\n }\n case 15: {\n return toText(interpolate(\"/#/student/statistics/%A%P()\", [_arg1.fields[0]]));\n }\n case 16: {\n return toText(interpolate(\"/#/group/statistics/%A%P()\", [_arg1.fields[0]]));\n }\n case 17: {\n return toText(interpolate(\"/#/school/statistics/%A%P()\", [_arg1.fields[0]]));\n }\n case 18: {\n return \"/#/trainer/list\";\n }\n case 19: {\n return \"/#/trainer/add\";\n }\n case 20: {\n return toText(interpolate(\"/#/trainer/edit/%A%P()\", [_arg1.fields[0]]));\n }\n case 28: {\n return toText(interpolate(\"/#/overview/%A%P()\", [_arg1.fields[0]]));\n }\n case 29: {\n const periodInfo = _arg1.fields[1];\n return toText(interpolate(\"/#/overview/%A%P()/%P()/%P()/5\", [_arg1.fields[0], periodInfo.PeriodYear, periodInfo.Period]));\n }\n case 30: {\n const weekInfo = _arg1.fields[1];\n return toText(interpolate(\"/#/overview/%A%P()/%P()/%P()/%P()\", [_arg1.fields[0], weekInfo.PeriodInfo.PeriodYear, weekInfo.PeriodInfo.Period, weekInfo.PeriodWeek]));\n }\n case 25: {\n return \"/#/activity\";\n }\n case 26: {\n const dayInfo = _arg1.fields[0];\n return toText(interpolate(\"/#/activity/%P()/%P()/%P()/%P()\", [dayInfo.WeekInfo.PeriodInfo.PeriodYear, dayInfo.WeekInfo.PeriodInfo.Period, dayInfo.WeekInfo.PeriodWeek, dayInfo.WeekDay]));\n }\n case 27: {\n return \"/#/template/workout\";\n }\n case 21: {\n return \"/#/schedule/list\";\n }\n case 22: {\n return toText(interpolate(\"/#/schedule/assign/%A%P()\", [_arg1.fields[0]]));\n }\n case 23: {\n return toText(interpolate(\"/#/schedule/calendar/%A%P()/5\", [_arg1.fields[0]]));\n }\n case 24: {\n return toText(interpolate(\"/#/schedule/calendar/%A%P()/%P()\", [_arg1.fields[0], _arg1.fields[1]]));\n }\n case 31: {\n return \"/#/ssf\";\n }\n case 32: {\n return toText(interpolate(\"/#/student/school-edit/%A%P()\", [_arg1.fields[0]]));\n }\n case 33: {\n return toText(interpolate(\"/#/user/restore/%A%P()\", [_arg1.fields[0]]));\n }\n default: {\n return \"/#/login\";\n }\n }\n}\n\nexport function navigateTo(page) {\n return Navigation_newUrl(toPath(page));\n}\n\nexport function modifyUrl(page) {\n return Navigation_modifyUrl(toPath(page));\n}\n\n","import { Convert_fromJson, Convert_serialize } from \"./.fable/Fable.SimpleJson.3.21.0/Json.Converter.fs.js\";\nimport { createTypeInfo } from \"./.fable/Fable.SimpleJson.3.21.0/TypeInfo.Converter.fs.js\";\nimport { Auth_SignedInUser$reflection } from \"../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"./.fable/fable-library.3.2.1/Choice.js\";\nimport { SimpleJson_tryParse } from \"./.fable/Fable.SimpleJson.3.21.0/SimpleJson.fs.js\";\nimport { interpolate, toText } from \"./.fable/fable-library.3.2.1/String.js\";\n\nexport function saveUser(user) {\n localStorage.setItem(\"loggedUser\", Convert_serialize(user, createTypeInfo(Auth_SignedInUser$reflection())));\n}\n\nexport function removeUser() {\n localStorage.removeItem(\"loggedUser\");\n}\n\nexport function getUser() {\n let matchValue;\n let matchValue_1;\n const arg00 = localStorage.getItem(\"loggedUser\");\n try {\n matchValue_1 = (new FSharpResult$2(0, (matchValue = SimpleJson_tryParse(arg00), (matchValue != null) ? Convert_fromJson(matchValue, createTypeInfo(Auth_SignedInUser$reflection())) : (() => {\n throw (new Error(\"Couldn\\u0027t parse the input JSON string because it seems to be invalid\"));\n })())));\n }\n catch (ex) {\n matchValue_1 = (new FSharpResult$2(1, ex.message));\n }\n if (matchValue_1.tag === 1) {\n return void 0;\n }\n else {\n return matchValue_1.fields[0];\n }\n}\n\nexport function setItem(key, value) {\n localStorage.setItem(key, value);\n}\n\nexport function tryGetItem(key) {\n const value = localStorage.getItem(key);\n if (value == null) {\n return void 0;\n }\n else {\n return value;\n }\n}\n\nexport function getToken() {\n const user = getUser();\n if (user != null) {\n return user.AccessToken;\n }\n else {\n return \"\";\n }\n}\n\nexport function getBearerToken() {\n return toText(interpolate(\"Bearer %s%P()\", [getToken()]));\n}\n\n","import { Exception, Record, Union } from \"../fable-library.3.2.1/Types.js\";\nimport { obj_type, class_type, lambda_type, option_type, int32_type, record_type, bool_type, list_type, tuple_type, array_type, uint8_type, string_type, union_type } from \"../fable-library.3.2.1/Reflection.js\";\n\nexport class HttpMethod extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"GET\", \"POST\"];\n }\n}\n\nexport function HttpMethod$reflection() {\n return union_type(\"Fable.Remoting.Client.HttpMethod\", [], HttpMethod, () => [[], []]);\n}\n\nexport class RequestBody extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Empty\", \"Json\", \"Binary\"];\n }\n}\n\nexport function RequestBody$reflection() {\n return union_type(\"Fable.Remoting.Client.RequestBody\", [], RequestBody, () => [[], [[\"Item\", string_type]], [[\"Item\", array_type(uint8_type)]]]);\n}\n\nexport class HttpRequest extends Record {\n constructor(HttpMethod, Url, Headers, RequestBody, WithCredentials) {\n super();\n this.HttpMethod = HttpMethod;\n this.Url = Url;\n this.Headers = Headers;\n this.RequestBody = RequestBody;\n this.WithCredentials = WithCredentials;\n }\n}\n\nexport function HttpRequest$reflection() {\n return record_type(\"Fable.Remoting.Client.HttpRequest\", [], HttpRequest, () => [[\"HttpMethod\", HttpMethod$reflection()], [\"Url\", string_type], [\"Headers\", list_type(tuple_type(string_type, string_type))], [\"RequestBody\", RequestBody$reflection()], [\"WithCredentials\", bool_type]]);\n}\n\nexport class HttpResponse extends Record {\n constructor(StatusCode, ResponseBody) {\n super();\n this.StatusCode = (StatusCode | 0);\n this.ResponseBody = ResponseBody;\n }\n}\n\nexport function HttpResponse$reflection() {\n return record_type(\"Fable.Remoting.Client.HttpResponse\", [], HttpResponse, () => [[\"StatusCode\", int32_type], [\"ResponseBody\", string_type]]);\n}\n\nexport class RemoteBuilderOptions extends Record {\n constructor(CustomHeaders, BaseUrl, Authorization, WithCredentials, RouteBuilder, CustomResponseSerialization) {\n super();\n this.CustomHeaders = CustomHeaders;\n this.BaseUrl = BaseUrl;\n this.Authorization = Authorization;\n this.WithCredentials = WithCredentials;\n this.RouteBuilder = RouteBuilder;\n this.CustomResponseSerialization = CustomResponseSerialization;\n }\n}\n\nexport function RemoteBuilderOptions$reflection() {\n return record_type(\"Fable.Remoting.Client.RemoteBuilderOptions\", [], RemoteBuilderOptions, () => [[\"CustomHeaders\", list_type(tuple_type(string_type, string_type))], [\"BaseUrl\", option_type(string_type)], [\"Authorization\", option_type(string_type)], [\"WithCredentials\", bool_type], [\"RouteBuilder\", lambda_type(string_type, lambda_type(string_type, string_type))], [\"CustomResponseSerialization\", option_type(lambda_type(array_type(uint8_type), lambda_type(class_type(\"System.Type\"), obj_type)))]]);\n}\n\nexport class ProxyRequestException extends Exception {\n constructor(response, errorMsg, reponseText) {\n super(errorMsg);\n this.response = response;\n this.reponseText = reponseText;\n }\n}\n\nexport function ProxyRequestException$reflection() {\n return class_type(\"Fable.Remoting.Client.ProxyRequestException\", void 0, ProxyRequestException, class_type(\"System.Exception\"));\n}\n\nexport function ProxyRequestException_$ctor_76BC5104(response, errorMsg, reponseText) {\n return new ProxyRequestException(response, errorMsg, reponseText);\n}\n\nexport function ProxyRequestException__get_Response(this$) {\n return this$.response;\n}\n\nexport function ProxyRequestException__get_StatusCode(this$) {\n return this$.response.StatusCode;\n}\n\nexport function ProxyRequestException__get_ResponseText(this$) {\n return this$.reponseText;\n}\n\n","import * as toastr$002Emin from \"toastr/build/toastr.min.css\";\nimport { Record } from \"../fable-library.3.2.1/Types.js\";\nimport { record_type, option_type, lambda_type, unit_type, class_type, string_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { clear, remove, options as options_1, warning, info, error, success } from \"toastr\";\nimport { singleton } from \"../fable-library.3.2.1/List.js\";\n\n\nexport class Toastr_ToastrMsg$1 extends Record {\n constructor(Message, Title, Options, Dispatcher) {\n super();\n this.Message = Message;\n this.Title = Title;\n this.Options = Options;\n this.Dispatcher = Dispatcher;\n }\n}\n\nexport function Toastr_ToastrMsg$1$reflection(gen0) {\n return record_type(\"Elmish.Toastr.Toastr.ToastrMsg`1\", [gen0], Toastr_ToastrMsg$1, () => [[\"Message\", string_type], [\"Title\", string_type], [\"Options\", class_type(\"Elmish.Toastr.ToastrOptions\")], [\"Dispatcher\", option_type(lambda_type(gen0, unit_type))]]);\n}\n\nexport function Toastr_defaultMsg() {\n return new Toastr_ToastrMsg$1(\"\", \"\", {}, void 0);\n}\n\nconst Toastr_successToastWithTitle = success;\n\nconst Toastr_errorToastWithTitle = error;\n\nconst Toastr_infoToastWithTitle = info;\n\nconst Toastr_warningToastWithTitle = warning;\n\nexport function Toastr_message(msg) {\n const inputRecord = Toastr_defaultMsg();\n return new Toastr_ToastrMsg$1(msg, inputRecord.Title, inputRecord.Options, inputRecord.Dispatcher);\n}\n\nexport function Toastr_title(title, msg) {\n return new Toastr_ToastrMsg$1(msg.Message, title, msg.Options, msg.Dispatcher);\n}\n\nexport function Toastr_timeout(timeout, msg) {\n msg.Options.timeOut=timeout;\n return msg;\n}\n\nexport function Toastr_position(pos, msg) {\n msg.Options.positionClass=pos;\n return msg;\n}\n\nexport function Toastr_extendedTimout(t, msg) {\n msg.Options.extendedTimeOut=t;\n return msg;\n}\n\nexport function Toastr_onClick(nextMsg, msg) {\n msg.Options.onclick = (() => {\n const matchValue = msg.Dispatcher;\n if (matchValue == null) {\n }\n else {\n matchValue(nextMsg);\n }\n });\n return msg;\n}\n\nexport function Toastr_onShown(nextMsg, msg) {\n msg.Options.onShown = (() => {\n const matchValue = msg.Dispatcher;\n if (matchValue == null) {\n }\n else {\n matchValue(nextMsg);\n }\n });\n return msg;\n}\n\nexport function Toastr_tapToDismiss(msg) {\n msg.Options.tapToDismiss = true;\n return msg;\n}\n\nexport function Toastr_onHidden(nextMsg, msg) {\n msg.Options.onHidden = (() => {\n const matchValue = msg.Dispatcher;\n if (matchValue == null) {\n }\n else {\n matchValue(nextMsg);\n }\n });\n return msg;\n}\n\nexport function Toastr_showCloseButton(msg) {\n msg.Options.closeButton = true;\n return msg;\n}\n\nexport function Toastr_withProgressBar(msg) {\n msg.Options.progressBar = true;\n return msg;\n}\n\nexport function Toastr_closeButtonClicked(nextMsg, msg) {\n msg.Options.onCloseClick = (() => {\n const matchValue = msg.Dispatcher;\n if (matchValue == null) {\n }\n else {\n matchValue(nextMsg);\n }\n });\n return msg;\n}\n\nexport function Toastr_hideEasing(e, msg) {\n msg.Options.hideEasing = e;\n return msg;\n}\n\nlet Toastr_options = options_1;\n\nexport function Toastr_overrideOptions(opts) {\n Toastr_options = (Object.assign({}, Toastr_options, opts));\n}\n\nconst Toastr_remove = remove;\n\nconst Toastr_clear = clear;\n\nexport function Toastr_clearAll() {\n return singleton((_arg1) => {\n Toastr_clear();\n });\n}\n\nexport function Toastr_removeAll() {\n return singleton((_arg1) => {\n Toastr_remove();\n });\n}\n\nexport function Toastr_success(msg) {\n return singleton((dispatch) => {\n msg.Dispatcher = dispatch;\n Toastr_successToastWithTitle(msg.Message, msg.Title, msg.Options);\n });\n}\n\nexport function Toastr_error(msg) {\n return singleton((dispatch) => {\n msg.Dispatcher = dispatch;\n Toastr_errorToastWithTitle(msg.Message, msg.Title, msg.Options);\n });\n}\n\nexport function Toastr_info(msg) {\n return singleton((dispatch) => {\n msg.Dispatcher = dispatch;\n Toastr_infoToastWithTitle(msg.Message, msg.Title, msg.Options);\n });\n}\n\nexport function Toastr_warning(msg) {\n return singleton((dispatch) => {\n msg.Dispatcher = dispatch;\n Toastr_warningToastWithTitle(msg.Message, msg.Title, msg.Options);\n });\n}\n\n","import { isMatch, create } from \"../fable-library.3.2.1/RegExp.js\";\nimport { toString, Record, Union } from \"../fable-library.3.2.1/Types.js\";\nimport { class_type, record_type, string_type, union_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { FSharpMap__get_Item, add, empty } from \"../fable-library.3.2.1/Map.js\";\nimport { contains, fold, empty as empty_1, singleton } from \"../fable-library.3.2.1/List.js\";\nimport { singleton as singleton_1 } from \"../fable-library.3.2.1/AsyncBuilder.js\";\nimport { value as value_3, some } from \"../fable-library.3.2.1/Option.js\";\nimport { FSharpResult$2 } from \"../fable-library.3.2.1/Choice.js\";\nimport { replace, printf, toConsole, isNullOrWhiteSpace } from \"../fable-library.3.2.1/String.js\";\nimport { structuralHash, equals, int32ToString, compare } from \"../fable-library.3.2.1/Util.js\";\nimport { forAll, length } from \"../fable-library.3.2.1/Seq.js\";\n\nexport const ValidateRegexes_mail = create(\"^(([^\\u003c\\u003e()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\\\"]+(\\\\.[^\\u003c\\u003e()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\\\"]+)*)|(\\\".+\\\"))@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}])|(([a-zA-Z\\\\-0-9]+\\\\.)+[a-zA-Z]{2,}))$\", 0);\n\nexport const ValidateRegexes_url = create(\"^((([A-Za-z]{3,9}:(?:\\\\/\\\\/)?)(?:[\\\\-;:\\u0026=\\\\+\\\\$,\\\\w]+@)?[A-Za-z0-9\\\\.\\\\-]+|(?:www\\\\.|[\\\\-;:\\u0026=\\\\+\\\\$,\\\\w]+@)[A-Za-z0-9\\\\.\\\\-]+)((?:\\\\/[\\\\+~%\\\\/\\\\.\\\\w\\\\-_]*)?\\\\??(?:[\\\\-\\\\+=\\u0026;%@\\\\.\\\\w_]*)#?(?:[\\\\.\\\\!\\\\/\\\\\\\\\\\\w]*))?)$\", 0);\n\nexport class ValidateResult$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Valid\", \"Invalid\"];\n }\n}\n\nexport function ValidateResult$1$reflection(gen0) {\n return union_type(\"Fable.Validation.Core.ValidateResult`1\", [gen0], ValidateResult$1, () => [[[\"Item\", gen0]], []]);\n}\n\nexport function ValidateResult$1__get_IsValid_(x) {\n if (x.tag === 0) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function ValidateResult$1__get_IsInvalid_(x) {\n return !ValidateResult$1__get_IsValid_(x);\n}\n\nexport class FieldInfo$3 extends Record {\n constructor(key, original, result, validator) {\n super();\n this.key = key;\n this.original = original;\n this.result = result;\n this.validator = validator;\n }\n}\n\nexport function FieldInfo$3$reflection(gen0, gen1, gen2) {\n return record_type(\"Fable.Validation.Core.FieldInfo`3\", [gen0, gen1, gen2], FieldInfo$3, () => [[\"key\", string_type], [\"original\", gen0], [\"result\", ValidateResult$1$reflection(gen1)], [\"validator\", Validator$1$reflection(gen2)]]);\n}\n\nexport class Validator$1 {\n constructor(all) {\n this.all = all;\n this.errors = empty();\n this.hasError = false;\n }\n}\n\nexport function Validator$1$reflection(gen0) {\n return class_type(\"Fable.Validation.Core.Validator`1\", [gen0], Validator$1);\n}\n\nexport function Validator$1_$ctor_Z1FBCCD16(all) {\n return new Validator$1(all);\n}\n\nexport function FieldInfo$3__Replace_74DD2B89(x, result) {\n return new FieldInfo$3(x.key, x.original, result, x.validator);\n}\n\nexport function Validator$1__get_HasError(__) {\n return __.hasError;\n}\n\nexport function Validator$1__get_Errors(__) {\n return __.errors;\n}\n\nexport function Validator$1__PushError(__, name, error) {\n if (!__.hasError) {\n __.hasError = true;\n }\n __.errors = add(name, singleton(error), __.errors);\n}\n\nexport function Validator$1__Test(x, name, value) {\n x.errors = add(name, empty_1(), x.errors);\n if ((!x.all) ? x.hasError : false) {\n return new FieldInfo$3(name, value, new ValidateResult$1(1), x);\n }\n else {\n return new FieldInfo$3(name, value, new ValidateResult$1(0, value), x);\n }\n}\n\nexport function Validator$1__End_Z5E18B1E2(__, input) {\n const matchValue = input.result;\n if (matchValue.tag === 0) {\n return matchValue.fields[0];\n }\n else {\n return null;\n }\n}\n\nexport function Validator$1__EndAsync_7C134CD2(x, input) {\n return singleton_1.Delay(() => singleton_1.Bind(input, (_arg1) => singleton_1.Return(Validator$1__End_Z5E18B1E2(x, _arg1))));\n}\n\nexport function Validator$1__TestOnlySome(t, name, value, rules) {\n if (value == null) {\n return void 0;\n }\n else {\n return ((arg) => some(Validator$1__End_Z5E18B1E2(t, arg)))(fold((acc, f) => f(acc), Validator$1__Test(t, name, value_3(value)), rules));\n }\n}\n\nexport function Validator$1__TestOnlyOk(t, name, value, rules) {\n if (value.tag === 1) {\n return new FSharpResult$2(1, value.fields[0]);\n }\n else {\n return ((arg) => (new FSharpResult$2(0, Validator$1__End_Z5E18B1E2(t, arg))))(fold((acc, f) => f(acc), Validator$1__Test(t, name, value.fields[0]), rules));\n }\n}\n\nexport function Validator$1__TestOnlySomeAsync(t, name, value, rules) {\n return singleton_1.Delay(() => {\n let arg10, arg10_1;\n return (value == null) ? singleton_1.Return(void 0) : singleton_1.ReturnFrom((arg10 = (arg10_1 = value_3(value), singleton_1.Delay(() => singleton_1.Return(Validator$1__Test(t, name, arg10_1)))), singleton_1.Delay(() => singleton_1.Bind(fold((acc, f) => f(acc), arg10, rules), (_arg2) => singleton_1.Return(((arg) => some(Validator$1__End_Z5E18B1E2(t, arg)))(_arg2))))));\n });\n}\n\nexport function Validator$1__TestOnlyOkAsync(t, name, value, rules) {\n return singleton_1.Delay(() => {\n let arg10;\n return (value.tag === 1) ? singleton_1.Return(new FSharpResult$2(1, value.fields[0])) : singleton_1.ReturnFrom((arg10 = singleton_1.Delay(() => singleton_1.Return(Validator$1__Test(t, name, value.fields[0]))), singleton_1.Delay(() => singleton_1.Bind(fold((acc, f) => f(acc), arg10, rules), (_arg2) => singleton_1.Return(((arg) => (new FSharpResult$2(0, Validator$1__End_Z5E18B1E2(t, arg))))(_arg2))))));\n });\n}\n\nexport function Validator$1__IsValidOpt(__, tester, error, input) {\n const matchValue = input.result;\n if (matchValue.tag === 0) {\n const result = tester(matchValue.fields[0]);\n if (ValidateResult$1__get_IsInvalid_(result)) {\n Validator$1__PushError(input.validator, input.key, error);\n }\n return FieldInfo$3__Replace_74DD2B89(input, result);\n }\n else {\n return FieldInfo$3__Replace_74DD2B89(input, new ValidateResult$1(1));\n }\n}\n\nexport function Validator$1__IsValid_Z4CF01147(x, tester) {\n return (arg10) => ((arg20) => Validator$1__IsValidOpt(x, (v) => (tester(v) ? (new ValidateResult$1(0, v)) : (new ValidateResult$1(1))), arg10, arg20));\n}\n\nexport function Validator$1__IsValidOptAsync(__, tester, error, input) {\n return singleton_1.Delay(() => singleton_1.Bind(input, (_arg3) => {\n const input_1 = _arg3;\n const matchValue = input_1.result;\n return (matchValue.tag === 1) ? singleton_1.Return(FieldInfo$3__Replace_74DD2B89(input_1, new ValidateResult$1(1))) : singleton_1.Bind(tester(matchValue.fields[0]), (_arg4) => {\n const result = _arg4;\n return singleton_1.Combine(ValidateResult$1__get_IsInvalid_(result) ? (Validator$1__PushError(input_1.validator, input_1.key, error), singleton_1.Zero()) : singleton_1.Zero(), singleton_1.Delay(() => singleton_1.Return(FieldInfo$3__Replace_74DD2B89(input_1, result))));\n });\n }));\n}\n\nexport function Validator$1__IsValidAsync_339E6CF5(x, tester) {\n return (arg10) => ((arg20) => Validator$1__IsValidOptAsync(x, (v) => singleton_1.Delay(() => singleton_1.Bind(tester(v), (_arg5) => singleton_1.Return(_arg5 ? (new ValidateResult$1(0, v)) : (new ValidateResult$1(1))))), arg10, arg20));\n}\n\nexport function Validator$1__Trim_Z300EABB2(__, input) {\n const matchValue = input.result;\n if (matchValue.tag === 1) {\n return input;\n }\n else {\n return FieldInfo$3__Replace_74DD2B89(input, new ValidateResult$1(0, matchValue.fields[0].trim()));\n }\n}\n\nexport function Validator$1__NotBlank_2B595(x, err) {\n return Validator$1__IsValid_Z4CF01147(x, (arg) => (!isNullOrWhiteSpace(arg)))(err);\n}\n\nexport function Validator$1__IsSome_2B595(x, error) {\n return (arg20) => Validator$1__IsValidOpt(x, (i) => {\n if (i != null) {\n return new ValidateResult$1(0, value_3(i));\n }\n else {\n return new ValidateResult$1(1);\n }\n }, error, arg20);\n}\n\nexport function Validator$1__DefaultOfNone(__, defaults, input) {\n const matchValue = input.result;\n let pattern_matching_result, value;\n if (matchValue.tag === 0) {\n if (matchValue.fields[0] != null) {\n pattern_matching_result = 0;\n value = value_3(matchValue.fields[0]);\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return FieldInfo$3__Replace_74DD2B89(input, new ValidateResult$1(0, value));\n }\n case 1: {\n return FieldInfo$3__Replace_74DD2B89(input, new ValidateResult$1(0, defaults));\n }\n }\n}\n\nexport function Validator$1__IsOk_2B595(x, error) {\n return (arg20) => Validator$1__IsValidOpt(x, (i) => {\n if (i.tag === 0) {\n return new ValidateResult$1(0, i.fields[0]);\n }\n else {\n return new ValidateResult$1(1);\n }\n }, error, arg20);\n}\n\nexport function Validator$1__DefaultOfError(__, defaults, input) {\n const matchValue = input.result;\n let pattern_matching_result, value;\n if (matchValue.tag === 0) {\n if (matchValue.fields[0].tag === 0) {\n pattern_matching_result = 0;\n value = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return FieldInfo$3__Replace_74DD2B89(input, new ValidateResult$1(0, value));\n }\n case 1: {\n return FieldInfo$3__Replace_74DD2B89(input, new ValidateResult$1(0, defaults));\n }\n }\n}\n\nexport function Validator$1__Map_7C4B0DD6(x, fn) {\n return (arg20) => Validator$1__IsValidOpt(x, (arg) => (new ValidateResult$1(0, fn(arg))), null, arg20);\n}\n\nexport function Validator$1__To_7C4B0DD6(x, fn) {\n return (arg10) => ((arg20) => Validator$1__IsValidOpt(x, (t) => {\n try {\n return new ValidateResult$1(0, fn(t));\n }\n catch (exn) {\n const arg40 = exn.stack;\n const arg30 = exn.message;\n toConsole(printf(\"Validation Map error: \\nfn: %A \\nvalue: %A \\nException: %s %s\"))(fn)(t)(arg30)(arg40);\n return new ValidateResult$1(1);\n }\n }, arg10, arg20));\n}\n\nexport function Validator$1__ToAsync_Z5E18B1E2(__, input) {\n return singleton_1.Delay(() => singleton_1.Return(input));\n}\n\nexport function Validator$1__Gt(x, min, err) {\n let copyOfStruct;\n let err_1;\n const matchValue = err;\n err_1 = (((typeof matchValue) === \"string\") ? replace(matchValue, \"{min}\", (copyOfStruct = min, toString(copyOfStruct))) : err);\n return Validator$1__IsValid_Z4CF01147(x, (input) => (compare(input, min) > 0))(err_1);\n}\n\nexport function Validator$1__Gte(x, min, err) {\n let copyOfStruct;\n let err_1;\n const matchValue = err;\n err_1 = (((typeof matchValue) === \"string\") ? replace(matchValue, \"{min}\", (copyOfStruct = min, toString(copyOfStruct))) : err);\n return Validator$1__IsValid_Z4CF01147(x, (input) => (compare(input, min) >= 0))(err_1);\n}\n\nexport function Validator$1__Lt(x, max, err) {\n let copyOfStruct;\n let err_1;\n const matchValue = err;\n err_1 = (((typeof matchValue) === \"string\") ? replace(matchValue, \"{max}\", (copyOfStruct = max, toString(copyOfStruct))) : err);\n return Validator$1__IsValid_Z4CF01147(x, (input) => (compare(input, max) < 0))(err_1);\n}\n\nexport function Validator$1__Lte(x, max, err) {\n let copyOfStruct;\n let err_1;\n const matchValue = err;\n err_1 = (((typeof matchValue) === \"string\") ? replace(matchValue, \"{max}\", (copyOfStruct = max, toString(copyOfStruct))) : err);\n return Validator$1__IsValid_Z4CF01147(x, (input) => (compare(input, max) <= 0))(err_1);\n}\n\nexport function Validator$1__MaxLen(x, len, err, input) {\n let copyOfStruct;\n let err_1;\n const matchValue = err;\n err_1 = (((typeof matchValue) === \"string\") ? replace(matchValue, \"{len}\", (copyOfStruct = len, int32ToString(copyOfStruct))) : err);\n return Validator$1__IsValid_Z4CF01147(x, (input_1) => (length(input_1) <= len))(err_1)(input);\n}\n\nexport function Validator$1__MinLen(x, len, err, input) {\n let copyOfStruct;\n let err_1;\n const matchValue = err;\n err_1 = (((typeof matchValue) === \"string\") ? replace(matchValue, \"{len}\", (copyOfStruct = len, int32ToString(copyOfStruct))) : err);\n return Validator$1__IsValid_Z4CF01147(x, (input_1) => (length(input_1) >= len))(err_1)(input);\n}\n\nexport function Validator$1__Enum_Z5DE735D9(x, enums) {\n return Validator$1__IsValid_Z4CF01147(x, (input) => contains(input, enums, {\n Equals: (x_1, y) => equals(x_1, y),\n GetHashCode: (x_1) => structuralHash(x_1),\n }));\n}\n\nexport function Validator$1__IsMail(x, error, input) {\n return Validator$1__IsValid_Z4CF01147(x, (arg00) => isMatch(ValidateRegexes_mail, arg00))(error)(input);\n}\n\nexport function Validator$1__IsUrl(x, error, input) {\n return Validator$1__IsValid_Z4CF01147(x, (arg00) => isMatch(ValidateRegexes_url, arg00))(error)(input);\n}\n\nexport function Validator$1__Match(x, regex, error, input) {\n return Validator$1__IsValid_Z4CF01147(x, (arg00) => isMatch(regex, arg00))(error)(input);\n}\n\nexport function Validator$1__IsDegist(x, error, input) {\n return Validator$1__IsValid_Z4CF01147(x, (str) => forAll((c) => {\n if (c >= \"0\") {\n return c <= \"9\";\n }\n else {\n return false;\n }\n }, str.split(\"\")))(error)(input);\n}\n\nfunction instance() {\n return Validator$1_$ctor_Z1FBCCD16(true);\n}\n\nexport function isValid() {\n const objectArg = instance();\n return (arg00) => Validator$1__IsValid_Z4CF01147(objectArg, arg00);\n}\n\nexport function isValidOpt() {\n const objectArg = instance();\n return (arg00) => ((arg10) => ((arg20) => Validator$1__IsValidOpt(objectArg, arg00, arg10, arg20)));\n}\n\nexport function isValidAsync() {\n const objectArg = instance();\n return (arg00) => Validator$1__IsValidAsync_339E6CF5(objectArg, arg00);\n}\n\nexport function isValidOptAsync() {\n const objectArg = instance();\n return (arg00) => ((arg10) => ((arg20) => Validator$1__IsValidOptAsync(objectArg, arg00, arg10, arg20)));\n}\n\nexport function validateSync(all, tester) {\n const validator = Validator$1_$ctor_Z1FBCCD16(all);\n const ret = tester(validator);\n if (Validator$1__get_HasError(validator)) {\n return new FSharpResult$2(1, Validator$1__get_Errors(validator));\n }\n else {\n return new FSharpResult$2(0, ret);\n }\n}\n\nexport function validateAsync(all, tester) {\n return singleton_1.Delay(() => {\n const validator = Validator$1_$ctor_Z1FBCCD16(all);\n return singleton_1.Bind(tester(validator), (_arg1) => (Validator$1__get_HasError(validator) ? singleton_1.Return(new FSharpResult$2(1, Validator$1__get_Errors(validator))) : singleton_1.Return(new FSharpResult$2(0, _arg1))));\n });\n}\n\nexport function single(tester) {\n const t = Validator$1_$ctor_Z1FBCCD16(true);\n const ret = tester(t);\n if (Validator$1__get_HasError(t)) {\n return new FSharpResult$2(1, FSharpMap__get_Item(Validator$1__get_Errors(t), \"s\"));\n }\n else {\n return new FSharpResult$2(0, ret);\n }\n}\n\nexport function singleAsync(tester) {\n return singleton_1.Delay(() => {\n const t = Validator$1_$ctor_Z1FBCCD16(true);\n return singleton_1.Bind(tester(t), (_arg1) => (Validator$1__get_HasError(t) ? singleton_1.Return(new FSharpResult$2(1, FSharpMap__get_Item(Validator$1__get_Errors(t), \"s\"))) : singleton_1.Return(new FSharpResult$2(0, _arg1))));\n });\n}\n\n","import { Union } from \"./.fable/fable-library.3.2.1/Types.js\";\nimport { class_type, union_type } from \"./.fable/fable-library.3.2.1/Reflection.js\";\nimport { Cmd_ofSub } from \"./.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { createCancellationToken, startImmediate } from \"./.fable/fable-library.3.2.1/Async.js\";\nimport { singleton } from \"./.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { removeUser } from \"./LocalStorage.fs.js\";\nimport { ProxyRequestException__get_StatusCode, ProxyRequestException } from \"./.fable/Fable.Remoting.Client.7.16.0/Types.fs.js\";\nimport { Result_MapError, Result_Map } from \"./.fable/fable-library.3.2.1/Choice.js\";\nimport { Toastr_title, Toastr_extendedTimout, Toastr_showCloseButton, Toastr_error, Toastr_warning, Toastr_message, Toastr_position, Toastr_timeout, Toastr_success } from \"./.fable/Elmish.Toastr.2.1.0/Elmish.Toastr.fs.js\";\nimport { warning, info, error as error_1, success } from \"toastr\";\nimport { defaultArg } from \"./.fable/fable-library.3.2.1/Option.js\";\nimport { empty as empty_1, tryFind } from \"./.fable/fable-library.3.2.1/Map.js\";\nimport { isEmpty, fold, empty } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { interpolate, toText } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"./.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { Auth_LogInRequest, EmailModule_ofString } from \"../Shared/Shared.fs.js\";\nimport { equals } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { toList } from \"./.fable/fable-library.3.2.1/Seq.js\";\n\nexport class DeferredResult$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"HasNotStartedYet\", \"InProgress\", \"Resolved\"];\n }\n}\n\nexport function DeferredResult$1$reflection(gen0) {\n return union_type(\"Extensions.DeferredResult`1\", [gen0], DeferredResult$1, () => [[], [], [[\"Item\", gen0]]]);\n}\n\nexport class AsyncOperationStatus$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Started\", \"Finished\"];\n }\n}\n\nexport function AsyncOperationStatus$1$reflection(gen0) {\n return union_type(\"Extensions.AsyncOperationStatus`1\", [gen0], AsyncOperationStatus$1, () => [[], [[\"Item\", gen0]]]);\n}\n\nexport function Cmd_fromAsync(operation) {\n return Cmd_ofSub((dispatch) => {\n startImmediate(singleton.Delay(() => singleton.Bind(operation, (_arg1) => {\n dispatch(_arg1);\n return singleton.Zero();\n })));\n });\n}\n\nexport function Cmd_fromAsyncCsp(operation) {\n const cs = createCancellationToken();\n return [Cmd_ofSub((dispatch) => {\n startImmediate(singleton.Delay(() => singleton.Bind(operation, (_arg1) => {\n dispatch(_arg1);\n return singleton.Zero();\n })), cs);\n }), cs];\n}\n\nexport function Remoting_handleNonAuth(computation) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.ReturnFrom(computation)), (_arg1) => {\n let pattern_matching_result, ex_1;\n if (_arg1 instanceof ProxyRequestException) {\n if (ProxyRequestException__get_StatusCode(_arg1) === 401) {\n pattern_matching_result = 0;\n ex_1 = _arg1;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n console.debug(\"Catch 401, removing user from storage and raise un-authorize event\");\n removeUser();\n document.dispatchEvent(new Event('Fable.Remoting.Unauthorized'));\n return singleton.Return((() => {\n throw ex_1;\n })());\n }\n case 1: {\n throw _arg1;\n return null;\n }\n }\n }));\n}\n\nexport function Remoting_subscribe(msg, model) {\n return Cmd_ofSub((dispatch) => {\n document.addEventListener('Fable.Remoting.Unauthorized', function (e) {(() => {\n dispatch(msg);\n })() });\n });\n}\n\nexport function Remoting_userChanged(userUpdate) {\n document.dispatchEvent(new CustomEvent('User.Changed',{ detail: {userUpdate: userUpdate}}));\n}\n\nexport function Remoting_subscribeUserChangedEvent(msg) {\n return Cmd_ofSub((dispatch) => {\n document.addEventListener('User.Changed', function (e) {((x) => {\n dispatch(msg(x));\n })(e.detail.userUpdate) });\n });\n}\n\nexport function KeyValuePair_key(x) {\n return x[0];\n}\n\nexport function KeyValuePair_value(x) {\n return x[1];\n}\n\nexport function KeyValuePair_create(key, value) {\n return [key, value];\n}\n\nexport function DeferredResult_map(f, x) {\n switch (x.tag) {\n case 1: {\n return new DeferredResult$1(1);\n }\n case 2: {\n return new DeferredResult$1(2, Result_Map(f, x.fields[0]));\n }\n default: {\n return new DeferredResult$1(0);\n }\n }\n}\n\nexport function DeferredResult_mapError(f, x) {\n switch (x.tag) {\n case 1: {\n return new DeferredResult$1(1);\n }\n case 2: {\n return new DeferredResult$1(2, Result_MapError(f, x.fields[0]));\n }\n default: {\n return new DeferredResult$1(0);\n }\n }\n}\n\nexport function DeferredResult_fold(fOk, fError, fDefault, x) {\n let pattern_matching_result, x_1, error;\n if (x.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (x.tag === 2) {\n if (x.fields[0].tag === 1) {\n pattern_matching_result = 2;\n error = x.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n x_1 = x.fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return fDefault();\n }\n case 1: {\n return fOk(x_1);\n }\n case 2: {\n return fError(error);\n }\n }\n}\n\nexport function DeferredResult_tee(f, x) {\n let pattern_matching_result, item;\n if (x.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (x.tag === 2) {\n if (x.fields[0].tag === 1) {\n pattern_matching_result = 2;\n }\n else {\n pattern_matching_result = 1;\n item = x.fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return x;\n }\n case 1: {\n f(item);\n return x;\n }\n case 2: {\n return x;\n }\n }\n}\n\nexport function DeferredResult_isOk(x) {\n return DeferredResult_fold((_arg1) => true, (_arg2) => false, () => false, x);\n}\n\nexport function DeferredResult_isError(x) {\n return DeferredResult_fold((_arg1) => false, (_arg2) => true, () => false, x);\n}\n\nexport function View_Cmd_toastSuccess(msg) {\n return Toastr_success(Toastr_timeout(1000, Toastr_position(\"toast-top-right\", Toastr_message(msg))));\n}\n\nexport function View_Cmd_toastWarning(msg) {\n return Toastr_warning(Toastr_position(\"toast-top-right\", Toastr_message(msg)));\n}\n\nexport function View_Cmd_toastError(msg) {\n return Toastr_error(Toastr_position(\"toast-top-right\", Toastr_message(msg)));\n}\n\nexport function View_Cmd_toastServerError(title, msg) {\n return Toastr_error(Toastr_showCloseButton(Toastr_timeout(0, Toastr_extendedTimout(0, Toastr_position(\"toast-top-right\", Toastr_title(title, Toastr_message(msg)))))));\n}\n\nconst Toastr_successToastWithTitle = success;\n\nconst Toastr_errorToastWithTitle = error_1;\n\nconst Toastr_infoToastWithTitle = info;\n\nconst Toastr_warningToastWithTitle = warning;\n\nexport function Toastr_toastSuccess(msg, title) {\n Toastr_successToastWithTitle(msg, title, {});\n}\n\nexport function Toastr_toastWarning(msg, title) {\n Toastr_warningToastWithTitle(msg, title, {});\n}\n\nexport function Toastr_toastError(msg, title) {\n Toastr_errorToastWithTitle(msg, title, {});\n}\n\nexport function Form_filter(x, errors) {\n if (x) {\n return errors;\n }\n else {\n return void 0;\n }\n}\n\nexport function Form_getFieldError(errors, field) {\n return defaultArg(tryFind(field, errors), empty());\n}\n\nexport function Form_Field_errors(fieldName, errors) {\n return Form_getFieldError(errors, fieldName);\n}\n\nexport function Form_Field_errorsAsString(fieldName) {\n return (arg) => fold((s, x) => toText(interpolate(\"%s%P() %s%P()\", [s, x])), \"\", Form_Field_errors(fieldName, arg));\n}\n\nexport function Form_Field_hasErrors(fieldName) {\n return (arg_1) => (!isEmpty(Form_Field_errors(fieldName, arg_1)));\n}\n\nexport function Form_validateLogin(user) {\n return validateSync(true, (t) => (new Auth_LogInRequest(EmailModule_ofString(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Email is required\")(Validator$1__Test(t, \"Email\", user.Email)))), Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Password is required\")(Validator$1__Test(t, \"Password\", user.Password))))));\n}\n\nexport function Form_validationLogin(user, validationState) {\n const form = Form_validateLogin(user);\n if (form.tag === 1) {\n return validationState ? form.fields[0] : empty_1();\n }\n else {\n return empty_1();\n }\n}\n\nexport class FlatpickrExtensions_Locales {\n constructor() {\n }\n}\n\nexport function FlatpickrExtensions_Locales$reflection() {\n return class_type(\"Extensions.FlatpickrExtensions.Locales\", void 0, FlatpickrExtensions_Locales);\n}\n\nexport function Feliz_Recharts_Interop_objectHas(keys, x) {\n return equals(keys, toList(Object.keys(x)));\n}\n\n","import { some } from \"../fable-library.3.2.1/Option.js\";\nimport { create, isLeapYear } from \"../fable-library.3.2.1/Date.js\";\nimport { parse } from \"../fable-library.3.2.1/Int32.js\";\nimport { split, isNullOrWhiteSpace } from \"../fable-library.3.2.1/String.js\";\nimport { equalsWith } from \"../fable-library.3.2.1/Array.js\";\nimport { comparePrimitives } from \"../fable-library.3.2.1/Util.js\";\nimport react from \"react\";\n\nexport function DateParsing_$007CBetween$007C_$007C(x, y, input) {\n if ((input >= x) ? (input <= y) : false) {\n return some(void 0);\n }\n else {\n return void 0;\n }\n}\n\nexport function DateParsing_isLeapYear(year) {\n return isLeapYear(year);\n}\n\nexport function DateParsing_$007CInt$007C_$007C(input) {\n try {\n return parse(input, 511, false, 32);\n }\n catch (matchValue) {\n return void 0;\n }\n}\n\nexport function DateParsing_parse(input) {\n try {\n if (isNullOrWhiteSpace(input)) {\n return void 0;\n }\n else {\n const parts = split(input, [\"-\"], null, 0);\n let patternInput;\n let pattern_matching_result, month, year;\n if ((!equalsWith((x, y) => comparePrimitives(x, y), parts, null)) ? (parts.length === 2) : false) {\n const activePatternResult8341 = DateParsing_$007CInt$007C_$007C(parts[0]);\n if (activePatternResult8341 != null) {\n const activePatternResult8342 = DateParsing_$007CInt$007C_$007C(parts[1]);\n if (activePatternResult8342 != null) {\n pattern_matching_result = 0;\n month = activePatternResult8342;\n year = activePatternResult8341;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n patternInput = [year, month, 1, 0, 0];\n break;\n }\n case 1: {\n let pattern_matching_result_1, day, month_1, year_1;\n if ((!equalsWith((x_1, y_1) => comparePrimitives(x_1, y_1), parts, null)) ? (parts.length === 3) : false) {\n const activePatternResult8338 = DateParsing_$007CInt$007C_$007C(parts[0]);\n if (activePatternResult8338 != null) {\n const activePatternResult8339 = DateParsing_$007CInt$007C_$007C(parts[1]);\n if (activePatternResult8339 != null) {\n const activePatternResult8340 = DateParsing_$007CInt$007C_$007C(parts[2]);\n if (activePatternResult8340 != null) {\n pattern_matching_result_1 = 0;\n day = activePatternResult8340;\n month_1 = activePatternResult8339;\n year_1 = activePatternResult8338;\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n patternInput = [year_1, month_1, day, 0, 0];\n break;\n }\n case 1: {\n let pattern_matching_result_2, day_1, month_2, year_2;\n if ((!equalsWith((x_2, y_2) => comparePrimitives(x_2, y_2), parts, null)) ? (parts.length === 3) : false) {\n const activePatternResult8336 = DateParsing_$007CInt$007C_$007C(parts[0]);\n if (activePatternResult8336 != null) {\n const activePatternResult8337 = DateParsing_$007CInt$007C_$007C(parts[1]);\n if (activePatternResult8337 != null) {\n pattern_matching_result_2 = 0;\n day_1 = parts[2];\n month_2 = activePatternResult8337;\n year_2 = activePatternResult8336;\n }\n else {\n pattern_matching_result_2 = 1;\n }\n }\n else {\n pattern_matching_result_2 = 1;\n }\n }\n else {\n pattern_matching_result_2 = 1;\n }\n switch (pattern_matching_result_2) {\n case 0: {\n if (day_1.indexOf(\"T\") >= 0) {\n const matchValue = split(day_1, [\"T\"], null, 0);\n let pattern_matching_result_3, parsedDay, time;\n if ((!equalsWith((x_3, y_3) => comparePrimitives(x_3, y_3), matchValue, null)) ? (matchValue.length === 2) : false) {\n const activePatternResult8335 = DateParsing_$007CInt$007C_$007C(matchValue[0]);\n if (activePatternResult8335 != null) {\n pattern_matching_result_3 = 0;\n parsedDay = activePatternResult8335;\n time = matchValue[1];\n }\n else {\n pattern_matching_result_3 = 1;\n }\n }\n else {\n pattern_matching_result_3 = 1;\n }\n switch (pattern_matching_result_3) {\n case 0: {\n const matchValue_1 = split(time, [\":\"], null, 0);\n let pattern_matching_result_4, hour, minute;\n if ((!equalsWith((x_4, y_4) => comparePrimitives(x_4, y_4), matchValue_1, null)) ? (matchValue_1.length === 2) : false) {\n const activePatternResult8333 = DateParsing_$007CInt$007C_$007C(matchValue_1[0]);\n if (activePatternResult8333 != null) {\n const activePatternResult8334 = DateParsing_$007CInt$007C_$007C(matchValue_1[1]);\n if (activePatternResult8334 != null) {\n pattern_matching_result_4 = 0;\n hour = activePatternResult8333;\n minute = activePatternResult8334;\n }\n else {\n pattern_matching_result_4 = 1;\n }\n }\n else {\n pattern_matching_result_4 = 1;\n }\n }\n else {\n pattern_matching_result_4 = 1;\n }\n switch (pattern_matching_result_4) {\n case 0: {\n const matchValue_2 = [hour, minute];\n let pattern_matching_result_5;\n if (DateParsing_$007CBetween$007C_$007C(0, 59, matchValue_2[0]) != null) {\n if (DateParsing_$007CBetween$007C_$007C(0, 59, matchValue_2[1]) != null) {\n pattern_matching_result_5 = 0;\n }\n else {\n pattern_matching_result_5 = 1;\n }\n }\n else {\n pattern_matching_result_5 = 1;\n }\n switch (pattern_matching_result_5) {\n case 0: {\n patternInput = [year_2, month_2, parsedDay, hour, minute];\n break;\n }\n case 1: {\n patternInput = [-1, 1, 1, 0, 0];\n break;\n }\n }\n break;\n }\n case 1: {\n patternInput = [-1, 1, 1, 0, 0];\n break;\n }\n }\n break;\n }\n case 1: {\n patternInput = [-1, 1, 1, 0, 0];\n break;\n }\n }\n }\n else {\n patternInput = [-1, 1, 1, 0, 0];\n }\n break;\n }\n case 1: {\n patternInput = [-1, 1, 1, 0, 0];\n break;\n }\n }\n break;\n }\n }\n break;\n }\n }\n const year_3 = patternInput[0] | 0;\n const month_3 = patternInput[1] | 0;\n const minute_1 = patternInput[4] | 0;\n const hour_1 = patternInput[3] | 0;\n const day_2 = patternInput[2] | 0;\n if (year_3 <= 0) {\n return void 0;\n }\n else {\n const matchValue_3 = [month_3, day_2];\n let pattern_matching_result_6;\n if (matchValue_3[0] === 2) {\n if (DateParsing_$007CBetween$007C_$007C(1, 29, matchValue_3[1]) != null) {\n if (DateParsing_isLeapYear(year_3)) {\n pattern_matching_result_6 = 0;\n }\n else {\n pattern_matching_result_6 = 1;\n }\n }\n else {\n pattern_matching_result_6 = 1;\n }\n }\n else {\n pattern_matching_result_6 = 1;\n }\n switch (pattern_matching_result_6) {\n case 0: {\n return create(year_3, month_3, day_2, hour_1, minute_1, 0);\n }\n case 1: {\n let pattern_matching_result_7;\n if (matchValue_3[0] === 2) {\n if (DateParsing_$007CBetween$007C_$007C(1, 28, matchValue_3[1]) != null) {\n if (!DateParsing_isLeapYear(year_3)) {\n pattern_matching_result_7 = 0;\n }\n else {\n pattern_matching_result_7 = 1;\n }\n }\n else {\n pattern_matching_result_7 = 1;\n }\n }\n else {\n pattern_matching_result_7 = 1;\n }\n switch (pattern_matching_result_7) {\n case 0: {\n return create(year_3, month_3, day_2, hour_1, minute_1, 0);\n }\n case 1: {\n let pattern_matching_result_8;\n if (matchValue_3[0] === 1) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else if (matchValue_3[0] === 3) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else if (matchValue_3[0] === 5) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else if (matchValue_3[0] === 7) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else if (matchValue_3[0] === 8) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else if (matchValue_3[0] === 10) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else if (matchValue_3[0] === 12) {\n if (DateParsing_$007CBetween$007C_$007C(1, 31, matchValue_3[1]) != null) {\n pattern_matching_result_8 = 0;\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n switch (pattern_matching_result_8) {\n case 0: {\n return create(year_3, month_3, day_2, hour_1, minute_1, 0);\n }\n case 1: {\n let pattern_matching_result_9;\n if (matchValue_3[0] === 4) {\n if (DateParsing_$007CBetween$007C_$007C(1, 30, matchValue_3[1]) != null) {\n pattern_matching_result_9 = 0;\n }\n else {\n pattern_matching_result_9 = 1;\n }\n }\n else if (matchValue_3[0] === 6) {\n if (DateParsing_$007CBetween$007C_$007C(1, 30, matchValue_3[1]) != null) {\n pattern_matching_result_9 = 0;\n }\n else {\n pattern_matching_result_9 = 1;\n }\n }\n else if (matchValue_3[0] === 9) {\n if (DateParsing_$007CBetween$007C_$007C(1, 30, matchValue_3[1]) != null) {\n pattern_matching_result_9 = 0;\n }\n else {\n pattern_matching_result_9 = 1;\n }\n }\n else if (matchValue_3[0] === 11) {\n if (DateParsing_$007CBetween$007C_$007C(1, 30, matchValue_3[1]) != null) {\n pattern_matching_result_9 = 0;\n }\n else {\n pattern_matching_result_9 = 1;\n }\n }\n else {\n pattern_matching_result_9 = 1;\n }\n switch (pattern_matching_result_9) {\n case 0: {\n return create(year_3, month_3, day_2, hour_1, minute_1, 0);\n }\n case 1: {\n return void 0;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n catch (matchValue_4) {\n return void 0;\n }\n}\n\nexport const Interop_reactApi = react;\n\n","import { reverse, empty, cons, fold } from \"../fable-library.3.2.1/List.js\";\nimport { uncurry } from \"../fable-library.3.2.1/Util.js\";\nimport { toString } from \"../fable-library.3.2.1/Types.js\";\nimport { join } from \"../fable-library.3.2.1/String.js\";\n\nexport function Helpers_extractClasses(xs) {\n return fold(uncurry(2, (tupledArg) => {\n const classes = tupledArg[0];\n const props = tupledArg[1];\n return (x) => {\n const matchValue = x;\n return (matchValue[0] === \"className\") ? [cons(toString(matchValue[1]), classes), props] : [classes, cons(x, props)];\n };\n }), [empty(), empty()], reverse(xs));\n}\n\nexport function Helpers_combineClasses(cn, xs) {\n const tupledArg = Helpers_extractClasses(xs);\n return cons([\"className\", join(\" \", cons(cn, tupledArg[0]))], tupledArg[1]);\n}\n\n","import {\r\n useEffect as useEffectReact,\r\n useLayoutEffect as useLayoutEffectReact,\r\n useDebugValue as useDebugValueReact } from 'react'\r\n\r\nexport const useEffect = getDisposable => {\r\n useEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n })\r\n}\r\n\r\nexport const useEffectWithDeps = (getDisposable, deps) => {\r\n useEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n }, deps)\r\n}\r\n\r\nexport const useLayoutEffect = getDisposable => {\r\n useLayoutEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n })\r\n}\r\n\r\nexport const useLayoutEffectWithDeps = (getDisposable, deps) => {\r\n useLayoutEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n }, deps)\r\n}\r\n\r\nexport const useDebugValue = (value, formatter) => useDebugValueReact(value, formatter)","import { useLayoutEffectWithDeps, useLayoutEffect, useEffectWithDeps, useEffect, useDebugValue } from \"./ReactInterop.js\";\nimport { class_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { iterate } from \"../fable-library.3.2.1/Seq.js\";\nimport { defaultArg, some, toArray } from \"../fable-library.3.2.1/Option.js\";\nimport { Interop_reactApi } from \"./Interop.fs.js\";\nimport { curry, uncurry } from \"../fable-library.3.2.1/Util.js\";\nimport { useState } from \"react\";\nimport * as react from \"react\";\n\nexport const ReactInterop_useDebugValueWithFormatter = useDebugValue;\n\nexport const ReactInterop_useEffect = useEffect;\n\nexport const ReactInterop_useEffectWithDeps = useEffectWithDeps;\n\nexport const ReactInterop_useLayoutEffect = useLayoutEffect;\n\nexport const ReactInterop_useLayoutEffectWithDeps = useLayoutEffectWithDeps;\n\nexport class Internal {\n constructor() {\n }\n}\n\nexport function Internal$reflection() {\n return class_type(\"Feliz.Internal\", void 0, Internal);\n}\n\nexport function Internal_$ctor() {\n return new Internal();\n}\n\n(() => {\n})();\n\nexport function Internal_functionComponent_Z1B155329(renderElement, name, withKey) {\n iterate((name_1) => {\n renderElement.displayName = name_1;\n }, toArray(name));\n console.warn(some(\"Feliz: using React.functionComponent in Fable 3 is obsolete, please consider using the [\\u003cReactComponent\\u003e] attribute instead which makes Feliz output better Javascript code that is compatible with react-refresh\"));\n return (props) => Interop_reactApi.createElement(renderElement, Internal_propsWithKey(withKey, props));\n}\n\nexport function Internal_memo_Z603636D8(renderElement, name, areEqual, withKey) {\n const memoElementType = Interop_reactApi.memo(renderElement, uncurry(2, defaultArg(curry(2, areEqual), null)));\n iterate((name_1) => {\n renderElement.displayName = name_1;\n }, toArray(name));\n return (props) => Interop_reactApi.createElement(memoElementType, Internal_propsWithKey(withKey, props));\n}\n\nfunction Internal_propsWithKey(withKey, props) {\n if (withKey == null) {\n return props;\n }\n else {\n const f = withKey;\n props.key = f(props);\n return props;\n }\n}\n\nexport class React {\n constructor() {\n }\n}\n\nexport function React$reflection() {\n return class_type(\"Feliz.React\", void 0, React);\n}\n\nexport function React_createDisposable_3A5B6456(dispose) {\n return {\n Dispose() {\n dispose();\n },\n };\n}\n\nexport function useReact_useState_FCFD9EF(initializer) {\n return Interop_reactApi.useState(initializer);\n}\n\nexport function useReact_useReducer_2B9E6EA0(update, initialState) {\n return Interop_reactApi.useReducer(update, initialState);\n}\n\nexport function useReact_useEffect_Z5ECA432F(effect) {\n ReactInterop_useEffect(effect);\n}\n\nexport function useReact_useEffect_Z5234A374(effect, dependencies) {\n ReactInterop_useEffectWithDeps(effect, dependencies);\n}\n\nexport function useReact_useLayoutEffect_Z5ECA432F(effect) {\n ReactInterop_useLayoutEffect(effect);\n}\n\nexport function useReact_useLayoutEffect_Z5234A374(effect, dependencies) {\n ReactInterop_useLayoutEffectWithDeps(effect, dependencies);\n}\n\nexport function useReact_useLayoutEffect_3A5B6456(effect) {\n ReactInterop_useLayoutEffect((_arg1) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n });\n}\n\nexport function useReact_useLayoutEffect_Z101E1A95(effect, dependencies) {\n ReactInterop_useLayoutEffectWithDeps((_arg2) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n }, dependencies);\n}\n\nexport function useReact_useEffectOnce_3A5B6456(effect) {\n useReact_useEffect_Z101E1A95(effect, []);\n}\n\nexport function useReact_useEffectOnce_Z5ECA432F(effect) {\n useReact_useEffect_Z5234A374(effect, []);\n}\n\nexport function useReact_useEffectOnce_6E825304(effect) {\n useReact_useEffect_Z5234A374(() => {\n const disposeOption = effect();\n return {\n Dispose() {\n iterate((d) => {\n let copyOfStruct = d;\n copyOfStruct.Dispose();\n }, toArray(disposeOption));\n },\n };\n }, []);\n}\n\nexport function useReact_useEffect_3A5B6456(effect) {\n ReactInterop_useEffect((_arg3) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n });\n}\n\nexport function useReact_useEffect_Z101E1A95(effect, dependencies) {\n ReactInterop_useEffectWithDeps((_arg4) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n }, dependencies);\n}\n\nexport function useReact_useDebugValue_Z721C83C5(value) {\n ReactInterop_useDebugValueWithFormatter(value, (x) => x);\n}\n\nexport function useReact_useDebugValue_77A55D6D(value, formatter) {\n ReactInterop_useDebugValueWithFormatter(value, formatter);\n}\n\nexport function useReact_useCallback_93353E(callbackFunction, dependencies) {\n return Interop_reactApi.useCallback(callbackFunction, defaultArg(dependencies, []));\n}\n\nexport function useReact_useRef_1505(initialValue) {\n return Interop_reactApi.useRef(initialValue);\n}\n\nexport function useReact_useInputRef() {\n return useReact_useRef_1505(void 0);\n}\n\nexport function useReact_useButtonRef() {\n return useReact_useRef_1505(void 0);\n}\n\nexport function useReact_useElementRef() {\n return useReact_useRef_1505(void 0);\n}\n\nexport function useReact_useMemo_CF4EA67(createFunction, dependencies) {\n return Interop_reactApi.useMemo(createFunction, defaultArg(dependencies, []));\n}\n\nexport function React_functionComponent_2F9D7239(render, withKey) {\n return Internal_functionComponent_Z1B155329(render, void 0, withKey);\n}\n\nexport function React_functionComponent_Z4C5FE1BE(name, render, withKey) {\n return Internal_functionComponent_Z1B155329(render, name, withKey);\n}\n\nexport function React_functionComponent_19A12FB2(render, withKey) {\n return Internal_functionComponent_Z1B155329((arg) => react.createElement(react.Fragment, {}, ...render(arg)), void 0, withKey);\n}\n\nexport function React_functionComponent_2E1DD889(name, render, withKey) {\n return Internal_functionComponent_Z1B155329((arg) => react.createElement(react.Fragment, {}, ...render(arg)), name, withKey);\n}\n\nexport function React_memo_62A0F746(render, withKey, areEqual) {\n return Internal_memo_Z603636D8(render, void 0, areEqual, withKey);\n}\n\nexport function React_memo_6648A89D(name, render, withKey, areEqual) {\n return Internal_memo_Z603636D8(render, name, areEqual, withKey);\n}\n\nexport function React_memo_C2C6BED(render, withKey, areEqual) {\n return Internal_memo_Z603636D8((arg) => react.createElement(react.Fragment, {}, ...render(arg)), void 0, areEqual, withKey);\n}\n\nexport function React_memo_Z4FCC584A(name, render, withKey, areEqual) {\n return Internal_memo_Z603636D8((arg) => react.createElement(react.Fragment, {}, ...render(arg)), name, areEqual, withKey);\n}\n\nexport function React_createContext_1AE444D8(name, defaultValue) {\n const contextObject = Interop_reactApi.createContext(defaultArg(defaultValue, void 0));\n iterate((name_1) => {\n contextObject.displayName = name_1;\n }, toArray(name));\n return contextObject;\n}\n\nexport function React_contextProvider_34D9BBBD(contextObject, contextValue, child) {\n return Interop_reactApi.createElement(contextObject.Provider, {\n value: contextValue,\n }, child);\n}\n\nexport function React_contextProvider_138D2F56(contextObject, contextValue, children) {\n return Interop_reactApi.createElement(contextObject.Provider, {\n value: contextValue,\n }, ...children);\n}\n\nexport function React_contextConsumer_Z68910595(contextObject, render) {\n return Interop_reactApi.createElement(contextObject.Consumer, null, render);\n}\n\nexport function React_contextConsumer_56D53A40(contextObject, render) {\n return Interop_reactApi.createElement(contextObject.Consumer, null, (arg) => react.createElement(react.Fragment, {}, ...render(arg)));\n}\n\nexport function useReact_useContext_37FA55CF(contextObject) {\n return Interop_reactApi.useContext(contextObject);\n}\n\nexport function useReact_useCallbackRef_7C4B0DD6(callback) {\n const lastRenderCallbackRef = useReact_useRef_1505(callback);\n const callbackRef = useReact_useCallback_93353E((arg) => lastRenderCallbackRef.current(arg), []);\n useReact_useLayoutEffect_3A5B6456(() => {\n lastRenderCallbackRef.current = callback;\n });\n return callbackRef;\n}\n\nexport const React_useStateWithUpdater_1505 = useState;\n\nexport function React_forwardRef_3790D881(render) {\n const forwardRefType = Interop_reactApi.forwardRef((props, ref) => render([props, ref]));\n return (tupledArg) => {\n const propsObj = Object.assign({}, tupledArg[0]);\n propsObj.ref = tupledArg[1];\n return Interop_reactApi.createElement(forwardRefType, propsObj);\n };\n}\n\nexport function React_forwardRef_7DC3DB1A(name, render) {\n const forwardRefType = Interop_reactApi.forwardRef((props, ref) => render([props, ref]));\n render.displayName = name;\n return (tupledArg) => {\n const propsObj = Object.assign({}, tupledArg[0]);\n propsObj.ref = tupledArg[1];\n return Interop_reactApi.createElement(forwardRefType, propsObj);\n };\n}\n\nexport function React_strictMode_6E3A73D(children) {\n return Interop_reactApi.createElement(Interop_reactApi.StrictMode, void 0, ...children);\n}\n\nexport function React_lazy$0027_4712D3AE(dynamicImport, props) {\n return Interop_reactApi.createElement(Interop_reactApi.lazy((() => dynamicImport)), props);\n}\n\nexport function React_lazy$0027_Z3D8450FC(dynamicImport, props) {\n return Interop_reactApi.createElement(Interop_reactApi.lazy(dynamicImport), props);\n}\n\nexport function React_suspense_6E3A73D(children) {\n let o;\n return Interop_reactApi.createElement(Interop_reactApi.Suspense, (o = {\n fallback: null,\n }, Object.assign({}, o)), ...children);\n}\n\nexport function React_suspense_Z3796A576(children, fallback) {\n let o;\n return Interop_reactApi.createElement(Interop_reactApi.Suspense, (o = {\n fallback: fallback,\n }, Object.assign({}, o)), ...children);\n}\n\nexport function useReact_useImperativeHandle_596DDC25(ref, createHandle) {\n Interop_reactApi.useImperativeHandle(ref, createHandle);\n}\n\nexport function useReact_useImperativeHandle_Z12F09548(ref, createHandle, dependencies) {\n Interop_reactApi.useImperativeHandle(ref, createHandle, dependencies);\n}\n\nexport function useFeliz_React__React_useState_Static_1505(initial) {\n return Interop_reactApi.useState(initial);\n}\n\nexport const Feliz_React__React_useStateWithUpdater_Static_FCFD9EF = useState;\n\n","import { createElement } from \"react\";\nimport { createObj } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton, ofArray } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { Route, toPath } from \"./Router.fs.js\";\nimport { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { join } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"./.fable/Feliz.1.51.0/React.fs.js\";\nimport * as Subtract from \"./public/Subtract.svg\";\nimport { empty, singleton as singleton_1, append, delay, toList } from \"./.fable/fable-library.3.2.1/Seq.js\";\n\nexport function RenderLogoutButton(logOut) {\n return createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (x) => {\n x.preventDefault();\n logOut();\n }], [\"className\", \"is-primary\"], [\"children\", \"Logga ut\"]]))));\n}\n\nexport function RenderAccountButton(user) {\n let s, elms;\n const props_3 = ofArray([[\"href\", toPath(new Route(5))], [\"className\", \"is-outlined\"], [\"className\", \"is-primary\"], [\"children\", Interop_reactApi.Children.toArray([(s = (\"Hi, \" + user.FullName), createElement(\"span\", {\n className: \"\",\n children: s,\n })), (elms = singleton(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-sliders-h\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]);\n return createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_3)));\n}\n\nexport function Render(renderInputProps) {\n let props_17, elms_1, elms, value_16, props_8, props_15;\n const itemsRightTouchView = renderInputProps.itemsRightTouchView;\n const itemsRightDesktopView = renderInputProps.itemsRightDesktopView;\n const itemsLeft = renderInputProps.itemsLeft;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setMenuActive = patternInput[1];\n const menuActive = patternInput[0];\n const elms_4 = singleton((props_17 = ofArray([[\"className\", \"mb-3\"], [\"role\", \"navigation\"], [\"aria-label\", \"main-navigation\"], [\"className\", \"is-size-5\"], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(elms = singleton(createElement(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n },\n className: \"is-vcentered\",\n className: \"has-text-primary\",\n className: \"mr-3\",\n children: Interop_reactApi.Children.toArray([createElement(\"img\", createObj(ofArray([(value_16 = Subtract, [\"src\", value_16]), [\"style\", {\n height: 26,\n width: 26,\n }]]))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pl-2\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Endurance\"]]))))]),\n })), createElement(\"a\", {\n className: \"navbar-item\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_8 = toList(delay(() => append(singleton_1([\"onClick\", (x) => {\n x.preventDefault();\n setMenuActive(!menuActive);\n }]), delay(() => append(menuActive ? singleton_1([\"className\", \"is-active\"]) : empty(), delay(() => singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {}), createElement(\"span\", {}), createElement(\"span\", {})])]))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-burger\", props_8))))]), createElement(\"div\", {\n className: \"navbar-brand\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (props_15 = toList(delay(() => append(menuActive ? singleton_1([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton_1([\"onClick\", (_arg1) => {\n setMenuActive(!menuActive);\n }]), delay(() => {\n let elms_3, props_12;\n return singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n className: \"navbar-start\",\n children: Interop_reactApi.Children.toArray([itemsLeft]),\n }), (elms_3 = ofArray([(props_12 = ofArray([[\"className\", join(\" \", [\"is-hidden-touch\"])], [\"children\", Interop_reactApi.Children.toArray([itemsRightDesktopView])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"navbar-item\", props_12)))), itemsRightTouchView]), createElement(\"div\", {\n className: \"navbar-end\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]);\n })))))), createElement(\"div\", createObj(Helpers_combineClasses(\"navbar-menu\", props_15))))])]]), createElement(\"nav\", createObj(Helpers_combineClasses(\"navbar\", props_17)))));\n return createElement(\"div\", {\n className: \"container\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n });\n}\n\n","import { createElement } from \"react\";\nimport * as react from \"react\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { toPath, Route } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Render as Render_1, RenderLogoutButton, RenderAccountButton } from \"../HeaderCommon.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\n\nexport function Render(renderInputProps) {\n let props_5, props_7, elms, props;\n const isActive = renderInputProps.isActive;\n const logOut = renderInputProps.logOut;\n const user = renderInputProps.user;\n const itemsRightTouchView = react.createElement(react.Fragment, {}, (props_5 = toList(delay(() => append(isActive(new Route(5)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", join(\" \", [\"is-hidden-desktop\"])]), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Konto\"]), delay(() => singleton([\"href\", toPath(new Route(5))]))))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_5)))), (props_7 = ofArray([[\"className\", join(\" \", [\"is-hidden-desktop\"])], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Logga ut\"], [\"onClick\", (x) => {\n x.preventDefault();\n logOut();\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_7)))));\n const itemsRightDesktopView = react.createElement(react.Fragment, {}, (elms = ofArray([RenderAccountButton(user), RenderLogoutButton(logOut)]), createElement(\"div\", {\n className: \"buttons\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })));\n const itemsLeft = react.createElement(react.Fragment, {}, (props = toList(delay(() => append(isActive(new Route(31)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Översikt\"]), delay(() => singleton([\"href\", toPath(new Route(31))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props)))));\n return createElement(Render_1, {\n itemsLeft: itemsLeft,\n itemsRightDesktopView: itemsRightDesktopView,\n itemsRightTouchView: itemsRightTouchView,\n });\n}\n\n","import { createElement } from \"react\";\nimport * as react from \"react\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { toPath, Route } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Render as Render_1, RenderLogoutButton, RenderAccountButton } from \"../HeaderCommon.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\n\nexport function Render(renderInputProps) {\n let props_13, props_15, elms, props, props_2, props_4, props_6, props_8;\n const isActive = renderInputProps.isActive;\n const logOut = renderInputProps.logOut;\n const user = renderInputProps.user;\n const itemsRightTouchView = react.createElement(react.Fragment, {}, (props_13 = toList(delay(() => append(isActive(new Route(5)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", join(\" \", [\"is-hidden-desktop\"])]), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Konto\"]), delay(() => singleton([\"href\", toPath(new Route(5))]))))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_13)))), (props_15 = ofArray([[\"className\", join(\" \", [\"is-hidden-desktop\"])], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Logga ut\"], [\"onClick\", (x) => {\n x.preventDefault();\n logOut();\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_15)))));\n const itemsRightDesktopView = react.createElement(react.Fragment, {}, (elms = ofArray([RenderAccountButton(user), RenderLogoutButton(logOut)]), createElement(\"div\", {\n className: \"buttons\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })));\n const itemsLeft = react.createElement(react.Fragment, {}, (props = toList(delay(() => append(isActive(new Route(7)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Grupper\"]), delay(() => singleton([\"href\", toPath(new Route(7))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props)))), (props_2 = toList(delay(() => append(isActive(new Route(10)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Utövare\"]), delay(() => singleton([\"href\", toPath(new Route(10))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_2)))), (props_4 = toList(delay(() => append(isActive(new Route(18)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Tränare\"]), delay(() => singleton([\"href\", toPath(new Route(18))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_4)))), (props_6 = toList(delay(() => append(isActive(new Route(27)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Pass\"]), delay(() => singleton([\"href\", toPath(new Route(27))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_6)))), (props_8 = toList(delay(() => append(isActive(new Route(21)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Program\"]), delay(() => singleton([\"href\", toPath(new Route(21))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_8)))));\n return createElement(Render_1, {\n itemsLeft: itemsLeft,\n itemsRightDesktopView: itemsRightDesktopView,\n itemsRightTouchView: itemsRightTouchView,\n });\n}\n\n","import { createElement } from \"react\";\nimport * as react from \"react\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { toPath, Route } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Render as Render_1, RenderLogoutButton, RenderAccountButton } from \"../HeaderCommon.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { Calendar_PeriodInfo_get_Current } from \"../../Shared/Shared.fs.js\";\nimport { toString } from \"../.fable/fable-library.3.2.1/Date.js\";\n\nexport function Render(renderInputProps) {\n let props_13, props_15, elms, props, props_2, props_4, props_8;\n const isActive = renderInputProps.isActive;\n const logOut = renderInputProps.logOut;\n const user = renderInputProps.user;\n const itemsRightTouchView = react.createElement(react.Fragment, {}, (props_13 = toList(delay(() => append(isActive(new Route(5)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", join(\" \", [\"is-hidden-desktop\"])]), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Konto\"]), delay(() => singleton([\"href\", toPath(new Route(5))]))))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_13)))), (props_15 = ofArray([[\"className\", join(\" \", [\"is-hidden-desktop\"])], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Logga ut\"], [\"onClick\", (x_1) => {\n x_1.preventDefault();\n logOut();\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_15)))));\n const itemsRightDesktopView = react.createElement(react.Fragment, {}, (elms = ofArray([RenderAccountButton(user), RenderLogoutButton(logOut)]), createElement(\"div\", {\n className: \"buttons\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })));\n const itemsLeft = react.createElement(react.Fragment, {}, (props = toList(delay(() => append(isActive(new Route(25)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Registrera aktivitet\"]), delay(() => singleton([\"href\", toPath(new Route(25))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props)))), (props_2 = toList(delay(() => append(isActive(new Route(29, user.UserId, Calendar_PeriodInfo_get_Current())) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Översikt\"]), delay(() => singleton([\"href\", toPath(new Route(29, user.UserId, Calendar_PeriodInfo_get_Current()))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_2)))), (props_4 = toList(delay(() => append(isActive(new Route(27)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"children\", \"Pass\"]), delay(() => singleton([\"href\", toPath(new Route(27))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_4)))), (props_8 = toList(delay(() => append(isActive(new Route(6, user.UserId)) ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"href\", toPath(new Route(6, user.UserId))]), delay(() => singleton([\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"span\", {\n children: [\"Chat\"],\n })), delay(() => {\n const matchValue = user.ChatChangeDate;\n if (matchValue == null) {\n return singleton(null);\n }\n else {\n const x = matchValue;\n return singleton(createElement(\"span\", {\n style: {\n color: \"#666\",\n fontSize: 0.6 + \"rem\",\n },\n className: \"mt-3 ml-1\",\n children: toString(x, \"d/M\"),\n }));\n }\n }))))))]))))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"navbar-item\", props_8)))));\n return createElement(Render_1, {\n itemsLeft: itemsLeft,\n itemsRightDesktopView: itemsRightDesktopView,\n itemsRightTouchView: itemsRightTouchView,\n });\n}\n\n","import { keyValueList } from \"../.fable/fable-library.3.2.1/MapUtil.js\";\nimport { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { array_type, unit_type, lambda_type, class_type, string_type, union_type, obj_type, record_type, bool_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport * as react from \"react\";\nimport { useDrop as useDrop_1, useDrag as useDrag_1, DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/List.js\";\n\nfunction kvl(xs) {\n return keyValueList(xs, 1);\n}\n\nexport class CollectedDragProps extends Record {\n constructor(isDragging) {\n super();\n this.isDragging = isDragging;\n }\n}\n\nexport function CollectedDragProps$reflection() {\n return record_type(\"ReactDnd.CollectedDragProps\", [], CollectedDragProps, () => [[\"isDragging\", bool_type]]);\n}\n\nexport class CollectedDropProps extends Record {\n constructor(isOver, canDrop) {\n super();\n this.isOver = isOver;\n this.canDrop = canDrop;\n }\n}\n\nexport function CollectedDropProps$reflection() {\n return record_type(\"ReactDnd.CollectedDropProps\", [], CollectedDropProps, () => [[\"isOver\", bool_type], [\"canDrop\", bool_type]]);\n}\n\nexport class DndProviderProps extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Backend\"];\n }\n}\n\nexport function DndProviderProps$reflection() {\n return union_type(\"ReactDnd.DndProviderProps\", [], DndProviderProps, () => [[[\"Item\", obj_type]]]);\n}\n\nexport function dndProvider(props) {\n const props_1 = kvl(props);\n return (children) => react.createElement(DndProvider, props_1, ...children);\n}\n\nexport function dndProviderHtml5(props) {\n return dndProvider(singleton(new DndProviderProps(0, HTML5Backend)));\n}\n\nexport function DndContext(items) {\n return dndProvider(singleton(new DndProviderProps(0, HTML5Backend)))(items);\n}\n\nexport class DragSpec$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Type\", \"Item\", \"Collect\", \"End\"];\n }\n}\n\nexport function DragSpec$1$reflection(gen0) {\n return union_type(\"ReactDnd.DragSpec`1\", [gen0], DragSpec$1, () => [[[\"Item\", string_type]], [[\"Item\", DragItem$1$reflection(gen0)]], [[\"Item\", lambda_type(class_type(\"ReactDnd.IDragMonitor\"), CollectedDragProps$reflection())]], [[\"Item\", lambda_type(DragItem$1$reflection(gen0), lambda_type(class_type(\"ReactDnd.IDragMonitor\"), unit_type))]]]);\n}\n\nexport class DragItem$1 extends Record {\n constructor(dragType, dragSrc) {\n super();\n this.dragType = dragType;\n this.dragSrc = dragSrc;\n }\n}\n\nexport function DragItem$1$reflection(gen0) {\n return record_type(\"ReactDnd.DragItem`1\", [gen0], DragItem$1, () => [[\"dragType\", string_type], [\"dragSrc\", gen0]]);\n}\n\nconst useDragImpl = useDrag_1;\n\nexport function useDrag(spec) {\n return useDragImpl(kvl(spec));\n}\n\nexport class DropSpec$2 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Accept\", \"Collect\", \"Drop\"];\n }\n}\n\nexport function DropSpec$2$reflection(gen0, gen1) {\n return union_type(\"ReactDnd.DropSpec`2\", [gen0, gen1], DropSpec$2, () => [[[\"Item\", array_type(string_type)]], [[\"Item\", lambda_type(class_type(\"ReactDnd.IDropMonitor\"), CollectedDropProps$reflection())]], [[\"Item\", lambda_type(DragItem$1$reflection(gen0), gen1)]]]);\n}\n\nconst useDropImpl = useDrop_1;\n\nexport function useDrop(spec) {\n return useDropImpl(kvl(spec));\n}\n\n","// tslint:disable:max-line-length\nimport { fromNumber, op_Division, op_Multiply, toNumber } from \"./Long.js\";\nimport { comparePrimitives, padLeftAndRightWithZeros, padWithZeros } from \"./Util.js\";\n// TimeSpan in runtime just becomes a number representing milliseconds\n/**\n * Calls:\n * - `Math.ceil` if the `value` is **negative**\n * - `Math.floor` if the `value` is **positive**\n * @param value Value to round\n */\nfunction signedRound(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n}\nexport function create(d = 0, h = 0, m = 0, s = 0, ms = 0) {\n switch (arguments.length) {\n case 1:\n // ticks\n return fromTicks(arguments[0]);\n case 3:\n // h,m,s\n d = 0, h = arguments[0], m = arguments[1], s = arguments[2], ms = 0;\n break;\n default:\n // d,h,m,s,ms\n break;\n }\n return d * 86400000 + h * 3600000 + m * 60000 + s * 1000 + ms;\n}\nexport function fromTicks(ticks) {\n return toNumber(op_Division(ticks, 10000));\n}\nexport function fromDays(d) {\n return create(d, 0, 0, 0);\n}\nexport function fromHours(h) {\n return create(h, 0, 0);\n}\nexport function fromMinutes(m) {\n return create(0, m, 0);\n}\nexport function fromSeconds(s) {\n return create(0, 0, s);\n}\nexport function days(ts) {\n return signedRound(ts / 86400000);\n}\nexport function hours(ts) {\n return signedRound(ts % 86400000 / 3600000);\n}\nexport function minutes(ts) {\n return signedRound(ts % 3600000 / 60000);\n}\nexport function seconds(ts) {\n return signedRound(ts % 60000 / 1000);\n}\nexport function milliseconds(ts) {\n return signedRound(ts % 1000);\n}\nexport function ticks(ts) {\n return op_Multiply(fromNumber(ts), 10000);\n}\nexport function totalDays(ts) {\n return ts / 86400000;\n}\nexport function totalHours(ts) {\n return ts / 3600000;\n}\nexport function totalMinutes(ts) {\n return ts / 60000;\n}\nexport function totalSeconds(ts) {\n return ts / 1000;\n}\nexport function negate(ts) {\n return ts * -1;\n}\nexport function add(ts1, ts2) {\n return ts1 + ts2;\n}\nexport function subtract(ts1, ts2) {\n return ts1 - ts2;\n}\nexport const op_Addition = add;\nexport const op_Subtraction = subtract;\nexport const compare = comparePrimitives;\nexport const compareTo = comparePrimitives;\nexport function duration(x) {\n return Math.abs(x);\n}\nexport function toString(ts, format = \"c\", _provider) {\n if ([\"c\", \"g\", \"G\"].indexOf(format) === -1) {\n throw new Error(\"Custom formats are not supported\");\n }\n const d = Math.abs(days(ts));\n const h = Math.abs(hours(ts));\n const m = Math.abs(minutes(ts));\n const s = Math.abs(seconds(ts));\n const ms = Math.abs(milliseconds(ts));\n const sign = ts < 0 ? \"-\" : \"\";\n return `${sign}${d === 0 && (format === \"c\" || format === \"g\") ? \"\" : format === \"c\" ? d + \".\" : d + \":\"}${format === \"g\" ? h : padWithZeros(h, 2)}:${padWithZeros(m, 2)}:${padWithZeros(s, 2)}${ms === 0 && (format === \"c\" || format === \"g\") ? \"\" : format === \"g\" ? \".\" + padWithZeros(ms, 3) : \".\" + padLeftAndRightWithZeros(ms, 3, 7)}`;\n}\nexport function parse(str) {\n const firstDot = str.search(\"\\\\.\");\n const firstColon = str.search(\"\\\\:\");\n if (firstDot === -1 && firstColon === -1) { // There is only a day ex: 4\n const d = parseInt(str, 0);\n if (isNaN(d)) {\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n }\n else {\n return create(d, 0, 0, 0, 0);\n }\n }\n if (firstColon > 0) { // process time part\n // WIP: (-?)(((\\d+)\\.)?([0-9]|0[0-9]|1[0-9]|2[0-3]):(\\d+)(:\\d+(\\.\\d{1,7})?)?|\\d+(?:(?!\\.)))\n const r = /^(-?)((\\d+)\\.)?(?:0*)([0-9]|0[0-9]|1[0-9]|2[0-3]):(?:0*)([0-5][0-9]|[0-9])(:(?:0*)([0-5][0-9]|[0-9]))?\\.?(\\d+)?$/.exec(str);\n if (r != null && r[4] != null && r[5] != null) {\n let d = 0;\n let ms = 0;\n let s = 0;\n const sign = r[1] != null && r[1] === \"-\" ? -1 : 1;\n const h = +r[4];\n const m = +r[5];\n if (r[3] != null) {\n d = +r[3];\n }\n if (r[7] != null) {\n s = +r[7];\n }\n if (r[8] != null) {\n // Depending on the number of decimals passed, we need to adapt the numbers\n switch (r[8].length) {\n case 1:\n ms = +r[8] * 100;\n break;\n case 2:\n ms = +r[8] * 10;\n break;\n case 3:\n ms = +r[8];\n break;\n case 4:\n ms = +r[8] / 10;\n break;\n case 5:\n ms = +r[8] / 100;\n break;\n case 6:\n ms = +r[8] / 1000;\n break;\n case 7:\n ms = +r[8] / 10000;\n break;\n default:\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n }\n }\n return sign * create(d, h, m, s, ms);\n }\n }\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n}\nexport function tryParse(v, defValue) {\n try {\n defValue.contents = parse(v);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n","import { fromContinuations } from \"../fable-library.3.2.1/Async.js\";\nimport { class_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { isNullOrWhiteSpace } from \"../fable-library.3.2.1/String.js\";\n\nexport function InternalUtilities_toUInt8Array(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else {\n return new Uint8Array(data);\n }\n}\n\nexport function Browser_Types_File__File_ReadAsByteArray(instance) {\n return fromContinuations((tupledArg) => {\n const reader = new FileReader();\n reader.onload = ((_arg1) => {\n if (reader.readyState === 2) {\n tupledArg[0](new Uint8Array(reader.result));\n }\n });\n reader.readAsArrayBuffer(instance);\n });\n}\n\nexport function Browser_Types_File__File_ReadAsDataUrl(instance) {\n return fromContinuations((tupledArg) => {\n const reader = new FileReader();\n reader.onload = ((_arg4) => {\n if (reader.readyState === 2) {\n tupledArg[0](reader.result);\n }\n });\n reader.readAsDataURL(instance);\n });\n}\n\nexport function Browser_Types_File__File_ReadAsText(instance) {\n return fromContinuations((tupledArg) => {\n const reader = new FileReader();\n reader.onload = ((_arg7) => {\n if (reader.readyState === 2) {\n tupledArg[0](reader.result);\n }\n });\n reader.readAsText(instance);\n });\n}\n\nexport class ByteArrayExtensions {\n constructor() {\n }\n}\n\nexport function ByteArrayExtensions$reflection() {\n return class_type(\"Fable.Remoting.Client.ByteArrayExtensions\", void 0, ByteArrayExtensions);\n}\n\nexport function ByteArrayExtensions_SaveFileAs_72B26259(content, fileName) {\n if (isNullOrWhiteSpace(fileName)) {\n }\n else {\n const binaryData = InternalUtilities_toUInt8Array(content);\n const blob = new Blob([binaryData.buffer], { type: \"application/octet-stream\" });\n const dataUrl = window.URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.style = \"display: none\";\n anchor.href = dataUrl;\n anchor.download = fileName;\n anchor.rel = \"noopener\";\n anchor.click();\n anchor.remove();\n void window.setTimeout(() => {\n URL.revokeObjectURL(dataUrl);\n }, 40 * 1000);\n }\n}\n\nexport function ByteArrayExtensions_SaveFileAs_451DD142(content, fileName, mimeType) {\n if (isNullOrWhiteSpace(fileName)) {\n }\n else {\n const binaryData = InternalUtilities_toUInt8Array(content);\n const blob = new Blob([binaryData.buffer], { type: mimeType });\n const dataUrl = window.URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.style = \"display: none\";\n anchor.href = dataUrl;\n anchor.download = fileName;\n anchor.rel = \"noopener\";\n anchor.click();\n anchor.remove();\n void window.setTimeout(() => {\n URL.revokeObjectURL(dataUrl);\n }, 40 * 1000);\n }\n}\n\nexport function ByteArrayExtensions_AsDataUrl_6C95DA22(content) {\n const binaryData = InternalUtilities_toUInt8Array(content);\n const blob = new Blob([binaryData.buffer], { type: \"application/octet-stream\" });\n return window.URL.createObjectURL(blob);\n}\n\nexport function ByteArrayExtensions_AsDataUrl_72B26259(content, mimeType) {\n const binaryData = InternalUtilities_toUInt8Array(content);\n const blob = new Blob([binaryData.buffer], { type: mimeType });\n return window.URL.createObjectURL(blob);\n}\n\n","import { HttpResponse, HttpRequest, RequestBody, HttpMethod as HttpMethod_1 } from \"./Types.fs.js\";\nimport { empty } from \"../fable-library.3.2.1/List.js\";\nimport { singleton } from \"../fable-library.3.2.1/AsyncBuilder.js\";\nimport { isCancellationRequested, fromContinuations, cancellationToken } from \"../fable-library.3.2.1/Async.js\";\nimport { getEnumerator } from \"../fable-library.3.2.1/Util.js\";\nimport { some } from \"../fable-library.3.2.1/Option.js\";\nimport { InternalUtilities_toUInt8Array } from \"./Extensions.fs.js\";\n\nconst defaultRequestConfig = new HttpRequest(new HttpMethod_1(0), \"/\", empty(), new RequestBody(0), false);\n\nexport function get$(url) {\n return new HttpRequest(new HttpMethod_1(0), url, defaultRequestConfig.Headers, defaultRequestConfig.RequestBody, defaultRequestConfig.WithCredentials);\n}\n\nexport function post(url) {\n return new HttpRequest(new HttpMethod_1(1), url, defaultRequestConfig.Headers, defaultRequestConfig.RequestBody, defaultRequestConfig.WithCredentials);\n}\n\nexport function request(method, url) {\n return new HttpRequest(method, url, defaultRequestConfig.Headers, defaultRequestConfig.RequestBody, defaultRequestConfig.WithCredentials);\n}\n\nexport function withHeaders(headers, req) {\n return new HttpRequest(req.HttpMethod, req.Url, headers, req.RequestBody, req.WithCredentials);\n}\n\nexport function withCredentials(withCredentials_1, req) {\n return new HttpRequest(req.HttpMethod, req.Url, req.Headers, req.RequestBody, withCredentials_1);\n}\n\nexport function withBody(body, req) {\n return new HttpRequest(req.HttpMethod, req.Url, req.Headers, body, req.WithCredentials);\n}\n\nfunction sendAndRead(preparation, resultMapper, req) {\n return singleton.Delay(() => singleton.Bind(cancellationToken(), (_arg1) => {\n const token = _arg1;\n return singleton.ReturnFrom(fromContinuations((tupledArg) => {\n const xhr = new XMLHttpRequest();\n if (req.HttpMethod.tag === 1) {\n xhr.open(\"POST\", req.Url);\n }\n else {\n xhr.open(\"GET\", req.Url);\n }\n if (preparation != null) {\n preparation(xhr);\n }\n void token.register(() => {\n xhr.abort();\n tupledArg[2](new Error(token));\n });\n const enumerator = getEnumerator(req.Headers);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n xhr.setRequestHeader(forLoopVar[0], forLoopVar[1]);\n }\n }\n finally {\n enumerator.Dispose();\n }\n xhr.withCredentials = req.WithCredentials;\n xhr.onreadystatechange = (() => {\n const matchValue_2 = xhr.readyState | 0;\n let pattern_matching_result;\n if (matchValue_2 === 4) {\n if (!isCancellationRequested(token)) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n tupledArg[0](resultMapper(xhr));\n break;\n }\n case 1: {\n break;\n }\n }\n });\n const matchValue_3 = req.RequestBody;\n switch (matchValue_3.tag) {\n case 1: {\n xhr.send(some(matchValue_3.fields[0]));\n break;\n }\n case 2: {\n xhr.send(some(InternalUtilities_toUInt8Array(matchValue_3.fields[0])));\n break;\n }\n default: {\n xhr.send();\n }\n }\n }));\n }));\n}\n\nexport const send = (req) => sendAndRead(void 0, (xhr) => (new HttpResponse(xhr.status, xhr.responseText)), req);\n\nexport const sendAndReadBinary = (req) => sendAndRead((xhr) => {\n xhr.responseType = \"arraybuffer\";\n}, (xhr_1) => [new Uint8Array(xhr_1.response), xhr_1.status], req);\n\n","import { fromContinuations } from \"../fable-library.3.2.1/Async.js\";\nimport { toFail, printf, toText, trimEnd } from \"../fable-library.3.2.1/String.js\";\nimport { getGenerics, isGenericType, getFunctionElements, isFunction } from \"../fable-library.3.2.1/Reflection.js\";\nimport { take, equalsWith, last, head } from \"../fable-library.3.2.1/Array.js\";\nimport { curry, compare } from \"../fable-library.3.2.1/Util.js\";\nimport { empty, singleton, append, delay, toList } from \"../fable-library.3.2.1/Seq.js\";\nimport { singleton as singleton_1 } from \"../fable-library.3.2.1/AsyncBuilder.js\";\nimport { send, get$, post, withBody, withHeaders, sendAndReadBinary } from \"./Http.fs.js\";\nimport { RequestBody, ProxyRequestException_$ctor_76BC5104, HttpResponse } from \"./Types.fs.js\";\nimport { Convert_serialize, Convert_arrayLike, Convert_fromJsonAs } from \"../Fable.SimpleJson.3.21.0/Json.Converter.fs.js\";\nimport { SimpleJson_parseNative } from \"../Fable.SimpleJson.3.21.0/SimpleJson.fs.js\";\nimport { TypeInfo } from \"../Fable.SimpleJson.3.21.0/TypeInfo.fs.js\";\n\nexport function Blob_readBlobAsText(blob) {\n return fromContinuations((tupledArg) => {\n const reader = new FileReader();\n reader.onload = ((_arg1) => {\n if (reader.readyState === 2) {\n tupledArg[0](reader.result);\n }\n });\n reader.readAsText(blob);\n });\n}\n\nexport function Proxy_combineRouteWithBaseUrl(route, baseUrl) {\n if (baseUrl != null) {\n const arg10 = trimEnd(baseUrl, \"/\");\n return toText(printf(\"%s%s\"))(arg10)(route);\n }\n else {\n return route;\n }\n}\n\nexport function Proxy_isByteArray(_arg1) {\n if (_arg1.tag === 27) {\n if (_arg1.fields[0]().tag === 13) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n}\n\nexport function Proxy_isAsyncOfByteArray(_arg1) {\n if (_arg1.tag === 22) {\n const matchValue = _arg1.fields[0]();\n if (matchValue.tag === 27) {\n if (matchValue.fields[0]().tag === 13) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n}\n\nexport function Proxy_getReturnType(typ_mut) {\n Proxy_getReturnType:\n while (true) {\n const typ = typ_mut;\n if (isFunction(typ)) {\n typ_mut = getFunctionElements(typ)[1];\n continue Proxy_getReturnType;\n }\n else if (isGenericType(typ)) {\n return head(getGenerics(typ));\n }\n else {\n return typ;\n }\n break;\n }\n}\n\nexport function Proxy_proxyFetch(options, typeName, func, fieldType) {\n let funcArgs;\n const matchValue = func.FieldType;\n switch (matchValue.tag) {\n case 22: {\n funcArgs = [func.FieldType];\n break;\n }\n case 23: {\n funcArgs = [func.FieldType];\n break;\n }\n case 34: {\n funcArgs = matchValue.fields[0]();\n break;\n }\n default: {\n funcArgs = toFail(printf(\"Field %s does not have a valid definiton\"))(func.FieldName);\n }\n }\n const argumentCount = (funcArgs.length - 1) | 0;\n const returnTypeAsync = last(funcArgs);\n let binaryInput;\n const matchValue_1 = func.FieldType;\n if (matchValue_1.tag === 34) {\n const matchValue_2 = matchValue_1.fields[0]();\n if ((!equalsWith((x, y) => compare(x, y), matchValue_2, null)) ? (matchValue_2.length === 2) : false) {\n const output = matchValue_2[1];\n binaryInput = Proxy_isByteArray(matchValue_2[0]);\n }\n else {\n binaryInput = false;\n }\n }\n else {\n binaryInput = false;\n }\n const url = Proxy_combineRouteWithBaseUrl(options.RouteBuilder(typeName, func.FieldName), options.BaseUrl);\n const funcNeedParameters = ((!equalsWith((x_1, y_1) => compare(x_1, y_1), funcArgs, null)) ? (funcArgs.length === 1) : false) ? ((funcArgs[0].tag === 22) ? false : ((funcArgs[0].tag === 23) ? false : true)) : (((!equalsWith((x_2, y_2) => compare(x_2, y_2), funcArgs, null)) ? (funcArgs.length === 2) : false) ? ((funcArgs[0].tag === 0) ? ((funcArgs[1].tag === 22) ? false : true) : true) : true);\n const contentType = binaryInput ? \"application/octet-stream\" : \"application/json; charset=utf-8\";\n const inputArgumentTypes = take(argumentCount, funcArgs);\n const headers = toList(delay(() => append(singleton([\"Content-Type\", contentType]), delay(() => append(singleton([\"x-remoting-proxy\", \"true\"]), delay(() => append(options.CustomHeaders, delay(() => {\n const matchValue_3 = options.Authorization;\n if (matchValue_3 == null) {\n return empty();\n }\n else {\n return singleton([\"Authorization\", matchValue_3]);\n }\n }))))))));\n let executeRequest;\n if ((curry(2, options.CustomResponseSerialization) != null) ? true : Proxy_isAsyncOfByteArray(returnTypeAsync)) {\n let onOk;\n const matchValue_4 = options.CustomResponseSerialization;\n if (curry(2, matchValue_4) != null) {\n const serializer = curry(2, matchValue_4);\n const returnType = Proxy_getReturnType(fieldType);\n onOk = ((response) => serializer(response)(returnType));\n }\n else {\n onOk = ((value) => value);\n }\n executeRequest = ((requestBody) => singleton_1.Delay(() => singleton_1.Bind(funcNeedParameters ? sendAndReadBinary(withHeaders(headers, withBody(requestBody, post(url)))) : sendAndReadBinary(withHeaders(headers, get$(url))), (_arg1) => {\n const statusCode = _arg1[1] | 0;\n const response_1 = _arg1[0];\n if (statusCode === 200) {\n return singleton_1.Return(onOk(response_1));\n }\n else {\n const n = statusCode | 0;\n return singleton_1.Bind(Blob_readBlobAsText(new Blob([response_1.buffer], { type: 'text/plain' })), (_arg2) => {\n const response_2 = new HttpResponse(statusCode, _arg2);\n const errorMsg = (n === 500) ? toText(printf(\"Internal server error (500) while making request to %s\"))(url) : toText(printf(\"Http error (%d) while making request to %s\"))(n)(url);\n return singleton_1.ReturnFrom((() => {\n throw ProxyRequestException_$ctor_76BC5104(response_2, errorMsg, response_2.ResponseBody);\n })());\n });\n }\n })));\n }\n else {\n const returnType_1 = (returnTypeAsync.tag === 22) ? returnTypeAsync.fields[0]() : ((returnTypeAsync.tag === 23) ? returnTypeAsync.fields[0]() : toFail(printf(\"Expected field %s to have a return type of Async\\u003c\\u0027t\\u003e\"))(func.FieldName));\n executeRequest = ((requestBody_1) => singleton_1.Delay(() => singleton_1.Bind(funcNeedParameters ? send(withHeaders(headers, withBody(requestBody_1, post(url)))) : send(withHeaders(headers, get$(url))), (_arg3) => {\n const response_3 = _arg3;\n const matchValue_5 = response_3.StatusCode | 0;\n switch (matchValue_5) {\n case 200: {\n return singleton_1.Return(Convert_fromJsonAs(SimpleJson_parseNative(response_3.ResponseBody), returnType_1));\n }\n case 500: {\n return singleton_1.ReturnFrom((() => {\n throw ProxyRequestException_$ctor_76BC5104(response_3, toText(printf(\"Internal server error (500) while making request to %s\"))(url), response_3.ResponseBody);\n })());\n }\n default: {\n return singleton_1.ReturnFrom((() => {\n throw ProxyRequestException_$ctor_76BC5104(response_3, toText(printf(\"Http error (%d) from server occured while making request to %s\"))(matchValue_5)(url), response_3.ResponseBody);\n })());\n }\n }\n })));\n }\n return (arg0) => ((arg1) => ((arg2) => ((arg3) => ((arg4) => ((arg5) => ((arg6) => ((arg7) => {\n let matchValue_6;\n const inputArguments = funcNeedParameters ? take(argumentCount, [arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7]) : [];\n return executeRequest(binaryInput ? (new RequestBody(2, arg0)) : (matchValue_6 = (inputArgumentTypes.length | 0), (matchValue_6 === 1) ? ((!Convert_arrayLike(inputArgumentTypes[0])) ? (new RequestBody(1, Convert_serialize(inputArguments[0], new TypeInfo(29, () => inputArgumentTypes)))) : ((matchValue_6 === 1) ? (new RequestBody(1, Convert_serialize([inputArguments[0]], new TypeInfo(27, () => inputArgumentTypes[0])))) : (new RequestBody(1, Convert_serialize(inputArguments, new TypeInfo(29, () => inputArgumentTypes)))))) : ((matchValue_6 === 1) ? (new RequestBody(1, Convert_serialize([inputArguments[0]], new TypeInfo(27, () => inputArgumentTypes[0])))) : (new RequestBody(1, Convert_serialize(inputArguments, new TypeInfo(29, () => inputArgumentTypes)))))));\n })))))));\n}\n\n","import { empty } from \"../fable-library.3.2.1/List.js\";\nimport { uncurry } from \"../fable-library.3.2.1/Util.js\";\nimport { toFail, printf, toText } from \"../fable-library.3.2.1/String.js\";\nimport { RemoteBuilderOptions } from \"./Types.fs.js\";\nimport { Reader_$ctor_6C95DA22, Reader__Read_24524716 } from \"../Fable.Remoting.MsgPack.1.13.0/Read.fs.js\";\nimport { fullName, makeRecord, getRecordElements, name as name_1, class_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { value } from \"../fable-library.3.2.1/Option.js\";\nimport { createTypeInfo } from \"../Fable.SimpleJson.3.21.0/TypeInfo.Converter.fs.js\";\nimport { pick, map } from \"../fable-library.3.2.1/Array.js\";\nimport { singleton, collect, delay, toArray } from \"../fable-library.3.2.1/Seq.js\";\nimport { Proxy_proxyFetch } from \"./Proxy.fs.js\";\n\nexport function RemotingModule_createApi() {\n let clo1;\n return new RemoteBuilderOptions(empty(), void 0, void 0, false, uncurry(2, (clo1 = toText(printf(\"/%s/%s\")), (arg10) => {\n const clo2 = clo1(arg10);\n return (arg20) => clo2(arg20);\n })), uncurry(2, void 0));\n}\n\nexport function RemotingModule_withRouteBuilder(builder, options) {\n return new RemoteBuilderOptions(options.CustomHeaders, options.BaseUrl, options.Authorization, options.WithCredentials, builder, options.CustomResponseSerialization);\n}\n\nexport function RemotingModule_withBaseUrl(url, options) {\n return new RemoteBuilderOptions(options.CustomHeaders, url, options.Authorization, options.WithCredentials, options.RouteBuilder, options.CustomResponseSerialization);\n}\n\nexport function RemotingModule_withCustomHeader(headers, options) {\n return new RemoteBuilderOptions(headers, options.BaseUrl, options.Authorization, options.WithCredentials, options.RouteBuilder, options.CustomResponseSerialization);\n}\n\nexport function RemotingModule_withAuthorizationHeader(token, options) {\n return new RemoteBuilderOptions(options.CustomHeaders, options.BaseUrl, token, options.WithCredentials, options.RouteBuilder, options.CustomResponseSerialization);\n}\n\nexport function RemotingModule_withCredentials(withCredentials, options) {\n return new RemoteBuilderOptions(options.CustomHeaders, options.BaseUrl, options.Authorization, withCredentials, options.RouteBuilder, options.CustomResponseSerialization);\n}\n\nexport function RemotingModule_withBinarySerialization(options) {\n return new RemoteBuilderOptions(options.CustomHeaders, options.BaseUrl, options.Authorization, options.WithCredentials, options.RouteBuilder, (response, returnType) => Reader__Read_24524716(Reader_$ctor_6C95DA22(response), returnType));\n}\n\nexport class Remoting {\n constructor() {\n }\n}\n\nexport function Remoting$reflection() {\n return class_type(\"Fable.Remoting.Client.Remoting\", void 0, Remoting);\n}\n\nexport function Remoting_$ctor() {\n return new Remoting();\n}\n\nexport function Remoting_buildProxy_Z15584635(options, resolver) {\n const resolvedType = value(resolver).ResolveType();\n const schemaType = createTypeInfo(resolvedType);\n if (schemaType.tag === 36) {\n const patternInput = schemaType.fields[0]();\n const recordType = patternInput[1];\n const fieldTypes = map((prop) => [name_1(prop), prop[1]], getRecordElements(recordType));\n return makeRecord(recordType, toArray(delay(() => collect((field) => {\n let n, matchValue, fieldType, fn;\n return singleton((n = ((matchValue = field.FieldType, (matchValue.tag === 22) ? 0 : ((matchValue.tag === 23) ? 0 : ((matchValue.tag === 34) ? (matchValue.fields[0]().length - 1) : 0))) | 0), (fieldType = pick((tupledArg) => {\n if (tupledArg[0] === field.FieldName) {\n return tupledArg[1];\n }\n else {\n return void 0;\n }\n }, fieldTypes), (fn = Proxy_proxyFetch(options, name_1(recordType), field, fieldType), (n === 0) ? fn(null)(null)(null)(null)(null)(null)(null)(null) : ((n === 1) ? ((a) => fn(a)(null)(null)(null)(null)(null)(null)(null)) : ((n === 2) ? ((delegateArg0, delegateArg1) => fn(delegateArg0)(delegateArg1)(null)(null)(null)(null)(null)(null)) : ((n === 3) ? ((delegateArg0_1, delegateArg1_1, delegateArg2) => fn(delegateArg0_1)(delegateArg1_1)(delegateArg2)(null)(null)(null)(null)(null)) : ((n === 4) ? ((delegateArg0_2, delegateArg1_2, delegateArg2_1, delegateArg3) => fn(delegateArg0_2)(delegateArg1_2)(delegateArg2_1)(delegateArg3)(null)(null)(null)(null)) : ((n === 5) ? ((delegateArg0_3, delegateArg1_3, delegateArg2_2, delegateArg3_1, delegateArg4) => fn(delegateArg0_3)(delegateArg1_3)(delegateArg2_2)(delegateArg3_1)(delegateArg4)(null)(null)(null)) : ((n === 6) ? ((delegateArg0_4, delegateArg1_4, delegateArg2_3, delegateArg3_2, delegateArg4_1, delegateArg5) => fn(delegateArg0_4)(delegateArg1_4)(delegateArg2_3)(delegateArg3_2)(delegateArg4_1)(delegateArg5)(null)(null)) : ((n === 7) ? ((delegateArg0_5, delegateArg1_5, delegateArg2_4, delegateArg3_3, delegateArg4_2, delegateArg5_1, delegateArg6) => fn(delegateArg0_5)(delegateArg1_5)(delegateArg2_4)(delegateArg3_3)(delegateArg4_2)(delegateArg5_1)(delegateArg6)(null)) : ((n === 8) ? ((delegateArg0_6, delegateArg1_6, delegateArg2_5, delegateArg3_4, delegateArg4_3, delegateArg5_2, delegateArg6_1, delegateArg7) => fn(delegateArg0_6)(delegateArg1_6)(delegateArg2_5)(delegateArg3_4)(delegateArg4_3)(delegateArg5_2)(delegateArg6_1)(delegateArg7)) : toFail(printf(\"Cannot generate proxy function for %s. Only up to 8 arguments are supported. Consider using a record type as input\"))(field.FieldName)))))))))))));\n }, patternInput[0]))));\n }\n else {\n const arg10_1 = fullName(resolvedType);\n return toFail(printf(\"Cannot build proxy. Exepected type %s to be a valid protocol definition which is a record of functions\"))(arg10_1);\n }\n}\n\n","import { interpolate, toText } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { getToken } from \"./LocalStorage.fs.js\";\nimport { RemotingModule_withAuthorizationHeader, RemotingModule_createApi, RemotingModule_withRouteBuilder, Remoting_buildProxy_Z15584635 } from \"./.fable/Fable.Remoting.Client.7.16.0/Remoting.fs.js\";\nimport { Admin_FavoritesApi$reflection, Schools_SchoolsApi$reflection, Statistics_StatisticsApi$reflection, Schedules_SchedulesApi$reflection, StudentDays_StudentDaysApi$reflection, WorkoutTemplates_WorkoutTemplatesApi$reflection, Teachers_TeachersApi$reflection, Students_StudentsApi$reflection, Groups_GroupsApi$reflection, Settings_SettingsApi$reflection, Users_UsersApi$reflection, Auth_SignInApi$reflection, Route_builder } from \"../Shared/Shared.fs.js\";\n\nfunction token() {\n return toText(interpolate(\"Bearer %s%P()\", [getToken()]));\n}\n\nexport function authApi() {\n return Remoting_buildProxy_Z15584635(RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), {\n ResolveType: Auth_SignInApi$reflection,\n });\n}\n\nexport function usersApi() {\n return Remoting_buildProxy_Z15584635(RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), {\n ResolveType: Users_UsersApi$reflection,\n });\n}\n\nexport function settingsApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Settings_SettingsApi$reflection,\n });\n}\n\nexport function groupsApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Groups_GroupsApi$reflection,\n });\n}\n\nexport function studentsApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Students_StudentsApi$reflection,\n });\n}\n\nexport function teachersApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Teachers_TeachersApi$reflection,\n });\n}\n\nexport function workoutTemplatesApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: WorkoutTemplates_WorkoutTemplatesApi$reflection,\n });\n}\n\nexport function studentDaysApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: StudentDays_StudentDaysApi$reflection,\n });\n}\n\nexport function schedulesApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Schedules_SchedulesApi$reflection,\n });\n}\n\nexport function statisticsApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Statistics_StatisticsApi$reflection,\n });\n}\n\nexport function schoolsApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Schools_SchoolsApi$reflection,\n });\n}\n\nexport function adminApi() {\n let options_1;\n return Remoting_buildProxy_Z15584635((options_1 = RemotingModule_withRouteBuilder((typeName, methodName) => Route_builder(typeName, methodName), RemotingModule_createApi()), RemotingModule_withAuthorizationHeader(token(), options_1)), {\n ResolveType: Admin_FavoritesApi$reflection,\n });\n}\n\n","import { Result_MapError, Result_Map, FSharpResult$2 } from \"../fable-library.3.2.1/Choice.js\";\nimport { class_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { equals, getEnumerator } from \"../fable-library.3.2.1/Util.js\";\n\nexport function reject(reason) {\n return Promise.reject(reason);\n}\n\nexport function result(a) {\n return a.then(((arg) => (new FSharpResult$2(0, arg))),((arg_1) => (new FSharpResult$2(1, arg_1))));\n}\n\nexport function mapResult(fn, a) {\n return a.then(((result_1) => Result_Map(fn, result_1)));\n}\n\nexport function bindResult(fn, a) {\n return a.then(((a_1) => {\n if (a_1.tag === 1) {\n return Promise.resolve((new FSharpResult$2(1, a_1.fields[0])));\n }\n else {\n return result(fn(a_1.fields[0]));\n }\n }));\n}\n\nexport function mapResultError(fn, a) {\n return a.then(((result_1) => Result_MapError(fn, result_1)));\n}\n\nexport function tap(fn, a) {\n return a.then(((x) => {\n fn(x);\n return x;\n }));\n}\n\nexport class PromiseBuilder {\n constructor() {\n }\n}\n\nexport function PromiseBuilder$reflection() {\n return class_type(\"Promise.PromiseBuilder\", void 0, PromiseBuilder);\n}\n\nexport function PromiseBuilder_$ctor() {\n return new PromiseBuilder();\n}\n\nexport function PromiseBuilder__For_1565554B(x, seq, body) {\n let p = Promise.resolve(undefined);\n const enumerator = getEnumerator(seq);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const a = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n p = (p.then((() => body(a))));\n }\n }\n finally {\n enumerator.Dispose();\n }\n return p;\n}\n\nexport function PromiseBuilder__While_2044D34(x, guard, p) {\n if (guard()) {\n return p.then((() => PromiseBuilder__While_2044D34(x, guard, p)));\n }\n else {\n return Promise.resolve(undefined);\n }\n}\n\nexport function PromiseBuilder__TryFinally_7D49A2FD(x, p, compensation) {\n return p.then(((x_1) => {\n compensation();\n return x_1;\n }),((er) => {\n compensation();\n throw er;\n }));\n}\n\nexport function PromiseBuilder__Delay_62FBFDE1(x, generator) {\n return {\n then: (f1, f2) => {\n try {\n return generator().then(f1, f2);\n }\n catch (er) {\n if (equals(f2, null)) {\n return Promise.reject(er);\n }\n else {\n try {\n return Promise.resolve(f2(er));\n }\n catch (er_1) {\n return Promise.reject(er_1);\n }\n }\n }\n },\n catch: (f) => {\n try {\n return generator().catch(f);\n }\n catch (er_2) {\n try {\n return Promise.resolve(f(er_2));\n }\n catch (er_3) {\n return Promise.reject(er_3);\n }\n }\n },\n };\n}\n\nexport function PromiseBuilder__Run_212F1D4B(x, p) {\n return new Promise(((success, fail) => {\n try {\n const p_1 = Promise.resolve(p);\n p_1.then(success, fail);\n }\n catch (er) {\n fail(er);\n }\n }));\n}\n\nexport function PromiseBuilder__Using_74F7E79D(x, resource, binder) {\n return PromiseBuilder__TryFinally_7D49A2FD(x, binder(resource), () => {\n let copyOfStruct = resource;\n copyOfStruct.Dispose();\n });\n}\n\n","import { PromiseBuilder_$ctor } from \"./Promise.fs.js\";\n\nexport const promise = PromiseBuilder_$ctor();\n\n","import { Union } from \"../fable-library.3.2.1/Types.js\";\nimport { class_type, union_type, int32_type, array_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { fill } from \"../fable-library.3.2.1/Array.js\";\nimport { isDisposable, comparePrimitives, max } from \"../fable-library.3.2.1/Util.js\";\nimport { toArray, value as value_1, some } from \"../fable-library.3.2.1/Option.js\";\nimport { iterate as iterate_1, singleton, collect, take, skip, append, delay } from \"../fable-library.3.2.1/Seq.js\";\nimport { rangeDouble } from \"../fable-library.3.2.1/Range.js\";\nimport { useReact_useMemo_CF4EA67, useReact_useEffect_3A5B6456, useReact_useEffect_Z101E1A95, useReact_useEffect_Z5234A374, useReact_useCallbackRef_7C4B0DD6, React_createDisposable_3A5B6456, useReact_useEffectOnce_Z5ECA432F, useFeliz_React__React_useState_Static_1505, useReact_useRef_1505 } from \"../Feliz.1.51.0/React.fs.js\";\nimport { isCancellationRequested, cancel, createCancellationToken } from \"../fable-library.3.2.1/Async.js\";\nimport { PromiseBuilder__While_2044D34, PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../Fable.Promise.2.0.0/Promise.fs.js\";\nimport { iterate } from \"../fable-library.3.2.1/List.js\";\nimport { promise } from \"../Fable.Promise.2.0.0/PromiseImpl.fs.js\";\n\nexport class RingState$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Writable\", \"ReadWritable\"];\n }\n}\n\nexport function RingState$1$reflection(gen0) {\n return union_type(\"Feliz.UseElmish.RingState`1\", [gen0], RingState$1, () => [[[\"wx\", array_type(gen0)], [\"ix\", int32_type]], [[\"rw\", array_type(gen0)], [\"wix\", int32_type], [\"rix\", int32_type]]]);\n}\n\nexport class RingBuffer$1 {\n constructor(size) {\n this.state = (new RingState$1(0, fill(new Array(max((x, y) => comparePrimitives(x, y), size, 10)), 0, max((x, y) => comparePrimitives(x, y), size, 10), null), 0));\n }\n}\n\nexport function RingBuffer$1$reflection(gen0) {\n return class_type(\"Feliz.UseElmish.RingBuffer`1\", [gen0], RingBuffer$1);\n}\n\nexport function RingBuffer$1_$ctor_Z524259A4(size) {\n return new RingBuffer$1(size);\n}\n\nexport function RingBuffer$1__Pop(_) {\n const matchValue = _.state;\n if (matchValue.tag === 1) {\n const wix = matchValue.fields[1] | 0;\n const rix = matchValue.fields[2] | 0;\n const items = matchValue.fields[0];\n const rix$0027 = ((rix + 1) % items.length) | 0;\n if (rix$0027 === wix) {\n _.state = (new RingState$1(0, items, wix));\n }\n else {\n _.state = (new RingState$1(1, items, wix, rix$0027));\n }\n return some(items[rix]);\n }\n else {\n return void 0;\n }\n}\n\nexport function RingBuffer$1__Push_2B595(_, item) {\n const matchValue = _.state;\n if (matchValue.tag === 1) {\n const wix_1 = matchValue.fields[1] | 0;\n const rix = matchValue.fields[2] | 0;\n const items_1 = matchValue.fields[0];\n items_1[wix_1] = item;\n const wix$0027 = ((wix_1 + 1) % items_1.length) | 0;\n if (wix$0027 === rix) {\n _.state = (new RingState$1(1, RingBuffer$1__doubleSize(_, rix, items_1), items_1.length, 0));\n }\n else {\n _.state = (new RingState$1(1, items_1, wix$0027, rix));\n }\n }\n else {\n const ix = matchValue.fields[1] | 0;\n const items = matchValue.fields[0];\n items[ix] = item;\n const wix = ((ix + 1) % items.length) | 0;\n _.state = (new RingState$1(1, items, wix, ix));\n }\n}\n\nfunction RingBuffer$1__doubleSize(this$, ix, items) {\n return Array.from(delay(() => append(skip(ix, items), delay(() => append(take(ix, items), delay(() => collect((matchValue) => singleton(null), rangeDouble(0, 1, items.length))))))));\n}\n\nexport function useFeliz_React__React_useElmish_Static_17DC4F1D(init, update, dependencies) {\n const state = useReact_useRef_1505(init[0]);\n const ring = useReact_useRef_1505(RingBuffer$1_$ctor_Z524259A4(10));\n const patternInput = useFeliz_React__React_useState_Static_1505(init[0]);\n let token_1;\n const cts = useReact_useRef_1505(createCancellationToken());\n const token = useReact_useRef_1505(cts.current);\n useReact_useEffectOnce_Z5ECA432F(() => React_createDisposable_3A5B6456(() => {\n cancel(cts.current);\n }));\n token_1 = token;\n const setChildState_1 = () => {\n void setTimeout(() => {\n let copyOfStruct;\n if (!(copyOfStruct = token_1.current, isCancellationRequested(copyOfStruct))) {\n patternInput[1](state.current);\n }\n }, 0);\n };\n const dispatch = (msg) => {\n const pr = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let nextMsg = some(msg);\n return PromiseBuilder__While_2044D34(promise, () => {\n let copyOfStruct_1;\n return (nextMsg != null) ? (!(copyOfStruct_1 = token_1.current, isCancellationRequested(copyOfStruct_1))) : false;\n }, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n const patternInput_1 = update(value_1(nextMsg), state.current);\n iterate((sub) => {\n sub(dispatch);\n }, patternInput_1[1]);\n nextMsg = RingBuffer$1__Pop(ring.current);\n state.current = patternInput_1[0];\n setChildState_1();\n return Promise.resolve();\n }));\n }));\n pr.then();\n };\n const dispatch_1 = useReact_useCallbackRef_7C4B0DD6(dispatch);\n useReact_useEffect_Z5234A374(() => React_createDisposable_3A5B6456(() => {\n let matchValue;\n iterate_1((o) => {\n o.Dispose();\n }, toArray((matchValue = state.current, isDisposable(matchValue) ? matchValue : (void 0))));\n }), dependencies);\n useReact_useEffect_Z101E1A95(() => {\n state.current = init[0];\n setChildState_1();\n iterate((sub_1) => {\n sub_1(dispatch_1);\n }, init[1]);\n }, dependencies);\n useReact_useEffect_3A5B6456(() => {\n iterate_1(dispatch_1, toArray(RingBuffer$1__Pop(ring.current)));\n });\n return [patternInput[0], dispatch_1];\n}\n\nexport function useFeliz_React__React_useElmish_Static_645B1FB7(init, update, dependencies) {\n return useFeliz_React__React_useElmish_Static_17DC4F1D(useReact_useMemo_CF4EA67(init, dependencies), update, dependencies);\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, bool_type, union_type, string_type, unit_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, Remoting_userChanged, View_Cmd_toastError, AsyncOperationStatus$1, Remoting_handleNonAuth, DeferredResult$1, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { settingsApi } from \"../Communication.fs.js\";\nimport { now } from \"../.fable/fable-library.3.2.1/DateOffset.js\";\nimport { Auth_SignedInUser } from \"../../Shared/Shared.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { empty, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray, singleton as singleton_2, empty as empty_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\n\nexport class State extends Record {\n constructor(Changing, IsVisible) {\n super();\n this.Changing = Changing;\n this.IsVisible = IsVisible;\n }\n}\n\nexport function State$reflection() {\n return record_type(\"GdprModal.State\", [], State, () => [[\"Changing\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"IsVisible\", bool_type]]);\n}\n\nexport class Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Accept\"];\n }\n}\n\nexport function Msg$reflection() {\n return union_type(\"GdprModal.Msg\", [], Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function init() {\n return [new State(new DeferredResult$1(0), true), Cmd_none()];\n}\n\nexport const change = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(settingsApi().acceptGdpr()), (_arg1) => ((_arg1.tag === 1) ? singleton.Return(new Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Can not find account\")))) : singleton.Return(new Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))))))), (_arg2) => singleton.Return(new Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function update(msg, state) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.IsVisible), View_Cmd_toastError(msg.fields[0].fields[0].fields[0])];\n }\n else {\n Remoting_userChanged((x) => (new Auth_SignedInUser(x.Email, x.FullName, x.SchoolId, x.GroupId, now(), x.AccessToken, x.Role, x.UserId, x.ChatText, x.ChatChangeDate)));\n return [new State(new DeferredResult$1(2, new FSharpResult$2(0, void 0)), false), Cmd_none()];\n }\n }\n else {\n return [new State(new DeferredResult$1(1), state.IsVisible), Cmd_fromAsync(change)];\n }\n}\n\nexport function Render() {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(init(), (msg, state) => update(msg, state), []);\n const props_16 = toList(delay(() => append(patternInput[0].IsVisible ? singleton_1([\"className\", \"is-active\"]) : empty(), delay(() => {\n let elms_1, elms, props_9, props_13;\n return singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", empty_1()))), (elms_1 = ofArray([(elms = singleton_2(createElement(\"p\", createObj(Helpers_combineClasses(\"modal-card-title\", singleton_2([\"children\", \"GDPR\"]))))), createElement(\"header\", {\n className: \"modal-card-head\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_9 = ofArray([[\"className\", \"has-background-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", {\n children: [\"Klicka på knappen negan för att godkänn vår hantering av dina uppgifter.\"],\n }), createElement(\"p\", {\n children: Interop_reactApi.Children.toArray([createElement(\"span\", {\n children: [\"Du kan läsa om dessa här: \"],\n }), createElement(\"a\", {\n children: \"GDPR\",\n href: toPath(new Route(3)),\n target: \"_blank\",\n })]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"card-content\", props_9)))), (props_13 = ofArray([[\"style\", {\n justifyContent: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"children\", \"JAG GODKÄNNER GDPR\"], [\"onClick\", (_arg1) => {\n patternInput[1](new Msg(0, new AsyncOperationStatus$1(0)));\n }]]))))])]]), createElement(\"footer\", createObj(Helpers_combineClasses(\"modal-card-foot\", props_13))))]), createElement(\"div\", {\n className: \"modal-card\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]);\n }))));\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_16)));\n}\n\n","import { value as value_30, defaultArg } from \"./.fable/fable-library.3.2.1/Option.js\";\nimport { empty as empty_1, tryFind } from \"./.fable/fable-library.3.2.1/Map.js\";\nimport { map, cons, singleton, ofArray, isEmpty, fold, empty } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { join, interpolate, toText } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { Validator$1__NotBlank_2B595, Validator$1__Test, Validator$1__IsMail, Validator$1__End_Z5E18B1E2, validateSync } from \"./.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { Auth_LogInRequest, EmailModule_toString, EmailModule_ofString } from \"../Shared/Shared.fs.js\";\nimport { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { useReact_useRef_1505 } from \"./.fable/Feliz.1.51.0/React.fs.js\";\n\nexport const borderStylePrimary = [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#226699\",\n}];\n\nexport const borderStyleBottomPrimary = [\"style\", {\n borderBottom: (((1 + \"px \") + \"solid\") + \" \") + \"#226699\",\n}];\n\nexport const borderStyleBottomGrey = [\"style\", {\n borderBottom: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n}];\n\nexport function Form_filter(x, errors) {\n if (x) {\n return errors;\n }\n else {\n return void 0;\n }\n}\n\nexport function Form_getFieldError(errors, field) {\n return defaultArg(tryFind(field, errors), empty());\n}\n\nexport function Form_Field_errors(fieldName, errors) {\n return Form_getFieldError(errors, fieldName);\n}\n\nexport function Form_Field_errorsAsString(fieldName) {\n return (arg) => fold((s, x) => toText(interpolate(\"%s%P() %s%P()\", [s, x])), \"\", Form_Field_errors(fieldName, arg));\n}\n\nexport function Form_Field_hasErrors(fieldName) {\n return (arg_1) => (!isEmpty(Form_Field_errors(fieldName, arg_1)));\n}\n\nexport const Form_Field_fieldStyleOnError = ofArray([[\"borderColor\", \"#FF0000\"], [\"boxShadow\", \"none\"]]);\n\nexport function Form_validateLogin(user) {\n return validateSync(true, (t) => (new Auth_LogInRequest(EmailModule_ofString(Validator$1__End_Z5E18B1E2(t, Validator$1__IsMail(t, \"Email is incorrect\", Validator$1__Test(t, \"Login\", EmailModule_toString(user.Email))))), Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Password is required\")(Validator$1__Test(t, \"Password\", user.Password))))));\n}\n\nexport function Form_validationLogin(user, validationState) {\n const form = Form_validateLogin(user);\n if (form.tag === 1) {\n return validationState ? form.fields[0] : empty_1();\n }\n else {\n return empty_1();\n }\n}\n\nexport function Form_validationForgotPassword(email, validationState) {\n const form = validateSync(true, (t) => EmailModule_ofString(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Email is required\")(Validator$1__Test(t, \"Email\", EmailModule_toString(email))))));\n if (form.tag === 1) {\n return validationState ? form.fields[0] : empty_1();\n }\n else {\n return empty_1();\n }\n}\n\nexport function View_renderNotification(color, text) {\n const props_3 = ofArray([color, [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n style: {\n textAlign: \"left\",\n },\n children: Interop_reactApi.Children.toArray([createElement(\"i\", {\n style: {\n fontSize: 25 + \"px\",\n verticalAlign: \"middle\",\n },\n className: join(\" \", [\"fa\", \"fa-2x\", \"fa-info-circle\"]),\n }), createElement(\"p\", {\n style: {\n fontSize: 14 + \"px\",\n fontWeight: 400,\n },\n className: \"mt-2\",\n children: text,\n })]),\n })])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"notification\", props_3)));\n}\n\nexport function View_RenderDeleteWindow(props) {\n let props_11, elms, props_8;\n const props_13 = ofArray([[\"className\", \"is-active\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton([\"onClick\", (_arg1) => {\n props.notConfirmed();\n }])))), (props_11 = singleton([\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([createElement(\"p\", {\n className: \"\",\n children: props.text,\n }), (props_8 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg2) => {\n props.notConfirmed();\n }], [\"className\", \"is-text\"], [\"children\", \"Avbryt\"]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg3) => {\n props.confirmed();\n }], [\"className\", \"is-danger\"], [\"children\", \"Ta bort\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_8))))]), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"modal-content\", props_11))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_13)));\n}\n\nexport function View_checkBoxField(label, value, onChange) {\n let props;\n const checkboxRef = useReact_useRef_1505(void 0);\n const elms = ofArray([(props = ofArray([[\"ref\", checkboxRef], [\"className\", \"is-small\"], [\"onChange\", (ev) => {\n onChange(ev.target.checked);\n }], [\"checked\", value], [\"className\", join(\" \", [\"is-checkradio\"])]]), createElement(\"input\", createObj(cons([\"type\", \"checkbox\"], Helpers_combineClasses(\"checkbox\", props))))), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-normal\"], [\"children\", label], [\"onClick\", (_arg1) => {\n let copyOfStruct = value_30(checkboxRef.current);\n copyOfStruct.click();\n }]]))))]);\n return createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function View_checkBoxFieldBig(label, value, onChange) {\n let props;\n const checkboxRef = useReact_useRef_1505(void 0);\n const elms = ofArray([(props = ofArray([[\"ref\", checkboxRef], [\"onChange\", (ev) => {\n onChange(ev.target.checked);\n }], [\"checked\", value], [\"className\", join(\" \", [\"is-checkradio\"])]]), createElement(\"input\", createObj(cons([\"type\", \"checkbox\"], Helpers_combineClasses(\"checkbox\", props))))), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-normal\"], [\"children\", label], [\"onClick\", (_arg1) => {\n let copyOfStruct = value_30(checkboxRef.current);\n copyOfStruct.click();\n }]]))))]);\n return createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function View_renderSelectOption(id, text) {\n return createElement(\"option\", {\n value: id,\n children: text,\n });\n}\n\nexport function View_renderEmptySelectOption(text, disabled) {\n return createElement(\"option\", {\n disabled: disabled,\n children: text,\n });\n}\n\nexport function View_renderSelectOptionDisabled(id, text, disabled) {\n return createElement(\"option\", {\n value: id,\n children: text,\n disabled: disabled,\n });\n}\n\nexport function View_DUSelect(title, values, toStrValue, toStrLabel, parse, value, onChange) {\n let props_2, elms, patternInput;\n const options = map((x) => View_renderSelectOption(toStrValue(x), toStrLabel(x)), values);\n const props_9 = singleton([\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"className\", \"has-text-grey\"], [\"children\", title]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_2)))), (elms = singleton((patternInput = Helpers_extractClasses(ofArray([[\"className\", \"is-small\"], [\"className\", \"is-size-7\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-left\"], [\"className\", \"has-text-grey\"], [\"defaultValue\", toStrValue(value)], [\"onChange\", (ev) => {\n onChange(parse(ev.target.value));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(options))]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_9)));\n}\n\n","import * as Subtract from \"./public/Subtract.svg\";\n\nexport const Img_logo = Subtract;\n\n","import { Record, Union } from \"../fable-library.3.2.1/Types.js\";\nimport { record_type, int32_type, union_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { React_createDisposable_3A5B6456, useReact_useEffect_Z5234A374, useReact_useState_FCFD9EF } from \"../Feliz.1.51.0/React.fs.js\";\nimport { defaultArg } from \"../fable-library.3.2.1/Option.js\";\n\nexport class ScreenSize extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Mobile\", \"MobileLandscape\", \"Tablet\", \"Desktop\", \"WideScreen\"];\n }\n}\n\nexport function ScreenSize$reflection() {\n return union_type(\"Feliz.UseMediaQuery.ScreenSize\", [], ScreenSize, () => [[], [], [], [], []]);\n}\n\nexport class Breakpoints extends Record {\n constructor(MobileLandscape, Tablet, Desktop, WideScreen) {\n super();\n this.MobileLandscape = (MobileLandscape | 0);\n this.Tablet = (Tablet | 0);\n this.Desktop = (Desktop | 0);\n this.WideScreen = (WideScreen | 0);\n }\n}\n\nexport function Breakpoints$reflection() {\n return record_type(\"Feliz.UseMediaQuery.Breakpoints\", [], Breakpoints, () => [[\"MobileLandscape\", int32_type], [\"Tablet\", int32_type], [\"Desktop\", int32_type], [\"WideScreen\", int32_type]]);\n}\n\nexport const BreakpointsModule_defaults = new Breakpoints(576, 768, 1024, 1216);\n\nfunction makeQueries(breakpoints) {\n return [(\"(max-width: \" + breakpoints.MobileLandscape) + \"px)\", (\"(max-width: \" + breakpoints.Tablet) + \"px)\", (\"(max-width: \" + breakpoints.Desktop) + \"px)\", (\"(max-width: \" + breakpoints.WideScreen) + \"px)\"];\n}\n\nexport function useFeliz_React__React_useMediaQuery_Static_Z721C83C5(mediaQuery) {\n const patternInput = useReact_useState_FCFD9EF(() => (window.matchMedia(mediaQuery)).matches);\n useReact_useEffect_Z5234A374(() => {\n const mediaQueryList = window.matchMedia(mediaQuery);\n const handler = () => {\n patternInput[1](mediaQueryList.matches);\n };\n handler();\n (mediaQueryList).addListener(handler);\n return React_createDisposable_3A5B6456(() => {\n (mediaQueryList).removeListener(handler);\n });\n }, [mediaQuery]);\n return patternInput[0];\n}\n\nexport function useFeliz_React__React_useResponsive_Static_Z1648B8FF(breakpoints) {\n const patternInput = makeQueries(defaultArg(breakpoints, BreakpointsModule_defaults));\n const matchValue = [useFeliz_React__React_useMediaQuery_Static_Z721C83C5(patternInput[0]), useFeliz_React__React_useMediaQuery_Static_Z721C83C5(patternInput[1]), useFeliz_React__React_useMediaQuery_Static_Z721C83C5(patternInput[2]), useFeliz_React__React_useMediaQuery_Static_Z721C83C5(patternInput[3])];\n if (matchValue[0]) {\n return new ScreenSize(0);\n }\n else if (matchValue[1]) {\n return new ScreenSize(1);\n }\n else if (matchValue[2]) {\n return new ScreenSize(2);\n }\n else if (matchValue[3]) {\n return new ScreenSize(3);\n }\n else {\n return new ScreenSize(4);\n }\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, class_type, list_type, bool_type, union_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { EmailModule_ofString, EmailModule_empty, Errors_ServerErrorModule_explain, Auth_LogInRequest, Auth_SignedInUser$reflection } from \"../../Shared/Shared.fs.js\";\nimport { Result_MapError, FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, Form_validationLogin, DeferredResult$1, AsyncOperationStatus$1, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { authApi } from \"../Communication.fs.js\";\nimport { saveUser } from \"../LocalStorage.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_OfFunc_perform, Cmd_batch, Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { value as value_212 } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { cons, ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { Img_logo } from \"../Css.fs.js\";\nimport { int32ToString, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { year, now } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport * as illustration2 from \"../public/illustration2.svg\";\nimport * as App_Store_Badge_black from \"../public/App_Store_Badge_black.png\";\nimport * as google$002Dplay$002Dbadge_black from \"../public/google-play-badge_black.png\";\nimport { empty as empty_1, singleton as singleton_2, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { useFeliz_React__React_useResponsive_Static_Z1648B8FF } from \"../.fable/Feliz.UseMediaQuery.1.4.0/UseMediaQuery.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_645B1FB7 } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_State extends Record {\n constructor(Email, Password, LoginResult, isUserValid, FormErrors, FormValidation) {\n super();\n this.Email = Email;\n this.Password = Password;\n this.LoginResult = LoginResult;\n this.isUserValid = isUserValid;\n this.FormErrors = FormErrors;\n this.FormValidation = FormValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"Login.Types.State\", [], Types_State, () => [[\"Email\", string_type], [\"Password\", string_type], [\"LoginResult\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Auth_SignedInUser$reflection(), string_type], FSharpResult$2, () => [[[\"ResultValue\", Auth_SignedInUser$reflection()]], [[\"ErrorValue\", string_type]]]))], [\"isUserValid\", bool_type], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"FormValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoginChanged\", \"PasswordChanged\", \"Login\", \"UserSaved\", \"Empty\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"Login.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Auth_SignedInUser$reflection(), string_type], FSharpResult$2, () => [[[\"ResultValue\", Auth_SignedInUser$reflection()]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", Auth_SignedInUser$reflection()]], []]);\n}\n\nexport function Cmd_login(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const loginInfo = new Auth_LogInRequest(state.Email, state.Password);\n return singleton.Bind(authApi().logIn(loginInfo), (_arg1) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, Result_MapError((_arg1_1) => Errors_ServerErrorModule_explain(_arg1_1), _arg1)))));\n }), (_arg2) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Cmd_saveUser(user) {\n saveUser(user);\n}\n\nexport function State_init() {\n return [new Types_State(EmailModule_empty, \"\", new DeferredResult$1(0), true, empty(), false), Cmd_none()];\n}\n\nexport function State_update(signin, msg, state) {\n if (msg.tag === 1) {\n return [new Types_State(state.Email, msg.fields[0], state.LoginResult, state.isUserValid, value_212(Form_validationLogin(new Auth_LogInRequest(state.Email, msg.fields[0]), state.FormValidation)), state.FormValidation), Cmd_none()];\n }\n else if (msg.tag === 2) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Email, state.Password, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), false, state.FormErrors, state.FormValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Email, state.Password, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), true, state.FormErrors, state.FormValidation), Cmd_batch(singleton_1(Cmd_OfFunc_perform((user_1) => {\n Cmd_saveUser(user_1);\n }, msg.fields[0].fields[0].fields[0], () => (new Types_Msg(3, msg.fields[0].fields[0].fields[0])))))];\n }\n }\n else {\n const errors_2 = Form_validationLogin(new Auth_LogInRequest(state.Email, state.Password), (new Types_State(state.Email, state.Password, state.LoginResult, state.isUserValid, state.FormErrors, true)).FormValidation);\n if (value_212(errors_2).Equals(empty())) {\n return [new Types_State(state.Email, state.Password, new DeferredResult$1(1), state.isUserValid, value_212(errors_2), true), Cmd_fromAsync(Cmd_login(state))];\n }\n else {\n return [new Types_State(state.Email, state.Password, new DeferredResult$1(0), state.isUserValid, value_212(errors_2), true), Cmd_none()];\n }\n }\n }\n else if (msg.tag === 3) {\n return [state, Cmd_OfFunc_perform(signin, msg.fields[0], (_arg2) => (new Types_Msg(4)))];\n }\n else if (msg.tag === 4) {\n return [state, Cmd_none()];\n }\n else {\n const errors = Form_validationLogin(new Auth_LogInRequest(EmailModule_ofString(msg.fields[0]), state.Password), state.FormValidation);\n return [new Types_State(EmailModule_ofString(msg.fields[0]), state.Password, state.LoginResult, state.isUserValid, value_212(errors), state.FormValidation), Cmd_none()];\n }\n}\n\nexport function View_layout(form) {\n let props_55, props_23, props_3, props_1, props_13, props_11, children, props_21, props_17, props_15, props_19, copyOfStruct_1, copyOfStruct, props_53, props_51, value_123, props_49, props_47, props_41, value_180, props_45, value_197;\n const props_57 = ofArray([[\"className\", \"is-fullhd\"], [\"className\", \"py-5\"], [\"children\", Interop_reactApi.Children.toArray([(props_55 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_23 = ofArray([[\"className\", \"is-one-third\"], [\"style\", {\n display: \"grid\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_3 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"px-4\"], [\"className\", \"py-4\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"img\", {\n src: Img_logo,\n style: {\n height: 60,\n width: 60,\n },\n }), (props_1 = ofArray([[\"className\", \"pl-3\"], [\"style\", {\n fontSize: 24 + \"px\",\n fontWeight: 700,\n }], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Endurance\"]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_1))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_3)))), (props_13 = ofArray([[\"style\", {\n alignSelf: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_11 = ofArray([[\"className\", \"has-text-centered\"], [\"className\", \"mb-6\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", {\n children: [\"Har du frågor efter senaste uppdateringen?\"],\n }), (children = ofArray([createElement(\"span\", {\n children: [\"Maila på \"],\n }), createElement(\"a\", {\n children: \"noreply@endurance.se\",\n href: \"mailto:noreply@endurance.se\",\n }), createElement(\"span\", {\n children: [\" eller ring på \"],\n }), createElement(\"a\", {\n style: {\n whiteSpace: \"nowrap\",\n },\n children: \"0733-448 184\",\n href: \"tel:0733-448 184\",\n })]), createElement(\"p\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_11)))), form])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_13)))), (props_21 = ofArray([[\"className\", \"has-text-centered\"], [\"style\", {\n alignSelf: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_17 = ofArray([[\"className\", \"is-centered\"], [\"children\", Interop_reactApi.Children.toArray([(props_15 = ofArray([[\"className\", \"is-text\"], [\"className\", \"has-text-primary\"], [\"href\", toPath(new Route(3))], [\"target\", \"_blank\"], [\"children\", \"GDPR\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_15))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_17)))), (props_19 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-text-centered\"], [\"children\", \"© 2010 - \" + (copyOfStruct_1 = (copyOfStruct = now(), year(copyOfStruct)), int32ToString(copyOfStruct_1))]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_19))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_21))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_23)))), (props_53 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_51 = ofArray([[\"style\", {\n height: 92.1 + \"vh\",\n overflow: \"hidden\",\n position: \"relative\",\n }], [\"className\", \"py-5\"], [\"className\", \"has-background-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-1\"], [\"className\", \"pt-6\"], [\"className\", \"px-6\"], [\"className\", \"has-text-white\"], [\"children\", \"Välkommen till Endurance!\"]])))), createElement(\"h2\", createObj(Helpers_combineClasses(\"subtitle\", ofArray([[\"className\", \"pt-4\"], [\"className\", \"mb-0\"], [\"className\", \"px-6\"], [\"className\", \"has-text-white\"], [\"children\", \"Här kan du enkelt\"]])))), createElement(\"h2\", createObj(Helpers_combineClasses(\"subtitle\", ofArray([[\"className\", \"px-6\"], [\"className\", \"my-0\"], [\"className\", \"has-text-white\"], [\"children\", \"hålla reda på din träning\"]])))), createElement(\"h2\", createObj(Helpers_combineClasses(\"subtitle\", ofArray([[\"className\", \"px-6\"], [\"className\", \"my-0\"], [\"className\", \"has-text-white\"], [\"children\", \"och mäta din framgång\"]])))), createElement(\"img\", createObj(ofArray([(value_123 = illustration2, [\"src\", value_123]), [\"style\", {\n height: \"auto\",\n width: 100 + \"%\",\n position: \"absolute\",\n bottom: 0,\n right: 0,\n zIndex: 0,\n }]]))), (props_49 = ofArray([[\"className\", \"has-background-white\"], [\"style\", {\n height: 80,\n width: 600,\n position: \"absolute\",\n bottom: 20,\n right: 20,\n zIndex: 0,\n padding: 20,\n }], [\"children\", Interop_reactApi.Children.toArray([(props_47 = ofArray([[\"className\", \"my-0\"], [\"className\", \"mx-0\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n style: {\n lineHeight: 20 + \"px\",\n fontSize: 18 + \"px\",\n },\n children: Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Endurance \"]])))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-grey-dark\"], [\"children\", \"finns nu till din favoritenhet!\"]]))))]),\n }), (props_41 = ofArray([[\"className\", \"py-0\"], [\"className\", \"px-3\"], [\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n href: \"https://apps.apple.com/us/app/endurance-skidor/id1590125092?itsct=apps_box_link\\u0026itscg=30200\",\n children: Interop_reactApi.Children.toArray([createElement(\"img\", createObj(ofArray([(value_180 = App_Store_Badge_black, [\"src\", value_180]), [\"style\", {\n height: 40,\n width: \"auto\",\n }]])))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_41)))), (props_45 = ofArray([[\"className\", \"py-0\"], [\"className\", \"px-0\"], [\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n href: \"https://play.google.com/store/apps/details?id=se.endurance.app\",\n children: Interop_reactApi.Children.toArray([createElement(\"img\", createObj(ofArray([(value_197 = google$002Dplay$002Dbadge_black, [\"src\", value_197]), [\"style\", {\n height: 40,\n width: \"auto\",\n }]])))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_45))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_47))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_49))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_51))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_53))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_55))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_57)));\n}\n\nexport function View_mobile(form) {\n let props_11, props_3, props_1, props_9, props_7, props_5, props_37;\n const props_40 = ofArray([[\"style\", {\n display: \"grid\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n style: {\n padding: 20,\n },\n children: Interop_reactApi.Children.toArray([(props_11 = ofArray([[\"className\", \"mx-0\"], [\"className\", \"my-0\"], [\"className\", \"is-vcentered\"], [\"className\", \"is-mobile\"], [\"children\", Interop_reactApi.Children.toArray([(props_3 = ofArray([[\"className\", \"px-0\"], [\"className\", \"pt-0\"], [\"style\", {\n alignItems: \"center\",\n display: \"flex\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"img\", {\n src: Img_logo,\n style: {\n height: 30,\n width: 30,\n },\n }), (props_1 = ofArray([[\"className\", \"pl-3\"], [\"style\", {\n fontSize: 13 + \"px\",\n fontWeight: 700,\n }], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Endurance\"]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_1))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_3)))), (props_9 = ofArray([[\"className\", \"px-0\"], [\"className\", \"pt-0\"], [\"children\", Interop_reactApi.Children.toArray([(props_7 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_5 = ofArray([[\"className\", \"is-text\"], [\"className\", \"has-text-primary\"], [\"href\", toPath(new Route(3))], [\"target\", \"_blank\"], [\"children\", \"GDPR\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_5))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_7))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_9))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_11)))), createElement(\"div\", {\n style: {\n alignSelf: \"flex-end\",\n },\n children: Interop_reactApi.Children.toArray([form]),\n })]),\n }), createElement(\"div\", {\n style: {\n padding: ((((((0 + \"px \") + 20) + \"px \") + 20) + \"px \") + 20) + \"px\",\n },\n children: Interop_reactApi.Children.toArray([(props_37 = toList(delay(() => {\n const h = document.documentElement.clientHeight - 320;\n return append(singleton_2([\"style\", {\n height: h + \"px\",\n overflow: \"hidden\",\n position: \"relative\",\n }]), delay(() => append(singleton_2([\"className\", \"has-background-primary\"]), delay(() => {\n let props_15, props_17, value_89, props_35, props_20, props_22, props_33, props_27, value_157, props_31, value_170;\n return singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_15 = ofArray([[\"className\", \"pt-4\"], [\"style\", {\n fontSize: 18 + \"px\",\n }], [\"className\", \"has-text-centered\"], [\"className\", \"has-text-white\"], [\"children\", \"Välkommen till Endurance!\"]]), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", props_15)))), (props_17 = ofArray([[\"className\", \"pt-4\"], [\"style\", {\n fontSize: 10 + \"px\",\n }], [\"className\", \"has-text-centered\"], [\"className\", \"has-text-white\"], [\"children\", \"Här kan du enkelt hålla reda på din träning och mäta din framgång\"]]), createElement(\"h2\", createObj(Helpers_combineClasses(\"subtitle\", props_17)))), createElement(\"img\", createObj(ofArray([(value_89 = illustration2, [\"src\", value_89]), [\"style\", {\n height: \"auto\",\n width: 150 + \"%\",\n minWidth: 150 + \"%\",\n position: \"absolute\",\n top: 10 + \"%\",\n left: -40 + \"%\",\n zIndex: 0,\n }]]))), (props_35 = ofArray([[\"className\", \"has-background-white\"], [\"style\", {\n height: 135,\n width: 90 + \"%\",\n position: \"absolute\",\n bottom: 20,\n right: 5 + \"%\",\n zIndex: 0,\n padding: 20,\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n className: \"has-text-centered\",\n style: {\n paddingBottom: 20,\n },\n children: Interop_reactApi.Children.toArray([(props_20 = ofArray([[\"style\", {\n fontSize: 18 + \"px\",\n lineHeight: 20 + \"px\",\n }], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Endurance \"]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_20)))), (props_22 = ofArray([[\"style\", {\n fontSize: 18 + \"px\",\n lineHeight: 20 + \"px\",\n }], [\"className\", \"has-text-grey-dark\"], [\"children\", \"finns nu till din favoritenhet!\"]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_22))))]),\n }), (props_33 = ofArray([[\"className\", \"is-centered\"], [\"className\", \"is-mobile\"], [\"children\", Interop_reactApi.Children.toArray([(props_27 = ofArray([[\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n href: \"https://apps.apple.com/us/app/endurance-skidor/id1590125092?itsct=apps_box_link\\u0026itscg=30200\",\n children: Interop_reactApi.Children.toArray([createElement(\"img\", createObj(ofArray([(value_157 = App_Store_Badge_black, [\"src\", value_157]), [\"style\", {\n height: 35,\n width: \"auto\",\n }]])))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_27)))), (props_31 = ofArray([[\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n href: \"https://play.google.com/store/apps/details?id=se.endurance.app\",\n children: Interop_reactApi.Children.toArray([createElement(\"img\", createObj(ofArray([(value_170 = google$002Dplay$002Dbadge_black, [\"src\", value_170]), [\"style\", {\n height: 35,\n width: \"auto\",\n }]])))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_31))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_33))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_35))))])]);\n }))));\n })), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_37))))]),\n })])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_40)));\n}\n\nexport function View_renderForm(state, dispatch) {\n return createElement(\"form\", {\n onSubmit: (e) => {\n e.preventDefault();\n dispatch(new Types_Msg(2, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_3, elms;\n return append(singleton_2((props_3 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"email\"], Helpers_combineClasses(\"input\", ofArray([[\"placeholder\", \"Epost\"], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, ev.target.value));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_3))))), delay(() => {\n let elms_2, elms_1;\n return append(singleton_2((elms_2 = singleton_1((elms_1 = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", ofArray([[\"placeholder\", \"Lösenord\"], [\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(1, ev_1.target.value));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), delay(() => {\n let props_11, props_9;\n return append(singleton_2((props_11 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_9 = ofArray([[\"className\", \"is-text\"], [\"className\", \"has-text-primary\"], [\"href\", toPath(new Route(1))], [\"children\", \"Glömt lösenord?\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_9))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_11))))), delay(() => append(singleton_2(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Logga in\"]]))))), delay(() => ((!state.isUserValid) ? singleton_2(createElement(\"div\", {\n className: \"has-text-centered\",\n style: {\n fontSize: 14 + \"px\",\n },\n children: Interop_reactApi.Children.toArray([createElement(\"p\", {\n children: [\"You are not logged in.\"],\n }), createElement(\"p\", {\n children: [\"Have you entered wrong username or password?\"],\n })]),\n })) : empty_1())))));\n }));\n }));\n })))),\n });\n}\n\nexport function View_view(state, dispatch) {\n const width = useFeliz_React__React_useResponsive_Static_Z1648B8FF();\n switch (width.tag) {\n case 0:\n case 1:\n case 2: {\n return View_mobile(View_renderForm(state, dispatch));\n }\n default: {\n return View_layout(View_renderForm(state, dispatch));\n }\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const loggedIn = component_RenderInputProps.loggedIn;\n const patternInput = useFeliz_React__React_useElmish_Static_645B1FB7(State_init, (msg, state) => State_update(loggedIn, msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, bool_type, class_type, list_type, union_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { usersApi } from \"../Communication.fs.js\";\nimport { EmailModule_ofString, EmailModule_empty } from \"../../Shared/Shared.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { View_renderNotification, Form_validationForgotPassword } from \"../Common.fs.js\";\nimport { value as value_50 } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { createElement } from \"react\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { cons, singleton as singleton_1, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { singleton as singleton_2, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { View_layout } from \"./Login.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_645B1FB7 } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_State extends Record {\n constructor(Email, Recovery, FormErrors, FormValidation) {\n super();\n this.Email = Email;\n this.Recovery = Recovery;\n this.FormErrors = FormErrors;\n this.FormValidation = FormValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"ForgotPassword.Types.State\", [], Types_State, () => [[\"Email\", string_type], [\"Recovery\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [string_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", string_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"FormValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"EmailChanged\", \"RecoverAccount\", \"UserSaved\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"ForgotPassword.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [string_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", string_type]], [[\"ErrorValue\", string_type]]]))]], []]);\n}\n\nexport function Cmd_recover(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(usersApi().requestResetPassword(state.Email), (_arg1) => ((_arg1.tag === 1) ? singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Det finns ingen användare med den epost-adressen.\")))) : singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1.fields[0]))))))), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function State_init() {\n return [new Types_State(EmailModule_empty, new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Email, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.FormValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Email, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.FormValidation), Cmd_none()];\n }\n }\n else {\n const errors_1 = Form_validationForgotPassword(state.Email, (new Types_State(state.Email, state.Recovery, state.FormErrors, true)).FormValidation);\n if (value_50(errors_1).Equals(empty())) {\n return [new Types_State(state.Email, new DeferredResult$1(1), value_50(errors_1), true), Cmd_fromAsync(Cmd_recover(state))];\n }\n else {\n return [new Types_State(state.Email, new DeferredResult$1(0), value_50(errors_1), true), Cmd_none()];\n }\n }\n }\n else if (msg.tag === 2) {\n return [state, Cmd_none()];\n }\n else {\n return [new Types_State(msg.fields[0], state.Recovery, value_50(Form_validationForgotPassword(msg.fields[0], state.FormValidation)), state.FormValidation), Cmd_none()];\n }\n}\n\nexport function View_renderRequestingError(state) {\n const matchValue = state.Recovery;\n let pattern_matching_result, error;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n error = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return null;\n }\n case 1: {\n return View_renderNotification([\"className\", \"is-success\"], \"Ett meddelande med instruktioner har skickats till din epost.\");\n }\n case 2: {\n return View_renderNotification([\"className\", \"is-danger\"], error);\n }\n }\n}\n\nexport function View_renderForm(state, dispatch) {\n let props_7, props_2, elms, elms_1, props_17, props_15, elms_2;\n return createElement(\"form\", {\n onSubmit: (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(1, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray([(props_7 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_2 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-left\"], [\"children\", \"Din epost-adress\"]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_2)))), (elms = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"email\"], Helpers_combineClasses(\"input\", ofArray([[\"placeholder\", \"Din epost-adress\"], [\"type\", \"email\"], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, EmailModule_ofString(ev.target.value)));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_7)))), (elms_1 = toList(delay(() => {\n const matchValue = state.Recovery;\n let pattern_matching_result;\n if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 0) {\n pattern_matching_result = 2;\n }\n else {\n pattern_matching_result = 0;\n }\n }\n else if (matchValue.tag === 1) {\n pattern_matching_result = 1;\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return singleton_2(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Skicka instruktioner\"]])))));\n }\n case 1: {\n return singleton_2(null);\n }\n case 2: {\n return singleton_2(null);\n }\n }\n })), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (props_17 = ofArray([[\"className\", \"mt-3\"], [\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_15 = ofArray([[\"href\", toPath(new Route(0))], [\"className\", \"is-outlined\"], [\"className\", \"is-primary\"], [\"children\", Interop_reactApi.Children.toArray([(elms_2 = singleton_1(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-chevron-left\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), createElement(\"span\", {\n className: \"\",\n children: \"Back to login\",\n })])]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_15))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_17)))), View_renderRequestingError(state)]),\n });\n}\n\nexport function View_view(state, dispatch) {\n return View_layout(View_renderForm(state, dispatch));\n}\n\nexport function Component_Render() {\n const patternInput = useFeliz_React__React_useElmish_Static_645B1FB7(State_init, (msg, state) => State_update(msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\n","import * as Unicode from \"./Unicode.13.0.0.js\";\nfunction getCategoryFunc() {\n // unpack Unicode codepoint ranges (delta encoded) and general categories\n const offset = 35; // offsets unprintable characters\n const a1 = [...Unicode.rangeDeltas].map((ch) => { var _a; return ((_a = ch.codePointAt(0)) !== null && _a !== void 0 ? _a : 0) - offset; });\n const a2 = [...Unicode.categories].map((ch) => { var _a; return ((_a = ch.codePointAt(0)) !== null && _a !== void 0 ? _a : 0) - offset; });\n const codepoints = new Uint32Array(a1);\n const categories = new Uint8Array(a2);\n for (let i = 1; i < codepoints.length; ++i) {\n codepoints[i] += codepoints[i - 1];\n }\n // binary search in unicode ranges\n return (cp) => {\n let hi = codepoints.length;\n let lo = 0;\n while (hi - lo > 1) {\n const mid = Math.floor((hi + lo) / 2);\n const test = codepoints[mid];\n if (cp < test) {\n hi = mid;\n }\n else if (cp === test) {\n hi = lo = mid;\n break;\n }\n else if (test < cp) {\n lo = mid;\n }\n }\n return categories[lo];\n };\n}\nconst isControlMask = 1 << 14 /* Control */;\nconst isDigitMask = 1 << 8 /* DecimalDigitNumber */;\nconst isLetterMask = 0\n | 1 << 0 /* UppercaseLetter */\n | 1 << 1 /* LowercaseLetter */\n | 1 << 2 /* TitlecaseLetter */\n | 1 << 3 /* ModifierLetter */\n | 1 << 4 /* OtherLetter */;\nconst isLetterOrDigitMask = isLetterMask | isDigitMask;\nconst isUpperMask = 1 << 0 /* UppercaseLetter */;\nconst isLowerMask = 1 << 1 /* LowercaseLetter */;\nconst isNumberMask = 0\n | 1 << 8 /* DecimalDigitNumber */\n | 1 << 9 /* LetterNumber */\n | 1 << 10 /* OtherNumber */;\nconst isPunctuationMask = 0\n | 1 << 18 /* ConnectorPunctuation */\n | 1 << 19 /* DashPunctuation */\n | 1 << 20 /* OpenPunctuation */\n | 1 << 21 /* ClosePunctuation */\n | 1 << 22 /* InitialQuotePunctuation */\n | 1 << 23 /* FinalQuotePunctuation */\n | 1 << 24 /* OtherPunctuation */;\nconst isSeparatorMask = 0\n | 1 << 11 /* SpaceSeparator */\n | 1 << 12 /* LineSeparator */\n | 1 << 13 /* ParagraphSeparator */;\nconst isSymbolMask = 0\n | 1 << 25 /* MathSymbol */\n | 1 << 26 /* CurrencySymbol */\n | 1 << 27 /* ModifierSymbol */\n | 1 << 28 /* OtherSymbol */;\nconst isWhiteSpaceMask = 0\n | 1 << 11 /* SpaceSeparator */\n | 1 << 12 /* LineSeparator */\n | 1 << 13 /* ParagraphSeparator */;\nconst unicodeCategoryFunc = getCategoryFunc();\nfunction charCodeAt(s, index) {\n if (index >= 0 && index < s.length) {\n return s.charCodeAt(index);\n }\n else {\n throw new Error(\"Index out of range.\");\n }\n}\nexport const getUnicodeCategory = (s) => getUnicodeCategory2(s, 0);\nexport const isControl = (s) => isControl2(s, 0);\nexport const isDigit = (s) => isDigit2(s, 0);\nexport const isLetter = (s) => isLetter2(s, 0);\nexport const isLetterOrDigit = (s) => isLetterOrDigit2(s, 0);\nexport const isUpper = (s) => isUpper2(s, 0);\nexport const isLower = (s) => isLower2(s, 0);\nexport const isNumber = (s) => isNumber2(s, 0);\nexport const isPunctuation = (s) => isPunctuation2(s, 0);\nexport const isSeparator = (s) => isSeparator2(s, 0);\nexport const isSymbol = (s) => isSymbol2(s, 0);\nexport const isWhiteSpace = (s) => isWhiteSpace2(s, 0);\nexport const isHighSurrogate = (s) => isHighSurrogate2(s, 0);\nexport const isLowSurrogate = (s) => isLowSurrogate2(s, 0);\nexport const isSurrogate = (s) => isSurrogate2(s, 0);\nexport function getUnicodeCategory2(s, index) {\n const cp = charCodeAt(s, index);\n return unicodeCategoryFunc(cp);\n}\nexport function isControl2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isControlMask) !== 0;\n}\nexport function isDigit2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isDigitMask) !== 0;\n}\nexport function isLetter2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isLetterMask) !== 0;\n}\nexport function isLetterOrDigit2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isLetterOrDigitMask) !== 0;\n}\nexport function isUpper2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isUpperMask) !== 0;\n}\nexport function isLower2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isLowerMask) !== 0;\n}\nexport function isNumber2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isNumberMask) !== 0;\n}\nexport function isPunctuation2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isPunctuationMask) !== 0;\n}\nexport function isSeparator2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isSeparatorMask) !== 0;\n}\nexport function isSymbol2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n return (test & isSymbolMask) !== 0;\n}\nexport function isWhiteSpace2(s, index) {\n const test = 1 << getUnicodeCategory2(s, index);\n if ((test & isWhiteSpaceMask) !== 0) {\n return true;\n }\n const cp = charCodeAt(s, index);\n return (0x09 <= cp && cp <= 0x0D) || cp === 0x85 || cp === 0xA0;\n}\nexport function isHighSurrogate2(s, index) {\n const cp = charCodeAt(s, index);\n return (0xD800 <= cp && cp <= 0xDBFF);\n}\nexport function isLowSurrogate2(s, index) {\n const cp = charCodeAt(s, index);\n return (0xDC00 <= cp && cp <= 0xDFFF);\n}\nexport function isSurrogate2(s, index) {\n const cp = charCodeAt(s, index);\n return (0xD800 <= cp && cp <= 0xDFFF);\n}\nexport function isSurrogatePair(s, index) {\n return typeof index === \"number\"\n ? isHighSurrogate2(s, index) && isLowSurrogate2(s, index + 1)\n : isHighSurrogate(s) && isLowSurrogate(index);\n}\nexport function parse(input) {\n if (input.length === 1) {\n return input[0];\n }\n else {\n throw new Error(\"String must be exactly one character long.\");\n }\n}\n","// Unicode 13.0.0 codepoint ranges (delta encoded) and general categories.\n// Integer delta values are offset by 35 and stored as Unicode characters.\nexport const rangeDeltas = \"#C$&$&$$$$$$%-%&%=$$$$$$=$$$$D$$'$$$$$$$$$$$$%$$%$$$$&$:$*;$+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%$$$$$$$$$$$$$$$%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%$$$$&%$$$%$&%'$%$&&%$%$$$$$%$$%$$%$&$$$%%$$&'$$$$$$$$$$$$$$$$$$$$$$$$%$$$$$$$$$$$$$$$$$%$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*%$%%$$'$$$$$$$$h$>5'/1(*$$$4“$$$$$$$$%$&$$'%$$&$$$%$4$,F$%&&$$$$$$$$$$$$$$$$$$$$$$$($$$$$%%VS$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$(%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%$$$$$$$$$$$$%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$I%$)L$$%%$$P$$$%$%$$+>''%.)&%$%%.$$$%C$-8-'%$†$$*$$)%%$'%-&%$1$$$$A>%|.$1-D,%$&$%$%9'$,$&$(%2$<&%$$.X8$5.2$C$Y$$$$&+'$%$*-%%-$$2$%$+%%%9$*$$&'%$$&'%%%%$$+$'%$&%%-%%)$$$$$%%$$)'%%9$*$%$%$%%$$&%'%%&&$*'$$*-%&$$-%$$,$&$9$*$%$(%$$&($%$$%$%$2%%%-$$*$)$$%$+%%%9$*$%$(%$$$$$'%%%%$*%$'%$&%%-$$)-$$$)&&$'&%$$$%&%&&&/'%$%&&$&$%$)$1-&)$$($&$+$&$:$3&$&'$&$'*%$&(%%%-*$*$$$%$+$&$:$-$(%$$$$($$%$%%*%*$$%%%-$%0%%,$&$L%$&'$&$&$$$'&$*&%%-,$)$$%$5&;$,$$%*&$'&&$$$+)-%%$/S$%*'$)$+$-%H%$$$($;$$$-$%,$%($$$)%-%'C$&2$$&%)--$$$$$$$$$$%+$G'1$($%(.$G$+$)$%('%HN%'$)$%%%$-))%%'&$&%*&'0$%%)$$$-&$%I$$($%N$$&Ŭ$'%*$$$'%L$'%D$'%*$$$'%2$\\\\$'%f%&,7&3-)y%)%$ʏ$$4$=$$&n&&+*0$'&.5&%,5%/0$&$%/W%$*+$%.&$&$$$%-)-))$'&$$-)F$X*(%E$$(i-B$&'%&'%$)&'$&%-A%(.O'=)-$&E:%%$%%X$$$*$$$$%+)-%$-)-)*$)%1$%b'$R$$($$($%*'-*-,,&%$A$'%%$&%-O$$%&$$&%+'G++%%&(-&&-A)%,*N%&++&$0$*'$)$%$%$(Ob0$EH]$($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,+)%)%++++)%)%+$$$$$$$$++1%++++++($%'$$$&&$%'$&'%%'$&+(&%&$%'$%$.()%$$$%$$$+$$($,$$'%&$$$.$$$-$($-$$%)&$$$-&$$$0&C30'$&/2%$'$%$&%&$$$%$()$$$$$$'$$'$'$%%%($'$$%$$3F$$'$%'((%'$%$%$*$B%%$$$Bį+$$$$7%*$$t$A'C',7$+$(I((A$$G'+$(MKKq%-)G'G'K+W.$³Ś,9-+»)%$$O$%&$%:$$+:%*B+,S6$%((9)&$=($c['%%3%Q$&$%(''$&$@%&'$,*,*@%$@&C+$?%'(*,Y&*9%+6(+5*'/*slZV0V*)G'+-ʼnB$M$%$%%q@-$+9.'(y8*7:,$$$X2*'7-2&$P&'%%%$'.$%<*-)&G($+$-'$%$+F$%$,%$S&,%'''$$$-$$$&$7.5$<&&%$$%)$d*$$$'$2$-$)R$&+(-)%%$+%%%9$*$%$($%$%$'%%%&%$)$((%%*&(®X&+%&$$'(-%$$$&AS&)$$'%$%%$$+-ÉR&'%'%$%:'%ES&+%$$%&$.-)06N$$$%)$$$*-Y>%&%'$('-%&$ãO&,$%$‡CC-,/+%$%+$%$;)$%%%$$$$$$$&,-i+%J&'%%'$$$$$>$-K)$$'+$+$)%&Q0$%&$(@\\\\Ī,$H$*$)$$$(--6&%A%9$$*$%$%l*$%$I)&$$%$*$$+-))$%$C($%$%$$$$*-ř6%%%Ú$28+'40$ν‰’$(.ç૟ђ$,࿪ɪ⇜ɜ*B$-'%ƒA%($-S*(''$$--$*$8(6˓CC:'ˆn'$$Z*'0c%$$$.%1᠛+ӹM,⌚łT&4'+ƯधŽ(0&,*-%$%$'፿ę-J%_%&&)++%*A'^:e&$½7/z,<ª===*$5==$$%%$%%%'$+'$$$*$.==%$'%+$*$=%$'$($$&*$============?%<$<$)<$<$)<$<$)<$<$)<$<$)$$%UȣZ'U+$1$%(2($2ճ*$4%*$%$(øP&**%-'$$ƓO'-($ԣè%,*LEE*$'-'%̴^$&$'oP$2å'$>$%$$%$$-$'$$$$)$'$$$$$$&$%$$%$$$$$$$$$$%$$%'$*$'$'$$$-$4(&$($4W%ıO'‡/2%2$2$H-0Ä[@0O',*%1)½Ğ(˻+0&0&—/|*/7/'[+-)K+A%%qœ$u$ª/1%(&&(*,<**,&0*L¶$ZH-Щ꜁Eၘ.ā%ᚥ1ᵔూɁ؅፮򮳙$Aƒ£ē︳𐀡%𐀡\";\nexport const categories = \"1.;=;78;<;6;+;<;#7;8>5>$7<8<1.;=?;>?'9<2?>?<->$;>-':-;#<#$<$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$'#$'#%$#%$#%$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#%$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$'$&>&>&>&>&>(#$#$&>#$@&$;#@>#;#@#@#$#@#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$<#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$?(*#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$@#@&;$;6@?=@(6(;(;(;(@'@';@2<;=;?(;2@;'&'(+;'(';'(2?(&(?('+'?';@2'('(@'('@+'(&?;&@(='(&(&(&(@;@'(@;@'@'@'@(2()'()(')()()'('(;+;&'()@'@'@'@'@'@'@(')(@)@)('@)@'@'(@+'=-?=';(@()@'@'@'@'@'@'@'@(@)(@(@(@(@'@'@+('(;@()@'@'@'@'@'@'@(')(@()@)(@'@'(@+;=@'(@()@'@'@'@'@'@'@(')()(@)@)(@()@'@'(@+?'-@('@'@'@'@'@'@'@'@'@'@)()@)@)(@'@)@+-?=?@()('@'@'@'@'()@(@(@(@'@'(@+@;-?'();'@'@'@'@'@(')()@()@)(@)@'@'(@+@'@()'@'@'(')(@)@)('?@')-'(@+-?'@()@'@'@'@'@'@(@)(@(@)@+@);@'('(@='&(;+;@'@'@'@'@'@'('('@'@&@(@+@'@'?;?;?(?+-?(?(?(7878)'@'@()(;('(@(@?(?@?;?;@')()()()('+;')('(')')'('()()(')+)(?#@#@#@$;&$'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@(;-@'?@#@$@6'?;'.'78@';,'@'@'(@'(;@'(@'@'@(@'()()()(;&;='(@+@-@;6;(2@+@'&'@'('('@'@'@()()@)()(@?@;+'@'@'@'@+-@?'()(@;')()(@()()()(@(+@+@;&;@(*(@()'()()()()'@+;?(?@()')()()('+'()()()()@;')()(@;+@'+'&;$@#@#;@(;()('('(')('@$&$&$&(@(#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$@#@$#$#$@#@$@#@#@#@#$#$@$%$%$%$@$#%>$>$@$#%>$@$#@>$#>@$@$#%>@.26;9:79:79;/02.;9:;5;<78;<;5;.2@2-&@-<78&-<78@&@=@(*(*(@?#?#?$#$#$?#?<#?#?#?#?#?$#$'$?$#<#$?&'6';&'@'@'@?-?'?@'?@-?-?-?-?-?'?'@'&'@?@'&;'&;'+'@#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$'(*;(;&#$#$#$#$#$#$#$#$#$#$#$#$#$#$&(',(;@>&>#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$&$#$#$#$#$#$#$#$&>#$#$'#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$@#$#$#$@#$'&$'('('(')()?(@-?=?@';@)')(@;+@(';';'(+'(;'()@;'@()'()()();@&+@;'(&'+'@'()()(@'('()@+@;'&'?')()'('('('('('@'&;')();'&)(@'@'@'@'@'@$>&$&>@$')()();)(@+@'@'@'@34'@'@$@$@'('<'@'@'@'@'@'>@'87@'@'@'=?@(;78;@(;657878787878787878;78;5;@;6787878;<6<@;=;@'@'@2@;=;78;<;6;+;<;#7;8>5>$7<8<78;78;'&'&'@'@'@'@'@=<>?=@??@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@?@+@'@'@'@'@'@'@'@2@2@(@4@4@\";\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, class_type, list_type, union_type, unit_type, record_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { usersApi } from \"../Communication.fs.js\";\nimport { Users_ResetPasswordRequest } from \"../../Shared/Shared.fs.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__IsValid_Z4CF01147, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { isNullOrWhiteSpace } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { empty as empty_1, singleton as singleton_2, append, delay, toList, exists } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { isLetter, isDigit } from \"../.fable/fable-library.3.2.1/Char.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Route, navigateTo } from \"../Router.fs.js\";\nimport { Form_Field_errorsAsString, Form_Field_fieldStyleOnError, Form_Field_hasErrors, View_renderNotification } from \"../Common.fs.js\";\nimport { createElement } from \"react\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { cons, singleton as singleton_1, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { View_layout } from \"./Login.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Password, PasswordConfirmation) {\n super();\n this.Password = Password;\n this.PasswordConfirmation = PasswordConfirmation;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"ResetPassword.Types.Form\", [], Types_Form, () => [[\"Password\", string_type], [\"PasswordConfirmation\", string_type]]);\n}\n\nexport class Types_State extends Record {\n constructor(Code, Form, Changing, FormErrors, IsNeedValidation) {\n super();\n this.Code = Code;\n this.Form = Form;\n this.Changing = Changing;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"ResetPassword.Types.State\", [], Types_State, () => [[\"Code\", string_type], [\"Form\", Types_Form$reflection()], [\"Changing\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"PasswordChanged\", \"PasswordConfirmationChanged\", \"ResetPassword\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"ResetPassword.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_change(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(usersApi().resetPassword(new Users_ResetPasswordRequest(state.Code, state.Form.Password)), (_arg1) => ((_arg1.tag === 1) ? singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Invalid code\")))) : singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))))))), (_arg2) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(Validator$1__End_Z5E18B1E2(t, Validator$1__IsValid_Z4CF01147(t, (value) => {\n if (value === \"\") {\n return true;\n }\n else if (!isNullOrWhiteSpace(value)) {\n if ((value.length >= 8) ? exists((arg00) => isDigit(arg00), value.split(\"\")) : false) {\n return exists((arg00_1) => isLetter(arg00_1), value.split(\"\"));\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n })(\"Lösenordet måste innehålla minst 1 bokstav och 1 siffra. Minsta längd är 8\")(Validator$1__NotBlank_2B595(t, \"Nytt lösenord krävs\")(Validator$1__Test(t, \"NewPassword\", formInfo.Password)))), Validator$1__End_Z5E18B1E2(t, Validator$1__IsValid_Z4CF01147(t, (confirmPassword) => {\n if ((confirmPassword === \"\") ? (formInfo.Password === \"\") : false) {\n return true;\n }\n else {\n return formInfo.Password === confirmPassword;\n }\n })(\"Lösenordet matchar inte\")(Validator$1__Test(t, \"NewPasswordConfirmation\", formInfo.PasswordConfirmation))))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport function State_init(id) {\n return [new Types_State(id, new Types_Form(\"\", \"\"), new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n if (msg.tag === 1) {\n const patternInput_1 = Validation_validateIf(state.IsNeedValidation, new Types_Form(state.Form.Password, msg.fields[0]));\n return [new Types_State(state.Code, patternInput_1[0], state.Changing, patternInput_1[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 2) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Code, state.Form, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Code, state.Form, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), navigateTo(new Route(0))];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Code, state.Form, state.Changing, matchValue.fields[0], state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Code, matchValue.fields[0], new DeferredResult$1(1), empty(), state.IsNeedValidation), Cmd_fromAsync(Cmd_change(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, new Types_Form(msg.fields[0], state.Form.PasswordConfirmation));\n return [new Types_State(state.Code, patternInput[0], state.Changing, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_renderChangePasswordError(state) {\n const matchValue = state.Changing;\n let pattern_matching_result, error;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n error = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return null;\n }\n case 1: {\n return View_renderNotification([\"className\", \"is-success\"], \"Lösenordet har ändrats.\");\n }\n case 2: {\n return View_renderNotification([\"className\", \"is-danger\"], error);\n }\n }\n}\n\nexport function View_renderForm(state, dispatch) {\n let elms_1, props_2, elms, props_4, props_6, elms_3, props_12, elms_2, props_14, props_16;\n return createElement(\"form\", {\n onSubmit: (e) => {\n e.preventDefault();\n dispatch(new Types_Msg(2, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray([(elms_1 = ofArray([(props_2 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-left\"], [\"children\", \"Nytt lösenord\"]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_2)))), (elms = ofArray([(props_4 = toList(delay(() => append(Form_Field_hasErrors(\"NewPassword\")(state.FormErrors) ? singleton_2([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_2([\"placeholder\", \"Nytt lösenord\"]), delay(() => singleton_2([\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, ev.target.value));\n }]))))))), createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", props_4))))), (props_6 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"NewPassword\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_6))))]), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))]), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (elms_3 = ofArray([(props_12 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-left\"], [\"children\", \"Lösenordsbekräftelse\"]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_12)))), (elms_2 = ofArray([(props_14 = toList(delay(() => append(Form_Field_hasErrors(\"NewPasswordConfirmation\")(state.FormErrors) ? singleton_2([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_2([\"placeholder\", \"Lösenordsbekräftelse\"]), delay(() => singleton_2([\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(1, ev_1.target.value));\n }]))))))), createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", props_14))))), (props_16 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"NewPasswordConfirmation\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_16))))]), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))]), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n })), createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Återställ lösenord\"]])))), createElement(\"div\", {\n className: \"mt-2\",\n children: Interop_reactApi.Children.toArray([View_renderChangePasswordError(state)]),\n })]),\n });\n}\n\nexport function View_view(state, dispatch) {\n return View_layout(View_renderForm(state, dispatch));\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const code = component_RenderInputProps.code;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(code), (msg, state) => State_update(msg, state), [code]);\n return View_view(patternInput[0], patternInput[1]);\n}\n\n","import { createElement } from \"react\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\n\nexport const renderGdprArticle = createElement(\"div\", {\n children: Interop_reactApi.Children.toArray([createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-1\"], [\"className\", \"pt-4\"], [\"className\", \"mb-0\"], [\"className\", \"has-text-primary\"], [\"children\", \"GDPR \\u0026\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-1\"], [\"className\", \"has-text-primary\"], [\"children\", \"Information om dataskyddsförordningen\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Endurance.se och Endurance som molntjänstbaserad träningsdagbok, nedan kallad Endurance eller tjänsten värnar om den personliga integriteten. Alla som utövar träning i enheter har rätt till ett privatliv. Personuppgifter som behandlas i vår verksamhet hanteras därför med omsorg om den enskildes integritet och i enlighet med gällande lagstiftning.\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Syftet med att hantera personuppgifter är att på ett rättssäkert sätt fullgöra våra skyldigheter som myndighet från det att elever söker till verksamheten till dess att elever avslutar sina studier. Även efter att elever slutat studera hos oss kommer personuppgifter att finnas registrerade hos oss. Principen är dock att uppgifterna ska vara adekvata, relevanta och inte för omfattande i förhållande till de ändamål för vilka de behandlas. Läs mera om de grundläggande dataskyddsprinciperna i dataskyddsförordningen (GDPR 2016/679), artikel 5.\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"De personuppgifter som hanteras är namn, e-postadress, årskull och skola. Några andra uppgifter varken används eller sparas för säkerhets skull.\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Personuppgifterna lämnas från NIU/RIG tränare då utövare antas till gymnasieutbildning under tiden eleverna är registrerade i verksamheten. När eleverna avslutar studierna bevaras uppgifter om namn, e-postadress, årskull och skola.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-4\"], [\"className\", \"pt-4\"], [\"className\", \"has-text-primary\"], [\"children\", \"Dina rättigheter\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Du som registrerad har ett flertal rättigheter.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-5\"], [\"className\", \"pt-4\"], [\"children\", \"Rätt till tillgång\"]])))), createElement(\"li\", {\n children: [\"Ändamålen med behandlingen.\"],\n }), createElement(\"li\", {\n children: [\"De kategorier av personuppgifter som behandlingen gäller.\"],\n }), createElement(\"li\", {\n children: [\"De mottagare eller kategorier av mottagare till vilka personuppgifterna har lämnats eller ska lämnas ut.\"],\n }), createElement(\"li\", {\n children: [\"Om möjligt, den förutsedda period under vilken personuppgifterna kommer att lagras eller, om detta inte är möjligt, de kriterier som används för att fastställa denna period.\"],\n }), createElement(\"li\", {\n children: [\"Förekomsten av rätten att av den personuppgiftsansvarige begära rättelse eller radering av personuppgifterna eller begränsningar av behandling av personuppgifter som rör den registrerade eller att invända mot sådan behandling.\"],\n }), createElement(\"li\", {\n children: [\"Rätten att inge klagomål till en tillsynsmyndighet.\"],\n }), createElement(\"li\", {\n children: [\"Om personuppgifterna inte samlas in från den registrerade, all tillgänglig information om varifrån dessa uppgifter kommer.\"],\n }), createElement(\"li\", {\n children: [\"Förekomsten av automatiserat beslutsfattande, inbegripet profilering, varvid det åtminstone i dessa fall ska lämnas meningsfull information om logiken bakom samt betydelsen och de förutsedda följderna av sådan behandling för den registrerade.\"],\n }), createElement(\"li\", {\n children: [\"Om uppgifterna överförs till tredjeland eller internationell organisation information om vilka skyddsåtgärder som vidtagits.\"],\n }), createElement(\"li\", {\n children: [\"En kopia på de uppgifter som är under behandling.\"],\n }), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"py-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Rätten till tillgång får inte inverka menligt på andras rättigheter och friheter. Därför är det viktigt att vi kan säkerställa att det verkligen är rätt person som begärt ut uppgifterna. För säker identifiering behöver vi din underskrift. Eventuella registerutdrag skickas antigen hem till din folkbokföringsadress alternativt kan dokumenten hämtas på skidförbundets kansli om du har en giltig legitimation med dig.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-5\"], [\"className\", \"pt-4\"], [\"children\", \"Rätt till rättelse\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Du som registrerad har rätt att utan dröjsmål få felaktiga uppgifter rättade. Om du upptäcker felaktiga uppgifter kan du antingen kontakta den person du har kontakt med i ditt ärende eller vända dig till Endurance dataskyddsombud.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-5\"], [\"className\", \"pt-4\"], [\"children\", \"Rätt till radering (”rätten att bli bortglömd”)\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"I vissa fall har du som registrerad rätt att begära att få dina personuppgifter raderade. Nedan finns de fall som tas upp i den europeiska dataskyddsförordningen där du som registrerad har rätt att få dina uppgifter raderade.\"]])))), createElement(\"li\", {\n children: [\"Personuppgifterna är inte längre nödvändiga för de ändamål för vilka de samlats in eller på annat sätt behandlats.\"],\n }), createElement(\"li\", {\n children: [\"Du återkallar ditt samtycke på vilket behandlingen grundar sig och det finns inte någon annan rättslig grund för behandlingen.\"],\n }), createElement(\"li\", {\n children: [\"Du invänder mot behandlingen i enlighet med artikel 21.1 och det saknas berättigade skäl för behandlingen som väger tyngre, eller den registrerade invänder mot behandlingen i enlighet med artikel 21.2 i den europeiska dataskyddsförordningen.\"],\n }), createElement(\"li\", {\n children: [\"Personuppgifterna har behandlats på olagligt sätt.\"],\n }), createElement(\"li\", {\n children: [\"Personuppgifterna måste raderas för att uppfylla en rättslig förpliktelse i unionsrätten eller i ett EU-lands nationella rätt som den personuppgiftsansvarige omfattas av.\"],\n }), createElement(\"li\", {\n children: [\"Personuppgifterna har samlats in i samband med erbjudande av informationssamhällets tjänster, i de fall som avses i artikel 8.1 i den europeiska dataskyddsförordningen.\"],\n }), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"py-3\"], [\"className\", \"is-size-6\"], [\"children\", \"I vissa fall kan det finnas undantag som gör att uppgifterna ändå inte kan raderas. Det kan till exempel vara för att uppfylla en rättslig förpliktelse som kräver behandling, behandling för arkivändamål eller för att kunna fastställa, göra gällande eller försvara rättsliga anspråk.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-5\"], [\"className\", \"pt-4\"], [\"children\", \"Rätt till begränsning av behandling\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Den personuppgiftsansvarige ska underrätta varje mottagare till vilken personuppgifterna har lämnats ut om eventuella rättelser eller radering av personuppgifter eller begränsningar av behandling som skett i enlighet med artiklarna 16, 17.1 och 18 om inte detta visar sig vara omöjligt eller medföra en oproportionell ansträngning. Den personuppgiftsansvarige ska informera den registrerade om dessa mottagare på den registrerades begäran.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-4\"], [\"className\", \"pt-4\"], [\"className\", \"has-text-primary\"], [\"children\", \"Behandling av personuppgifter i mejl\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Endurance lämnar aldrig ut några uppgifter om mailadresser till någon. Hanteringen sker endast för funktionen inloggning tillsammans med personligt (krypterat) lösen samt funktion för ”Glömt lösen”. Då både kontroll och utskick baseras på korrekt mailadress. Hantering av personuppgifter i mejl lyder under samma dataskyddslagstiftning som övrig behandling av personuppgifter.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-4\"], [\"className\", \"pt-4\"], [\"className\", \"has-text-primary\"], [\"children\", \"Personuppgiftsansvarig\"]])))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Den som är ansvarig för behandlingen av personuppgifter kallas personuppgiftsansvarig (PuA). I Endurance är styrelsen ansvarig för de personuppgifter som hanteras inom den egna verksamheten.\"]])))), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-4\"], [\"className\", \"pt-4\"], [\"className\", \"has-text-primary\"], [\"children\", \"Klagomål\"]])))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"Om du som registrerad anser att dina personuppgifter har behandlats felaktigt kan du kontakta Endurance dataskyddsombud. Du har också rätt att vända dig till Datainspektionen som är tillsynsmyndighet. Mer information samt kontaktuppgifter hittar du hos \"]])))), createElement(\"a\", {\n href: \"https://www.imy.se\",\n className: \"pb-3\",\n className: \"is-size-6\",\n children: \"Datainspektionen.\",\n }), createElement(\"h1\", createObj(Helpers_combineClasses(\"title\", ofArray([[\"className\", \"is-4\"], [\"className\", \"pt-4\"], [\"className\", \"has-text-primary\"], [\"children\", \"Kontaktuppgifter\"]])))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"För frågor som rör dina personuppgifter och hur vi hanterar dem kan du kontakta vårt dataskyddsombud Peter Engström på peter.engstrom@drumedar.se. Vänd dig till \"]])))), createElement(\"a\", {\n href: \"https://www.imy.se\",\n className: \"pb-3\",\n className: \"is-size-6\",\n children: \"Datainspektionen \",\n }), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"pb-3\"], [\"className\", \"is-size-6\"], [\"children\", \"om du har klagomål på Endurance behandling av dina personuppgifter.\"]]))))]),\n});\n\nexport const render = (() => {\n let props;\n const props_2 = ofArray([[\"className\", \"is-fullhd\"], [\"className\", \"py-5\"], [\"children\", Interop_reactApi.Children.toArray([(props = ofArray([[\"className\", \"py-5\"], [\"className\", \"px-5\"], [\"className\", \"has-text-grey\"], [\"children\", Interop_reactApi.Children.toArray([renderGdprArticle])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_2)));\n})();\n\n","import { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { Img_logo } from \"../Css.fs.js\";\nimport { singleton, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { int32ToString, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { year, now } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport { renderGdprArticle } from \"./Gdpr.fs.js\";\n\nexport const render = (() => {\n let props_44, props_38, props_3, props_1, props_22, props_8, elms, elms_2, elms_1, props_16, props_14, props_18, props_20, props_36, elms_6, elms_3, elms_5, props_30, elms_4, props_34, copyOfStruct_1, copyOfStruct, props_42, props_40;\n const props_46 = ofArray([[\"className\", \"is-fullhd\"], [\"className\", \"py-5\"], [\"children\", Interop_reactApi.Children.toArray([(props_44 = singleton([\"children\", Interop_reactApi.Children.toArray([(props_38 = ofArray([[\"className\", \"is-one-third\"], [\"style\", {\n display: \"grid\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_3 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"px-4\"], [\"className\", \"py-4\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"img\", {\n src: Img_logo,\n style: {\n height: 60,\n width: 60,\n },\n }), (props_1 = ofArray([[\"className\", \"pl-3\"], [\"style\", {\n fontSize: 24 + \"px\",\n fontWeight: 700,\n }], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Endurance\"]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_1))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_3)))), (props_22 = ofArray([[\"className\", \"has-text-centered\"], [\"style\", {\n alignSelf: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_8 = singleton([\"children\", Interop_reactApi.Children.toArray([(elms = singleton(createElement(\"input\", createObj(cons([\"type\", \"email\"], Helpers_combineClasses(\"input\", ofArray([[\"disabled\", true], [\"placeholder\", \"Epost\"]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_8)))), (elms_2 = singleton((elms_1 = singleton(createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", ofArray([[\"disabled\", true], [\"placeholder\", \"Lösenord\"]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), (props_16 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_14 = ofArray([[\"disabled\", true], [\"className\", \"is-text\"], [\"className\", \"has-text-primary\"], [\"href\", toPath(new Route(1))], [\"children\", \"Glömt lösenord?\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_14))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_16)))), (props_18 = ofArray([[\"disabled\", true], [\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"href\", toPath(new Route(0))], [\"children\", \"Logga in\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_18)))), (props_20 = ofArray([[\"disabled\", true], [\"className\", \"mt-3\"], [\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"href\", toPath(new Route(7))], [\"children\", \"Logga in som tränare(only for test)\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_22)))), (props_36 = ofArray([[\"className\", \"has-text-centered\"], [\"style\", {\n alignSelf: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms_6 = ofArray([(elms_3 = singleton(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-text\"], [\"className\", \"has-text-primary\"], [\"children\", \"Lathund\"]]))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n })), (elms_5 = singleton((props_30 = ofArray([[\"href\", toPath(new Route(0))], [\"className\", \"is-outlined\"], [\"className\", \"is-primary\"], [\"children\", Interop_reactApi.Children.toArray([(elms_4 = singleton(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-chevron-left\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })), createElement(\"span\", {\n className: \"\",\n children: \"Back to login\",\n })])]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_30))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n })), (props_34 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-text-centered\"], [\"children\", \"© 2010 - \" + (copyOfStruct_1 = (copyOfStruct = now(), year(copyOfStruct)), int32ToString(copyOfStruct_1))]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_34))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_36))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_38)))), (props_42 = singleton([\"children\", Interop_reactApi.Children.toArray([(props_40 = ofArray([[\"style\", {\n height: 92.1 + \"vh\",\n overflow: \"scroll\",\n }], [\"className\", \"py-5\"], [\"className\", \"px-5\"], [\"className\", \"has-text-grey\"], [\"children\", Interop_reactApi.Children.toArray([renderGdprArticle])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_40))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_42))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_44))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_46)));\n})();\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, class_type, list_type, union_type, unit_type, record_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, Remoting_userChanged, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Auth_SignedInUser, Settings_ChangeFullName } from \"../../Shared/Shared.fs.js\";\nimport { settingsApi } from \"../Communication.fs.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Form_Field_errorsAsString, Form_Field_fieldStyleOnError, Form_Field_hasErrors, View_renderNotification } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_2, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { empty as empty_1, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(FullName) {\n super();\n this.FullName = FullName;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"Settings.ChangeFullName.Types.Form\", [], Types_Form, () => [[\"FullName\", string_type]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, Changing, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.Changing = Changing;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"Settings.ChangeFullName.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"Changing\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"FullNameChanged\", \"ChangeFullName\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"Settings.ChangeFullName.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_changeFullName(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Settings_ChangeFullName(state.Form.FullName);\n return singleton.Bind(Remoting_handleNonAuth(settingsApi().changeFullName(request)), (_arg1) => ((_arg1.tag === 1) ? singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Can not find account\")))) : singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))))));\n }), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Name is required\")(Validator$1__Test(t, \"FullName\", formInfo.FullName))))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport const State_init = [new Types_State(new Types_Form(\"\"), new DeferredResult$1(0), empty(), false), Cmd_none()];\n\nexport function State_update(msg, state) {\n if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n Remoting_userChanged((x_3) => (new Auth_SignedInUser(x_3.Email, state.Form.FullName, x_3.SchoolId, x_3.GroupId, x_3.GdprAcceptDate, x_3.AccessToken, x_3.Role, x_3.UserId, x_3.ChatText, x_3.ChatChangeDate)));\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.Changing, matchValue.fields[0], state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], new DeferredResult$1(1), empty(), state.IsNeedValidation), Cmd_fromAsync(Cmd_changeFullName(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, new Types_Form(msg.fields[0]));\n return [new Types_State(patternInput[0], state.Changing, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_renderError(state) {\n const matchValue = state.Changing;\n let pattern_matching_result, error;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n error = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return null;\n }\n case 1: {\n return View_renderNotification([\"className\", \"is-success\"], \"Namnet har ändrats.\");\n }\n case 2: {\n return View_renderNotification([\"className\", \"is-danger\"], error);\n }\n }\n}\n\nexport function View_view(state, dispatch) {\n let elms_3, elms, props_6, props_2, props_4, elms_2, elms_1;\n const props_15 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Byt namn\"]])))), (elms_3 = singleton_2(createElement(\"form\", {\n onSubmit: (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(1, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray([(elms = singleton_2((props_6 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_2 = toList(delay(() => append(Form_Field_hasErrors(\"FullName\")(state.FormErrors) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_1([\"name\", \"new-name\"]), delay(() => append(singleton_1([\"placeholder\", \"Nytt fullständigt namn\"]), delay(() => singleton_1([\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, ev.target.value));\n }]))))))))), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_2))))), (props_4 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"FullName\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_4))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_6))))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_2 = singleton_2((elms_1 = singleton_2(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Byt\"]]))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), View_renderError(state)]),\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_15)));\n}\n\nexport function Component_Render() {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, class_type, list_type, union_type, unit_type, record_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, Remoting_userChanged, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Auth_SignedInUser, EmailModule_toString, EmailModule_ofString, Settings_ChangeEmail } from \"../../Shared/Shared.fs.js\";\nimport { settingsApi } from \"../Communication.fs.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Form_Field_errorsAsString, Form_Field_fieldStyleOnError, Form_Field_hasErrors, View_renderNotification } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_2, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { empty as empty_1, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Email) {\n super();\n this.Email = Email;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"Settings.ChangeEmail.Types.Form\", [], Types_Form, () => [[\"Email\", string_type]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, Changing, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.Changing = Changing;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"Settings.ChangeEmail.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"Changing\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"EmailChanged\", \"ChangeEmail\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"Settings.ChangeEmail.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_changeEmail(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Settings_ChangeEmail(state.Form.Email);\n return singleton.Bind(Remoting_handleNonAuth(settingsApi().changeEmail(request)), (_arg1) => ((_arg1.tag === 1) ? singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Can not find account\")))) : singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))))));\n }), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(EmailModule_ofString(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Email is required\")(Validator$1__Test(t, \"Email\", EmailModule_toString(formInfo.Email))))))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport const State_init = [new Types_State(new Types_Form(EmailModule_ofString(\"\")), new DeferredResult$1(0), empty(), false), Cmd_none()];\n\nexport function State_update(msg, state) {\n if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n Remoting_userChanged((x_3) => (new Auth_SignedInUser(state.Form.Email, x_3.FullName, x_3.SchoolId, x_3.GroupId, x_3.GdprAcceptDate, x_3.AccessToken, x_3.Role, x_3.UserId, x_3.ChatText, x_3.ChatChangeDate)));\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.Changing, matchValue.fields[0], state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], new DeferredResult$1(1), empty(), state.IsNeedValidation), Cmd_fromAsync(Cmd_changeEmail(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, new Types_Form(EmailModule_ofString(msg.fields[0])));\n return [new Types_State(patternInput[0], state.Changing, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_renderError(state) {\n const matchValue = state.Changing;\n let pattern_matching_result, error;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n error = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return null;\n }\n case 1: {\n return View_renderNotification([\"className\", \"is-success\"], \"E-post har ändrats.\");\n }\n case 2: {\n return View_renderNotification([\"className\", \"is-danger\"], error);\n }\n }\n}\n\nexport function View_view(state, dispatch) {\n let elms_3, elms, props_6, props_2, props_4, elms_2, elms_1;\n const props_15 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Byt epost\"]])))), (elms_3 = singleton_2(createElement(\"form\", {\n onSubmit: (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(1, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray([(elms = singleton_2((props_6 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_2 = toList(delay(() => append(Form_Field_hasErrors(\"Email\")(state.FormErrors) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_1([\"name\", \"new-email\"]), delay(() => append(singleton_1([\"placeholder\", \"Ny epost\"]), delay(() => singleton_1([\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, ev.target.value));\n }]))))))))), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_2))))), (props_4 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"Email\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_4))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_6))))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_2 = singleton_2((elms_1 = singleton_2(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Byt\"]]))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), View_renderError(state)]),\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_15)));\n}\n\nexport function Component_Render() {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, class_type, list_type, union_type, unit_type, record_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Settings_ChangePassword } from \"../../Shared/Shared.fs.js\";\nimport { settingsApi } from \"../Communication.fs.js\";\nimport { Validator$1__IsValid_Z4CF01147, Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { isNullOrWhiteSpace } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { empty as empty_1, singleton as singleton_1, append, delay, toList, exists } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { isLetter, isDigit } from \"../.fable/fable-library.3.2.1/Char.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Form_Field_errorsAsString, Form_Field_fieldStyleOnError, Form_Field_hasErrors, View_renderNotification } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_2, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(CurrentPassword, NewPassword, NewPasswordConfirmation) {\n super();\n this.CurrentPassword = CurrentPassword;\n this.NewPassword = NewPassword;\n this.NewPasswordConfirmation = NewPasswordConfirmation;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"Settings.ChangePassword.Types.Form\", [], Types_Form, () => [[\"CurrentPassword\", string_type], [\"NewPassword\", string_type], [\"NewPasswordConfirmation\", string_type]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, Changing, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.Changing = Changing;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"Settings.ChangePassword.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"Changing\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"CurrentPasswordChanged\", \"NewPasswordChanged\", \"NewPasswordConfirmationChanged\", \"ChangePassword\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"Settings.ChangePassword.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_changePassword(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Settings_ChangePassword(state.Form.CurrentPassword, state.Form.NewPassword);\n return singleton.Bind(Remoting_handleNonAuth(settingsApi().changePassword(request)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? ((response.fields[0].tag === 1) ? singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Current password is invalid\")))) : singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, \"Can not find account\"))))) : singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Gammalt lösenord krävs\")(Validator$1__Test(t, \"CurrentPassword\", formInfo.CurrentPassword))), Validator$1__End_Z5E18B1E2(t, Validator$1__IsValid_Z4CF01147(t, (value) => {\n if (value === \"\") {\n return true;\n }\n else if (!isNullOrWhiteSpace(value)) {\n if ((value.length >= 8) ? exists((arg00) => isDigit(arg00), value.split(\"\")) : false) {\n return exists((arg00_1) => isLetter(arg00_1), value.split(\"\"));\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n })(\"Lösenordet måste innehålla minst 1 bokstav och 1 siffra. Minsta längd är 8\")(Validator$1__NotBlank_2B595(t, \"Nytt lösenord krävs\")(Validator$1__Test(t, \"NewPassword\", formInfo.NewPassword)))), Validator$1__End_Z5E18B1E2(t, Validator$1__IsValid_Z4CF01147(t, (confirmPassword) => {\n if ((confirmPassword === \"\") ? (formInfo.NewPassword === \"\") : false) {\n return true;\n }\n else {\n return formInfo.NewPassword === confirmPassword;\n }\n })(\"Lösenordet matchar inte\")(Validator$1__NotBlank_2B595(t, \"Upprepa lösenord krävs\")(Validator$1__Test(t, \"NewPasswordConfirmation\", formInfo.NewPasswordConfirmation)))))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport const State_init = [new Types_State(new Types_Form(\"\", \"\", \"\"), new DeferredResult$1(0), empty(), false), Cmd_none()];\n\nexport function State_update(msg, state) {\n let inputRecord_1, inputRecord_2, inputRecord;\n if (msg.tag === 1) {\n const patternInput_1 = Validation_validateIf(state.IsNeedValidation, (inputRecord_1 = state.Form, new Types_Form(inputRecord_1.CurrentPassword, msg.fields[0], inputRecord_1.NewPasswordConfirmation)));\n return [new Types_State(patternInput_1[0], state.Changing, patternInput_1[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 2) {\n const patternInput_2 = Validation_validateIf(state.IsNeedValidation, (inputRecord_2 = state.Form, new Types_Form(inputRecord_2.CurrentPassword, inputRecord_2.NewPassword, msg.fields[0])));\n return [new Types_State(patternInput_2[0], state.Changing, patternInput_2[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.Changing, matchValue.fields[0], true), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], new DeferredResult$1(1), empty(), true), Cmd_fromAsync(Cmd_changePassword(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, (inputRecord = state.Form, new Types_Form(msg.fields[0], inputRecord.NewPassword, inputRecord.NewPasswordConfirmation)));\n return [new Types_State(patternInput[0], state.Changing, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_renderError(state) {\n const matchValue = state.Changing;\n let pattern_matching_result, error;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n error = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return null;\n }\n case 1: {\n return View_renderNotification([\"className\", \"is-success\"], \"Lösenordet har ändrats.\");\n }\n case 2: {\n return View_renderNotification([\"className\", \"is-danger\"], error);\n }\n }\n}\n\nexport function View_view(state, dispatch) {\n let elms_5, elms, props_6, props_2, props_4, elms_1, props_13, props_9, props_11, elms_2, props_20, props_16, props_18, elms_4, elms_3;\n const props_29 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Byt lösenord\"]])))), (elms_5 = singleton_2(createElement(\"form\", {\n onSubmit: (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(3, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray([(elms = singleton_2((props_6 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_2 = toList(delay(() => append(Form_Field_hasErrors(\"CurrentPassword\")(state.FormErrors) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_1([\"name\", \"current-password\"]), delay(() => append(singleton_1([\"placeholder\", \"Gammalt lösenord\"]), delay(() => singleton_1([\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, ev.target.value));\n }]))))))))), createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", props_2))))), (props_4 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"CurrentPassword\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_4))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_6))))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_2((props_13 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_9 = toList(delay(() => append(Form_Field_hasErrors(\"NewPassword\")(state.FormErrors) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_1([\"name\", \"new-password\"]), delay(() => append(singleton_1([\"placeholder\", \"Nytt lösenord\"]), delay(() => singleton_1([\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(1, ev_1.target.value));\n }]))))))))), createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", props_9))))), (props_11 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"NewPassword\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_11))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_13))))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (elms_2 = singleton_2((props_20 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_16 = toList(delay(() => append(Form_Field_hasErrors(\"NewPasswordConfirmation\")(state.FormErrors) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => append(singleton_1([\"name\", \"new-password-confirmation\"]), delay(() => append(singleton_1([\"placeholder\", \"Upprepa lösenord\"]), delay(() => singleton_1([\"onChange\", (ev_2) => {\n dispatch(new Types_Msg(2, ev_2.target.value));\n }]))))))))), createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", props_16))))), (props_18 = ofArray([[\"style\", {\n color: \"#FF0000\",\n }], [\"children\", Form_Field_errorsAsString(\"NewPasswordConfirmation\")(state.FormErrors)]]), createElement(\"p\", createObj(Helpers_combineClasses(\"help\", props_18))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_20))))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), (elms_4 = singleton_2((elms_3 = singleton_2(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Byt lösenord\"]]))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })), View_renderError(state)]),\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_29)));\n}\n\nexport function Component_Render() {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\n","import { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { borderStylePrimary } from \"../Common.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { singleton as singleton_1, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { EmailModule_toString } from \"../../Shared/Shared.fs.js\";\nimport { map, defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { toString } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { Component_Render as Component_Render_1 } from \"./ChangeFullName.fs.js\";\nimport { Component_Render as Component_Render_2 } from \"./ChangeEmail.fs.js\";\nimport { Component_Render as Component_Render_3 } from \"./ChangePassword.fs.js\";\n\nexport function View_view(user) {\n let props_51, props_49, props_39, props_47, props_41, props_43, props_45;\n const props_53 = ofArray([[\"className\", \"pt-6\"], [\"children\", Interop_reactApi.Children.toArray([(props_51 = ofArray([[\"className\", \"px-5\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(props_49 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-8\"])], [\"children\", Interop_reactApi.Children.toArray([(props_39 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"mr-6\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let elms, props_1;\n return append(singleton((elms = ofArray([(props_1 = ofArray([[\"className\", \"is-medium\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-user\", \"fa-lg\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_1)))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"is-size-4\"], [\"className\", \"has-text-weight-bold\"], [\"className\", \"has-text-primary\"], [\"className\", \"mx-2\"], [\"children\", user.FullName]]))))]), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), delay(() => {\n let elms_1, props_7, props_9, props_13, props_15;\n return append(singleton((elms_1 = ofArray([(props_7 = ofArray([[\"className\", \"is-medium\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-envelope\", \"fa-lg\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_7)))), (props_9 = ofArray([[\"className\", \"is-size-5\"], [\"className\", \"has-text-primary\"], [\"className\", \"mx-2\"], [\"children\", EmailModule_toString(user.Email)]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_9)))), createElement(\"p\", {\n className: \"mb-2\",\n }), (props_13 = ofArray([[\"className\", \"is-medium\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-check-double\", \"fa-lg\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_13)))), (props_15 = ofArray([[\"className\", \"is-size-5\"], [\"className\", \"has-text-primary\"], [\"className\", \"mx-2\"], [\"children\", defaultArg(map((x) => (\"Godkände GDPR \" + toString(x, \"yyyy-MM-dd\")), user.GdprAcceptDate), \"GDPR är inte godkänt\")]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_15))))]), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), delay(() => {\n let elms_2, props_22, props_19;\n return append(singleton((elms_2 = singleton_1((props_22 = ofArray([[\"className\", \"is-outlined\"], [\"className\", \"is-primary\"], [\"children\", Interop_reactApi.Children.toArray([(props_19 = ofArray([[\"className\", \"is-left\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-tools\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_19)))), createElement(\"span\", {\n className: \"\",\n children: \"Lathund\",\n })])]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_22))))), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), delay(() => {\n let elms_3, props_29, props_26;\n return (user.Role === 3) ? append(singleton((elms_3 = singleton_1((props_29 = ofArray([[\"className\", \"is-outlined\"], [\"className\", \"is-primary\"], [\"href\", toPath(new Route(13, user.UserId))], [\"children\", Interop_reactApi.Children.toArray([(props_26 = ofArray([[\"className\", \"is-left\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-clipboard-check\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_26)))), createElement(\"span\", {\n className: \"\",\n children: \"Planering\",\n })])]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_29))))), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))), delay(() => {\n let elms_4, props_36, props_33;\n return singleton((elms_4 = singleton_1((props_36 = ofArray([[\"className\", \"is-outlined\"], [\"className\", \"is-primary\"], [\"href\", toPath(new Route(14, user.UserId))], [\"children\", Interop_reactApi.Children.toArray([(props_33 = ofArray([[\"className\", \"is-left\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-user\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_33)))), createElement(\"span\", {\n className: \"\",\n children: \"Mina externa tränare\",\n })])]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_36))))), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })));\n })) : empty();\n }));\n }));\n }));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_39)))), (props_47 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_41 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(Component_Render_1, null)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_41)))), (props_43 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(Component_Render_2, null)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_43)))), (props_45 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(Component_Render_3, null)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_45))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_47))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_49))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_51))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_53)));\n}\n\nexport function Component_Render(user) {\n return View_view(user);\n}\n\n","import { Union } from \"../fable-library.3.2.1/Types.js\";\nimport { union_type, class_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { useReact_useCallback_93353E, React_useStateWithUpdater_1505, useReact_useCallbackRef_7C4B0DD6, useReact_useEffect_Z101E1A95, React_createDisposable_3A5B6456, useReact_useEffectOnce_Z5ECA432F, useReact_useRef_1505, useFeliz_React__React_useState_Static_1505 } from \"../Feliz.1.51.0/React.fs.js\";\nimport { parallel, ignore, isCancellationRequested, startImmediate, cancel, createCancellationToken } from \"../fable-library.3.2.1/Async.js\";\nimport { singleton } from \"../fable-library.3.2.1/AsyncBuilder.js\";\nimport { toList as toList_1, add, empty } from \"../fable-library.3.2.1/Map.js\";\nimport { singleton as singleton_1, collect, delay, toList } from \"../fable-library.3.2.1/Seq.js\";\n\nexport class Deferred$1 extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"HasNotStartedYet\", \"InProgress\", \"Resolved\", \"Failed\"];\n }\n}\n\nexport function Deferred$1$reflection(gen0) {\n return union_type(\"Feliz.UseDeferred.Deferred`1\", [gen0], Deferred$1, () => [[], [], [[\"Item\", gen0]], [[\"Item\", class_type(\"System.Exception\")]]]);\n}\n\nexport function Deferred_hasNotStartedYet(_arg1) {\n if (_arg1.tag === 0) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function Deferred_resolved(_arg1) {\n if (_arg1.tag === 2) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function Deferred_inProgress(_arg1) {\n if (_arg1.tag === 1) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function Deferred_map(transform, deferred) {\n switch (deferred.tag) {\n case 1: {\n return new Deferred$1(1);\n }\n case 3: {\n return new Deferred$1(3, deferred.fields[0]);\n }\n case 2: {\n try {\n return new Deferred$1(2, transform(deferred.fields[0]));\n }\n catch (error_1) {\n return new Deferred$1(3, error_1);\n }\n }\n default: {\n return new Deferred$1(0);\n }\n }\n}\n\nexport function Deferred_iter(perform, deferred) {\n if (deferred.tag === 2) {\n perform(deferred.fields[0]);\n }\n}\n\nexport function Deferred_exists(predicate, _arg1) {\n if (_arg1.tag === 2) {\n return predicate(_arg1.fields[0]);\n }\n else {\n return false;\n }\n}\n\nexport function Deferred_bind(transform, deferred) {\n switch (deferred.tag) {\n case 1: {\n return new Deferred$1(1);\n }\n case 3: {\n return new Deferred$1(3, deferred.fields[0]);\n }\n case 2: {\n try {\n return transform(deferred.fields[0]);\n }\n catch (error_1) {\n return new Deferred$1(3, error_1);\n }\n }\n default: {\n return new Deferred$1(0);\n }\n }\n}\n\nexport function useFeliz_React__React_useDeferred_Static_2344FC52(operation, dependencies) {\n const patternInput = useFeliz_React__React_useState_Static_1505(new Deferred$1(0));\n const setDeferred = patternInput[1];\n let token_1;\n const cts = useReact_useRef_1505(createCancellationToken());\n const token = useReact_useRef_1505(cts.current);\n useReact_useEffectOnce_Z5ECA432F(() => React_createDisposable_3A5B6456(() => {\n cancel(cts.current);\n }));\n token_1 = token;\n const executeOperation = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n setDeferred(new Deferred$1(1));\n return singleton.Bind(operation, (_arg1) => {\n setDeferred(new Deferred$1(2, _arg1));\n return singleton.Zero();\n });\n }), (_arg2) => {\n setDeferred(new Deferred$1(3, _arg2));\n return singleton.Zero();\n }));\n useReact_useEffect_Z101E1A95(() => {\n startImmediate(executeOperation, token_1.current);\n }, dependencies);\n return patternInput[0];\n}\n\nexport function useFeliz_React__React_useDeferredCallback_Static_7088D81D(operation, setDeferred) {\n const cancellationToken = useReact_useRef_1505(createCancellationToken());\n useReact_useEffectOnce_Z5ECA432F(() => React_createDisposable_3A5B6456(() => {\n cancel(cancellationToken.current);\n }));\n return useReact_useCallbackRef_7C4B0DD6((arg_1) => {\n if (!isCancellationRequested(cancellationToken.current)) {\n startImmediate(singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n setDeferred(new Deferred$1(1));\n return singleton.Bind(operation(arg_1), (_arg3) => {\n setDeferred(new Deferred$1(2, _arg3));\n return singleton.Zero();\n });\n }), (_arg4) => {\n setDeferred(new Deferred$1(3, _arg4));\n return singleton.Zero();\n })), cancellationToken.current);\n }\n });\n}\n\nexport function useFeliz_React__React_useDeferredParallel_Static_Z7E3F34D2(deferred, map) {\n const patternInput = React_useStateWithUpdater_1505(empty());\n const addData = useReact_useCallbackRef_7C4B0DD6((tupledArg) => {\n patternInput[1]((prev) => add(tupledArg[0], tupledArg[1], prev));\n });\n let token_1;\n const cts = useReact_useRef_1505(createCancellationToken());\n const token = useReact_useRef_1505(cts.current);\n useReact_useEffectOnce_Z5ECA432F(() => React_createDisposable_3A5B6456(() => {\n cancel(cts.current);\n }));\n token_1 = token;\n const start = useReact_useCallback_93353E((operations_1) => {\n void setTimeout(() => {\n startImmediate(ignore(parallel(toList(delay(() => collect((matchValue) => {\n const key_1 = matchValue[0];\n return singleton_1(singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n addData([key_1, new Deferred$1(1)]);\n return singleton.Bind(matchValue[1], (_arg5) => {\n addData([key_1, new Deferred$1(2, _arg5)]);\n return singleton.Zero();\n });\n }), (_arg6) => {\n addData([key_1, new Deferred$1(3, _arg6)]);\n return singleton.Zero();\n })));\n }, operations_1))))), token_1.current);\n }, 0);\n });\n useReact_useEffect_Z101E1A95(() => {\n Deferred_iter((data_1) => {\n start(map(data_1));\n }, deferred);\n }, [deferred]);\n return toList_1(patternInput[0]);\n}\n\n","import { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { singleton, append, delay, toList } from \"./.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_1, ofArray } from \"./.fable/fable-library.3.2.1/List.js\";\n\nexport function loader(sizeLoader) {\n let props_2, props;\n const elms = singleton_1((props_2 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-centered\"], [\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([(props = toList(delay(() => append(singleton([\"style\", {\n borderStyle: \"none\",\n }]), delay(() => append((sizeLoader === \"big\") ? singleton([\"className\", \"is-size-1\"]) : ((sizeLoader === \"normal\") ? singleton([\"className\", \"is-size-3\"]) : ((sizeLoader === \"small\") ? singleton([\"className\", \"is-size-5\"]) : singleton([\"className\", \"is-size-3\"]))), delay(() => append(singleton([\"className\", \"is-primary\"]), delay(() => append(singleton([\"className\", \"is-loading\"]), delay(() => append(singleton([\"className\", \"is-inverted\"]), delay(() => append(singleton([\"className\", \"is-outlined\"]), delay(() => singleton([\"className\", \"is-large\"]))))))))))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"button\", props))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_2)))));\n return createElement(\"section\", {\n className: \"section\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport const inlineSmall = (() => {\n const props = ofArray([[\"style\", {\n borderStyle: \"none\",\n }], [\"className\", \"is-size-5\"], [\"className\", \"is-primary\"], [\"className\", \"is-loading\"], [\"className\", \"is-inverted\"], [\"className\", \"is-outlined\"], [\"className\", \"is-medium\"]]);\n return createElement(\"span\", createObj(Helpers_combineClasses(\"button\", props)));\n})();\n\nexport function loaderBig() {\n return loader(\"big\");\n}\n\nexport function loaderSmall() {\n return loader(\"small\");\n}\n\n","import { Union, Record } from \"./.fable/fable-library.3.2.1/Types.js\";\nimport { union_type, unit_type, option_type, class_type, record_type, string_type } from \"./.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"./.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, Remoting_userChanged, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"./Extensions.fs.js\";\nimport { singleton } from \"./.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Auth_SignedInUser, Students_StudentUpdateChatTextRequest } from \"../Shared/Shared.fs.js\";\nimport { studentsApi } from \"./Communication.fs.js\";\nimport { Cmd_none } from \"./.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { toLocalTime, now } from \"./.fable/fable-library.3.2.1/DateOffset.js\";\nimport { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj, equals } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { singleton as singleton_1, ofArray } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { Helpers_combineClasses } from \"./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"./.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { borderStylePrimary } from \"./Common.fs.js\";\nimport { interpolate, toText, join } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { map, defaultArg } from \"./.fable/fable-library.3.2.1/Option.js\";\nimport { toString } from \"./.fable/fable-library.3.2.1/Date.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"./.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"./Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(ChatText) {\n super();\n this.ChatText = ChatText;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"Chat.Types.Form\", [], Types_Form, () => [[\"ChatText\", string_type]]);\n}\n\nexport class Types_State extends Record {\n constructor(StudentId, CurrentUserId, ChatText, ChatChangeDate, Changing) {\n super();\n this.StudentId = StudentId;\n this.CurrentUserId = CurrentUserId;\n this.ChatText = ChatText;\n this.ChatChangeDate = ChatChangeDate;\n this.Changing = Changing;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"Chat.Types.State\", [], Types_State, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"CurrentUserId\", class_type(\"System.Guid\")], [\"ChatText\", string_type], [\"ChatChangeDate\", option_type(class_type(\"System.DateTimeOffset\"))], [\"Changing\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"ChatTextChanged\", \"ChangeChatText\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"Chat.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_changeChatText(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Students_StudentUpdateChatTextRequest(state.StudentId, state.ChatText);\n return singleton.Bind(Remoting_handleNonAuth(studentsApi().updateChatText(request)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function State_init(studentSettings, currentUserId) {\n return [new Types_State(studentSettings.Id, currentUserId, studentSettings.ChatText, studentSettings.ChatChangeDate, new DeferredResult$1(0)), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.StudentId, state.CurrentUserId, state.ChatText, state.ChatChangeDate, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n if (state.StudentId === state.CurrentUserId) {\n Remoting_userChanged((x_2) => (new Auth_SignedInUser(x_2.Email, x_2.FullName, x_2.SchoolId, x_2.GroupId, x_2.GdprAcceptDate, x_2.AccessToken, x_2.Role, x_2.UserId, x_2.ChatText, now())));\n }\n return [new Types_State(state.StudentId, state.CurrentUserId, state.ChatText, now(), new DeferredResult$1(2, new FSharpResult$2(0, void 0))), View_Cmd_toastSuccess(\"Chatten har sparats\")];\n }\n }\n else {\n return [state, Cmd_fromAsync(Cmd_changeChatText(state))];\n }\n }\n else {\n return [new Types_State(state.StudentId, state.CurrentUserId, msg.fields[0], state.ChatChangeDate, state.Changing), Cmd_none()];\n }\n}\n\nexport function View_renderForm(state, dispatch) {\n let elms_3, elms, props_2, props, value_3, elms_2, elms_1;\n const props_11 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_3 = singleton_1(createElement(\"form\", {\n onSubmit: (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(1, new AsyncOperationStatus$1(0)));\n },\n children: Interop_reactApi.Children.toArray([(elms = singleton_1((props_2 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props = ofArray([[\"rows\", 20], (value_3 = state.ChatText, [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_3)) : false) {\n e.value = value_3;\n }\n }]), [\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, ev.target.value));\n }]]), createElement(\"textarea\", createObj(Helpers_combineClasses(\"textarea\", props))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_2))))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_2 = singleton_1((elms_1 = singleton_1(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Spara\"]]))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))]),\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_11)));\n}\n\nexport function View_view(view_viewInputProps) {\n let props_11, elms, props_1, props_3, elms_1, props_6, props_9;\n const studentSettings = view_viewInputProps.studentSettings;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(studentSettings, view_viewInputProps.currentUserId), (msg, state) => State_update(msg, state), []);\n const state_1 = patternInput[0];\n const props_13 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_11 = ofArray([[\"className\", \"px-5\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([(props_1 = ofArray([[\"className\", \"is-medium\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-user\", \"fa-lg\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_1)))), (props_3 = ofArray([[\"className\", \"is-size-4\"], [\"className\", \"has-text-weight-bold\"], [\"className\", \"has-text-primary\"], [\"children\", toText(interpolate(\"Chat för %P()\", [studentSettings.FullName]))]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_3))))]), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_1((props_6 = ofArray([[\"className\", \"is-size-5\"], [\"className\", \"has-text-primary\"], [\"className\", \"mx-2\"], [\"children\", defaultArg(map((x) => {\n let copyOfStruct;\n return \"Senast uppdaterad: \" + (copyOfStruct = toLocalTime(x), toString(copyOfStruct, \"yyyy-MM-dd HH:mm:ss\"));\n }, state_1.ChatChangeDate), \"Senast uppdaterad: aldrig\")]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_6))))), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (props_9 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([View_renderForm(state_1, patternInput[1])])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_9))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_11))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_13)));\n}\n\nexport function Component_ResolveStudentChat(component_ResolveStudentChatInputProps) {\n const user = component_ResolveStudentChatInputProps.user;\n const studentId = component_ResolveStudentChatInputProps.studentId;\n const studentSettings = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentsApi().getSettings(studentId)), [studentId]);\n if (studentSettings.tag === 2) {\n if (studentSettings.fields[0].tag === 1) {\n return createElement(\"div\", {\n children: [studentSettings.fields[0].fields[0]],\n });\n }\n else {\n return createElement(View_view, {\n studentSettings: studentSettings.fields[0].fields[0],\n currentUserId: user,\n });\n }\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const user = component_RenderInputProps.user;\n const studentId = component_RenderInputProps.studentId;\n return createElement(Component_ResolveStudentChat, {\n studentId: studentId,\n user: user.UserId,\n });\n}\n\n","import { Record, Union } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, array_type, class_type, string_type, list_type, union_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Groups_GroupsOrderUpdateRequest, Groups_GroupListItem$reflection } from \"../../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { groupsApi } from \"../Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { singleton as singleton_2, filter as filter_1, tryFind, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { map, contains, choose, concat } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { map as map_1, empty, singleton as singleton_1, append, delay, toList, filter } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createObj, stringHash } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { View_renderNotification, View_RenderDeleteWindow } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_MoveDirection extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Up\", \"Down\"];\n }\n}\n\nexport function Types_MoveDirection$reflection() {\n return union_type(\"GroupList.Types.MoveDirection\", [], Types_MoveDirection, () => [[], []]);\n}\n\nexport class Types_State extends Record {\n constructor(Groups, GroupsOrder) {\n super();\n this.Groups = Groups;\n this.GroupsOrder = GroupsOrder;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"GroupList.Types.State\", [], Types_State, () => [[\"Groups\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Groups_GroupListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Groups_GroupListItem$reflection())]], [[\"ErrorValue\", string_type]]]))], [\"GroupsOrder\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(class_type(\"System.Guid\")), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(class_type(\"System.Guid\"))]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadGroups\", \"LoadGroupsOrder\", \"UpdateGroupsOrderClick\", \"UpdateGroupsOrder\", \"DeleteGroupClick\", \"DeleteGroup\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"GroupList.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Groups_GroupListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Groups_GroupListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(class_type(\"System.Guid\")), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(class_type(\"System.Guid\"))]], [[\"ErrorValue\", string_type]]]))]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", Types_MoveDirection$reflection()]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(class_type(\"System.Guid\")), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(class_type(\"System.Guid\"))]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_loadGroups = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(groupsApi().list()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport const Cmd_loadGroupsOrder = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(groupsApi().getGroupsOrder()), (_arg1) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function Cmd_updateGroupsOrder(groupIds) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Groups_GroupsOrderUpdateRequest(groupIds);\n return singleton.Bind(Remoting_handleNonAuth(groupsApi().updateGroupsOrder(request)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, groupIds))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Cmd_delete(id) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(groupsApi().delete(id)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(0, id)))) : (new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport const State_init = [new Types_State(new DeferredResult$1(1), new DeferredResult$1(1)), Cmd_batch(ofArray([Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0))), Cmd_OfFunc_result(new Types_Msg(1, new AsyncOperationStatus$1(0)))]))];\n\nexport function State_getOrderedGroups(groups, groupsOrder) {\n return concat([choose((groupId) => tryFind((x) => (x.Id === groupId), groups), groupsOrder), Array.from(filter((x_1) => (!contains(x_1.Id, groupsOrder, {\n Equals: (x_2, y) => (x_2 === y),\n GetHashCode: (x_2) => stringHash(x_2),\n })), groups))]);\n}\n\nexport function State_update(msg, state) {\n let matchValue_1;\n if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Groups, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(state.Groups, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(state.Groups, new DeferredResult$1(1)), Cmd_fromAsync(Cmd_loadGroupsOrder)];\n }\n }\n else if (msg.tag === 2) {\n let newGroupsOrder;\n const matchValue = [state.Groups, state.GroupsOrder];\n let pattern_matching_result, groups, groupsOrder;\n if (matchValue[0].tag === 2) {\n if (matchValue[0].fields[0].tag === 0) {\n if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 0) {\n pattern_matching_result = 0;\n groups = matchValue[0].fields[0].fields[0];\n groupsOrder = matchValue[1].fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n const groupIds = map((x_2) => x_2.Id, State_getOrderedGroups(groups, groupsOrder));\n const groupIdIndex = groupIds.findIndex((x_3) => (x_3 === msg.fields[0])) | 0;\n newGroupsOrder = ((msg.fields[1].tag === 1) ? ((groupIdIndex < (groupIds.length - 1)) ? concat([groupIds.slice(void 0, (groupIdIndex - 1) + 1), [groupIds[groupIdIndex + 1]], [groupIds[groupIdIndex]], groupIds.slice(groupIdIndex + 2, groupIds.length)]) : groupIds) : ((groupIdIndex > 0) ? concat([groupIds.slice(void 0, (groupIdIndex - 2) + 1), [groupIds[groupIdIndex]], [groupIds[groupIdIndex - 1]], groupIds.slice(groupIdIndex + 1, groupIds.length)]) : groupIds));\n break;\n }\n case 1: {\n newGroupsOrder = [];\n break;\n }\n }\n return [new Types_State(state.Groups, new DeferredResult$1(2, new FSharpResult$2(0, newGroupsOrder))), Cmd_fromAsync(Cmd_updateGroupsOrder(newGroupsOrder))];\n }\n else if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.GroupsOrder), Cmd_none()];\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.tag === 4) {\n return [state, Cmd_fromAsync(Cmd_delete(msg.fields[0]))];\n }\n else if (msg.tag === 5) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.GroupsOrder), Cmd_none()];\n }\n else {\n return [new Types_State((matchValue_1 = state.Groups, (matchValue_1.tag === 2) ? ((matchValue_1.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, filter_1((x_4) => (x_4.Id !== msg.fields[0].fields[0].fields[0]), matchValue_1.fields[0].fields[0])))) : state.Groups) : state.Groups), state.GroupsOrder), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.GroupsOrder), Cmd_none()];\n }\n else {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), state.GroupsOrder), Cmd_none()];\n }\n }\n else {\n return [new Types_State(new DeferredResult$1(1), state.GroupsOrder), Cmd_fromAsync(Cmd_loadGroups)];\n }\n}\n\nexport function View_Group(view_GroupInputProps) {\n const dispatch = view_GroupInputProps.dispatch;\n const group = view_GroupInputProps.group;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setMoveUpHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setMoveDownHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setEditHover = patternInput_2[1];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const setDeleteHover = patternInput_3[1];\n const patternInput_4 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_4[1];\n const isDeleteWindow = patternInput_4[0];\n const children_2 = toList(delay(() => {\n let props_26, elms_1, elms, props_5, props_3, props_23, props_8, props_12, props_16, props_20;\n return append(singleton_1((props_26 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(elms = singleton_2(createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-primary\"], [\"children\", group.Title]]))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_5 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_3 = toList(delay(() => append(singleton_1([\"className\", \"is-size-7\"]), delay(() => append(patternInput[0] ? singleton_1([\"children\", \"Flytta upp\"]) : empty(), delay(() => append(patternInput_1[0] ? singleton_1([\"children\", \"Flytta ner\"]) : empty(), delay(() => append(patternInput_2[0] ? singleton_1([\"children\", \"Ändra egenskaper\"]) : empty(), delay(() => (patternInput_3[0] ? singleton_1([\"children\", \"Ta bort gruppen\"]) : empty()))))))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_3))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_5)))), (props_23 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n onMouseEnter: (_arg1) => {\n setMoveUpHover(true);\n },\n onMouseLeave: (_arg2) => {\n setMoveUpHover(false);\n },\n onClick: (_arg3) => {\n dispatch(new Types_Msg(2, group.Id, new Types_MoveDirection(1)));\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_8 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-dark\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-chevron-down\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_8))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg4) => {\n setMoveDownHover(true);\n },\n onMouseLeave: (_arg5) => {\n setMoveDownHover(false);\n },\n onClick: (_arg6) => {\n dispatch(new Types_Msg(2, group.Id, new Types_MoveDirection(0)));\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-dark\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-chevron-up\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_12))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg7) => {\n setEditHover(true);\n },\n onMouseLeave: (_arg8) => {\n setEditHover(false);\n },\n className: \"px-2\",\n href: toPath(new Route(9, group.Id)),\n children: Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-pencil-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_16))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg9) => {\n setDeleteHover(true);\n },\n onMouseLeave: (_arg10) => {\n setDeleteHover(false);\n },\n onClick: (_arg11) => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_20 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-danger\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-times\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_20))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_23))))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_26))))), delay(() => (isDeleteWindow ? singleton_1(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(4, group.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort här gruppen?\",\n })) : empty())));\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n}\n\nexport function View_Render(_user) {\n let props_6, elms, elms_1, props_3;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), []);\n const state_1 = patternInput[0];\n const props_8 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_6 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => append(singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Alla Grupper\"]]))))), delay(() => {\n const matchValue = [state_1.Groups, state_1.GroupsOrder];\n let pattern_matching_result, groups, groupsOrder, e;\n if (matchValue[0].tag === 2) {\n if (matchValue[0].fields[0].tag === 1) {\n pattern_matching_result = 1;\n e = matchValue[0].fields[0].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 1) {\n pattern_matching_result = 1;\n e = matchValue[1].fields[0].fields[0];\n }\n else {\n pattern_matching_result = 0;\n groups = matchValue[0].fields[0].fields[0];\n groupsOrder = matchValue[1].fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 1) {\n pattern_matching_result = 1;\n e = matchValue[1].fields[0].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n switch (pattern_matching_result) {\n case 0: {\n return map_1((group) => createElement(View_Group, {\n group: group,\n dispatch: patternInput[1],\n }), State_getOrderedGroups(groups, groupsOrder));\n }\n case 1: {\n return singleton_1(View_renderNotification([\"className\", \"is-danger\"], e));\n }\n case 2: {\n return singleton_1(loader(\"big\"));\n }\n }\n })))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_2((props_3 = ofArray([[\"href\", toPath(new Route(8))], [\"className\", \"py-2\"], [\"className\", \"is-success\"], [\"children\", \"Lägg till grupp\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_3))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_8)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { list_type, union_type, unit_type, array_type, bool_type, int32_type, record_type, string_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Groups_Group_Default_4019FA9, Common_str, Common_parseIntOrZero, Plans_YearPlan_AddOrUpdateYearPlan, Plans_PeriodPlan_Create, Plans_YearPlan, Groups_getYearPlanOrDefault, Calendar_WeekInfo_get_Current, Groups_GroupUpdateRequest, Groups_GroupCreateRequest, Plans_YearPlan$reflection } from \"../../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { groupsApi } from \"../Communication.fs.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { sum, sumBy, indexed, map, mapIndexed } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { int32ToString, equals, createObj, round } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { collect, reverse, map as map_1, empty as empty_1, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { View_renderSelectOption, borderStylePrimary, Form_Field_fieldStyleOnError } from \"../Common.fs.js\";\nimport { createElement } from \"react\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { empty as empty_2, singleton as singleton_2, ofArray, cons } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { rangeDouble } from \"../.fable/fable-library.3.2.1/Range.js\";\nimport { padLeft, join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Id, Title, YearPlan) {\n super();\n this.Id = Id;\n this.Title = Title;\n this.YearPlan = YearPlan;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"GroupEdit.Types.Form\", [], Types_Form, () => [[\"Id\", class_type(\"System.Guid\")], [\"Title\", string_type], [\"YearPlan\", Plans_YearPlan$reflection()]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, OriginalValue, CurrentYear, IsNew, YearPlans, Saving, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.OriginalValue = OriginalValue;\n this.CurrentYear = (CurrentYear | 0);\n this.IsNew = IsNew;\n this.YearPlans = YearPlans;\n this.Saving = Saving;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"GroupEdit.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"OriginalValue\", Types_Form$reflection()], [\"CurrentYear\", int32_type], [\"IsNew\", bool_type], [\"YearPlans\", array_type(Plans_YearPlan$reflection())], [\"Saving\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"TitleChanged\", \"YearChanged\", \"YearTotalHoursChanged\", \"PeriodTotalHoursChanged\", \"PeriodWeekHoursChanged\", \"DistributeYearHours\", \"DistributePeriodsHours\", \"Save\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"GroupEdit.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item1\", int32_type], [\"Item2\", int32_type]], [[\"Item1\", int32_type], [\"Item2\", int32_type], [\"Item3\", int32_type]], [], [], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_save(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n let request, request_1;\n return singleton.Bind(Remoting_handleNonAuth(state.IsNew ? (request = (new Groups_GroupCreateRequest(state.Form.Id, state.Form.Title, state.Form.YearPlan)), groupsApi().create(request)) : (request_1 = (new Groups_GroupUpdateRequest(state.Form.Id, state.Form.Title, state.Form.YearPlan)), groupsApi().update(request_1))), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(7, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(7, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(7, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(formInfo.Id, Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Title is required\")(Validator$1__Test(t, \"Title\", formInfo.Title))), Validator$1__End_Z5E18B1E2(t, Validator$1__Test(t, \"TotalHours\", formInfo.YearPlan)))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport function State_init(group, isNew) {\n const year = Calendar_WeekInfo_get_Current().PeriodInfo.PeriodYear | 0;\n const form = new Types_Form(group.Id, group.Title, Groups_getYearPlanOrDefault(group.YearPlans, year));\n return [new Types_State(form, form, year, isNew, group.YearPlans, new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_withYearPlan(state, newYearPlan) {\n let inputRecord;\n const patternInput = Validation_validateIf(state.IsNeedValidation, (inputRecord = state.Form, new Types_Form(inputRecord.Id, inputRecord.Title, newYearPlan)));\n return new Types_State(patternInput[0], state.OriginalValue, state.CurrentYear, state.IsNew, state.YearPlans, state.Saving, patternInput[1], state.IsNeedValidation);\n}\n\nexport function State_update(msg, state) {\n let inputRecord_2, inputRecord_1, inputRecord_3, inputRecord_4, inputRecord_5, inputRecord_6, inputRecord;\n if (msg.tag === 1) {\n return [State_withYearPlan(state, Groups_getYearPlanOrDefault(state.YearPlans, msg.fields[0])), Cmd_none()];\n }\n else if (msg.tag === 2) {\n const patternInput_1 = Validation_validateIf(state.IsNeedValidation, (inputRecord_2 = state.Form, new Types_Form(inputRecord_2.Id, inputRecord_2.Title, (inputRecord_1 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_1.Year, msg.fields[0], inputRecord_1.PeriodPlans)))));\n return [new Types_State(patternInput_1[0], state.OriginalValue, state.CurrentYear, state.IsNew, state.YearPlans, state.Saving, patternInput_1[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 3) {\n return [State_withYearPlan(state, (inputRecord_3 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_3.Year, inputRecord_3.TotalHours, mapIndexed((periodIndex, period) => {\n if (periodIndex === msg.fields[0]) {\n return Plans_PeriodPlan_Create(msg.fields[1], period.WeekHours);\n }\n else {\n return period;\n }\n }, state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 4) {\n return [State_withYearPlan(state, (inputRecord_4 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_4.Year, inputRecord_4.TotalHours, mapIndexed((pIndex, p) => {\n if (pIndex === msg.fields[0]) {\n return Plans_PeriodPlan_Create(p.TotalHours, mapIndexed((i, v) => {\n if (i === msg.fields[1]) {\n return msg.fields[2] | 0;\n }\n else {\n return v;\n }\n }, p.WeekHours));\n }\n else {\n return p;\n }\n }, state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 5) {\n const hoursPerPeriod = (~(~round(state.Form.YearPlan.TotalHours / 13))) | 0;\n return [State_withYearPlan(state, (inputRecord_5 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_5.Year, inputRecord_5.TotalHours, map((x_7) => Plans_PeriodPlan_Create(hoursPerPeriod, x_7.WeekHours), state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 6) {\n return [State_withYearPlan(state, (inputRecord_6 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_6.Year, inputRecord_6.TotalHours, map((periodPlan) => {\n const hoursPerWeek = (~(~round(periodPlan.TotalHours / 4))) | 0;\n return Plans_PeriodPlan_Create(periodPlan.TotalHours, new Int32Array([hoursPerWeek, hoursPerWeek, hoursPerWeek, hoursPerWeek]));\n }, state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 7) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.CurrentYear, state.IsNew, state.YearPlans, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Form, state.Form, state.CurrentYear, false, Plans_YearPlan_AddOrUpdateYearPlan(state.Form.YearPlan, state.YearPlans), new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), View_Cmd_toastSuccess(\"Gruppen har sparats\")];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.CurrentYear, state.IsNew, state.YearPlans, state.Saving, matchValue.fields[0], true), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], state.OriginalValue, state.CurrentYear, state.IsNew, state.YearPlans, new DeferredResult$1(1), empty(), true), Cmd_fromAsync(Cmd_save(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, (inputRecord = state.Form, new Types_Form(inputRecord.Id, msg.fields[0], inputRecord.YearPlan)));\n return [new Types_State(patternInput[0], state.OriginalValue, state.CurrentYear, state.IsNew, state.YearPlans, state.Saving, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_totalSumIndicator(totalValue, originalValue) {\n const props = toList(delay(() => append(singleton_1([\"className\", \"is-small\"]), delay(() => append(singleton_1([\"disabled\", true]), delay(() => append((Math.abs(totalValue - originalValue) > 10) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => singleton_1([\"value\", totalValue])))))))));\n return createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props))));\n}\n\nexport function View_view(state, dispatch) {\n let props_135, elms_1, props_9, props_79, props_77, props_22, props_20, props_18, props_16, props_14, value_49, props_38, props_36, props_34, props_28, props_26, value_74, props_32, props_67, props_75, props_73, props_71, props_133, elms_10;\n const yearPlan = state.Form.YearPlan;\n const props_137 = ofArray([[\"className\", \"pt-4\"], [\"children\", Interop_reactApi.Children.toArray([(props_135 = ofArray([borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton_2((props_9 = ofArray([[\"className\", \"is-vcentered\"], [\"style\", {\n display: \"flex\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton_1(createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"is-size-5\"], [\"className\", \"has-text-primary\"], [\"children\", \"Ändra egenskaper\"]]))))), delay(() => {\n let props_7, elms, patternInput, value_18;\n return (!state.IsNew) ? singleton_1((props_7 = ofArray([[\"className\", \"pl-4\"], [\"children\", Interop_reactApi.Children.toArray([(elms = singleton_2((patternInput = Helpers_extractClasses(ofArray([[\"className\", \"is-small\"], [\"className\", \"has-text-right\"], (value_18 = (yearPlan.Year | 0), [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_18)) : false) {\n e.value = (value_18 | 0);\n }\n }]), [\"onChange\", (ev) => {\n dispatch(new Types_Msg(1, Common_parseIntOrZero(ev.target.value)));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(map_1((x_2) => View_renderSelectOption(x_2, x_2), map_1((x_1) => Common_str(x_1), reverse(map_1((x) => (x + state.CurrentYear), toList(rangeDouble(-1, 1, 5))))))))]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_7))))) : empty_1();\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_9))))), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (props_79 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_77 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Titel\"], [\"className\", \"mb-0\"]])))), (props_22 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray([(props_20 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_18 = ofArray([[\"className\", \"is-grouped\"], [\"children\", Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", \"is-expanded\"], [\"children\", Interop_reactApi.Children.toArray([(props_14 = ofArray([[\"className\", \"is-small\"], (value_49 = state.Form.Title, [\"ref\", (e_1) => {\n if ((!(e_1 == null)) ? (!equals(e_1.value, value_49)) : false) {\n e_1.value = value_49;\n }\n }]), [\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(0, ev_1.target.value));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_14)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_16))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_18))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_22)))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Träningstimmar per år:\"]])))), (props_38 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray([(props_36 = ofArray([[\"className\", \"pt-5\"], [\"children\", Interop_reactApi.Children.toArray([(props_34 = ofArray([[\"className\", \"is-grouped\"], [\"children\", Interop_reactApi.Children.toArray([(props_28 = ofArray([[\"className\", \"is-expanded\"], [\"children\", Interop_reactApi.Children.toArray([(props_26 = ofArray([[\"className\", \"is-small\"], (value_74 = (yearPlan.TotalHours | 0), [\"ref\", (e_2) => {\n if ((!(e_2 == null)) ? (!equals(e_2.value, value_74)) : false) {\n e_2.value = (value_74 | 0);\n }\n }]), [\"onChange\", (ev_2) => {\n const value_78 = ev_2.target.valueAsNumber;\n if ((!(value_78 == null)) ? (value_78 !== NaN) : false) {\n dispatch(new Types_Msg(2, round(value_78)));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_26)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_28)))), (props_32 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-small\"], [\"className\", \"is-success\"], [\"children\", \"Fördela\"], [\"onClick\", (_arg1) => {\n dispatch(new Types_Msg(5));\n }]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_32))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_34))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_36))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_38)))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"py-1\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Träningstimmar per period:\"]])))), (props_67 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(collect((matchValue) => {\n let elms_4, props_50, props_48, elms_2, props_42, elms_3, props_45, value_117;\n const index = matchValue[0] | 0;\n return singleton_1((elms_4 = singleton_2((props_50 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_48 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(elms_2 = singleton_2((props_42 = ofArray([[\"className\", \"has-text-left\"], [\"className\", \"has-text-weight-normal\"], [\"children\", index + 1]]), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", props_42))))), createElement(\"div\", {\n className: \"field-label\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), (elms_3 = singleton_2((props_45 = ofArray([[\"className\", \"is-small\"], (value_117 = (matchValue[1].TotalHours | 0), [\"ref\", (e_3) => {\n if ((!(e_3 == null)) ? (!equals(e_3.value, value_117)) : false) {\n e_3.value = (value_117 | 0);\n }\n }]), [\"onChange\", (ev_3) => {\n const value_121 = ev_3.target.valueAsNumber;\n if ((!(value_121 == null)) ? (value_121 !== NaN) : false) {\n dispatch(new Types_Msg(3, index, round(value_121)));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_45)))))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_48))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_50))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })));\n }, indexed(yearPlan.PeriodPlans)), delay(() => {\n let props_55;\n return append(singleton_1((props_55 = ofArray([[\"className\", \"pt-5\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"=\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_55))))), delay(() => {\n let props_65, props_63, props_61, elms_5, elms_6;\n return singleton_1((props_65 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_63 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_61 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_5 = singleton_2(createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"className\", \"has-text-weight-normal\"], [\"children\", \"Total\"]]))))), createElement(\"div\", {\n className: \"field-label\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n })), (elms_6 = singleton_2(View_totalSumIndicator(sumBy((x_4) => x_4.TotalHours, yearPlan.PeriodPlans, {\n GetZero: () => 0,\n Add: (x_5, y) => (x_5 + y),\n }), yearPlan.TotalHours)), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_61))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_63))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_65)))));\n }));\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_67)))), (props_75 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray([(props_73 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_71 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-small\"], [\"className\", \"is-success\"], [\"children\", \"Fördela\"], [\"onClick\", (_arg2) => {\n dispatch(new Types_Msg(6));\n }]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_71))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_73))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_75))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_77))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_79)))), (props_133 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_10 = toList(delay(() => append(singleton_1(createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Träningstimmar per vecka:\"]]))))), delay(() => {\n let props_89;\n return append(singleton_1((props_89 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"className\", \"mb-0\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(collect((matchValue_1) => {\n let props_83;\n return singleton_1((props_83 = singleton_2([\"children\", \"v.\" + padLeft(int32ToString(((matchValue_1[0] * 4) + 17) % 52), 2, \"0\")]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_83)))));\n }, indexed(yearPlan.PeriodPlans)), delay(() => append(singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty_2())))), delay(() => singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_2([\"className\", \"is-1\"])))))))))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_89))))), delay(() => append(map_1((i) => {\n const props_102 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(collect((matchValue_2) => {\n let elms_7, props_95, props_93, props_91, value_197;\n return singleton_1((elms_7 = singleton_2((props_95 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_93 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(props_91 = ofArray([[\"className\", \"is-small\"], (value_197 = (matchValue_2[1].WeekHours[i - 1] | 0), [\"ref\", (e_4) => {\n if ((!(e_4 == null)) ? (!equals(e_4.value, value_197)) : false) {\n e_4.value = (value_197 | 0);\n }\n }]), [\"onChange\", (ev_4) => {\n const value_201 = ev_4.target.valueAsNumber;\n if ((!(value_201 == null)) ? (value_201 !== NaN) : false) {\n dispatch(new Types_Msg(4, matchValue_2[0], i - 1, round(value_201)));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_91)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_93))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_95))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n })));\n }, indexed(yearPlan.PeriodPlans)), delay(() => append(singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty_2())))), delay(() => singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_2([\"className\", \"is-1\"])))))))))))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_102)));\n }, toList(rangeDouble(1, 1, 4))), delay(() => {\n let props_120;\n return append(singleton_1((props_120 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(map_1((periodPlan_2) => {\n let props_106, props_104;\n const elms_8 = singleton_2((props_106 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_104 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([View_totalSumIndicator(sum(periodPlan_2.WeekHours, {\n GetZero: () => 0,\n Add: (x_7, y_1) => (x_7 + y_1),\n }), periodPlan_2.TotalHours)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_104))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_106)))));\n return createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n });\n }, yearPlan.PeriodPlans), delay(() => {\n let props_111;\n return append(singleton_1((props_111 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"=\"]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_111))))), delay(() => {\n let props_118, props_116, props_114, elms_9;\n return singleton_1((props_118 = ofArray([[\"className\", \"is-1\"], [\"children\", Interop_reactApi.Children.toArray([(props_116 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_114 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_9 = singleton_2(View_totalSumIndicator(sumBy((x_8) => sum(x_8.WeekHours, {\n GetZero: () => 0,\n Add: (x_9, y_2) => (x_9 + y_2),\n }), yearPlan.PeriodPlans, {\n GetZero: () => 0,\n Add: (x_10, y_3) => (x_10 + y_3),\n }), yearPlan.TotalHours)), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_9)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_114))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_116))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_118)))));\n }));\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_120))))), delay(() => {\n let props_130, props_124, props_122, props_128, props_126;\n return singleton_1((props_130 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_124 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_122 = ofArray([[\"className\", \"has-text-danger\"], [\"className\", \"is-text\"], [\"children\", \"Tillbaka till alla grupper\"], [\"href\", toPath(new Route(7))]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_122))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_124)))), (props_128 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_126 = ofArray([[\"className\", \"is-success\"], [\"className\", \"mr-0\"], [\"children\", \"Spara\"], [\"onClick\", (_arg3) => {\n dispatch(new Types_Msg(7, new AsyncOperationStatus$1(0)));\n }], [\"disabled\", (!state.IsNew) ? equals(state.Form, state.OriginalValue) : false]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_126))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_128))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_130)))));\n }));\n }))));\n })))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_10)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_133))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_135))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_137)));\n}\n\nexport function Component_RenderForm(component_RenderFormInputProps) {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(component_RenderFormInputProps.group, component_RenderFormInputProps.isNew), (msg, state) => State_update(msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\nexport function Component_ResolveGroup(component_ResolveGroupInputProps) {\n const groupId = component_ResolveGroupInputProps.groupId;\n let patternInput;\n if (groupId == null) {\n patternInput = [singleton.Delay(() => singleton.Return(Groups_Group_Default_4019FA9(void 0))), true];\n }\n else {\n const id = groupId;\n patternInput = [groupsApi().get(id), false];\n }\n const group = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(patternInput[0]), [groupId]);\n if (group.tag === 2) {\n return createElement(Component_RenderForm, {\n group: group.fields[0],\n isNew: patternInput[1],\n });\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const _arg1 = component_RenderInputProps._arg1;\n const id = component_RenderInputProps.id;\n return createElement(Component_ResolveGroup, {\n groupId: id,\n });\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { SchoolIdModule_empty, Calendar_PeriodInfo_get_Current, Groups_GroupListItem$reflection, Students_StudentListItem$reflection } from \"../../Shared/Shared.fs.js\";\nimport { record_type, array_type, class_type, union_type, string_type, list_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { groupsApi, studentsApi } from \"../Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { empty as empty_1, singleton as singleton_2, length, filter, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { collect, map, empty, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { toString } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport { View_renderNotification, View_RenderDeleteWindow } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { State_getOrderedGroups } from \"./GroupList.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(ListStudents, ListGroups, GroupsOrder, ListExternalStudents) {\n super();\n this.ListStudents = ListStudents;\n this.ListGroups = ListGroups;\n this.GroupsOrder = GroupsOrder;\n this.ListExternalStudents = ListExternalStudents;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"StudentList.Types.State\", [], Types_State, () => [[\"ListStudents\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_StudentListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_StudentListItem$reflection())]], [[\"ErrorValue\", string_type]]]))], [\"ListGroups\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Groups_GroupListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Groups_GroupListItem$reflection())]], [[\"ErrorValue\", string_type]]]))], [\"GroupsOrder\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(class_type(\"System.Guid\")), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(class_type(\"System.Guid\"))]], [[\"ErrorValue\", string_type]]]))], [\"ListExternalStudents\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_StudentListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_StudentListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadStudents\", \"LoadGroups\", \"LoadGroupsOrder\", \"LoadExternalStudents\", \"DeleteClick\", \"Delete\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"StudentList.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_StudentListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_StudentListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Groups_GroupListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Groups_GroupListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(class_type(\"System.Guid\")), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(class_type(\"System.Guid\"))]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_StudentListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_StudentListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_loadStudents = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(studentsApi().list()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport const Cmd_loadGroups = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(groupsApi().list()), (_arg1) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport const Cmd_loadGroupsOrder = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(groupsApi().getGroupsOrder()), (_arg1) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport const Cmd_loadExternalStudents = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(studentsApi().listExternalStudents()), (_arg1) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function Cmd_delete(id) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(studentsApi().delete(id)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(0, id)))) : (new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport const State_init = [new Types_State(new DeferredResult$1(1), new DeferredResult$1(1), new DeferredResult$1(1), new DeferredResult$1(1)), Cmd_batch(ofArray([Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0))), Cmd_OfFunc_result(new Types_Msg(1, new AsyncOperationStatus$1(0))), Cmd_OfFunc_result(new Types_Msg(2, new AsyncOperationStatus$1(0))), Cmd_OfFunc_result(new Types_Msg(3, new AsyncOperationStatus$1(0)))]))];\n\nexport function State_update(msg, state) {\n let matchValue;\n if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.ListStudents, state.ListGroups, state.GroupsOrder, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(state.ListStudents, state.ListGroups, state.GroupsOrder, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(state.ListStudents, state.ListGroups, state.GroupsOrder, new DeferredResult$1(1)), Cmd_fromAsync(Cmd_loadExternalStudents)];\n }\n }\n else if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.ListStudents, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.GroupsOrder, state.ListExternalStudents), Cmd_none()];\n }\n else {\n return [new Types_State(state.ListStudents, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), state.GroupsOrder, state.ListExternalStudents), Cmd_none()];\n }\n }\n else {\n return [new Types_State(state.ListStudents, new DeferredResult$1(1), state.GroupsOrder, state.ListExternalStudents), Cmd_fromAsync(Cmd_loadGroups)];\n }\n }\n else if (msg.tag === 2) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.ListStudents, state.ListGroups, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.ListExternalStudents), Cmd_none()];\n }\n else {\n return [new Types_State(state.ListStudents, state.ListGroups, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), state.ListExternalStudents), Cmd_none()];\n }\n }\n else {\n return [new Types_State(state.ListStudents, state.ListGroups, new DeferredResult$1(1), state.ListExternalStudents), Cmd_fromAsync(Cmd_loadGroupsOrder)];\n }\n }\n else if (msg.tag === 4) {\n return [state, Cmd_fromAsync(Cmd_delete(msg.fields[0]))];\n }\n else if (msg.tag === 5) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.ListGroups, state.GroupsOrder, state.ListExternalStudents), Cmd_none()];\n }\n else {\n return [new Types_State((matchValue = state.ListStudents, (matchValue.tag === 2) ? ((matchValue.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, filter((x_4) => (x_4.Id !== msg.fields[0].fields[0].fields[0]), matchValue.fields[0].fields[0])))) : state.ListStudents) : state.ListStudents), state.ListGroups, state.GroupsOrder, state.ListExternalStudents), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.ListGroups, state.GroupsOrder, state.ListExternalStudents), Cmd_none()];\n }\n else {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), state.ListGroups, state.GroupsOrder, state.ListExternalStudents), Cmd_none()];\n }\n }\n else {\n return [new Types_State(new DeferredResult$1(1), state.ListGroups, state.GroupsOrder, state.ListExternalStudents), Cmd_fromAsync(Cmd_loadStudents)];\n }\n}\n\nexport function View_RenderStudent(view_RenderStudentInputProps) {\n const dispatch = view_RenderStudentInputProps.dispatch;\n const student = view_RenderStudentInputProps.student;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setChatHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setStatisticHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setOverViewHover = patternInput_2[1];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const setPlanHover = patternInput_3[1];\n const patternInput_4 = useFeliz_React__React_useState_Static_1505(false);\n const setEditHover = patternInput_4[1];\n const patternInput_5 = useFeliz_React__React_useState_Static_1505(false);\n const setDeleteHover = patternInput_5[1];\n const patternInput_6 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_6[1];\n const isDeleteWindow = patternInput_6[0];\n const props_33 = ofArray([[\"className\", \"is-vcentered\"], [\"style\", {\n borderTop: (((1 + \"px \") + \"solid\") + \" \") + \"#A9A9A9\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props;\n return append(singleton_1((props = ofArray([[\"style\", {\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n }], [\"children\", student.FullName]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props))))), delay(() => {\n let props_4, props_2;\n return append(singleton_1((props_4 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = toList(delay(() => append(singleton_1([\"className\", \"is-size-7\"]), delay(() => append(patternInput[0] ? singleton_1([\"children\", \"Visa chat\"]) : empty(), delay(() => append(patternInput_1[0] ? singleton_1([\"children\", \"Visa statistik\"]) : empty(), delay(() => append(patternInput_2[0] ? singleton_1([\"children\", \"Visa kalender\"]) : empty(), delay(() => append(patternInput_3[0] ? singleton_1([\"children\", \"Visa årsplanering\"]) : empty(), delay(() => append(patternInput_4[0] ? singleton_1([\"children\", \"Ändra egenskaper\"]) : empty(), delay(() => (patternInput_5[0] ? singleton_1([\"children\", \"Ta bort utövaren\"]) : empty()))))))))))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_2))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4))))), delay(() => {\n let props_31, props_12, props_16, props_20, props_24, props_28;\n return append(singleton_1((props_31 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg1) => {\n setChatHover(true);\n },\n onMouseLeave: (_arg2) => {\n setChatHover(false);\n },\n href: toPath(new Route(6, student.Id)),\n style: {\n width: 5 + \"rem\",\n display: \"inline-block\",\n textAlign: \"left\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_7;\n return append(singleton_1((props_7 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-comments\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_7))))), delay(() => {\n const matchValue = student.ChatChangeDate;\n if (matchValue == null) {\n return singleton_1(null);\n }\n else {\n const x = matchValue;\n return singleton_1(createElement(\"span\", {\n style: {\n color: \"#666\",\n fontSize: 0.7 + \"rem\",\n },\n className: \"ml-1\",\n children: toString(x, \"d/M\"),\n }));\n }\n }));\n })))),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg3) => {\n setStatisticHover(true);\n },\n onMouseLeave: (_arg4) => {\n setStatisticHover(false);\n },\n href: toPath(new Route(15, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-chart-bar\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_12))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg5) => {\n setOverViewHover(true);\n },\n onMouseLeave: (_arg6) => {\n setOverViewHover(false);\n },\n href: toPath(new Route(29, student.Id, Calendar_PeriodInfo_get_Current())),\n children: Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-calendar-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_16))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg7) => {\n setPlanHover(true);\n },\n onMouseLeave: (_arg8) => {\n setPlanHover(false);\n },\n href: toPath(new Route(13, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_20 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-clock\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_20))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg9) => {\n setEditHover(true);\n },\n onMouseLeave: (_arg10) => {\n setEditHover(false);\n },\n className: \"px-2\",\n href: toPath(new Route(12, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_24 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-pencil-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_24))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg11) => {\n setDeleteHover(true);\n },\n onMouseLeave: (_arg12) => {\n setDeleteHover(false);\n },\n onClick: (_arg13) => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n children: Interop_reactApi.Children.toArray([(props_28 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-danger\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-times\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_28))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_31))))), delay(() => (isDeleteWindow ? singleton_1(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(4, student.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort här utövaren?\",\n })) : empty())));\n }));\n }));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_33)));\n}\n\nexport function View_RenderExternalStudent(student) {\n let props, props_4, props_2, props_23, props_12, props_16, props_20;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setChatHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setStatisticHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setOverViewHover = patternInput_2[1];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const setPlanHover = patternInput_3[1];\n const props_25 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([(props = ofArray([[\"style\", {\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n }], [\"children\", student.FullName]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_4 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = toList(delay(() => append(singleton_1([\"className\", \"is-size-7\"]), delay(() => append(patternInput[0] ? singleton_1([\"children\", \"Visa chat\"]) : empty(), delay(() => append(patternInput_1[0] ? singleton_1([\"children\", \"Visa statistik\"]) : empty(), delay(() => append(patternInput_2[0] ? singleton_1([\"children\", \"Visa kalender\"]) : empty(), delay(() => (patternInput_3[0] ? singleton_1([\"children\", \"Visa årsplanering\"]) : empty()))))))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_2))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4)))), (props_23 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg1) => {\n setChatHover(true);\n },\n onMouseLeave: (_arg2) => {\n setChatHover(false);\n },\n href: toPath(new Route(6, student.Id)),\n style: {\n width: 5 + \"rem\",\n display: \"inline-block\",\n textAlign: \"left\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_7;\n return append(singleton_1((props_7 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-comments\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_7))))), delay(() => {\n const matchValue = student.ChatChangeDate;\n if (matchValue == null) {\n return singleton_1(null);\n }\n else {\n const x = matchValue;\n return singleton_1(createElement(\"span\", {\n style: {\n color: \"#666\",\n fontSize: 0.7 + \"rem\",\n },\n className: \"ml-1\",\n children: toString(x, \"d/M\"),\n }));\n }\n }));\n })))),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg3) => {\n setStatisticHover(true);\n },\n onMouseLeave: (_arg4) => {\n setStatisticHover(false);\n },\n href: toPath(new Route(15, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-chart-bar\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_12))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg5) => {\n setOverViewHover(true);\n },\n onMouseLeave: (_arg6) => {\n setOverViewHover(false);\n },\n href: toPath(new Route(29, student.Id, Calendar_PeriodInfo_get_Current())),\n children: Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-calendar-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_16))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg7) => {\n setPlanHover(true);\n },\n onMouseLeave: (_arg8) => {\n setPlanHover(false);\n },\n href: toPath(new Route(13, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_20 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-clock\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_20))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_23))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_25)));\n}\n\nexport function View_RenderGroup(view_RenderGroupInputProps) {\n const dispatch = view_RenderGroupInputProps.dispatch;\n const students = view_RenderGroupInputProps.students;\n const group = view_RenderGroupInputProps.group;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setVisible = patternInput[1];\n const isVisible = patternInput[0];\n const props_16 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_14, props_2, props_12;\n return append(singleton_1((props_14 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"onClick\", (_arg1) => {\n setVisible(!isVisible);\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-primary\"], [\"children\", group.Title]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2)))), (props_12 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_5;\n return append((length(students) > 0) ? singleton_1(createElement(\"a\", {\n className: join(\" \", [\"hoverable\"]),\n className: \"px-2\",\n onClick: (_arg2) => {\n setVisible(!isVisible);\n },\n children: Interop_reactApi.Children.toArray([(props_5 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", createObj(toList(delay(() => (isVisible ? singleton_1([\"className\", join(\" \", [\"fa\", \"fa-chevron-up\"])]) : singleton_1([\"className\", join(\" \", [\"fa\", \"fa-chevron-down\"])]))))))])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_5))))]),\n })) : empty(), delay(() => {\n let props_9;\n return singleton_1(createElement(\"a\", {\n className: \"px-2\",\n href: toPath(new Route(16, group.Id)),\n children: Interop_reactApi.Children.toArray([(props_9 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"is-medium\"], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-chart-bar\", \"fa-lg\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_9))))]),\n }));\n }));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_12))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_14))))), delay(() => (isVisible ? map((student) => createElement(View_RenderStudent, {\n student: student,\n dispatch: dispatch,\n }), students) : empty())));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_16)));\n}\n\nexport function Component_Render(user) {\n let props_18, elms, elms_1, props_15;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), [user]);\n const state_1 = patternInput[0];\n const props_20 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_18 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => {\n let props_6, props_3;\n return append(singleton_1((props_6 = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"style\", {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", singleton_2([\"children\", \"Utövare\"])))), createElement(\"a\", {\n className: \"px-2\",\n href: toPath(new Route(17, defaultArg(user.SchoolId, SchoolIdModule_empty))),\n children: Interop_reactApi.Children.toArray([(props_3 = ofArray([[\"className\", \"is-medium\"], [\"className\", \"has-text-white\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-chart-bar\", \"fa-lg\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_3))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_6))))), delay(() => {\n let matchValue;\n return append((matchValue = [state_1.ListStudents, state_1.ListGroups, state_1.GroupsOrder], (matchValue[0].tag === 2) ? ((matchValue[0].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[0].fields[0].fields[0])) : ((matchValue[1].tag === 2) ? ((matchValue[1].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[1].fields[0].fields[0])) : ((matchValue[2].tag === 2) ? ((matchValue[2].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[2].fields[0].fields[0])) : collect((group) => {\n const groupStudents = filter((x) => (x.GroupId === group.Id), matchValue[0].fields[0].fields[0]);\n return singleton_1(createElement(View_RenderGroup, {\n group: group,\n students: groupStudents,\n dispatch: patternInput[1],\n }));\n }, State_getOrderedGroups(matchValue[1].fields[0].fields[0], matchValue[2].fields[0].fields[0]))) : singleton_1(loader(\"big\")))) : ((matchValue[2].tag === 2) ? ((matchValue[2].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[2].fields[0].fields[0])) : singleton_1(loader(\"big\"))) : singleton_1(loader(\"big\"))))) : ((matchValue[1].tag === 2) ? ((matchValue[1].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[1].fields[0].fields[0])) : ((matchValue[2].tag === 2) ? ((matchValue[2].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[2].fields[0].fields[0])) : singleton_1(loader(\"big\"))) : singleton_1(loader(\"big\")))) : ((matchValue[2].tag === 2) ? ((matchValue[2].fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue[2].fields[0].fields[0])) : singleton_1(loader(\"big\"))) : singleton_1(loader(\"big\"))))), delay(() => {\n let props_10;\n const matchValue_1 = state_1.ListExternalStudents;\n return (matchValue_1.tag === 2) ? ((matchValue_1.fields[0].tag === 1) ? singleton_1(View_renderNotification([\"className\", \"is-danger\"], matchValue_1.fields[0].fields[0])) : append((!equals(matchValue_1.fields[0].fields[0], empty_1())) ? singleton_1((props_10 = ofArray([[\"className\", \"py-2\"], [\"className\", \"mt-6\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"style\", {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", singleton_2([\"children\", \"Externa utövare\"]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_10))))) : empty(), delay(() => map((student) => {\n const props_12 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(View_RenderExternalStudent, student)])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_12)));\n }, matchValue_1.fields[0].fields[0])))) : singleton_1(null);\n }));\n }));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_2((props_15 = ofArray([[\"href\", toPath(new Route(11))], [\"className\", \"py-2\"], [\"className\", \"mb-5\"], [\"className\", \"is-success\"], [\"children\", \"Lägg till utövare\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_15))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_18))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_20)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { union_type, unit_type, list_type, bool_type, record_type, string_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Students_StudentSettings_Default_Z3CDDBBFA, GroupIdModule_fromString, GroupIdModule_toString, EmailModule_toString, EmailModule_ofString, Students_StudentUpdateSettingsRequest, Students_StudentCreateRequest, Groups_GroupListItem$reflection } from \"../../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { groupsApi, studentsApi } from \"../Communication.fs.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { head, singleton as singleton_1, cons, ofArray, map } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { borderStylePrimary, View_renderSelectOption } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Id, Email, Password, FullName, GroupId) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n this.GroupId = GroupId;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"StudentEdit.Types.Form\", [], Types_Form, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type], [\"GroupId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, OriginalValue, IsNew, Groups, Saving, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.OriginalValue = OriginalValue;\n this.IsNew = IsNew;\n this.Groups = Groups;\n this.Saving = Saving;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"StudentEdit.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"OriginalValue\", Types_Form$reflection()], [\"IsNew\", bool_type], [\"Groups\", list_type(Groups_GroupListItem$reflection())], [\"Saving\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"EmailChanged\", \"PasswordChanged\", \"FullNameChanged\", \"GroupIdChanged\", \"Save\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"StudentEdit.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_save(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n let request, request_1;\n return singleton.Bind(Remoting_handleNonAuth(state.IsNew ? (request = (new Students_StudentCreateRequest(state.Form.Id, state.Form.Email, state.Form.Password, state.Form.FullName, state.Form.GroupId)), studentsApi().create(request)) : (request_1 = (new Students_StudentUpdateSettingsRequest(state.Form.Id, state.Form.Email, state.Form.Password, state.Form.FullName, state.Form.GroupId)), studentsApi().updateSettings(request_1))), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(4, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(4, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(4, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(formInfo.Id, EmailModule_ofString(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Email is required\")(Validator$1__Test(t, \"Email\", EmailModule_toString(formInfo.Email))))), Validator$1__End_Z5E18B1E2(t, Validator$1__Test(t, \"Password\", formInfo.Password)), Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Full name is required\")(Validator$1__Test(t, \"FullName\", formInfo.FullName))), formInfo.GroupId)));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport function State_init(student, isNew, groups) {\n const form = new Types_Form(student.Id, student.Email, \"\", student.FullName, student.GroupId);\n return [new Types_State(form, form, isNew, groups, new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n let inputRecord_1, inputRecord_2, inputRecord_3, inputRecord;\n if (msg.tag === 0) {\n const patternInput_1 = Validation_validateIf(state.IsNeedValidation, (inputRecord_1 = state.Form, new Types_Form(inputRecord_1.Id, msg.fields[0], inputRecord_1.Password, inputRecord_1.FullName, inputRecord_1.GroupId)));\n return [new Types_State(patternInput_1[0], state.OriginalValue, state.IsNew, state.Groups, state.Saving, patternInput_1[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 1) {\n const patternInput_2 = Validation_validateIf(state.IsNeedValidation, (inputRecord_2 = state.Form, new Types_Form(inputRecord_2.Id, inputRecord_2.Email, msg.fields[0], inputRecord_2.FullName, inputRecord_2.GroupId)));\n return [new Types_State(patternInput_2[0], state.OriginalValue, state.IsNew, state.Groups, state.Saving, patternInput_2[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 3) {\n const patternInput_3 = Validation_validateIf(state.IsNeedValidation, (inputRecord_3 = state.Form, new Types_Form(inputRecord_3.Id, inputRecord_3.Email, inputRecord_3.Password, inputRecord_3.FullName, msg.fields[0])));\n return [new Types_State(patternInput_3[0], state.OriginalValue, state.IsNew, state.Groups, state.Saving, patternInput_3[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 4) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.IsNew, state.Groups, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Form, state.Form, false, state.Groups, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), View_Cmd_toastSuccess(\"Utövare skapad\")];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.IsNew, state.Groups, state.Saving, matchValue.fields[0], true), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], state.OriginalValue, state.IsNew, state.Groups, new DeferredResult$1(1), empty(), true), Cmd_fromAsync(Cmd_save(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, (inputRecord = state.Form, new Types_Form(inputRecord.Id, inputRecord.Email, inputRecord.Password, msg.fields[0], inputRecord.GroupId)));\n return [new Types_State(patternInput[0], state.OriginalValue, state.IsNew, state.Groups, state.Saving, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_view(view_viewInputProps) {\n let props_63, props_61, props_59, props_57, props_12, props_10, props_8, elms_1, elms, props_24, props_22, props_20, elms_3, elms_2, props_16, props_36, props_34, props_32, elms_5, elms_4, props_51, props_49, props_47, props_45, elms_6, patternInput, elms_8, elms_7, props_53;\n const dispatch = view_viewInputProps.dispatch;\n const state = view_viewInputProps.state;\n const availableGroups = map((x) => View_renderSelectOption(x.Id, x.Title), state.Groups);\n const elms_9 = singleton_1((props_63 = ofArray([[\"className\", \"is-6\"], [\"className\", \"pt-6\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Ändra egenskaper\"]])))), (props_61 = ofArray([[\"className\", \"px-5\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(props_59 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_57 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_10 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Fullständigt namn: \"]])))), (props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton_1((elms = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"placeholder\", \"Nytt fullständigt namn\"], [\"defaultValue\", state.Form.FullName], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(2, ev.target.value));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_8))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_10))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_12)))), (props_24 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_22 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Epost:\"]])))), (props_20 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_3 = singleton_1((elms_2 = singleton_1((props_16 = ofArray([[\"placeholder\", \"Ny epost\"], [\"defaultValue\", EmailModule_toString(state.Form.Email)], [\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(0, EmailModule_ofString(ev_1.target.value)));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_16)))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_22))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_24)))), (props_36 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_34 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Nytt lösenord:\"]])))), (props_32 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_5 = singleton_1((elms_4 = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", ofArray([[\"autoComplete\", \"new-password\"], [\"placeholder\", \"Nytt lösenord\"], [\"onChange\", (ev_2) => {\n dispatch(new Types_Msg(1, ev_2.target.value));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_32))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_34))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_36)))), (props_51 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_49 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Grupp:\"]])))), (props_47 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_45 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_6 = singleton_1((patternInput = Helpers_extractClasses(ofArray([[\"className\", \"is-fullwidth\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(availableGroups))], [\"value\", GroupIdModule_toString(state.Form.GroupId)], [\"onChange\", (ev_3) => {\n dispatch(new Types_Msg(3, GroupIdModule_fromString(ev_3.target.value)));\n }]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_45))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_47))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_49))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_51)))), (elms_8 = singleton_1((elms_7 = singleton_1((props_53 = ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Spara\"], [\"disabled\", equals(state.Saving, new DeferredResult$1(1)) ? true : equals(state.Form, state.OriginalValue)], [\"onClick\", (x_3) => {\n x_3.preventDefault();\n dispatch(new Types_Msg(4, new AsyncOperationStatus$1(0)));\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_53))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_57))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_59))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_61))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_63)))));\n return createElement(\"div\", {\n className: \"container\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_9)),\n });\n}\n\nexport function Component_RenderForm(component_RenderFormInputProps) {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(component_RenderFormInputProps.student, component_RenderFormInputProps.isNew, component_RenderFormInputProps.groups), (msg, state) => State_update(msg, state), []);\n return createElement(View_view, {\n state: patternInput[0],\n dispatch: patternInput[1],\n });\n}\n\nexport function Component_ResolveStudent(component_ResolveStudentInputProps) {\n const groups = component_ResolveStudentInputProps.groups;\n const id = component_ResolveStudentInputProps.id;\n let patternInput;\n if (id == null) {\n patternInput = [singleton.Delay(() => singleton.Return(new FSharpResult$2(0, Students_StudentSettings_Default_Z3CDDBBFA(head(groups).Id)))), true];\n }\n else {\n const id_1 = id;\n patternInput = [studentsApi().getSettings(id_1), false];\n }\n const student = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(patternInput[0]), [id]);\n if (student.tag === 2) {\n if (student.fields[0].tag === 1) {\n return createElement(\"div\", {\n children: [student.fields[0].fields[0]],\n });\n }\n else {\n return createElement(Component_RenderForm, {\n student: student.fields[0].fields[0],\n isNew: patternInput[1],\n groups: groups,\n });\n }\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const _arg1 = component_RenderInputProps._arg1;\n const id = component_RenderInputProps.id;\n const groups = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(groupsApi().list()), [id]);\n if (groups.tag === 2) {\n return createElement(Component_ResolveStudent, {\n id: id,\n groups: groups.fields[0],\n });\n }\n else {\n return loader(\"big\");\n }\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, list_type, union_type, string_type, unit_type, array_type, int32_type, record_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Common_str, Common_parseIntOrZero, Plans_YearPlan_AddOrUpdateYearPlan, Plans_PeriodPlan_Create, Plans_YearPlan, Students_getYearPlanOrGroupOrDefault, Calendar_WeekInfo_get_Current, Students_StudentUpdatePlanRequest, Auth_SignedInUser$reflection, Plans_YearPlan$reflection } from \"../../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { groupsApi, studentsApi } from \"../Communication.fs.js\";\nimport { Validator$1__Test, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { sum, sumBy, indexed, map, mapIndexed } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { int32ToString, equals, createObj, round } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { collect, reverse, map as map_1, empty as empty_1, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { View_renderSelectOption, borderStylePrimary, Form_Field_fieldStyleOnError } from \"../Common.fs.js\";\nimport { createElement } from \"react\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { empty as empty_2, singleton as singleton_2, ofArray, cons } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { rangeDouble } from \"../.fable/fable-library.3.2.1/Range.js\";\nimport { padLeft, join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Id, YearPlan) {\n super();\n this.Id = Id;\n this.YearPlan = YearPlan;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"StudentPlan.Types.Form\", [], Types_Form, () => [[\"Id\", class_type(\"System.Guid\")], [\"YearPlan\", Plans_YearPlan$reflection()]]);\n}\n\nexport class Types_State extends Record {\n constructor(CurrentYear, User, Form, OriginalValue, StudentYearPlans, GroupYearPlans, Saving, FormErrors, IsNeedValidation) {\n super();\n this.CurrentYear = (CurrentYear | 0);\n this.User = User;\n this.Form = Form;\n this.OriginalValue = OriginalValue;\n this.StudentYearPlans = StudentYearPlans;\n this.GroupYearPlans = GroupYearPlans;\n this.Saving = Saving;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"StudentPlan.Types.State\", [], Types_State, () => [[\"CurrentYear\", int32_type], [\"User\", Auth_SignedInUser$reflection()], [\"Form\", Types_Form$reflection()], [\"OriginalValue\", Types_Form$reflection()], [\"StudentYearPlans\", array_type(Plans_YearPlan$reflection())], [\"GroupYearPlans\", array_type(Plans_YearPlan$reflection())], [\"Saving\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"YearChanged\", \"YearTotalHoursChanged\", \"PeriodTotalHoursChanged\", \"PeriodWeekHoursChanged\", \"DistributeYearHours\", \"DistributePeriodsHours\", \"Save\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"StudentPlan.Types.Msg\", [], Types_Msg, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item1\", int32_type], [\"Item2\", int32_type]], [[\"Item1\", int32_type], [\"Item2\", int32_type], [\"Item3\", int32_type]], [], [], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_save(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Students_StudentUpdatePlanRequest(state.Form.Id, state.Form.YearPlan);\n return singleton.Bind(Remoting_handleNonAuth(studentsApi().updatePlan(request)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(6, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(6, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(6, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(formInfo.Id, Validator$1__End_Z5E18B1E2(t, Validator$1__Test(t, \"TotalHours\", formInfo.YearPlan)))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport function State_init(studentPlans, group, user) {\n const year = Calendar_WeekInfo_get_Current().PeriodInfo.PeriodYear | 0;\n const form = new Types_Form(studentPlans.Id, Students_getYearPlanOrGroupOrDefault(studentPlans.YearPlans, group.YearPlans, year));\n return [new Types_State(year, user, form, form, studentPlans.YearPlans, group.YearPlans, new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_withYearPlan(state, newYearPlan) {\n const patternInput = Validation_validateIf(state.IsNeedValidation, new Types_Form(state.Form.Id, newYearPlan));\n return new Types_State(state.CurrentYear, state.User, patternInput[0], state.OriginalValue, state.StudentYearPlans, state.GroupYearPlans, state.Saving, patternInput[1], state.IsNeedValidation);\n}\n\nexport function State_update(msg, state) {\n let inputRecord, inputRecord_2, inputRecord_3, inputRecord_4, inputRecord_5;\n if (msg.tag === 1) {\n const patternInput = Validation_validateIf(state.IsNeedValidation, new Types_Form(state.Form.Id, (inputRecord = state.Form.YearPlan, new Plans_YearPlan(inputRecord.Year, msg.fields[0], inputRecord.PeriodPlans))));\n return [new Types_State(state.CurrentYear, state.User, patternInput[0], state.OriginalValue, state.StudentYearPlans, state.GroupYearPlans, state.Saving, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 2) {\n return [State_withYearPlan(state, (inputRecord_2 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_2.Year, inputRecord_2.TotalHours, mapIndexed((periodIndex, period) => {\n if (periodIndex === msg.fields[0]) {\n return Plans_PeriodPlan_Create(msg.fields[1], period.WeekHours);\n }\n else {\n return period;\n }\n }, state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 3) {\n return [State_withYearPlan(state, (inputRecord_3 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_3.Year, inputRecord_3.TotalHours, mapIndexed((pIndex, p) => {\n if (pIndex === msg.fields[0]) {\n return Plans_PeriodPlan_Create(p.TotalHours, mapIndexed((i, v) => {\n if (i === msg.fields[1]) {\n return msg.fields[2] | 0;\n }\n else {\n return v;\n }\n }, p.WeekHours));\n }\n else {\n return p;\n }\n }, state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 4) {\n const hoursPerPeriod = (~(~round(state.Form.YearPlan.TotalHours / 13))) | 0;\n return [State_withYearPlan(state, (inputRecord_4 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_4.Year, inputRecord_4.TotalHours, map((x_5) => Plans_PeriodPlan_Create(hoursPerPeriod, x_5.WeekHours), state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 5) {\n return [State_withYearPlan(state, (inputRecord_5 = state.Form.YearPlan, new Plans_YearPlan(inputRecord_5.Year, inputRecord_5.TotalHours, map((periodPlan) => {\n const hoursPerWeek = (~(~round(periodPlan.TotalHours / 4))) | 0;\n return Plans_PeriodPlan_Create(periodPlan.TotalHours, new Int32Array([hoursPerWeek, hoursPerWeek, hoursPerWeek, hoursPerWeek]));\n }, state.Form.YearPlan.PeriodPlans)))), Cmd_none()];\n }\n else if (msg.tag === 6) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.CurrentYear, state.User, state.Form, state.OriginalValue, state.StudentYearPlans, state.GroupYearPlans, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.CurrentYear, state.User, state.Form, state.Form, Plans_YearPlan_AddOrUpdateYearPlan(state.Form.YearPlan, state.StudentYearPlans), state.GroupYearPlans, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), View_Cmd_toastSuccess(\"Planen har sparats\")];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.CurrentYear, state.User, state.Form, state.OriginalValue, state.StudentYearPlans, state.GroupYearPlans, state.Saving, matchValue.fields[0], true), Cmd_none()];\n }\n else {\n return [new Types_State(state.CurrentYear, state.User, matchValue.fields[0], state.OriginalValue, state.StudentYearPlans, state.GroupYearPlans, new DeferredResult$1(1), empty(), true), Cmd_fromAsync(Cmd_save(state))];\n }\n }\n }\n else {\n return [State_withYearPlan(state, Students_getYearPlanOrGroupOrDefault(state.StudentYearPlans, state.GroupYearPlans, msg.fields[0])), Cmd_none()];\n }\n}\n\nexport function View_totalSumIndicator(totalValue, originalValue) {\n const props = toList(delay(() => append(singleton_1([\"className\", \"is-small\"]), delay(() => append(singleton_1([\"disabled\", true]), delay(() => append((Math.abs(totalValue - originalValue) > 10) ? singleton_1([\"style\", createObj(Form_Field_fieldStyleOnError)]) : empty_1(), delay(() => singleton_1([\"value\", totalValue])))))))));\n return createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props))));\n}\n\nexport function View_view(state, dispatch) {\n let props_125, elms_1, props_9, props_7, elms, patternInput, value_18, props_67, props_65, props_26, props_24, props_22, props_16, props_14, value_49, props_20, props_55, props_63, props_61, props_59, props_123, elms_10;\n const yearPlan = state.Form.YearPlan;\n const props_127 = ofArray([[\"className\", \"pt-4\"], [\"children\", Interop_reactApi.Children.toArray([(props_125 = ofArray([borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton_2((props_9 = ofArray([[\"className\", \"is-vcentered\"], [\"style\", {\n display: \"flex\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"is-size-5\"], [\"className\", \"has-text-primary\"], [\"children\", \"Ändra egenskaper\"]])))), (props_7 = ofArray([[\"className\", \"pl-4\"], [\"children\", Interop_reactApi.Children.toArray([(elms = singleton_2((patternInput = Helpers_extractClasses(ofArray([[\"className\", \"is-small\"], [\"className\", \"has-text-right\"], (value_18 = (yearPlan.Year | 0), [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_18)) : false) {\n e.value = (value_18 | 0);\n }\n }]), [\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, Common_parseIntOrZero(ev.target.value)));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(map_1((x_2) => View_renderSelectOption(x_2, x_2), map_1((x_1) => Common_str(x_1), reverse(map_1((x) => (x + state.CurrentYear), toList(rangeDouble(0, 1, 1))))))))]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_7))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_9))))), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (props_67 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_65 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Träningstimmar per år:\"]])))), (props_26 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray([(props_24 = ofArray([[\"className\", \"pt-5\"], [\"children\", Interop_reactApi.Children.toArray([(props_22 = ofArray([[\"className\", \"is-grouped\"], [\"children\", Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", \"is-expanded\"], [\"children\", Interop_reactApi.Children.toArray([(props_14 = ofArray([[\"className\", \"is-small\"], (value_49 = (yearPlan.TotalHours | 0), [\"ref\", (e_1) => {\n if ((!(e_1 == null)) ? (!equals(e_1.value, value_49)) : false) {\n e_1.value = (value_49 | 0);\n }\n }]), [\"onChange\", (ev_1) => {\n const value_53 = ev_1.target.valueAsNumber;\n if ((!(value_53 == null)) ? (value_53 !== NaN) : false) {\n dispatch(new Types_Msg(1, round(value_53)));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_14)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_16)))), (props_20 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-small\"], [\"className\", \"is-success\"], [\"children\", \"Fördela\"], [\"onClick\", (_arg1) => {\n dispatch(new Types_Msg(4));\n }]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_22))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_24))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_26)))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"py-1\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Träningstimmar per period:\"]])))), (props_55 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(collect((matchValue) => {\n let elms_4, props_38, props_36, elms_2, props_30, elms_3, props_33, value_92;\n const index = matchValue[0] | 0;\n return singleton_1((elms_4 = singleton_2((props_38 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_36 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(elms_2 = singleton_2((props_30 = ofArray([[\"className\", \"has-text-left\"], [\"className\", \"has-text-weight-normal\"], [\"children\", index + 1]]), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", props_30))))), createElement(\"div\", {\n className: \"field-label\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), (elms_3 = singleton_2((props_33 = ofArray([[\"className\", \"is-small\"], (value_92 = (matchValue[1].TotalHours | 0), [\"ref\", (e_2) => {\n if ((!(e_2 == null)) ? (!equals(e_2.value, value_92)) : false) {\n e_2.value = (value_92 | 0);\n }\n }]), [\"onChange\", (ev_2) => {\n const value_96 = ev_2.target.valueAsNumber;\n if ((!(value_96 == null)) ? (value_96 !== NaN) : false) {\n dispatch(new Types_Msg(2, index, round(value_96)));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_33)))))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_36))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_38))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })));\n }, indexed(yearPlan.PeriodPlans)), delay(() => {\n let props_43;\n return append(singleton_1((props_43 = ofArray([[\"className\", \"pt-5\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"=\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_43))))), delay(() => {\n let props_53, props_51, props_49, elms_5, elms_6;\n return singleton_1((props_53 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_51 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_49 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_5 = singleton_2(createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"className\", \"has-text-weight-normal\"], [\"children\", \"Total\"]]))))), createElement(\"div\", {\n className: \"field-label\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n })), (elms_6 = singleton_2(View_totalSumIndicator(sumBy((x_4) => x_4.TotalHours, yearPlan.PeriodPlans, {\n GetZero: () => 0,\n Add: (x_5, y) => (x_5 + y),\n }), yearPlan.TotalHours)), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_49))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_51))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_53)))));\n }));\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_55)))), (props_63 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray([(props_61 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_59 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-small\"], [\"className\", \"is-success\"], [\"children\", \"Fördela\"], [\"onClick\", (_arg2) => {\n dispatch(new Types_Msg(5));\n }]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_59))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_61))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_63))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_65))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_67)))), (props_123 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_10 = toList(delay(() => append(singleton_1(createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Träningstimmar per vecka:\"]]))))), delay(() => {\n let props_77;\n return append(singleton_1((props_77 = ofArray([[\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"className\", \"mb-0\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(collect((matchValue_1) => {\n let props_71;\n return singleton_1((props_71 = singleton_2([\"children\", \"v.\" + padLeft(int32ToString(((matchValue_1[0] * 4) + 17) % 52), 2, \"0\")]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_71)))));\n }, indexed(yearPlan.PeriodPlans)), delay(() => append(singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty_2())))), delay(() => singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_2([\"className\", \"is-1\"])))))))))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_77))))), delay(() => append(map_1((i) => {\n const props_90 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(collect((matchValue_2) => {\n let elms_7, props_83, props_81, props_79, value_172;\n return singleton_1((elms_7 = singleton_2((props_83 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_81 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(props_79 = ofArray([[\"className\", \"is-small\"], (value_172 = (matchValue_2[1].WeekHours[i - 1] | 0), [\"ref\", (e_3) => {\n if ((!(e_3 == null)) ? (!equals(e_3.value, value_172)) : false) {\n e_3.value = (value_172 | 0);\n }\n }]), [\"onChange\", (ev_3) => {\n const value_176 = ev_3.target.valueAsNumber;\n if ((!(value_176 == null)) ? (value_176 !== NaN) : false) {\n dispatch(new Types_Msg(3, matchValue_2[0], i - 1, round(value_176)));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_79)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_81))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_83))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n })));\n }, indexed(yearPlan.PeriodPlans)), delay(() => append(singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty_2())))), delay(() => singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_2([\"className\", \"is-1\"])))))))))))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_90)));\n }, toList(rangeDouble(1, 1, 4))), delay(() => {\n let props_108;\n return append(singleton_1((props_108 = ofArray([[\"className\", \"is-vcentered\"], [\"className\", \"is-variable\"], [\"className\", join(\" \", [\"is-1\"])], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(map_1((periodPlan_2) => {\n let props_94, props_92;\n const elms_8 = singleton_2((props_94 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_92 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([View_totalSumIndicator(sum(periodPlan_2.WeekHours, {\n GetZero: () => 0,\n Add: (x_7, y_1) => (x_7 + y_1),\n }), periodPlan_2.TotalHours)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_92))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_94)))));\n return createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n });\n }, yearPlan.PeriodPlans), delay(() => {\n let props_99;\n return append(singleton_1((props_99 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"=\"]]))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_99))))), delay(() => {\n let props_106, props_104, props_102, elms_9;\n return singleton_1((props_106 = ofArray([[\"className\", \"is-1\"], [\"children\", Interop_reactApi.Children.toArray([(props_104 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_102 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_9 = singleton_2(View_totalSumIndicator(sumBy((x_8) => sum(x_8.WeekHours, {\n GetZero: () => 0,\n Add: (x_9, y_2) => (x_9 + y_2),\n }), yearPlan.PeriodPlans, {\n GetZero: () => 0,\n Add: (x_10, y_3) => (x_10 + y_3),\n }), yearPlan.TotalHours)), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_9)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_102))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_104))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_106)))));\n }));\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_108))))), delay(() => {\n let props_120, props_114, props_118, props_116;\n return singleton_1((props_120 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_114 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_110, props_112;\n return (state.User.Role === 2) ? singleton_1((props_110 = ofArray([[\"className\", \"has-text-danger\"], [\"className\", \"is-text\"], [\"children\", \"Tillbaka till utövarna\"], [\"href\", toPath(new Route(10))]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_110))))) : singleton_1((props_112 = ofArray([[\"className\", \"has-text-danger\"], [\"className\", \"is-text\"], [\"children\", \"Tillbaka till min profil\"], [\"href\", toPath(new Route(5))]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_112)))));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_114)))), (props_118 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_116 = ofArray([[\"className\", \"is-success\"], [\"className\", \"mr-0\"], [\"children\", \"Spara\"], [\"onClick\", (_arg3) => {\n dispatch(new Types_Msg(6, new AsyncOperationStatus$1(0)));\n }], [\"disabled\", equals(state.Form, state.OriginalValue)]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_116))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_118))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_120)))));\n }));\n }))));\n })))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_10)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_123))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_125))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_127)));\n}\n\nexport function Component_RenderForm(component_RenderFormInputProps) {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(component_RenderFormInputProps.plans, component_RenderFormInputProps.group, component_RenderFormInputProps.user), (msg, state) => State_update(msg, state), []);\n return View_view(patternInput[0], patternInput[1]);\n}\n\nexport function Component_ResolveStudentData(component_ResolveStudentDataInputProps) {\n const user = component_ResolveStudentDataInputProps.user;\n const studentSettings = component_ResolveStudentDataInputProps.studentSettings;\n const matchValue = [useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentsApi().getPlans(studentSettings.Id)), [studentSettings.Id]), useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(groupsApi().get(studentSettings.GroupId)), [studentSettings.GroupId])];\n let pattern_matching_result, group_1, studentPlans_1, error;\n if (matchValue[0].tag === 2) {\n if (matchValue[1].tag === 2) {\n pattern_matching_result = 0;\n group_1 = matchValue[1].fields[0];\n studentPlans_1 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 3) {\n pattern_matching_result = 1;\n error = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[0].tag === 3) {\n pattern_matching_result = 1;\n error = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 3) {\n pattern_matching_result = 1;\n error = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n switch (pattern_matching_result) {\n case 0: {\n return createElement(Component_RenderForm, {\n plans: studentPlans_1,\n group: group_1,\n user: user,\n });\n }\n case 1: {\n const value = error.message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n return loader(\"big\");\n }\n }\n}\n\nexport function Component_ResolveStudent(component_ResolveStudentInputProps) {\n const user = component_ResolveStudentInputProps.user;\n const userId = component_ResolveStudentInputProps.userId;\n const studentSettings = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentsApi().getSettings(userId)), [userId]);\n if (studentSettings.tag === 2) {\n if (studentSettings.fields[0].tag === 1) {\n return createElement(\"div\", {\n children: [studentSettings.fields[0].fields[0]],\n });\n }\n else {\n return createElement(Component_ResolveStudentData, {\n studentSettings: studentSettings.fields[0].fields[0],\n user: user,\n });\n }\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const user = component_RenderInputProps.user;\n const id = component_RenderInputProps.id;\n return createElement(Component_ResolveStudent, {\n userId: id,\n user: user,\n });\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, union_type, string_type, list_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { EmailModule_ofString, Students_TeacherListItem$reflection } from \"../../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Toastr_toastSuccess, Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { teachersApi, studentsApi } from \"../Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { map as map_1, contains, ofArray, filter, cons, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { useReact_useEffect_Z101E1A95, useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { map, empty, singleton as singleton_2, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { isNullOrWhiteSpace, join, interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { createElement } from \"react\";\nimport { stringHash, equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { View_renderNotification, View_RenderDeleteWindow } from \"../Common.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\nimport { loader } from \"../Loader.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\n\nexport class Types_State extends Record {\n constructor(StudentId, ExternalTeachers) {\n super();\n this.StudentId = StudentId;\n this.ExternalTeachers = ExternalTeachers;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"StudentExternalTeachers.Types.State\", [], Types_State, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"ExternalTeachers\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_TeacherListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_TeacherListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadExternalTeachers\", \"AddedExternalTeacher\", \"DeleteExternalTeacherClick\", \"DeleteExternalTeacher\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"StudentExternalTeachers.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_TeacherListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_TeacherListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", Students_TeacherListItem$reflection()]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_load = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(studentsApi().getStudentExternalTeachers()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function Cmd_delete(id) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(studentsApi().deleteExternalTeacher(id)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, id)))) : (new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function State_init(studentId) {\n return [new Types_State(studentId, new DeferredResult$1(1)), Cmd_batch(singleton_1(Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0)))))];\n}\n\nexport function State_update(msg, state) {\n let matchValue, matchValue_1;\n if (msg.tag === 1) {\n return [new Types_State(state.StudentId, (matchValue = state.ExternalTeachers, (matchValue.tag === 2) ? ((matchValue.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, cons(msg.fields[0], matchValue.fields[0].fields[0])))) : state.ExternalTeachers) : state.ExternalTeachers)), Cmd_none()];\n }\n else if (msg.tag === 2) {\n return [state, Cmd_fromAsync(Cmd_delete(msg.fields[0]))];\n }\n else if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.StudentId, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(state.StudentId, (matchValue_1 = state.ExternalTeachers, (matchValue_1.tag === 2) ? ((matchValue_1.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, filter((x_1) => (x_1.Id !== msg.fields[0].fields[0].fields[0]), matchValue_1.fields[0].fields[0])))) : state.ExternalTeachers) : state.ExternalTeachers)), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.StudentId, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(state.StudentId, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(state.StudentId, new DeferredResult$1(1)), Cmd_fromAsync(Cmd_load)];\n }\n}\n\nexport function View_RenderTeacher(view_RenderTeacherInputProps) {\n const dispatch = view_RenderTeacherInputProps.dispatch;\n const teacher = view_RenderTeacherInputProps.teacher;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setDeleteHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_1[1];\n const isDeleteWindow = patternInput_1[0];\n const children_2 = toList(delay(() => {\n let props_14, elms_1, elms, props, props_5, props_3, props_11, props_8;\n return append(singleton_2((props_14 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(elms = singleton_1((props = ofArray([[\"className\", \"has-text-primary\"], [\"children\", toText(interpolate(\"%P() - %P()\", [teacher.FullName, teacher.Email]))]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_5 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_3 = toList(delay(() => append(singleton_2([\"className\", \"is-size-7\"]), delay(() => (patternInput[0] ? singleton_2([\"children\", \"Ta bort\"]) : empty()))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_3))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_5)))), (props_11 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n onMouseEnter: (_arg1) => {\n setDeleteHover(true);\n },\n onMouseLeave: (_arg2) => {\n setDeleteHover(false);\n },\n onClick: (_arg3) => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_8 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-danger\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-times\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_8))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_11))))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_14))))), delay(() => (isDeleteWindow ? singleton_2(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(2, teacher.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort här extern tränare?\",\n })) : empty())));\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n}\n\nexport class View_AddModalSteps extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"TypeEmail\", \"SearchTeacher\", \"TeacherFound\", \"TeacherNotFound\", \"TeacherAlreadyAdded\"];\n }\n}\n\nexport function View_AddModalSteps$reflection() {\n return union_type(\"StudentExternalTeachers.View.AddModalSteps\", [], View_AddModalSteps, () => [[], [], [[\"Item\", Students_TeacherListItem$reflection()]], [], [[\"Item\", Students_TeacherListItem$reflection()]]]);\n}\n\nexport function View_RenderAddModal(view_RenderAddModalInputProps) {\n let props_43;\n const onClose = view_RenderAddModalInputProps.onClose;\n const onAdded = view_RenderAddModalInputProps.onAdded;\n const existingExternalTeacherIds = view_RenderAddModalInputProps.existingExternalTeacherIds;\n const patternInput = useFeliz_React__React_useState_Static_1505(new View_AddModalSteps(0));\n const step = patternInput[0];\n const setStep = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(\"\");\n const email = patternInput_1[0];\n useReact_useEffect_Z101E1A95(() => {\n startImmediate(singleton.Delay(() => singleton.Combine(equals(step, new View_AddModalSteps(1)) ? singleton.Bind(teachersApi().getTeacherByEmail(EmailModule_ofString(email)), (_arg1) => {\n const teacherOpt = _arg1;\n if (teacherOpt == null) {\n setStep(new View_AddModalSteps(3));\n return singleton.Zero();\n }\n else {\n const teacher = teacherOpt;\n if (contains(teacher.Id, existingExternalTeacherIds, {\n Equals: (x, y) => (x === y),\n GetHashCode: (x) => stringHash(x),\n })) {\n setStep(new View_AddModalSteps(4, teacher));\n return singleton.Zero();\n }\n else {\n setStep(new View_AddModalSteps(2, teacher));\n return singleton.Zero();\n }\n }\n }) : singleton.Zero(), singleton.Delay(() => singleton.Return()))));\n }, [step]);\n const props_45 = ofArray([[\"className\", \"is-active\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton_1([\"onClick\", (_arg1_1) => {\n onClose();\n }])))), (props_43 = singleton_1([\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let elms_1, props_19, elms_2, s_1, props_28, elms_3, props_34, elms_4, props_40, elms, props_8, props_6, props_4, value_11, props_14, props_12;\n switch (step.tag) {\n case 1: {\n return singleton_2((elms_1 = ofArray([loader(\"big\"), (props_19 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg5) => {\n onClose();\n }], [\"className\", \"is-text\"], [\"children\", \"Avbryt\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_19))))]), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })));\n }\n case 2: {\n const teacher_2 = step.fields[0];\n return singleton_2((elms_2 = ofArray([(s_1 = toText(interpolate(\"Det finns en användare med denna e-post: %P() %P()\", [teacher_2.FullName, teacher_2.Email])), createElement(\"label\", {\n className: \"label\",\n children: s_1,\n })), createElement(\"label\", {\n className: \"label\",\n children: \"Vill du koppla denna användare som extern tränare?\",\n }), (props_28 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg6) => {\n onClose();\n }], [\"className\", \"is-text\"], [\"children\", \"Avbryt\"]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg7) => {\n onClose();\n }], [\"onClick\", (_arg8) => {\n let teacher_1;\n startImmediate((teacher_1 = teacher_2, singleton.Delay(() => singleton.Bind(studentsApi().addExternalTeacher(teacher_1.Id), (_arg2) => {\n const result = _arg2;\n return singleton.Combine((result.tag === 1) ? (Toastr_toastSuccess(result.fields[0], \"Add coach error\"), singleton.Zero()) : (onAdded(teacher_1), singleton.Zero()), singleton.Delay(() => singleton.Return()));\n }))));\n }], [\"className\", \"is-primary\"], [\"children\", \"Ok\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_28))))]), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })));\n }\n case 3: {\n return singleton_2((elms_3 = ofArray([createElement(\"label\", {\n className: \"label\",\n children: \"Det finns ingen användare med denna e-post.\",\n }), (props_34 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg9) => {\n onClose();\n }], [\"className\", \"is-text\"], [\"children\", \"Avbryt\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_34))))]), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n })));\n }\n case 4: {\n return singleton_2((elms_4 = ofArray([createElement(\"label\", {\n className: \"label\",\n children: \"Denna användare är redan kopplad som extern tränare.\",\n }), (props_40 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg10) => {\n onClose();\n }], [\"className\", \"is-text\"], [\"children\", \"Avbryt\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_40))))]), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })));\n }\n default: {\n return singleton_2((elms = ofArray([(props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"mb-1\"], [\"className\", \"has-text-grey\"], [\"children\", \"Epost\"]])))), (props_6 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_4 = ofArray([[\"className\", \"is-small\"], (value_11 = email, [\"ref\", (e_1) => {\n if ((!(e_1 == null)) ? (!equals(e_1.value, value_11)) : false) {\n e_1.value = value_11;\n }\n }]), [\"onChange\", (ev) => {\n patternInput_1[1](ev.target.value.trim());\n }]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_4)))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_6))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_8)))), (props_14 = ofArray([[\"className\", \"is-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg2_1) => {\n onClose();\n }], [\"className\", \"is-text\"], [\"children\", \"Avbryt\"]])))), (props_12 = ofArray([[\"onClick\", (_arg3) => {\n onClose();\n }], [\"disabled\", isNullOrWhiteSpace(email)], [\"onClick\", (_arg4) => {\n setStep(new View_AddModalSteps(1));\n }], [\"className\", \"is-primary\"], [\"children\", \"Spara\"]]), createElement(\"button\", createObj(Helpers_combineClasses(\"button\", props_12))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_14))))]), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })));\n }\n }\n }))))]), createElement(\"div\", createObj(Helpers_combineClasses(\"modal-content\", props_43))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_45)));\n}\n\nexport function View_Render(view_RenderInputProps) {\n const _user = view_RenderInputProps._user;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(view_RenderInputProps.studentId), (msg, state) => State_update(msg, state), []);\n const state_1 = patternInput[0];\n const dispatch = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setIsAddWindow = patternInput_1[1];\n const props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_6, elms, elms_1;\n return append(singleton_2((props_6 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => append(singleton_2(createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Mina externa tränare\"]]))))), delay(() => {\n const matchValue = state_1.ExternalTeachers;\n let pattern_matching_result, teachers, e;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n e = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n teachers = matchValue.fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return singleton_2(loader(\"big\"));\n }\n case 1: {\n return map((teacher) => createElement(View_RenderTeacher, {\n teacher: teacher,\n dispatch: dispatch,\n }), teachers);\n }\n case 2: {\n return singleton_2(View_renderNotification([\"className\", \"is-danger\"], e));\n }\n }\n })))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_1(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg1) => {\n setIsAddWindow(true);\n }], [\"className\", \"py-2\"], [\"className\", \"is-success\"], [\"children\", \"Lägg till extern tränare\"]]))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))), delay(() => {\n const matchValue_1 = state_1.ExternalTeachers;\n let pattern_matching_result_1, teachers_1;\n if (matchValue_1.tag === 2) {\n if (matchValue_1.fields[0].tag === 0) {\n pattern_matching_result_1 = 0;\n teachers_1 = matchValue_1.fields[0].fields[0];\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n const existingExternalTeacherIds = map_1((x) => x.Id, teachers_1);\n return patternInput_1[0] ? singleton_2(createElement(View_RenderAddModal, {\n existingExternalTeacherIds: existingExternalTeacherIds,\n onAdded: (teacher_1) => {\n dispatch(new Types_Msg(1, teacher_1));\n setIsAddWindow(false);\n },\n onClose: () => {\n setIsAddWindow(false);\n },\n })) : empty();\n }\n case 1: {\n return singleton_2(null);\n }\n }\n }));\n }))))]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_8)));\n}\n\n","import { Record } from \"../fable-library.3.2.1/Types.js\";\nimport { class_type, record_type, bool_type, string_type, obj_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { map as map_1, toArray, ofArray } from \"../fable-library.3.2.1/List.js\";\nimport { keyValueList } from \"../fable-library.3.2.1/MapUtil.js\";\nimport { getEnumerator } from \"../fable-library.3.2.1/Util.js\";\nimport * as react from \"react\";\nimport react$002Dflatpickr from \"react-flatpickr\";\n\nclass OptionType extends Record {\n constructor(Value, Key, IsConfig) {\n super();\n this.Value = Value;\n this.Key = Key;\n this.IsConfig = IsConfig;\n }\n}\n\nfunction OptionType$reflection() {\n return record_type(\"Flatpickr.OptionType\", [], OptionType, () => [[\"Value\", obj_type], [\"Key\", string_type], [\"IsConfig\", bool_type]]);\n}\n\nexport function Value(date) {\n return new OptionType(date, \"value\", false);\n}\n\nexport function EnableTimePicker(cond) {\n return new OptionType(cond, \"enableTime\", true);\n}\n\nexport function EnableSecondsPicker(cond) {\n return new OptionType(cond, \"enableSeconds\", true);\n}\n\nexport function MinimumDate(date) {\n return new OptionType(date, \"minDate\", true);\n}\n\nexport function MaximumDate(date) {\n return new OptionType(date, \"maxDate\", true);\n}\n\nexport function Placeholder(placeholder) {\n return new OptionType(placeholder, \"placeholder\", false);\n}\n\nexport function Id(id) {\n return new OptionType(id, \"id\", false);\n}\n\nexport function custom(key, value, config) {\n return new OptionType(value, key, config);\n}\n\nexport function DefaultHour(hour) {\n return new OptionType(hour, \"defaultHour\", true);\n}\n\nexport function DefaultMinute(min) {\n return new OptionType(min, \"defaultMinute\", true);\n}\n\nexport function EnableWeekNumbers(cond) {\n return new OptionType(cond, \"weekNumbers\", true);\n}\n\nexport function OnChange(callback) {\n return new OptionType((dates) => {\n if ((dates == null) ? true : (dates.length === 0)) {\n }\n else {\n callback(dates[0]);\n }\n }, \"onChange\", false);\n}\n\nexport function OnManyChanged(callback) {\n return new OptionType((dates) => {\n callback(ofArray(dates));\n }, \"onChange\", false);\n}\n\nexport function ClassName(name) {\n return new OptionType(name, \"className\", false);\n}\n\nexport function Style(props) {\n return new OptionType(keyValueList(props, 1), \"style\", false);\n}\n\nexport function Disabled(value) {\n return new OptionType(value, \"disabled\", false);\n}\n\nexport function DateFormat(value) {\n return new OptionType(value, \"dateFormat\", true);\n}\n\nexport function HideCalendar(value) {\n return new OptionType(value, \"noCalendar\", true);\n}\n\nexport function SelectionMode(mode) {\n return new OptionType(mode, \"mode\", true);\n}\n\nexport function AlwaysOpen(value) {\n return new OptionType(value, \"inline\", true);\n}\n\nexport function DisableDates(dates) {\n return new OptionType(toArray(dates), \"disable\", true);\n}\n\nexport function DisableBy(pred) {\n return new OptionType([pred], \"disable\", true);\n}\n\nexport function MinuteIncrement(min) {\n return new OptionType(min, \"minuteIncrement\", true);\n}\n\nexport function HourIncrement(hours) {\n return new OptionType(hours, \"hourIncrement\", true);\n}\n\nexport function DisableRanges(ranges) {\n return new OptionType(toArray(map_1((tupledArg) => {\n const range = {};\n range[\"to\"] = tupledArg[1];\n range[\"from\"] = tupledArg[0];\n return range;\n }, ranges)), \"disable\", true);\n}\n\nexport function EnableDates(dates) {\n return new OptionType(toArray(dates), \"enable\", true);\n}\n\nexport function EnableBy(pred) {\n return new OptionType([pred], \"enable\", true);\n}\n\nexport function FormatDateBy(map) {\n return new OptionType(map, \"formatDate\", true);\n}\n\nexport function TimeTwentyFour(cond) {\n return new OptionType(cond, \"time_24hr\", true);\n}\n\nexport function UseShorthandMonthNames(cond) {\n return new OptionType(cond, \"shorthandCurrentMonth\", true);\n}\n\nexport function EnableRanges(ranges) {\n return new OptionType(toArray(map_1((tupledArg) => {\n const range = {};\n range[\"to\"] = tupledArg[1];\n range[\"from\"] = tupledArg[0];\n return range;\n }, ranges)), \"enable\", true);\n}\n\nexport function Locale(loc) {\n return new OptionType(loc, \"locale\", true);\n}\n\nexport function flatpickr(options) {\n const props = {};\n const propOptions = {};\n const enumerator = getEnumerator(options);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const option = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (option.IsConfig) {\n propOptions[option.Key] = option.Value;\n }\n else {\n props[option.Key] = option.Value;\n }\n }\n }\n finally {\n enumerator.Dispose();\n }\n props[\"options\"] = propOptions;\n return react.createElement(react$002Dflatpickr, props);\n}\n\nexport class Locales {\n constructor() {\n }\n}\n\nexport function Locales$reflection() {\n return class_type(\"Flatpickr.Locales\", void 0, Locales);\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { union_type, list_type, bool_type, class_type, record_type, int32_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Calendar_getWeekEndDate, Calendar_getWeekStartDate, Calendar_getYearEndDate, Calendar_getYearStartDate, Statistics_StatisticRequest, Calendar_getPeriodEndDate, Calendar_getPeriodStartDate, Statistics_StatisticType, StatisticHelpers_calcForm, StatisticHelpers_calcDayDataSummary, StatisticHelpers_calcRest, SpeedActivity_list, StatisticHelpers_calcSpeedActivity, SpeedActivity_strSpeedActivity, StatisticHelpers_calcMobility, StrengthActivity_list, StatisticHelpers_calcStrengthActivity, StrengthActivity_strStrengthActivity, StatisticHelpers_calcEnduranceIntensity, StatisticHelpers_calcFactSummary, StatisticHelpers_calcWorkoutPart, StatisticHelpers_calcPlanSummary, StatisticHelpers_strSummary, StatisticHelpers_calcEnduranceActivityCount, StatisticHelpers_calcEnduranceIntensityCount, EnduranceActivity_getEnduranceActivityColor, EnduranceActivity_strEnduranceActivity, StatisticHelpers_calcEnduranceActivityDuration, DurationModule_intToHMSString, EnduranceIntensity_getEnduranceIntensityColor, EnduranceIntensity_strEnduranceIntensity, StatisticHelpers_facts, StatisticHelpers_calcEnduranceIntensityDuration, StatisticHelpers_mapWorkoutParts, StatisticHelpers_foldDurationOpt, EnduranceActivity_list, EnduranceIntensity_list, Calendar_getWeekInfo, Calendar_getDayDate, Calendar_PeriodInfo_get_Current, EnduranceActivity_EnduranceActivity$reflection, EnduranceIntensity_EnduranceIntensity$reflection } from \"../../Shared/Shared.fs.js\";\nimport { append as append_1, ofSeq, length, singleton as singleton_1, ofArray, contains, toArray, empty, sumBy, filter, map } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { Legend, Pie, Tooltip, PieChart as PieChart_1, Cell } from \"recharts\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { map as map_1, empty as empty_1, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { partialApply, compare, createObj, safeHash, round, equals } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { join, interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { loader } from \"../Loader.fs.js\";\nimport { map as map_2, defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { useReact_useMemo_CF4EA67, useReact_useState_FCFD9EF, useReact_useEffect_Z101E1A95, useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { FSharpSet__Remove, FSharpSet__Add, FSharpSet__Contains, empty as empty_2, ofList } from \"../.fable/fable-library.3.2.1/Set.js\";\nimport { View_checkBoxFieldBig, View_checkBoxField } from \"../Common.fs.js\";\nimport { Locale, ClassName, OnChange, Value, DateFormat, custom, flatpickr } from \"../.fable/Fable.React.Flatpickr.3.0.0/Flatpickr.fs.js\";\nimport { Swedish } from \"flatpickr/dist/l10n/sv.js\";\nimport { Deferred_map, Deferred$1, useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { statisticsApi } from \"../Communication.fs.js\";\nimport { singleton as singleton_2 } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { addYears } from \"../.fable/fable-library.3.2.1/Date.js\";\n\nexport class PieSlice extends Record {\n constructor(name, value) {\n super();\n this.name = name;\n this.value = (value | 0);\n }\n}\n\nexport function PieSlice$reflection() {\n return record_type(\"Statistic.PieSlice\", [], PieSlice, () => [[\"name\", string_type], [\"value\", int32_type]]);\n}\n\nexport class StatisticFilters extends Record {\n constructor(DateFrom, DateTo, CompareWithPrevious, EnduranceIntensities, EnduranceActivities) {\n super();\n this.DateFrom = DateFrom;\n this.DateTo = DateTo;\n this.CompareWithPrevious = CompareWithPrevious;\n this.EnduranceIntensities = EnduranceIntensities;\n this.EnduranceActivities = EnduranceActivities;\n }\n}\n\nexport function StatisticFilters$reflection() {\n return record_type(\"Statistic.StatisticFilters\", [], StatisticFilters, () => [[\"DateFrom\", class_type(\"System.DateTime\")], [\"DateTo\", class_type(\"System.DateTime\")], [\"CompareWithPrevious\", bool_type], [\"EnduranceIntensities\", list_type(EnduranceIntensity_EnduranceIntensity$reflection())], [\"EnduranceActivities\", list_type(EnduranceActivity_EnduranceActivity$reflection())]]);\n}\n\nexport function StatisticFilters_get_Current() {\n const periodInfo = Calendar_PeriodInfo_get_Current();\n return new StatisticFilters(Calendar_getDayDate(Calendar_getWeekInfo(periodInfo, 0), 0), Calendar_getDayDate(Calendar_getWeekInfo(periodInfo, 3), 6), false, EnduranceIntensity_list, EnduranceActivity_list);\n}\n\nexport class ChartItem$1 extends Record {\n constructor(Key, Value) {\n super();\n this.Key = Key;\n this.Value = (Value | 0);\n }\n}\n\nexport function ChartItem$1$reflection(gen0) {\n return record_type(\"Statistic.ChartItem`1\", [gen0], ChartItem$1, () => [[\"Key\", gen0], [\"Value\", int32_type]]);\n}\n\nexport function PieChart(pieChartInputProps) {\n const withLegend = pieChartInputProps.withLegend;\n const valueFormatter = pieChartInputProps.valueFormatter;\n const colorGetter = pieChartInputProps.colorGetter;\n const nameGetter = pieChartInputProps.nameGetter;\n const items = pieChartInputProps.items;\n const chartData = map((x_1) => (new PieSlice(nameGetter(x_1.Key), x_1.Value)), filter((x) => (x.Value > 0), items));\n const colors = map((x_2) => Interop_reactApi.createElement(Cell, {\n fill: colorGetter(x_2.Key),\n }), items);\n const sum = sumBy((x_3) => x_3.Value, items, {\n GetZero: () => 0,\n Add: (x_4, y) => (x_4 + y),\n }) | 0;\n const patternInput = withLegend ? [600, 300, 150, 150, 80, 120] : [200, 200, 100, 100, 40, 80];\n return createElement(\"div\", {\n style: {\n position: \"relative\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(equals(chartData, empty()) ? singleton(createElement(\"div\", {\n style: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n children: Interop_reactApi.Children.toArray([createElement(\"label\", {\n className: \"label\",\n children: \"No data\",\n })]),\n })) : empty_1(), delay(() => singleton(Interop_reactApi.createElement(PieChart_1, {\n width: patternInput[0],\n height: patternInput[1],\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(Interop_reactApi.createElement(Tooltip, {\n separator: \" \",\n formatter: (value_1) => toText(interpolate(\"%P() (%P()%%)\", [valueFormatter(value_1), (sum === 0) ? 0 : round((value_1 * 100) / sum)])),\n })), delay(() => append(singleton(Interop_reactApi.createElement(Pie, {\n data: toArray(chartData),\n cx: patternInput[2],\n cy: patternInput[3],\n innerRadius: patternInput[4],\n outerRadius: patternInput[5],\n labelLine: false,\n fill: \"#8884d8\",\n children: [\"children\", Interop_reactApi.Children.toArray(Array.from(colors))],\n legendType: \"circle\",\n dataKey: (x_6) => x_6.value,\n })), delay(() => (withLegend ? singleton(Interop_reactApi.createElement(Legend, {\n align: \"right\",\n layout: \"vertical\",\n verticalAlign: \"middle\",\n })) : empty_1()))))))))),\n })))))))),\n });\n}\n\nexport function renderOrLoader(deferred, el) {\n switch (deferred.tag) {\n case 3: {\n const value = deferred.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n return el(deferred.fields[0]);\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function EnduranceIntensityDurationPieChart(enduranceIntensityDurationPieChartInputProps) {\n const withLegend = enduranceIntensityDurationPieChartInputProps.withLegend;\n const intensities = enduranceIntensityDurationPieChartInputProps.intensities;\n const daysList = enduranceIntensityDurationPieChartInputProps.daysList;\n const chartData = map((x_2) => (new ChartItem$1(x_2, defaultArg(StatisticHelpers_foldDurationOpt(StatisticHelpers_mapWorkoutParts((workoutPart) => StatisticHelpers_calcEnduranceIntensityDuration(x_2, workoutPart), StatisticHelpers_facts(daysList))), 0))), filter((x) => contains(x, intensities, {\n Equals: (x_1, y) => equals(x_1, y),\n GetHashCode: (x_1) => safeHash(x_1),\n }), EnduranceIntensity_list));\n return createElement(PieChart, {\n items: chartData,\n nameGetter: (_arg1) => EnduranceIntensity_strEnduranceIntensity(_arg1),\n colorGetter: (_arg1_1) => EnduranceIntensity_getEnduranceIntensityColor(_arg1_1),\n valueFormatter: (x_3) => DurationModule_intToHMSString(x_3),\n withLegend: withLegend,\n });\n}\n\nexport function EnduranceActivityDurationPieChart(enduranceActivityDurationPieChartInputProps) {\n const withLegend = enduranceActivityDurationPieChartInputProps.withLegend;\n const activities = enduranceActivityDurationPieChartInputProps.activities;\n const daysList = enduranceActivityDurationPieChartInputProps.daysList;\n const chartData = map((x_2) => (new ChartItem$1(x_2, defaultArg(StatisticHelpers_foldDurationOpt(StatisticHelpers_mapWorkoutParts((workoutPart) => StatisticHelpers_calcEnduranceActivityDuration(x_2, workoutPart), StatisticHelpers_facts(daysList))), 0))), filter((x) => contains(x, activities, {\n Equals: (x_1, y) => equals(x_1, y),\n GetHashCode: (x_1) => safeHash(x_1),\n }), EnduranceActivity_list));\n return createElement(PieChart, {\n items: chartData,\n nameGetter: (_arg1) => EnduranceActivity_strEnduranceActivity(_arg1),\n colorGetter: (_arg1_1) => EnduranceActivity_getEnduranceActivityColor(_arg1_1),\n valueFormatter: (x_3) => DurationModule_intToHMSString(x_3),\n withLegend: withLegend,\n });\n}\n\nexport function EnduranceIntensityCountPieChart(enduranceIntensityCountPieChartInputProps) {\n const withLegend = enduranceIntensityCountPieChartInputProps.withLegend;\n const intensities = enduranceIntensityCountPieChartInputProps.intensities;\n const daysList = enduranceIntensityCountPieChartInputProps.daysList;\n const chartData = map((x_2) => (new ChartItem$1(x_2, defaultArg(StatisticHelpers_foldDurationOpt(StatisticHelpers_mapWorkoutParts((workoutPart) => StatisticHelpers_calcEnduranceIntensityCount(x_2, workoutPart), StatisticHelpers_facts(daysList))), 0))), filter((x) => contains(x, intensities, {\n Equals: (x_1, y) => equals(x_1, y),\n GetHashCode: (x_1) => safeHash(x_1),\n }), EnduranceIntensity_list));\n return createElement(PieChart, {\n items: chartData,\n nameGetter: (_arg1) => EnduranceIntensity_strEnduranceIntensity(_arg1),\n colorGetter: (_arg1_1) => EnduranceIntensity_getEnduranceIntensityColor(_arg1_1),\n valueFormatter: (x_3) => toText(interpolate(\"%P() st\", [x_3])),\n withLegend: withLegend,\n });\n}\n\nexport function EnduranceActivityCountPieChart(enduranceActivityCountPieChartInputProps) {\n const withLegend = enduranceActivityCountPieChartInputProps.withLegend;\n const activities = enduranceActivityCountPieChartInputProps.activities;\n const daysList = enduranceActivityCountPieChartInputProps.daysList;\n const chartData = map((x_2) => (new ChartItem$1(x_2, defaultArg(StatisticHelpers_foldDurationOpt(StatisticHelpers_mapWorkoutParts((workoutPart) => StatisticHelpers_calcEnduranceActivityCount(x_2, workoutPart), StatisticHelpers_facts(daysList))), 0))), filter((x) => contains(x, activities, {\n Equals: (x_1, y) => equals(x_1, y),\n GetHashCode: (x_1) => safeHash(x_1),\n }), EnduranceActivity_list));\n return createElement(PieChart, {\n items: chartData,\n nameGetter: (_arg1) => EnduranceActivity_strEnduranceActivity(_arg1),\n colorGetter: (_arg1_1) => EnduranceActivity_getEnduranceActivityColor(_arg1_1),\n valueFormatter: (x_3) => toText(interpolate(\"%P() st\", [x_3])),\n withLegend: withLegend,\n });\n}\n\nexport class Chart extends Record {\n constructor(id, name) {\n super();\n this.id = (id | 0);\n this.name = name;\n }\n}\n\nexport function Chart$reflection() {\n return record_type(\"Statistic.Chart\", [], Chart, () => [[\"id\", int32_type], [\"name\", string_type]]);\n}\n\nexport const chartsList = ofArray([new Chart(1, \"Intensitet, Tid\"), new Chart(2, \"Aktivitet, Tid\"), new Chart(3, \"Intensitet, Antal\"), new Chart(4, \"Aktivitet, Antal\")]);\n\nexport function RenderPeriodCharts(renderPeriodChartsInputProps) {\n const daysList = renderPeriodChartsInputProps.daysList;\n const intensities = renderPeriodChartsInputProps.intensities;\n const activities = renderPeriodChartsInputProps.activities;\n const patternInput = useFeliz_React__React_useState_Static_1505(void 0);\n const selectedChart = patternInput[0];\n const renderChart = (index, withLegend) => react.createElement(react.Fragment, {}, ...toList(delay(() => append((index === 1) ? singleton(createElement(EnduranceIntensityDurationPieChart, {\n daysList: daysList,\n intensities: intensities,\n withLegend: withLegend,\n })) : empty_1(), delay(() => append((index === 2) ? singleton(createElement(EnduranceActivityDurationPieChart, {\n daysList: daysList,\n activities: activities,\n withLegend: withLegend,\n })) : empty_1(), delay(() => append((index === 3) ? singleton(createElement(EnduranceIntensityCountPieChart, {\n daysList: daysList,\n intensities: intensities,\n withLegend: withLegend,\n })) : empty_1(), delay(() => ((index === 4) ? singleton(createElement(EnduranceActivityCountPieChart, {\n daysList: daysList,\n activities: activities,\n withLegend: withLegend,\n })) : empty_1()))))))))));\n return react.createElement(react.Fragment, {}, ...toList(delay(() => {\n let elms_1;\n return append(singleton((elms_1 = toList(delay(() => map_1((chart) => {\n let elms;\n const props_2 = ofArray([[\"onClick\", (_arg1) => {\n patternInput[1](equals(selectedChart, chart) ? (void 0) : chart);\n }], [\"children\", Interop_reactApi.Children.toArray([(elms = singleton_1(renderChart(chart.id, false)), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2)));\n }, chartsList))), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), delay(() => {\n let props_7;\n if (selectedChart == null) {\n return singleton(null);\n }\n else {\n const selectedChart_1 = selectedChart;\n return singleton((props_7 = ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", selectedChart_1.name]])))), renderChart(selectedChart_1.id, true)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_7)))));\n }\n }));\n })));\n}\n\nexport function RenderPreviousYearPeriodCharts(renderPreviousYearPeriodChartsInputProps) {\n const daysList = renderPreviousYearPeriodChartsInputProps.daysList;\n const intensities = renderPreviousYearPeriodChartsInputProps.intensities;\n const activities = renderPreviousYearPeriodChartsInputProps.activities;\n return react.createElement(react.Fragment, {}, createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Föregående år\"]])))), createElement(RenderPeriodCharts, {\n activities: activities,\n intensities: intensities,\n daysList: daysList,\n }));\n}\n\nexport function RenderEnduranceIntensities(renderEnduranceIntensitiesInputProps) {\n const onChange = renderEnduranceIntensitiesInputProps.onChange;\n const value = renderEnduranceIntensitiesInputProps.value;\n const patternInput = useFeliz_React__React_useState_Static_1505(ofList(value, {\n Compare: (x, y) => compare(x, y),\n }));\n const setSelected = patternInput[1];\n const selected = patternInput[0];\n useReact_useEffect_Z101E1A95(() => {\n setSelected(ofList(value, {\n Compare: (x_1, y_1) => compare(x_1, y_1),\n }));\n }, [value]);\n const isAllSelected = length(value) === length(EnduranceIntensity_list);\n const changeValue = (x_2) => {\n setSelected(x_2);\n onChange(ofSeq(x_2));\n };\n const elms = toList(delay(() => append(singleton(View_checkBoxField(\"Markera alla\", isAllSelected, (isChecked) => {\n changeValue(isChecked ? ofList(EnduranceIntensity_list, {\n Compare: (x_3, y_2) => compare(x_3, y_2),\n }) : empty_2({\n Compare: (x_4, y_3) => compare(x_4, y_3),\n }));\n })), delay(() => map_1((item) => {\n let intensity;\n return View_checkBoxField(EnduranceIntensity_strEnduranceIntensity(item), FSharpSet__Contains(selected, item), (intensity = item, (isChecked_1) => {\n changeValue(isChecked_1 ? FSharpSet__Add(selected, intensity) : FSharpSet__Remove(selected, intensity));\n }));\n }, EnduranceIntensity_list)))));\n return createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function RenderEnduranceActivities(renderEnduranceActivitiesInputProps) {\n const onChange = renderEnduranceActivitiesInputProps.onChange;\n const value = renderEnduranceActivitiesInputProps.value;\n const patternInput = useFeliz_React__React_useState_Static_1505(ofList(value, {\n Compare: (x, y) => compare(x, y),\n }));\n const setSelected = patternInput[1];\n const selected = patternInput[0];\n useReact_useEffect_Z101E1A95(() => {\n setSelected(ofList(value, {\n Compare: (x_1, y_1) => compare(x_1, y_1),\n }));\n }, [value]);\n const isAllSelected = length(value) === length(EnduranceActivity_list);\n const changeValue = (x_2) => {\n setSelected(x_2);\n onChange(ofSeq(x_2));\n };\n const elms = toList(delay(() => append(singleton(View_checkBoxField(\"Markera alla\", isAllSelected, (isChecked) => {\n changeValue(isChecked ? ofList(EnduranceActivity_list, {\n Compare: (x_3, y_2) => compare(x_3, y_2),\n }) : empty_2({\n Compare: (x_4, y_3) => compare(x_4, y_3),\n }));\n })), delay(() => map_1((item) => {\n let intensity;\n return View_checkBoxField(EnduranceActivity_strEnduranceActivity(item), FSharpSet__Contains(selected, item), (intensity = item, (isChecked_1) => {\n changeValue(isChecked_1 ? FSharpSet__Add(selected, intensity) : FSharpSet__Remove(selected, intensity));\n }));\n }, EnduranceActivity_list)))));\n return createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function RenderFilters(renderFiltersInputProps) {\n let elms_8, elms_9, elms_10;\n const excelRender = renderFiltersInputProps.excelRender;\n const onChange = renderFiltersInputProps.onChange;\n const filters = renderFiltersInputProps.filters;\n const elms_11 = ofArray([(elms_8 = toList(delay(() => {\n let elms_3, elms_2, elms, elms_1;\n return append(singleton((elms_3 = singleton_1((elms_2 = ofArray([(elms = singleton_1(createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"children\", \"Från\"]]))))), createElement(\"div\", {\n className: \"field-label\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_1(flatpickr(ofArray([custom(\"locale\", {\n firstDayOfWeek: 1,\n }, true), DateFormat(\"d M Y\"), Value(filters.DateFrom), OnChange((x) => {\n onChange(new StatisticFilters(x, filters.DateTo, filters.CompareWithPrevious, filters.EnduranceIntensities, filters.EnduranceActivities));\n }), ClassName(\"input\"), Locale(Swedish)]))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))]), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))), delay(() => {\n let elms_7, elms_6, elms_4, elms_5;\n return append(singleton((elms_7 = singleton_1((elms_6 = ofArray([(elms_4 = singleton_1(createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"children\", \"Till\"]]))))), createElement(\"div\", {\n className: \"field-label\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n })), (elms_5 = singleton_1(flatpickr(ofArray([custom(\"locale\", {\n firstDayOfWeek: 1,\n }, true), DateFormat(\"d M Y\"), Value(filters.DateTo), OnChange((x_1) => {\n onChange(new StatisticFilters(filters.DateFrom, x_1, filters.CompareWithPrevious, filters.EnduranceIntensities, filters.EnduranceActivities));\n }), ClassName(\"input\"), Locale(Swedish)]))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))]), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n }))), delay(() => append(singleton(View_checkBoxFieldBig(\"Jämför med tidigare år\", filters.CompareWithPrevious, (x_2) => {\n onChange(new StatisticFilters(filters.DateFrom, filters.DateTo, x_2, filters.EnduranceIntensities, filters.EnduranceActivities));\n })), delay(() => ((excelRender == null) ? singleton(null) : singleton(excelRender))))));\n }));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n })), (elms_9 = singleton_1(createElement(RenderEnduranceIntensities, {\n value: filters.EnduranceIntensities,\n onChange: (x_3) => {\n onChange(new StatisticFilters(filters.DateFrom, filters.DateTo, filters.CompareWithPrevious, x_3, filters.EnduranceActivities));\n },\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_9)),\n })), (elms_10 = singleton_1(createElement(RenderEnduranceActivities, {\n value: filters.EnduranceActivities,\n onChange: (x_4) => {\n onChange(new StatisticFilters(filters.DateFrom, filters.DateTo, filters.CompareWithPrevious, filters.EnduranceIntensities, x_4));\n },\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_10)),\n }))]);\n return createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_11)),\n });\n}\n\nexport function StatisticBlock(statisticBlockInputProps) {\n const moreStatisticLink = statisticBlockInputProps.moreStatisticLink;\n const yearPlanStr = statisticBlockInputProps.yearPlanStr;\n const daysList = statisticBlockInputProps.daysList;\n const row = (title, sumStr, countStr) => {\n const children = ofArray([createElement(\"td\", {\n children: [title],\n }), createElement(\"td\", {\n children: [sumStr],\n }), createElement(\"td\", {\n children: [countStr],\n })]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n };\n const timeRow = (title_1, tupledArg) => row(title_1, tupledArg[0], tupledArg[2]);\n const amountRow = (title_2, tupledArg_1) => row(title_2, tupledArg_1[1], tupledArg_1[2]);\n return react.createElement(react.Fragment, {}, ...toList(delay(() => {\n let props_11, elms, children_4, children_2, children_6;\n return append(singleton((props_11 = ofArray([[\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([(children_4 = singleton_1((children_2 = ofArray([createElement(\"th\", {\n children: [\"\"],\n }), createElement(\"th\", {\n children: [\"Tid\"],\n }), createElement(\"th\", {\n children: [\"Pass\"],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n })), (children_6 = ofArray([row(\"Årsplanering\", yearPlanStr, \"-\"), timeRow(\"Passplanering\", StatisticHelpers_strSummary(StatisticHelpers_calcPlanSummary((workoutPart) => StatisticHelpers_calcWorkoutPart(workoutPart), daysList))), timeRow(\"Genomfört\", StatisticHelpers_strSummary(StatisticHelpers_calcFactSummary((workoutPart_1) => StatisticHelpers_calcWorkoutPart(workoutPart_1), daysList)))]), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_6)),\n }))]), createElement(\"table\", {\n className: \"table\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"panel-block\", props_11))))), delay(() => {\n let props_25, props_23, children_11, children_9, children_15;\n return append(singleton((props_25 = ofArray([[\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray([(props_23 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(children_11 = singleton_1((children_9 = ofArray([createElement(\"th\", {\n children: [\"\"],\n }), createElement(\"th\", {\n children: [\"Tid\"],\n }), createElement(\"th\", {\n children: [\"Pass\"],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_9)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_11)),\n })), (children_15 = toList(delay(() => {\n const headRow = (title_3) => {\n const children_13 = ofArray([createElement(\"th\", {\n style: {\n color: \"#D3D3D3\",\n },\n className: \"pl-1\",\n children: title_3,\n }), createElement(\"th\", {}), createElement(\"th\", {})]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_13)),\n });\n };\n return append(singleton(headRow(\"Uthållighet\")), delay(() => append(map_1((item) => timeRow(EnduranceIntensity_strEnduranceIntensity(item), StatisticHelpers_strSummary(StatisticHelpers_calcFactSummary((workoutPart_2) => StatisticHelpers_calcEnduranceIntensity(item, workoutPart_2), daysList))), EnduranceIntensity_list), delay(() => append(singleton(headRow(\"Styrka\")), delay(() => append(map_1((item_1) => timeRow(StrengthActivity_strStrengthActivity(item_1), StatisticHelpers_strSummary(StatisticHelpers_calcFactSummary((workoutPart_3) => StatisticHelpers_calcStrengthActivity(item_1, workoutPart_3), daysList))), StrengthActivity_list), delay(() => append(singleton(headRow(\"Rörlighet\")), delay(() => append(singleton(timeRow(\"Rörlighet\", StatisticHelpers_strSummary(StatisticHelpers_calcFactSummary((workoutPart_4) => StatisticHelpers_calcMobility(workoutPart_4), daysList)))), delay(() => append(singleton(headRow(\"Snabbhet\")), delay(() => append(map_1((item_2) => amountRow(SpeedActivity_strSpeedActivity(item_2), StatisticHelpers_strSummary(StatisticHelpers_calcFactSummary((workoutPart_5) => StatisticHelpers_calcSpeedActivity(item_2, workoutPart_5), daysList))), SpeedActivity_list), delay(() => append(singleton(headRow(\"Vila\")), delay(() => singleton(amountRow(\"Vila\", StatisticHelpers_strSummary(StatisticHelpers_calcFactSummary((workoutPart_6) => StatisticHelpers_calcRest(workoutPart_6), daysList))))))))))))))))))))));\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_15)),\n }))])]), createElement(\"table\", createObj(Helpers_combineClasses(\"table\", props_23))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"panel-block\", props_25))))), delay(() => append(singleton(createElement(EnduranceActivityDurationPieChart, {\n daysList: daysList,\n activities: EnduranceActivity_list,\n withLegend: false,\n })), delay(() => append(singleton(moreStatisticLink), delay(() => {\n let props_46, props_44, children_19, children_17, children_29, children_21, children_23, children_25, children_27;\n const patternInput = StatisticHelpers_calcDayDataSummary(daysList);\n const form = StatisticHelpers_calcForm(daysList);\n return singleton((props_46 = ofArray([[\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray([(props_44 = ofArray([[\"className\", \"is-fullwidth\"], [\"children\", Interop_reactApi.Children.toArray([(children_19 = singleton_1((children_17 = ofArray([createElement(\"th\", {\n children: [\"\"],\n }), createElement(\"th\", {\n children: [\"Antal\"],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_17)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_19)),\n })), (children_29 = ofArray([(children_21 = ofArray([createElement(\"td\", {\n children: [\"Sjuk\"],\n }), createElement(\"td\", {\n children: [patternInput[0]],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_21)),\n })), (children_23 = ofArray([createElement(\"td\", {\n children: [\"Skadad\"],\n }), createElement(\"td\", {\n children: [patternInput[1]],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_23)),\n })), (children_25 = ofArray([createElement(\"td\", {\n children: [\"Resedag\"],\n }), createElement(\"td\", {\n children: [patternInput[2]],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_25)),\n })), (children_27 = ofArray([createElement(\"td\", {\n children: [\"Form\"],\n }), createElement(\"td\", {\n children: [form],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_27)),\n }))]), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_29)),\n }))])]]), createElement(\"table\", createObj(Helpers_combineClasses(\"table\", props_44))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"panel-block\", props_46)))));\n }))))));\n }));\n })));\n}\n\nexport function StatisticWithoutTabs(statisticWithoutTabsInputProps) {\n const daysList = statisticWithoutTabsInputProps.daysList;\n const planStr = statisticWithoutTabsInputProps.planStr;\n const title = statisticWithoutTabsInputProps.isPreviousYear ? \"Föregående år\" : \"Statistik\";\n const elms = ofArray([createElement(\"p\", createObj(Helpers_combineClasses(\"panel-heading\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-light\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", title]])))), createElement(StatisticBlock, {\n daysList: daysList,\n yearPlanStr: planStr,\n moreStatisticLink: null,\n })]);\n return createElement(\"nav\", {\n className: \"panel\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport class StatisticPeriodType extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Year\", \"Period\", \"Week\"];\n }\n}\n\nexport function StatisticPeriodType$reflection() {\n return union_type(\"Statistic.StatisticPeriodType\", [], StatisticPeriodType, () => [[], [], []]);\n}\n\nexport function StatisticWithTabs(statisticWithTabsInputProps) {\n const periodWeek = statisticWithTabsInputProps.periodWeek;\n const periodInfo = statisticWithTabsInputProps.periodInfo;\n const studentId = statisticWithTabsInputProps.studentId;\n const overviewList = statisticWithTabsInputProps.overviewList;\n const patternInput = useFeliz_React__React_useState_Static_1505((periodWeek != null) ? (new StatisticPeriodType(2)) : (new StatisticPeriodType(1)));\n const statisticPeriodType = patternInput[0];\n const setStatisticPeriodType = patternInput[1];\n const statisticPeriodList = useFeliz_React__React_useDeferred_Static_2344FC52(defaultArg(map_2((arg) => Remoting_handleNonAuth(statisticsApi().daysList(arg)), (statisticPeriodType.tag === 1) ? ((periodWeek != null) ? (new Statistics_StatisticRequest(new Statistics_StatisticType(2, studentId), Calendar_getPeriodStartDate(periodInfo), Calendar_getPeriodEndDate(periodInfo))) : (void 0)) : ((statisticPeriodType.tag === 2) ? (void 0) : (new Statistics_StatisticRequest(new Statistics_StatisticType(2, studentId), Calendar_getYearStartDate(periodInfo.PeriodYear), Calendar_getYearEndDate(periodInfo.PeriodYear))))), singleton_2.Delay(() => singleton_2.Return(overviewList))), [studentId, statisticPeriodType, periodInfo, periodWeek]);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(new Deferred$1(1));\n useReact_useEffect_Z101E1A95(() => {\n const dayInPeriod = (periodInfo_1, periodWeek_1, x) => {\n if ((x.CalendarDay.Year === periodInfo_1.PeriodYear) ? (x.CalendarDay.Period === periodInfo_1.Period) : false) {\n if (equals(x.CalendarDay.Week, periodWeek_1)) {\n return true;\n }\n else {\n return periodWeek_1 == null;\n }\n }\n else {\n return false;\n }\n };\n patternInput_1[1](Deferred_map((sList) => {\n const fullLust = append_1(overviewList, filter((arg_1) => (!dayInPeriod(periodInfo, periodWeek, arg_1)), sList));\n const matchValue = [statisticPeriodType, periodWeek];\n let pattern_matching_result;\n if (matchValue[0].tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue[0].tag === 2) {\n if (matchValue[1] == null) {\n pattern_matching_result = 1;\n }\n else {\n pattern_matching_result = 0;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return fullLust;\n }\n case 1: {\n return filter(partialApply(1, dayInPeriod, [periodInfo, 0]), fullLust);\n }\n }\n }, statisticPeriodList));\n }, [overviewList, statisticPeriodList, statisticPeriodType]);\n let patternInput_2;\n switch (statisticPeriodType.tag) {\n case 1: {\n patternInput_2 = [Calendar_getPeriodStartDate(periodInfo), Calendar_getPeriodEndDate(periodInfo)];\n break;\n }\n case 2: {\n const weekInfo = Calendar_getWeekInfo(periodInfo, defaultArg(periodWeek, 0));\n patternInput_2 = [Calendar_getWeekStartDate(weekInfo), Calendar_getWeekEndDate(weekInfo)];\n break;\n }\n default: {\n patternInput_2 = [Calendar_getYearStartDate(periodInfo.PeriodYear), Calendar_getYearEndDate(periodInfo.PeriodYear)];\n }\n }\n const query_2 = new Statistics_StatisticRequest(new Statistics_StatisticType(2, studentId), patternInput_2[0], patternInput_2[1]);\n const yearPlan = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(statisticsApi().yearPlanSeconds(query_2)), [studentId, statisticPeriodType, periodInfo, periodWeek]);\n const yearPlanStr = (yearPlan.tag === 2) ? DurationModule_intToHMSString(yearPlan.fields[0]) : \"\";\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const isVisible = patternInput_3[0];\n const props_12 = ofArray([[\"style\", {\n overflow: \"hidden\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_3;\n return append(singleton((props_3 = ofArray([[\"style\", {\n minWidth: \"200px\",\n display: \"flex\",\n }], [\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-light\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"onClick\", (_arg1) => {\n patternInput_3[1](!isVisible);\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n style: {\n flexGrow: 1,\n },\n children: \"Statistik\",\n }), createElement(\"span\", {\n className: \"has-text-white\",\n children: Interop_reactApi.Children.toArray([createElement(\"i\", createObj(toList(delay(() => (isVisible ? singleton([\"className\", join(\" \", [\"fa\", \"fa-chevron-up\"])]) : singleton([\"className\", join(\" \", [\"fa\", \"fa-chevron-down\"])]))))))]),\n })])]]), createElement(\"p\", createObj(Helpers_combineClasses(\"panel-heading\", props_3))))), delay(() => {\n let props_8;\n return isVisible ? append(singleton((props_8 = ofArray([[\"className\", \"is-size-5\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n children: \"Å\",\n className: join(\" \", toList(delay(() => (equals(statisticPeriodType, new StatisticPeriodType(0)) ? singleton(\"is-active\") : empty_1())))),\n onClick: (_arg2) => {\n setStatisticPeriodType(new StatisticPeriodType(0));\n },\n }), createElement(\"a\", {\n children: \"P\",\n className: join(\" \", toList(delay(() => (equals(statisticPeriodType, new StatisticPeriodType(1)) ? singleton(\"is-active\") : empty_1())))),\n onClick: (_arg3) => {\n setStatisticPeriodType(new StatisticPeriodType(1));\n },\n }), createElement(\"a\", {\n children: \"V\",\n className: join(\" \", toList(delay(() => (equals(statisticPeriodType, new StatisticPeriodType(2)) ? singleton(\"is-active\") : empty_1())))),\n onClick: (_arg4) => {\n setStatisticPeriodType(new StatisticPeriodType(2));\n },\n })])]]), createElement(\"p\", createObj(Helpers_combineClasses(\"panel-tabs\", props_8))))), delay(() => singleton(renderOrLoader(patternInput_1[0], (list_2) => {\n let moreStatisticLink;\n const props_10 = ofArray([[\"href\", toPath(new Route(15, studentId))], [\"style\", {\n display: \"block\",\n }], [\"className\", \"is-text\"], [\"children\", \"Visa mer statistik\"], [\"className\", \"has-text-link\"]]);\n moreStatisticLink = createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_10)));\n return createElement(StatisticBlock, {\n daysList: list_2,\n yearPlanStr: yearPlanStr,\n moreStatisticLink: moreStatisticLink,\n });\n })))) : empty_1();\n }));\n }))))]]);\n return createElement(\"nav\", createObj(Helpers_combineClasses(\"panel\", props_12)));\n}\n\nexport class TablesPeriod extends Record {\n constructor(DateFrom, DateTo) {\n super();\n this.DateFrom = DateFrom;\n this.DateTo = DateTo;\n }\n}\n\nexport function TablesPeriod$reflection() {\n return record_type(\"Statistic.TablesPeriod\", [], TablesPeriod, () => [[\"DateFrom\", class_type(\"System.DateTime\")], [\"DateTo\", class_type(\"System.DateTime\")]]);\n}\n\nexport function RenderFiltersAndCharts(renderFiltersAndChartsInputProps) {\n let prevYearQuery, prevYearQuery_1;\n const tablesRender = renderFiltersAndChartsInputProps.tablesRender;\n const excelRender = renderFiltersAndChartsInputProps.excelRender;\n const statisticType = renderFiltersAndChartsInputProps.statisticType;\n const title = renderFiltersAndChartsInputProps.title;\n const patternInput = useReact_useState_FCFD9EF(StatisticFilters_get_Current);\n const filters = patternInput[0];\n const query = new Statistics_StatisticRequest(statisticType, filters.DateFrom, filters.DateTo);\n const daysList = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(statisticsApi().daysList(query)), [statisticType, filters.DateFrom, filters.DateTo]);\n const query_1 = new Statistics_StatisticRequest(statisticType, filters.DateFrom, filters.DateTo);\n const yearPlan = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(statisticsApi().yearPlanSeconds(query_1)), [statisticType, filters.DateFrom, filters.DateTo]);\n const yearPlanStr = (yearPlan.tag === 2) ? DurationModule_intToHMSString(yearPlan.fields[0]) : \"\";\n const prevYearList = useFeliz_React__React_useDeferred_Static_2344FC52(filters.CompareWithPrevious ? (prevYearQuery = (new Statistics_StatisticRequest(statisticType, addYears(filters.DateFrom, -1), addYears(filters.DateTo, -1))), Remoting_handleNonAuth(statisticsApi().daysList(prevYearQuery))) : singleton_2.Delay(() => singleton_2.Return(empty())), [statisticType, filters.DateFrom, filters.DateTo, filters.CompareWithPrevious]);\n const thisYearDates = useReact_useMemo_CF4EA67(() => (new TablesPeriod(filters.DateFrom, filters.DateTo)), [filters.DateFrom, filters.DateTo]);\n const prevYearDates = useReact_useMemo_CF4EA67(() => (new TablesPeriod(addYears(filters.DateFrom, -1), addYears(filters.DateTo, -1))), [filters.DateFrom, filters.DateTo]);\n const prevYearPlan = useFeliz_React__React_useDeferred_Static_2344FC52(filters.CompareWithPrevious ? (prevYearQuery_1 = (new Statistics_StatisticRequest(statisticType, prevYearDates.DateFrom, prevYearDates.DateTo)), Remoting_handleNonAuth(statisticsApi().yearPlanSeconds(prevYearQuery_1))) : singleton_2.Delay(() => singleton_2.Return(0)), [statisticType, filters.DateFrom, filters.DateTo, filters.CompareWithPrevious]);\n const prevYearPlanStr = (prevYearPlan.tag === 2) ? DurationModule_intToHMSString(prevYearPlan.fields[0]) : \"\";\n const renderTables = (dates, daysList_1) => {\n if (tablesRender == null) {\n return null;\n }\n else {\n return tablesRender(dates)(daysList_1);\n }\n };\n const props_14 = singleton_1([\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_12, elms_1, props_10;\n return append(singleton((props_12 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_1 = toList(delay(() => {\n let props_3;\n return append(singleton((props_3 = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n className: \"\",\n children: \"Statistik för \",\n }), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", title]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_3))))), delay(() => {\n let elms;\n return append(singleton((elms = toList(delay(() => append(singleton(createElement(RenderFilters, {\n filters: filters,\n onChange: patternInput[1],\n excelRender: excelRender,\n })), delay(() => append(singleton(renderOrLoader(daysList, (daysList_2) => createElement(RenderPeriodCharts, {\n activities: filters.EnduranceActivities,\n intensities: filters.EnduranceIntensities,\n daysList: daysList_2,\n }))), delay(() => (filters.CompareWithPrevious ? singleton(renderOrLoader(prevYearList, (daysList_3) => createElement(RenderPreviousYearPeriodCharts, {\n activities: filters.EnduranceActivities,\n intensities: filters.EnduranceIntensities,\n daysList: daysList_3,\n }))) : empty_1()))))))), createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), delay(() => (filters.CompareWithPrevious ? append(singleton(renderTables(thisYearDates, daysList)), delay(() => {\n let props_7;\n return append(singleton((props_7 = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n className: \"\",\n children: \"Föregående år\",\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_7))))), delay(() => singleton(renderTables(prevYearDates, prevYearList))));\n })) : empty_1())));\n }));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (props_10 = ofArray([[\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(renderOrLoader(daysList, (daysList_4) => createElement(StatisticWithoutTabs, {\n planStr: yearPlanStr,\n isPreviousYear: false,\n daysList: daysList_4,\n }))), delay(() => (filters.CompareWithPrevious ? singleton(renderOrLoader(prevYearList, (daysList_5) => createElement(StatisticWithoutTabs, {\n planStr: prevYearPlanStr,\n isPreviousYear: true,\n daysList: daysList_5,\n }))) : empty_1())))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_10))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_12))))), delay(() => ((!filters.CompareWithPrevious) ? singleton(renderTables(thisYearDates, daysList)) : empty_1())));\n }))))]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_14)));\n}\n\n","import { Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { float64_type, list_type, record_type, option_type, int32_type, string_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Statistics_StatisticsExportXlsxPath, Statistics_StatisticsExportApiBasePath, Common_parseIntOrZero, Calendar_WeekInfo_get_Current, Calendar_getYearWeekIndex, Calendar_getWeekInfo, Calendar_WeekInfo__NextN_Z524259A4, Statistics_StatisticRequest, Statistics_StatisticType, Calendar_getCalendarDayDate, CalendarDay_CalendarDay, Calendar_getCalendarDayFromDate, Calendar_getPeriodInfo, Calendar_PeriodInfo__NextN_Z524259A4, StatisticHelpers_calcRest, StatisticHelpers_calcForm, StatisticHelpers_calcDayDataSummary, EnduranceIntensity_list, EnduranceIntensity_getEnduranceIntensityColor, EnduranceIntensity_strEnduranceIntensity, StatisticHelpers_facts, StatisticHelpers_calcEnduranceIntensityDuration, StatisticHelpers_mapWorkoutParts, StatisticHelpers_foldDurationOpt, StatisticHelpers_calcStrength, StatisticHelpers_calcFactSummary, Common_str, DurationModule_intToHMSString } from \"../../Shared/Shared.fs.js\";\nimport { cons, filter, reverse as reverse_1, ofArray, singleton as singleton_1, append as append_1, head, empty, tryFind, toArray, sumBy, map } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { RenderFiltersAndCharts, renderOrLoader, PieSlice } from \"./Statistic.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { Legend, Bar, Tooltip, YAxis, XAxis, CartesianGrid, BarChart as BarChart_1, Cell } from \"recharts\";\nimport { padLeft, interpolate, toText, join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { map as map_1 } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { createObj, equals, round, int32ToString } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { map as map_2, defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { collect, reverse, empty as empty_1, map as map_3, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { rangeDouble } from \"../.fable/fable-library.3.2.1/Range.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { studentsApi, statisticsApi } from \"../Communication.fs.js\";\nimport { useReact_useMemo_CF4EA67, useReact_useState_FCFD9EF } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class ChartColorItem extends Record {\n constructor(Label, Value, ValueOpt, Color, DisplayValue) {\n super();\n this.Label = Label;\n this.Value = (Value | 0);\n this.ValueOpt = ValueOpt;\n this.Color = Color;\n this.DisplayValue = DisplayValue;\n }\n}\n\nexport function ChartColorItem$reflection() {\n return record_type(\"StudentStatistics.ChartColorItem\", [], ChartColorItem, () => [[\"Label\", string_type], [\"Value\", int32_type], [\"ValueOpt\", option_type(int32_type)], [\"Color\", string_type], [\"DisplayValue\", string_type]]);\n}\n\nexport class StackChartColorItem extends Record {\n constructor(StackLabel, ChartColorItems) {\n super();\n this.StackLabel = StackLabel;\n this.ChartColorItems = ChartColorItems;\n }\n}\n\nexport function StackChartColorItem$reflection() {\n return record_type(\"StudentStatistics.StackChartColorItem\", [], StackChartColorItem, () => [[\"StackLabel\", string_type], [\"ChartColorItems\", list_type(ChartColorItem$reflection())]]);\n}\n\nexport const tickFormatter = (x) => DurationModule_intToHMSString(x);\n\nexport function BarChart(barChartInputProps) {\n const items = barChartInputProps.items;\n const chartData = map((x) => (new PieSlice(x.Label, x.Value)), items);\n const colors = map((x_1) => Interop_reactApi.createElement(Cell, {\n fill: x_1.Color,\n }), items);\n const sum = sumBy((x_2) => x_2.Value, items, {\n GetZero: () => 0,\n Add: (x_3, y) => (x_3 + y),\n }) | 0;\n return Interop_reactApi.createElement(BarChart_1, {\n width: 600,\n height: 400,\n data: toArray(chartData),\n children: Interop_reactApi.Children.toArray([Interop_reactApi.createElement(CartesianGrid, {\n strokeDasharray: join(\" \", map_1((value_9) => int32ToString(value_9), new Int32Array([1, 3]))),\n vertical: false,\n }), Interop_reactApi.createElement(XAxis, {\n dataKey: (x_7) => x_7.name,\n }), Interop_reactApi.createElement(YAxis, {\n tickFormatter: tickFormatter,\n }), Interop_reactApi.createElement(Tooltip, {\n separator: \" \",\n formatter: (value_1) => toText(interpolate(\"%P() (%P()%%)\", [defaultArg(map_2((x_6) => x_6.DisplayValue, tryFind((x_5) => (x_5.Value === value_1), items)), Common_str(value_1)), (sum === 0) ? 0 : round((value_1 * 100) / sum)])),\n }), Interop_reactApi.createElement(Bar, {\n children: [\"children\", Interop_reactApi.Children.toArray(Array.from(colors))],\n dataKey: (x_8) => x_8.value,\n })]),\n });\n}\n\nexport function StackBarChart(stackBarChartInputProps) {\n const stackChartDatas = stackBarChartInputProps.stackChartDatas;\n return Interop_reactApi.createElement(BarChart_1, {\n width: 600,\n height: 400,\n data: toArray(stackChartDatas),\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(Interop_reactApi.createElement(CartesianGrid, {\n strokeDasharray: join(\" \", map_1((value_5) => int32ToString(value_5), new Int32Array([1, 3]))),\n vertical: false,\n })), delay(() => append(singleton(Interop_reactApi.createElement(XAxis, {\n dataKey: (x_1) => x_1.StackLabel,\n type: \"category\",\n })), delay(() => append(singleton(Interop_reactApi.createElement(YAxis, {\n tickFormatter: tickFormatter,\n })), delay(() => append(singleton(Interop_reactApi.createElement(Tooltip, {\n separator: \" \",\n formatter: (x) => DurationModule_intToHMSString(x),\n })), delay(() => append((!equals(stackChartDatas, empty())) ? map_3((chartColorItem) => Interop_reactApi.createElement(Bar, {\n dataKey: (y) => defaultArg(map_2((x_3) => x_3.Value, tryFind((x_2) => (x_2.Label === chartColorItem.Label), y.ChartColorItems)), 0),\n fill: chartColorItem.Color,\n stackId: \"a\",\n name: chartColorItem.Label,\n }), head(stackChartDatas).ChartColorItems) : empty_1(), delay(() => singleton(Interop_reactApi.createElement(Legend, {\n align: \"center\",\n layout: \"horizontal\",\n verticalAlign: \"top\",\n iconType: \"circle\",\n margin: {\n top: defaultArg(0, 0),\n right: defaultArg(10, 0),\n left: defaultArg(50, 0),\n bottom: defaultArg(100, 0),\n },\n })))))))))))))))),\n });\n}\n\nexport class StudentTableData extends Record {\n constructor(ChartItems, TotalDurationSeconds, IsSickCount, IsDamagedCount, IsTravelDayCount, FormAvg, RestIsPrimaryCount) {\n super();\n this.ChartItems = ChartItems;\n this.TotalDurationSeconds = (TotalDurationSeconds | 0);\n this.IsSickCount = (IsSickCount | 0);\n this.IsDamagedCount = (IsDamagedCount | 0);\n this.IsTravelDayCount = (IsTravelDayCount | 0);\n this.FormAvg = FormAvg;\n this.RestIsPrimaryCount = (RestIsPrimaryCount | 0);\n }\n}\n\nexport function StudentTableData$reflection() {\n return record_type(\"StudentStatistics.StudentTableData\", [], StudentTableData, () => [[\"ChartItems\", list_type(ChartColorItem$reflection())], [\"TotalDurationSeconds\", int32_type], [\"IsSickCount\", int32_type], [\"IsDamagedCount\", int32_type], [\"IsTravelDayCount\", int32_type], [\"FormAvg\", float64_type], [\"RestIsPrimaryCount\", int32_type]]);\n}\n\nexport function createStudentTableData(daysList) {\n let strengthChartItem;\n const durationSec_1 = map_2((x_2) => x_2.DurationSeconds, StatisticHelpers_calcFactSummary((workoutPart_1) => StatisticHelpers_calcStrength(workoutPart_1), daysList));\n strengthChartItem = (new ChartColorItem(\"Styrka\", defaultArg(durationSec_1, 0), durationSec_1, \"#63a2d9\", defaultArg(map_2((x_3) => DurationModule_intToHMSString(x_3), durationSec_1), \"-\")));\n const chartItems = append_1(map((x) => {\n const durationSec = StatisticHelpers_foldDurationOpt(StatisticHelpers_mapWorkoutParts((workoutPart) => StatisticHelpers_calcEnduranceIntensityDuration(x, workoutPart), StatisticHelpers_facts(daysList)));\n return new ChartColorItem(EnduranceIntensity_strEnduranceIntensity(x), defaultArg(durationSec, 0), durationSec, EnduranceIntensity_getEnduranceIntensityColor(x), defaultArg(map_2((x_1) => DurationModule_intToHMSString(x_1), durationSec), \"-\"));\n }, EnduranceIntensity_list), singleton_1(strengthChartItem));\n const totalSum = sumBy((x_4) => x_4.Value, chartItems, {\n GetZero: () => 0,\n Add: (x_5, y) => (x_5 + y),\n }) | 0;\n const patternInput = StatisticHelpers_calcDayDataSummary(daysList);\n return new StudentTableData(chartItems, totalSum, patternInput[0], patternInput[1], patternInput[2], StatisticHelpers_calcForm(daysList), defaultArg(map_2((x_6) => x_6.IsPrimaryCount, StatisticHelpers_calcFactSummary((workoutPart_2) => StatisticHelpers_calcRest(workoutPart_2), daysList)), 0));\n}\n\nexport function strDuration(x) {\n if (x === 0) {\n return \"-\";\n }\n else {\n return DurationModule_intToHMSString(x);\n }\n}\n\nexport function RenderSelectedIntervalTotalTable(renderSelectedIntervalTotalTableInputProps) {\n let props_30, props, props_28, props_26, children, children_4, children_14, value_25, children_6, children_8, children_10, children_12;\n const data = createStudentTableData(renderSelectedIntervalTotalTableInputProps.daysList);\n const elms = singleton_1((props_30 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(BarChart, {\n items: data.ChartItems,\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_28 = ofArray([[\"style\", {\n overflowX: \"auto\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_26 = ofArray([[\"className\", \"is-bordered\"], [\"className\", \"is-fullwidth\"], [\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"thead\", {\n className: \"has-background-primary\",\n children: Interop_reactApi.Children.toArray([(children = ofArray([createElement(\"th\", {\n className: \"has-text-white\",\n children: \"Intensitet\",\n }), createElement(\"th\", {\n className: \"has-text-white\",\n children: \"Årets säsong\",\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))]),\n }), (children_4 = toList(delay(() => map_3((chartItem) => {\n let value_21;\n const children_2 = ofArray([createElement(\"th\", {\n children: [chartItem.Label],\n }), (value_21 = strDuration(chartItem.Value), createElement(\"td\", {\n children: [value_21],\n }))]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n }, reverse(data.ChartItems)))), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n })), (children_14 = ofArray([createElement(\"tr\", {\n className: \"has-background-primary-light\",\n children: Interop_reactApi.Children.toArray([createElement(\"th\", {\n children: [\"Totaltid:\"],\n }), (value_25 = strDuration(data.TotalDurationSeconds), createElement(\"th\", {\n children: [value_25],\n }))]),\n }), (children_6 = ofArray([createElement(\"th\", {\n children: [\"Form\"],\n }), createElement(\"td\", {\n children: [data.FormAvg],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_6)),\n })), (children_8 = ofArray([createElement(\"th\", {\n children: [\"Sjuk\"],\n }), createElement(\"td\", {\n children: [data.IsSickCount],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_8)),\n })), (children_10 = ofArray([createElement(\"th\", {\n children: [\"Skada\"],\n }), createElement(\"td\", {\n children: [data.IsDamagedCount],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_10)),\n })), (children_12 = ofArray([createElement(\"th\", {\n children: [\"Vila\"],\n }), createElement(\"td\", {\n children: [data.RestIsPrimaryCount],\n })]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_12)),\n }))]), createElement(\"tfoot\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_14)),\n }))])]]), createElement(\"table\", createObj(Helpers_combineClasses(\"table\", props_26))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_28))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_30)))));\n return createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function RenderPeriodsTable(renderPeriodsTableInputProps) {\n let children, children_4, children_14, children_6, children_8, children_10, children_12;\n const tableDatas = renderPeriodsTableInputProps.tableDatas;\n const periodNames = renderPeriodsTableInputProps.periodNames;\n const props_24 = ofArray([[\"className\", \"is-bordered\"], [\"className\", \"is-fullwidth\"], [\"className\", \"is-size-7\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"thead\", {\n className: \"has-background-primary\",\n children: Interop_reactApi.Children.toArray([(children = toList(delay(() => append(singleton(createElement(\"th\", {\n className: \"has-text-white\",\n children: \"Intensitet\",\n })), delay(() => map_3((periodName) => createElement(\"th\", {\n className: \"has-text-white\",\n children: periodName,\n }), periodNames))))), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))]),\n }), (children_4 = toList(delay(() => ((!equals(tableDatas, empty())) ? map_3((i) => {\n const children_2 = toList(delay(() => append(singleton(createElement(\"th\", {\n children: [i.Label],\n })), delay(() => collect((tableData) => {\n let value_19;\n return singleton((value_19 = defaultArg(map_2((x_1) => x_1.DisplayValue, tryFind((x) => (x.Label === i.Label), tableData.ChartItems)), \"-\"), createElement(\"td\", {\n children: [value_19],\n })));\n }, tableDatas)))));\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n }, reverse_1(head(tableDatas).ChartItems)) : empty_1()))), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n })), (children_14 = ofArray([createElement(\"tr\", {\n className: \"has-background-primary-light\",\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"th\", {\n children: [\"Totaltid:\"],\n })), delay(() => map_3((tableData_1) => {\n const value_23 = strDuration(tableData_1.TotalDurationSeconds);\n return createElement(\"td\", {\n children: [value_23],\n });\n }, tableDatas))))))),\n }), (children_6 = toList(delay(() => append(singleton(createElement(\"th\", {\n children: [\"Form\"],\n })), delay(() => map_3((tableData_2) => createElement(\"td\", {\n children: [tableData_2.FormAvg],\n }), tableDatas))))), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_6)),\n })), (children_8 = toList(delay(() => append(singleton(createElement(\"th\", {\n children: [\"Sjuk\"],\n })), delay(() => map_3((tableData_3) => createElement(\"td\", {\n children: [tableData_3.IsSickCount],\n }), tableDatas))))), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_8)),\n })), (children_10 = toList(delay(() => append(singleton(createElement(\"th\", {\n children: [\"Skada\"],\n })), delay(() => map_3((tableData_4) => createElement(\"td\", {\n children: [tableData_4.IsDamagedCount],\n }), tableDatas))))), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_10)),\n })), (children_12 = toList(delay(() => append(singleton(createElement(\"th\", {\n children: [\"Vila\"],\n })), delay(() => map_3((tableData_5) => createElement(\"td\", {\n children: [tableData_5.RestIsPrimaryCount],\n }), tableDatas))))), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_12)),\n }))]), createElement(\"tfoot\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_14)),\n }))])]]);\n return createElement(\"table\", createObj(Helpers_combineClasses(\"table\", props_24)));\n}\n\nexport function RenderPeriodsToYearEndTable(renderPeriodsToYearEndTableInputProps) {\n let props_4, props, props_2;\n const daysList = renderPeriodsToYearEndTableInputProps.daysList;\n const calendarDayTo = renderPeriodsToYearEndTableInputProps.calendarDayTo;\n const calendarDayFrom = renderPeriodsToYearEndTableInputProps.calendarDayFrom;\n const periodDatas = map((periodIndex) => {\n const period = Calendar_PeriodInfo__NextN_Z524259A4(Calendar_getPeriodInfo(calendarDayFrom.Year, calendarDayFrom.Period), periodIndex);\n const periodList = filter((day) => {\n if (day.CalendarDay.Year === period.PeriodYear) {\n return day.CalendarDay.Period === period.Period;\n }\n else {\n return false;\n }\n }, daysList);\n return [toText(interpolate(\"%P() p%P()\", [period.PeriodYear, period.Period + 1])), createStudentTableData(periodList)];\n }, toList(rangeDouble(0, 1, (((13 + calendarDayTo.Period) - calendarDayFrom.Period) % 13) + ((calendarDayTo.Year - calendarDayFrom.Year) * 13))));\n const periodNames = map((tuple) => tuple[0], periodDatas);\n const tableDatas = map((tuple_1) => tuple_1[1], periodDatas);\n const stackChartData = map((x) => (new StackChartColorItem(x[0], x[1].ChartItems)), periodDatas);\n const elms = singleton_1((props_4 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(StackBarChart, {\n stackChartDatas: stackChartData,\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_2 = ofArray([[\"style\", {\n overflowX: \"auto\",\n width: 0,\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(RenderPeriodsTable, {\n periodNames: periodNames,\n tableDatas: tableDatas,\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_4)))));\n return createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function RenderPeriodsToYearEndTableWithLoad(renderPeriodsToYearEndTableWithLoadInputProps) {\n const dates = renderPeriodsToYearEndTableWithLoadInputProps.dates;\n const studentId = renderPeriodsToYearEndTableWithLoadInputProps.studentId;\n const calendarDayDateFrom = Calendar_getCalendarDayFromDate(dates.DateFrom);\n const calendarDayFrom = new CalendarDay_CalendarDay(calendarDayDateFrom.Year, calendarDayDateFrom.Period, 0, 0);\n const dateFrom = Calendar_getCalendarDayDate(calendarDayFrom);\n const calendarDayTo = new CalendarDay_CalendarDay(Calendar_getCalendarDayFromDate(dates.DateTo).Year, 12, 3, 6);\n const query = new Statistics_StatisticRequest(new Statistics_StatisticType(2, studentId), dateFrom, Calendar_getCalendarDayDate(calendarDayTo));\n return renderOrLoader(useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(statisticsApi().daysList(query)), [studentId, dates.DateFrom, dates.DateTo]), (daysList) => createElement(RenderPeriodsToYearEndTable, {\n calendarDayFrom: calendarDayFrom,\n calendarDayTo: calendarDayTo,\n daysList: daysList,\n }));\n}\n\nexport function RenderSelectedIntervalWeeksTable(renderSelectedIntervalWeeksTableInputProps) {\n let props_4, props, props_2;\n const daysList = renderSelectedIntervalWeeksTableInputProps.daysList;\n const calendarDayTo = renderSelectedIntervalWeeksTableInputProps.calendarDayTo;\n const calendarDayFrom = renderSelectedIntervalWeeksTableInputProps.calendarDayFrom;\n const weekDatas = map((weekIndex) => {\n const week = Calendar_WeekInfo__NextN_Z524259A4(Calendar_getWeekInfo(Calendar_getPeriodInfo(calendarDayFrom.Year, calendarDayFrom.Period), calendarDayFrom.Week), weekIndex);\n const weekList = filter((day) => {\n if ((day.CalendarDay.Year === week.PeriodInfo.PeriodYear) ? (day.CalendarDay.Period === week.PeriodInfo.Period) : false) {\n return day.CalendarDay.Week === week.PeriodWeek;\n }\n else {\n return false;\n }\n }, daysList);\n return [toText(interpolate(\"v%P()\", [padLeft(Common_str(Calendar_getYearWeekIndex(week)), 2, \"0\")])), createStudentTableData(weekList)];\n }, toList(rangeDouble(0, 1, ((((4 + calendarDayTo.Week) - calendarDayFrom.Week) % 4) + ((((13 + calendarDayTo.Period) - calendarDayFrom.Period) % 13) * 4)) + (((calendarDayTo.Year - calendarDayFrom.Year) * 13) * 4))));\n const periodNames = map((tuple) => tuple[0], weekDatas);\n const tableDatas = map((tuple_1) => tuple_1[1], weekDatas);\n const stackChartData = map((x_1) => (new StackChartColorItem(x_1[0], x_1[1].ChartItems)), weekDatas);\n const elms = singleton_1((props_4 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(StackBarChart, {\n stackChartDatas: stackChartData,\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_2 = ofArray([[\"style\", {\n overflowX: \"auto\",\n width: 0,\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(RenderPeriodsTable, {\n periodNames: periodNames,\n tableDatas: tableDatas,\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_4)))));\n return createElement(\"div\", {\n className: \"box\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function RenderSelectedIntervalWeeksTableWithLoad(renderSelectedIntervalWeeksTableWithLoadInputProps) {\n const dates = renderSelectedIntervalWeeksTableWithLoadInputProps.dates;\n const studentId = renderSelectedIntervalWeeksTableWithLoadInputProps.studentId;\n const calendarDayDateFrom = Calendar_getCalendarDayFromDate(dates.DateFrom);\n const calendarDayFrom = new CalendarDay_CalendarDay(calendarDayDateFrom.Year, calendarDayDateFrom.Period, calendarDayDateFrom.Week, 0);\n const dateFrom = Calendar_getCalendarDayDate(calendarDayFrom);\n const calendarDayDateTo = Calendar_getCalendarDayFromDate(dates.DateTo);\n const calendarDayTo = new CalendarDay_CalendarDay(calendarDayDateTo.Year, calendarDayDateTo.Period, calendarDayDateTo.Week, 6);\n const query = new Statistics_StatisticRequest(new Statistics_StatisticType(2, studentId), dateFrom, Calendar_getCalendarDayDate(calendarDayTo));\n return renderOrLoader(useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(statisticsApi().daysList(query)), [studentId, dates.DateFrom, dates.DateTo]), (daysList) => createElement(RenderSelectedIntervalWeeksTable, {\n calendarDayFrom: calendarDayFrom,\n calendarDayTo: calendarDayTo,\n daysList: daysList,\n }));\n}\n\nexport function RenderStudentTables(renderStudentTablesInputProps) {\n const dates = renderStudentTablesInputProps.dates;\n const studentId = renderStudentTablesInputProps.studentId;\n return react.createElement(react.Fragment, {}, renderOrLoader(renderStudentTablesInputProps.daysList, (daysList_1) => createElement(RenderSelectedIntervalTotalTable, {\n daysList: daysList_1,\n })), createElement(RenderPeriodsToYearEndTableWithLoad, {\n studentId: studentId,\n dates: dates,\n }), createElement(RenderSelectedIntervalWeeksTableWithLoad, {\n studentId: studentId,\n dates: dates,\n }));\n}\n\nexport function RenderExcelButton(renderExcelButtonInputProps) {\n let props_9, patternInput_1, value_14, props_7;\n const studentId = renderExcelButtonInputProps.studentId;\n const patternInput = useReact_useState_FCFD9EF(() => (Calendar_WeekInfo_get_Current().PeriodInfo.PeriodYear - 1));\n const year = patternInput[0] | 0;\n const options = useReact_useMemo_CF4EA67(() => {\n const year_1 = Calendar_WeekInfo_get_Current().PeriodInfo.PeriodYear | 0;\n return map((x_1) => createElement(\"option\", {\n value: x_1,\n children: toText(interpolate(\"%P()/%P()\", [x_1, (x_1 + 1) % 100])),\n }), map((x) => (year_1 + x), reverse_1(toList(rangeDouble(-8, 1, 1)))));\n });\n const props_11 = ofArray([[\"className\", \"mt-5\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", singleton_1([\"children\", \"Exportera statistiken till en excelrapport. Välj säsongsperiod och sedan skapa excelrapport.\"])))), (props_9 = ofArray([[\"className\", \"mt-2\"], [\"children\", Interop_reactApi.Children.toArray([(patternInput_1 = Helpers_extractClasses(ofArray([[\"className\", \"is-small\"], [\"className\", \"has-text-right\"], (value_14 = (year | 0), [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_14)) : false) {\n e.value = (value_14 | 0);\n }\n }]), [\"onChange\", (ev) => {\n patternInput[1](Common_parseIntOrZero(ev.target.value));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(options))]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput_1[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput_1[1]))]),\n })), (props_7 = ofArray([[\"className\", \"ml-1\"], [\"className\", \"is-small\"], [\"children\", \"Skapa excelrapport\"], [\"href\", toText(interpolate(\"%P()%P()?year=%P()\\u0026studentId=%P()\", [Statistics_StatisticsExportApiBasePath, Statistics_StatisticsExportXlsxPath, year, studentId]))], [\"target\", \"_blank\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_7))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_9))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_11)));\n}\n\nexport function RenderMainLayout(student) {\n return createElement(RenderFiltersAndCharts, {\n title: student.FullName,\n statisticType: new Statistics_StatisticType(2, student.Id),\n excelRender: createElement(RenderExcelButton, {\n studentId: student.Id,\n }),\n tablesRender: (dates) => ((daysList) => createElement(RenderStudentTables, {\n studentId: student.Id,\n dates: dates,\n daysList: daysList,\n })),\n });\n}\n\nexport function renderMainLayoutWithLoad(studentId) {\n const student = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentsApi().getSettings(studentId)), [studentId]);\n if (student.tag === 3) {\n const value = student.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n else if (student.tag === 2) {\n if (student.fields[0].tag === 0) {\n return createElement(RenderMainLayout, student.fields[0].fields[0]);\n }\n else {\n return createElement(\"div\", {\n children: [student.fields[0].fields[0]],\n });\n }\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Render(renderInputProps) {\n const _arg1 = renderInputProps._arg1;\n return renderMainLayoutWithLoad(renderInputProps.studentId);\n}\n\n","import { createElement } from \"react\";\nimport { RenderFiltersAndCharts } from \"./Statistic.fs.js\";\nimport { Statistics_StatisticType } from \"../../Shared/Shared.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { groupsApi } from \"../Communication.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport function RenderMainLayout(group) {\n return createElement(RenderFiltersAndCharts, {\n title: group.Title,\n statisticType: new Statistics_StatisticType(1, group.Id),\n excelRender: void 0,\n tablesRender: void 0,\n });\n}\n\nexport function renderMainLayoutWithLoad(groupId) {\n const group = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(groupsApi().get(groupId)), [groupId]);\n switch (group.tag) {\n case 3: {\n const value = group.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n return createElement(RenderMainLayout, group.fields[0]);\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function Render(renderInputProps) {\n const _arg1 = renderInputProps._arg1;\n return renderMainLayoutWithLoad(renderInputProps.groupId);\n}\n\n","import { createElement } from \"react\";\nimport { RenderFiltersAndCharts } from \"./Statistic.fs.js\";\nimport { Statistics_StatisticType } from \"../../Shared/Shared.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { schoolsApi } from \"../Communication.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport function RenderMainLayout(school) {\n return createElement(RenderFiltersAndCharts, {\n title: school.Title,\n statisticType: new Statistics_StatisticType(0, school.Id),\n excelRender: void 0,\n tablesRender: void 0,\n });\n}\n\nexport function renderMainLayoutWithLoad(schoolId) {\n const school = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(schoolsApi().get(schoolId)), [schoolId]);\n switch (school.tag) {\n case 3: {\n const value = school.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n return createElement(RenderMainLayout, school.fields[0]);\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function Render(renderInputProps) {\n const _arg1 = renderInputProps._arg1;\n return renderMainLayoutWithLoad(renderInputProps.schoolId);\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { Students_TeacherListItem$reflection } from \"../../Shared/Shared.fs.js\";\nimport { class_type, record_type, union_type, string_type, list_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { teachersApi } from \"../Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { ofArray, filter, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { collect, empty, singleton as singleton_2, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { View_renderNotification, View_RenderDeleteWindow } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(ListTeachers) {\n super();\n this.ListTeachers = ListTeachers;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"TeacherList.Types.State\", [], Types_State, () => [[\"ListTeachers\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_TeacherListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_TeacherListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadTeachers\", \"DeleteClick\", \"Delete\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"TeacherList.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_TeacherListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_TeacherListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_loadTeachers = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(teachersApi().list()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function Cmd_delete(id) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(teachersApi().delete(id)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(0, id)))) : (new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport const State_init = [new Types_State(new DeferredResult$1(1)), Cmd_batch(singleton_1(Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0)))))];\n\nexport function State_update(msg, state) {\n let matchValue;\n if (msg.tag === 1) {\n return [state, Cmd_fromAsync(Cmd_delete(msg.fields[0]))];\n }\n else if (msg.tag === 2) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State((matchValue = state.ListTeachers, (matchValue.tag === 2) ? ((matchValue.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, filter((x_1) => (x_1.Id !== msg.fields[0].fields[0].fields[0]), matchValue.fields[0].fields[0])))) : state.ListTeachers) : state.ListTeachers)), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(new DeferredResult$1(1)), Cmd_fromAsync(Cmd_loadTeachers)];\n }\n}\n\nexport function View_RenderTeacher(view_RenderTeacherInputProps) {\n let elms;\n const dispatch = view_RenderTeacherInputProps.dispatch;\n const teacher = view_RenderTeacherInputProps.teacher;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setEditHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setDeleteHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_2[1];\n const isDeleteWindow = patternInput_2[0];\n const props_17 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => {\n let props;\n return append(singleton_2((props = ofArray([[\"style\", {\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n }], [\"children\", teacher.FullName]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props))))), delay(() => {\n let props_4, props_2;\n return append(singleton_2((props_4 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = toList(delay(() => append(singleton_2([\"className\", \"is-size-7\"]), delay(() => append(patternInput[0] ? singleton_2([\"children\", \"Ändra egenskaper\"]) : empty(), delay(() => (patternInput_1[0] ? singleton_2([\"children\", \"Ta bort tränare\"]) : empty()))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_2))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4))))), delay(() => {\n let props_14, props_7, props_11;\n return append(singleton_2((props_14 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n onMouseEnter: (_arg1) => {\n setEditHover(true);\n },\n onMouseLeave: (_arg2) => {\n setEditHover(false);\n },\n className: \"px-2\",\n href: toPath(new Route(20, teacher.Id)),\n children: Interop_reactApi.Children.toArray([(props_7 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-pencil-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_7))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg3) => {\n setDeleteHover(true);\n },\n onMouseLeave: (_arg4) => {\n setDeleteHover(false);\n },\n onClick: (_arg5) => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n children: Interop_reactApi.Children.toArray([(props_11 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-danger\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-times\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_11))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_14))))), delay(() => (isDeleteWindow ? singleton_2(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(1, teacher.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort här tränare?\",\n })) : empty())));\n }));\n }));\n })), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_17)));\n}\n\nexport function Component_Render(user) {\n let props_8, elms, elms_1, props_5;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), [user]);\n const props_10 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => {\n let props_2;\n return append(singleton_2((props_2 = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"style\", {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", singleton_1([\"children\", \"Tränare\"]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_2))))), delay(() => {\n const matchValue = patternInput[0].ListTeachers;\n return (matchValue.tag === 2) ? ((matchValue.fields[0].tag === 1) ? singleton_2(View_renderNotification([\"className\", \"is-danger\"], matchValue.fields[0].fields[0])) : collect((teacher) => ((teacher.Id !== user.UserId) ? singleton_2(createElement(View_RenderTeacher, {\n teacher: teacher,\n dispatch: patternInput[1],\n })) : empty()), matchValue.fields[0].fields[0])) : singleton_2(loader(\"big\"));\n }));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_1((props_5 = ofArray([[\"href\", toPath(new Route(19))], [\"className\", \"py-2\"], [\"className\", \"mb-5\"], [\"className\", \"is-success\"], [\"children\", \"Lägg till tränare\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_5))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_8))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_10)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { list_type, union_type, unit_type, bool_type, record_type, string_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Teachers_TeacherSettings_Default, EmailModule_toString, EmailModule_ofString, Teachers_TeacherUpdateSettingsRequest, Teachers_TeacherCreateRequest } from \"../../Shared/Shared.fs.js\";\nimport { teachersApi } from \"../Communication.fs.js\";\nimport { Validator$1__Test, Validator$1__NotBlank_2B595, Validator$1__End_Z5E18B1E2, validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_1, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { borderStylePrimary } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Id, Email, Password, FullName) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"TeacherEdit.Types.Form\", [], Types_Form, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, OriginalValue, IsNew, Saving, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.OriginalValue = OriginalValue;\n this.IsNew = IsNew;\n this.Saving = Saving;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"TeacherEdit.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"OriginalValue\", Types_Form$reflection()], [\"IsNew\", bool_type], [\"Saving\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"EmailChanged\", \"PasswordChanged\", \"FullNameChanged\", \"Save\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"TeacherEdit.Types.Msg\", [], Types_Msg, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_save(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n let request, request_1;\n return singleton.Bind(Remoting_handleNonAuth(state.IsNew ? (request = (new Teachers_TeacherCreateRequest(state.Form.Id, state.Form.Email, state.Form.Password, state.Form.FullName)), teachersApi().create(request)) : (request_1 = (new Teachers_TeacherUpdateSettingsRequest(state.Form.Id, state.Form.Email, state.Form.Password, state.Form.FullName)), teachersApi().updateSettings(request_1))), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (t) => (new Types_Form(formInfo.Id, EmailModule_ofString(Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Email is required\")(Validator$1__Test(t, \"Email\", EmailModule_toString(formInfo.Email))))), Validator$1__End_Z5E18B1E2(t, Validator$1__Test(t, \"Password\", formInfo.Password)), Validator$1__End_Z5E18B1E2(t, Validator$1__NotBlank_2B595(t, \"Full name is required\")(Validator$1__Test(t, \"FullName\", formInfo.FullName))))));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport function State_init(teacher, isNew) {\n const form = new Types_Form(teacher.Id, teacher.Email, \"\", teacher.FullName);\n return [new Types_State(form, form, isNew, new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n let inputRecord_1, inputRecord_2, inputRecord;\n if (msg.tag === 0) {\n const patternInput_1 = Validation_validateIf(state.IsNeedValidation, (inputRecord_1 = state.Form, new Types_Form(inputRecord_1.Id, msg.fields[0], inputRecord_1.Password, inputRecord_1.FullName)));\n return [new Types_State(patternInput_1[0], state.OriginalValue, state.IsNew, state.Saving, patternInput_1[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 1) {\n const patternInput_2 = Validation_validateIf(state.IsNeedValidation, (inputRecord_2 = state.Form, new Types_Form(inputRecord_2.Id, inputRecord_2.Email, msg.fields[0], inputRecord_2.FullName)));\n return [new Types_State(patternInput_2[0], state.OriginalValue, state.IsNew, state.Saving, patternInput_2[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.IsNew, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Form, state.Form, false, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), View_Cmd_toastSuccess(\"Tränare skapad\")];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.IsNew, state.Saving, matchValue.fields[0], true), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], state.OriginalValue, state.IsNew, new DeferredResult$1(1), empty(), true), Cmd_fromAsync(Cmd_save(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, (inputRecord = state.Form, new Types_Form(inputRecord.Id, inputRecord.Email, inputRecord.Password, msg.fields[0])));\n return [new Types_State(patternInput[0], state.OriginalValue, state.IsNew, state.Saving, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_view(view_viewInputProps) {\n let props_48, props_46, props_44, props_42, props_12, props_10, props_8, elms_1, elms, props_24, props_22, props_20, elms_3, elms_2, props_16, props_36, props_34, props_32, elms_5, elms_4, elms_7, elms_6, props_38;\n const dispatch = view_viewInputProps.dispatch;\n const state = view_viewInputProps.state;\n const elms_8 = singleton_1((props_48 = ofArray([[\"className\", \"is-6\"], [\"className\", \"pt-6\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Ändra egenskaper\"]])))), (props_46 = ofArray([[\"className\", \"px-5\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(props_44 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_42 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_10 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Fullständigt namn: \"]])))), (props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton_1((elms = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"placeholder\", \"Nytt fullständigt namn\"], [\"defaultValue\", state.Form.FullName], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(2, ev.target.value));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_8))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_10))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_12)))), (props_24 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_22 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Epost:\"]])))), (props_20 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_3 = singleton_1((elms_2 = singleton_1((props_16 = ofArray([[\"placeholder\", \"Ny epost\"], [\"defaultValue\", EmailModule_toString(state.Form.Email)], [\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(0, EmailModule_ofString(ev_1.target.value)));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_16)))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_22))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_24)))), (props_36 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_34 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Nytt lösenord:\"]])))), (props_32 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_5 = singleton_1((elms_4 = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"password\"], Helpers_combineClasses(\"input\", ofArray([[\"autoComplete\", \"new-password\"], [\"placeholder\", \"Nytt lösenord\"], [\"onChange\", (ev_2) => {\n dispatch(new Types_Msg(1, ev_2.target.value));\n }]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_32))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_34))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_36)))), (elms_7 = singleton_1((elms_6 = singleton_1((props_38 = ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Spara\"], [\"disabled\", equals(state.Saving, new DeferredResult$1(1)) ? true : equals(state.Form, state.OriginalValue)], [\"onClick\", (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(3, new AsyncOperationStatus$1(0)));\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_38))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_42))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_44))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_46))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_48)))));\n return createElement(\"div\", {\n className: \"container\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n });\n}\n\nexport function Component_RenderForm(component_RenderFormInputProps) {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(component_RenderFormInputProps.teacher, component_RenderFormInputProps.isNew), (msg, state) => State_update(msg, state), []);\n return createElement(View_view, {\n state: patternInput[0],\n dispatch: patternInput[1],\n });\n}\n\nexport function Component_ResolveTeacher(component_ResolveTeacherInputProps) {\n const id = component_ResolveTeacherInputProps.id;\n let patternInput;\n if (id == null) {\n patternInput = [singleton.Delay(() => singleton.Return(new FSharpResult$2(0, Teachers_TeacherSettings_Default()))), true];\n }\n else {\n const id_1 = id;\n patternInput = [teachersApi().getSettings(id_1), false];\n }\n const teacher = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(patternInput[0]), [id]);\n if (teacher.tag === 2) {\n if (teacher.fields[0].tag === 1) {\n return createElement(\"div\", {\n children: [teacher.fields[0].fields[0]],\n });\n }\n else {\n return createElement(Component_RenderForm, {\n teacher: teacher.fields[0].fields[0],\n isNew: patternInput[1],\n });\n }\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const _arg1 = component_RenderInputProps._arg1;\n const id = component_RenderInputProps.id;\n return createElement(Component_ResolveTeacher, {\n id: id,\n });\n}\n\n","import { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { empty, cons, singleton, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { int32ToString, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { View_DUSelect, View_checkBoxField } from \"../Common.fs.js\";\nimport { WorkoutType_SpeedInfo, WorkoutType_MobilityInfo, WorkoutType_StrengthInfo, WorkoutType_EnduranceInfo, Shape_parseShapeStr, Shape_strShape, Shape_list, SpeedActivity_parseSpeedActivityStr, SpeedActivity_strSpeedActivity, SpeedActivity_list, StrengthActivity_parseStrengthActivityStr, StrengthActivity_strStrengthActivity, StrengthActivity_list, EnduranceIntensity_parseEnduranceIntensityStr, EnduranceIntensity_strEnduranceIntensity, EnduranceIntensity_list, EnduranceActivity_parseEnduranceActivityStr, EnduranceActivity_strEnduranceActivity, Common_str, EnduranceActivity_list, Common_parseIntOrZero, DurationModule_fromInt, DurationModule_toHMS } from \"../../Shared/Shared.fs.js\";\n\nexport function WorkoutPartHeader(workoutPartHeaderInputProps) {\n let props_9, props_1, props_3, props_7;\n const onDeleted = workoutPartHeaderInputProps.onDeleted;\n const isPrimaryChanged = workoutPartHeaderInputProps.isPrimaryChanged;\n const isPrimary = workoutPartHeaderInputProps.isPrimary;\n const title = workoutPartHeaderInputProps.title;\n const props_11 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_9 = ofArray([[\"className\", \"is-vcentered\"], [\"style\", {\n borderBottom: (((1 + \"px \") + \"dashed\") + \" \") + \"#226699\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_1 = ofArray([[\"className\", \"py-1\"], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n className: \"\",\n children: title,\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_1)))), (props_3 = ofArray([[\"className\", \"py-1\"], [\"className\", \"has-text-right\"], [\"className\", \"pr-4\"], [\"children\", Interop_reactApi.Children.toArray([View_checkBoxField(\"Huvuddel\", isPrimary, isPrimaryChanged)])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_3)))), (props_7 = ofArray([[\"className\", \"py-1\"], [\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"button\", createObj(Helpers_combineClasses(\"delete\", singleton([\"onClick\", (_arg1) => {\n onDeleted();\n }]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_7))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_9))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_11)));\n}\n\nexport function DurationEditor(duration, onChange) {\n let props_2, elms;\n const patternInput = DurationModule_toHMS(duration);\n const durationSeconds = patternInput[2] | 0;\n const durationMinutes = patternInput[1] | 0;\n const durationHours = patternInput[0] | 0;\n const durationHoursStr = int32ToString(durationHours);\n const durationMinutesStr = int32ToString(durationMinutes);\n const durationSecondsStr = int32ToString(durationSeconds);\n const props_15 = singleton([\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"className\", \"has-text-grey\"], [\"children\", \"Längd\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_2)))), (elms = ofArray([createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"className\", \"is-small\"], [\"defaultValue\", durationHoursStr], [\"onChange\", (ev) => {\n onChange(DurationModule_fromInt(((Common_parseIntOrZero(ev.target.value) * 3600) + (durationMinutes * 60)) + durationSeconds));\n }]]))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"px-3\"], [\"className\", \"pt-1\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \":\"]])))), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"className\", \"is-small\"], [\"defaultValue\", durationMinutesStr], [\"onChange\", (ev_1) => {\n onChange(DurationModule_fromInt(((durationHours * 3600) + (Common_parseIntOrZero(ev_1.target.value) * 60)) + durationSeconds));\n }]]))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"px-3\"], [\"className\", \"pt-1\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \":\"]])))), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"className\", \"is-small\"], [\"defaultValue\", durationSecondsStr], [\"onChange\", (ev_2) => {\n onChange(DurationModule_fromInt(((durationHours * 3600) + (durationMinutes * 60)) + Common_parseIntOrZero(ev_2.target.value)));\n }]])))))]), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_15)));\n}\n\nexport function EnduranceActivityEditor(value, onChange) {\n return View_DUSelect(\"Aktivitet\", EnduranceActivity_list, (x) => Common_str(x), (_arg1) => EnduranceActivity_strEnduranceActivity(_arg1), (_arg1_1) => EnduranceActivity_parseEnduranceActivityStr(_arg1_1), value, onChange);\n}\n\nexport function EnduranceIntensityEditor(value, onChange) {\n return View_DUSelect(\"Intensitet\", EnduranceIntensity_list, (x) => Common_str(x), (_arg1) => EnduranceIntensity_strEnduranceIntensity(_arg1), (_arg1_1) => EnduranceIntensity_parseEnduranceIntensityStr(_arg1_1), value, onChange);\n}\n\nexport function StrengthActivityEditor(value, onChange) {\n return View_DUSelect(\"Aktivitet\", StrengthActivity_list, (x) => Common_str(x), (_arg1) => StrengthActivity_strStrengthActivity(_arg1), (_arg1_1) => StrengthActivity_parseStrengthActivityStr(_arg1_1), value, onChange);\n}\n\nexport function SpeedActivityEditor(value, onChange) {\n return View_DUSelect(\"Aktivitet\", SpeedActivity_list, (x) => Common_str(x), (_arg1) => SpeedActivity_strSpeedActivity(_arg1), (_arg1_1) => SpeedActivity_parseSpeedActivityStr(_arg1_1), value, onChange);\n}\n\nexport function ShapeEditor(value, onChange) {\n return View_DUSelect(\"Form\", Shape_list, (x) => Common_str(x), (_arg1) => Shape_strShape(_arg1), (_arg1_1) => Shape_parseShapeStr(_arg1_1), value, onChange);\n}\n\nexport function SpeedAmountEditor(amount, onChange) {\n let props_2, elms, props_4;\n const props_7 = singleton([\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"children\", \"Antal\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_2)))), (elms = singleton((props_4 = ofArray([[\"className\", \"is-small\"], [\"defaultValue\", Common_str(amount)], [\"onChange\", (ev) => {\n onChange(Common_parseIntOrZero(ev.target.value));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_4)))))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_7)));\n}\n\nexport function Endurance(enduranceInputProps) {\n let props_2, elms, elms_1, props_6, props_4;\n const onDeleted = enduranceInputProps.onDeleted;\n const isPrimaryChanged = enduranceInputProps.isPrimaryChanged;\n const isPrimary = enduranceInputProps.isPrimary;\n const title = enduranceInputProps.title;\n const infoChanged = enduranceInputProps.infoChanged;\n const info = enduranceInputProps.info;\n const props_8 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(WorkoutPartHeader, {\n title: title,\n isPrimary: isPrimary,\n isPrimaryChanged: isPrimaryChanged,\n onDeleted: onDeleted,\n }), (props_2 = singleton([\"children\", Interop_reactApi.Children.toArray([(elms = singleton(EnduranceActivityEditor(info.Activity, (x) => {\n infoChanged(new WorkoutType_EnduranceInfo(x, info.Intensity, info.Duration));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton(EnduranceIntensityEditor(info.Intensity, (x_1) => {\n infoChanged(new WorkoutType_EnduranceInfo(info.Activity, x_1, info.Duration));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_2)))), (props_6 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([(props_4 = ofArray([[\"className\", \"is-half\"], [\"children\", Interop_reactApi.Children.toArray([DurationEditor(info.Duration, (x_2) => {\n infoChanged(new WorkoutType_EnduranceInfo(info.Activity, info.Intensity, x_2));\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_8)));\n}\n\nexport function Strength(strengthInputProps) {\n let props_3, props, elms;\n const onDeleted = strengthInputProps.onDeleted;\n const isPrimaryChanged = strengthInputProps.isPrimaryChanged;\n const isPrimary = strengthInputProps.isPrimary;\n const title = strengthInputProps.title;\n const infoChanged = strengthInputProps.infoChanged;\n const info = strengthInputProps.info;\n const props_5 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(WorkoutPartHeader, {\n title: title,\n isPrimary: isPrimary,\n isPrimaryChanged: isPrimaryChanged,\n onDeleted: onDeleted,\n }), (props_3 = singleton([\"children\", Interop_reactApi.Children.toArray([(props = singleton([\"children\", Interop_reactApi.Children.toArray([StrengthActivityEditor(info.Activity, (x) => {\n infoChanged(new WorkoutType_StrengthInfo(x, info.Duration));\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (elms = singleton(DurationEditor(info.Duration, (x_1) => {\n infoChanged(new WorkoutType_StrengthInfo(info.Activity, x_1));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_3))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_5)));\n}\n\nexport function Mobility(mobilityInputProps) {\n let props_4, props;\n const onDeleted = mobilityInputProps.onDeleted;\n const isPrimaryChanged = mobilityInputProps.isPrimaryChanged;\n const isPrimary = mobilityInputProps.isPrimary;\n const title = mobilityInputProps.title;\n const infoChanged = mobilityInputProps.infoChanged;\n const info = mobilityInputProps.info;\n const props_6 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(WorkoutPartHeader, {\n title: title,\n isPrimary: isPrimary,\n isPrimaryChanged: isPrimaryChanged,\n onDeleted: onDeleted,\n }), (props_4 = singleton([\"children\", Interop_reactApi.Children.toArray([(props = singleton([\"children\", Interop_reactApi.Children.toArray([DurationEditor(info.Duration, (x) => {\n infoChanged(new WorkoutType_MobilityInfo(x));\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty())))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_4))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_6)));\n}\n\nexport function Speed(speedInputProps) {\n let props_4, props, props_2;\n const onDeleted = speedInputProps.onDeleted;\n const isPrimaryChanged = speedInputProps.isPrimaryChanged;\n const isPrimary = speedInputProps.isPrimary;\n const title = speedInputProps.title;\n const infoChanged = speedInputProps.infoChanged;\n const info = speedInputProps.info;\n const props_6 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(WorkoutPartHeader, {\n title: title,\n isPrimary: isPrimary,\n isPrimaryChanged: isPrimaryChanged,\n onDeleted: onDeleted,\n }), (props_4 = singleton([\"children\", Interop_reactApi.Children.toArray([(props = singleton([\"children\", Interop_reactApi.Children.toArray([SpeedActivityEditor(info.Activity, (x) => {\n infoChanged(new WorkoutType_SpeedInfo(x, info.Amount));\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_2 = singleton([\"children\", Interop_reactApi.Children.toArray([SpeedAmountEditor(info.Amount, (x_1) => {\n infoChanged(new WorkoutType_SpeedInfo(info.Activity, x_1));\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_4))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_6)));\n}\n\nexport function Rest(restInputProps) {\n const onDeleted = restInputProps.onDeleted;\n const isPrimaryChanged = restInputProps.isPrimaryChanged;\n const isPrimary = restInputProps.isPrimary;\n const title = restInputProps.title;\n const props = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(WorkoutPartHeader, {\n title: title,\n isPrimary: isPrimary,\n isPrimaryChanged: isPrimaryChanged,\n onDeleted: onDeleted,\n })])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props)));\n}\n\n","import { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { indexed, skip, take, tryItem, append, mapIndexed } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { WorkoutType_SpeedInfo_get_Default, WorkoutType_MobilityInfo_get_Default, WorkoutType_StrengthInfo_get_Default, WorkoutType_EnduranceInfo_get_Default, WorkoutType_WorkoutType, WorkoutType_strWorkoutType, Workout_WorkoutPart, WorkoutType_titleWorkoutType } from \"../../Shared/Shared.fs.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { map, singleton, collect, append as append_1, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Endurance, Rest, Speed, Mobility, Strength } from \"./WorkoutPartEdit.fs.js\";\nimport { defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray, empty } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\n\nexport function Render(renderInputProps) {\n const onChange = renderInputProps.onChange;\n const workoutParts = renderInputProps.workoutParts;\n const patternInput = useFeliz_React__React_useState_Static_1505(mapIndexed((index, xx) => toText(interpolate(\"%P() %P()\", [index + 1, WorkoutType_titleWorkoutType(xx.WorkoutType)])), workoutParts));\n const titles = patternInput[0];\n const setTitles = patternInput[1];\n const addWorkoutPart = (workoutType) => {\n onChange(append(workoutParts, [new Workout_WorkoutPart(false, workoutType)]));\n setTitles(append(titles, [\"Ny del: \" + WorkoutType_strWorkoutType(workoutType)]));\n };\n return react.createElement(react.Fragment, {}, ...toList(delay(() => append_1(collect((matchValue) => {\n let matchValue_1;\n const workoutPart_1 = matchValue[1];\n const index_4 = matchValue[0] | 0;\n const change = (newInfo) => {\n onChange(mapIndexed((index_1, x) => {\n if (index_1 === index_4) {\n return new Workout_WorkoutPart(x.IsPrimary, newInfo);\n }\n else {\n return x;\n }\n }, workoutParts));\n };\n return singleton((matchValue_1 = workoutPart_1.WorkoutType, (matchValue_1.tag === 1) ? ((title_1) => ((isPrimary_2) => ((isPrimaryChanged_1) => ((onDeleted_1) => createElement(Strength, {\n info: matchValue_1.fields[0],\n infoChanged: (arg_1) => {\n change(new WorkoutType_WorkoutType(1, arg_1));\n },\n title: title_1,\n isPrimary: isPrimary_2,\n isPrimaryChanged: isPrimaryChanged_1,\n onDeleted: onDeleted_1,\n }))))) : ((matchValue_1.tag === 2) ? ((title_2) => ((isPrimary_3) => ((isPrimaryChanged_2) => ((onDeleted_2) => createElement(Mobility, {\n info: matchValue_1.fields[0],\n infoChanged: (arg_2) => {\n change(new WorkoutType_WorkoutType(2, arg_2));\n },\n title: title_2,\n isPrimary: isPrimary_3,\n isPrimaryChanged: isPrimaryChanged_2,\n onDeleted: onDeleted_2,\n }))))) : ((matchValue_1.tag === 3) ? ((title_3) => ((isPrimary_4) => ((isPrimaryChanged_3) => ((onDeleted_3) => createElement(Speed, {\n info: matchValue_1.fields[0],\n infoChanged: (arg_3) => {\n change(new WorkoutType_WorkoutType(3, arg_3));\n },\n title: title_3,\n isPrimary: isPrimary_4,\n isPrimaryChanged: isPrimaryChanged_3,\n onDeleted: onDeleted_3,\n }))))) : ((matchValue_1.tag === 4) ? ((title_4) => ((isPrimary_5) => ((isPrimaryChanged_4) => ((onDeleted_4) => createElement(Rest, {\n title: title_4,\n isPrimary: isPrimary_5,\n isPrimaryChanged: isPrimaryChanged_4,\n onDeleted: onDeleted_4,\n }))))) : ((title) => ((isPrimary_1) => ((isPrimaryChanged) => ((onDeleted) => createElement(Endurance, {\n info: matchValue_1.fields[0],\n infoChanged: (arg) => {\n change(new WorkoutType_WorkoutType(0, arg));\n },\n title: title,\n isPrimary: isPrimary_1,\n isPrimaryChanged: isPrimaryChanged,\n onDeleted: onDeleted,\n })))))))))(defaultArg(tryItem(index_4, titles), \"\"))(workoutPart_1.IsPrimary)((isPrimary) => {\n onChange(mapIndexed((index_2, x_1) => {\n if (index_2 === index_4) {\n return new Workout_WorkoutPart(isPrimary, x_1.WorkoutType);\n }\n else {\n return x_1;\n }\n }, workoutParts));\n })((_arg1) => {\n const partIndex_2 = index_4 | 0;\n const removeArrayItem = (index_3, array_3) => append(take(index_3, array_3), skip(index_3 + 1, array_3));\n onChange(removeArrayItem(partIndex_2, workoutParts));\n setTitles(removeArrayItem(partIndex_2, titles));\n }));\n }, indexed(workoutParts)), delay(() => append_1(singleton(createElement(\"hr\", createObj(Helpers_combineClasses(\"dropdown-divider\", empty())))), delay(() => {\n let props_4;\n return singleton((props_4 = ofArray([[\"className\", \"is-centered\"], [\"className\", \"are-small\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => map((button) => createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"children\", button[0]], [\"onClick\", (_arg2) => {\n button[1]();\n }]])))), [[\"Uthållighet\", () => {\n addWorkoutPart(new WorkoutType_WorkoutType(0, WorkoutType_EnduranceInfo_get_Default()));\n }], [\"Styrka\", () => {\n addWorkoutPart(new WorkoutType_WorkoutType(1, WorkoutType_StrengthInfo_get_Default()));\n }], [\"Rörlighet\", () => {\n addWorkoutPart(new WorkoutType_WorkoutType(2, WorkoutType_MobilityInfo_get_Default()));\n }], [\"Snabbhet\", () => {\n addWorkoutPart(new WorkoutType_WorkoutType(3, WorkoutType_SpeedInfo_get_Default()));\n }], [\"Vila\", () => {\n addWorkoutPart(new WorkoutType_WorkoutType(4));\n }]])))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_4)))));\n })))))));\n}\n\n","import { createElement } from \"react\";\nimport * as react from \"react\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Workout_Workout } from \"../../Shared/Shared.fs.js\";\nimport { Render as Render_1 } from \"./WorkoutPartsEdit.fs.js\";\n\nexport function Render(renderInputProps) {\n let props_6, props_4, props_2, value_12, props_13, elms, props_10, value_32;\n const children = renderInputProps.children;\n const onChange = renderInputProps.onChange;\n const workout = renderInputProps.workout;\n return react.createElement(react.Fragment, {}, (props_6 = singleton([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-7\"], [\"className\", \"mb-1\"], [\"className\", \"has-text-grey\"], [\"children\", \"Namn\"]])))), (props_4 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"is-small\"], (value_12 = workout.Title, [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_12)) : false) {\n e.value = value_12;\n }\n }]), [\"onChange\", (ev) => {\n onChange(new Workout_Workout(ev.target.value, workout.Comment, workout.WorkoutParts));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_2)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_4))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_6)))), (props_13 = singleton([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-7\"], [\"className\", \"mb-1\"], [\"className\", \"has-text-grey\"], [\"children\", \"Kommentar före träning\"]])))), (elms = singleton((props_10 = ofArray([[\"className\", \"is-small\"], [\"rows\", 3], (value_32 = workout.Comment, [\"ref\", (e_1) => {\n if ((!(e_1 == null)) ? (!equals(e_1.value, value_32)) : false) {\n e_1.value = value_32;\n }\n }]), [\"onChange\", (ev_1) => {\n onChange(new Workout_Workout(workout.Title, ev_1.target.value, workout.WorkoutParts));\n }]]), createElement(\"textarea\", createObj(Helpers_combineClasses(\"textarea\", props_10))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_13)))), children, createElement(Render_1, {\n workoutParts: workout.WorkoutParts,\n onChange: (newWorkoutParts) => {\n onChange(new Workout_Workout(workout.Title, workout.Comment, newWorkoutParts));\n },\n }));\n}\n\n","import { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Toastr_toastError, Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { workoutTemplatesApi } from \"../Communication.fs.js\";\nimport { WorkoutTemplates_WorkoutTemplateInfo, WorkoutTemplates_WorkoutTemplateInfo_get_Default } from \"../../Shared/Shared.fs.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { empty, singleton as singleton_2, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { View_checkBoxField } from \"../Common.fs.js\";\nimport { Render as Render_1 } from \"./WorkoutEdit.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\n\nexport function saveWorkoutTemplate(workoutTemplate, isNew, onSuccess) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth((isNew ? workoutTemplatesApi().create : workoutTemplatesApi().update)(workoutTemplate)), (_arg1) => {\n if (_arg1.tag === 0) {\n onSuccess(workoutTemplate);\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Save pass error\", \"\");\n return singleton.Zero();\n }\n })), (_arg2) => {\n Toastr_toastError(\"Save pass error\", \"\");\n return singleton.Zero();\n }));\n}\n\nexport function Render(renderInputProps) {\n let elms_2, elms, props_9, children_1, props_15;\n const onCancel = renderInputProps.onCancel;\n const onSaved = renderInputProps.onSaved;\n const withIsGlobal = renderInputProps.withIsGlobal;\n const workoutTemplate = renderInputProps.workoutTemplate;\n let patternInput;\n if (workoutTemplate != null) {\n const workoutTemplate_1 = workoutTemplate;\n patternInput = [workoutTemplate_1.Workout.Title, workoutTemplate_1];\n }\n else {\n patternInput = [\"Nytt pass\", WorkoutTemplates_WorkoutTemplateInfo_get_Default()];\n }\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(patternInput[1]);\n const setEditModel = patternInput_1[1];\n const editModel = patternInput_1[0];\n const props_20 = ofArray([[\"className\", \"is-active\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton_1([\"onClick\", (_arg1) => {\n onCancel();\n }])))), (elms_2 = ofArray([(elms = ofArray([createElement(\"p\", createObj(Helpers_combineClasses(\"modal-card-title\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-bold\"], [\"children\", patternInput[0]]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"delete\", singleton_1([\"onClick\", (_arg2) => {\n onCancel();\n }]))))]), createElement(\"header\", {\n className: \"modal-card-head\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_9 = ofArray([[\"style\", {\n overflowY: \"scroll\",\n }], [\"className\", \"has-background-light\"], [\"children\", Interop_reactApi.Children.toArray([(children_1 = react.createElement(react.Fragment, {}, ...toList(delay(() => {\n let elms_1;\n return withIsGlobal ? singleton_2((elms_1 = singleton_1(View_checkBoxField(\"Globalt pass\", editModel.IsGlobal, (newIsGlobal) => {\n setEditModel(new WorkoutTemplates_WorkoutTemplateInfo(editModel.Id, newIsGlobal, editModel.Workout));\n })), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))) : empty();\n }))), createElement(Render_1, {\n workout: editModel.Workout,\n onChange: (newWorkout) => {\n setEditModel(new WorkoutTemplates_WorkoutTemplateInfo(editModel.Id, editModel.IsGlobal, newWorkout));\n },\n children: children_1,\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"card-content\", props_9)))), (props_15 = ofArray([[\"style\", {\n justifyContent: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg3) => {\n onCancel();\n }], [\"className\", \"is-text\"], [\"className\", \"has-text-danger\"], [\"children\", \"Avbryt\"]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg4) => {\n startImmediate(saveWorkoutTemplate(editModel, workoutTemplate == null, onSaved));\n }], [\"className\", \"is-success\"], [\"children\", \"Spara\"]]))))])]]), createElement(\"footer\", createObj(Helpers_combineClasses(\"modal-card-foot\", props_15))))]), createElement(\"div\", {\n className: \"modal-card\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), createElement(\"button\", createObj(Helpers_combineClasses(\"modal-close\", singleton_1([\"onClick\", (_arg5) => {\n onCancel();\n }]))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_20)));\n}\n\n","import { Union, Record } from \"./.fable/fable-library.3.2.1/Types.js\";\nimport { WorkoutTemplates_WorkoutTemplateInfo$reflection } from \"../Shared/Shared.fs.js\";\nimport { class_type, record_type, union_type, string_type, list_type } from \"./.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"./.fable/fable-library.3.2.1/Choice.js\";\nimport { View_Cmd_toastError, Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"./Extensions.fs.js\";\nimport { singleton } from \"./.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { workoutTemplatesApi } from \"./Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"./.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { ofArray, filter, append, map, exists, singleton as singleton_1 } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"./.fable/Feliz.1.51.0/React.fs.js\";\nimport { map as map_1, empty, singleton as singleton_2, append as append_1, delay, toList } from \"./.fable/fable-library.3.2.1/Seq.js\";\nimport { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { join } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { Render } from \"./Components/WorkoutTemplateEdit.fs.js\";\nimport { View_renderNotification, View_RenderDeleteWindow } from \"./Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"./.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { loader } from \"./Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(WorkoutTemplates) {\n super();\n this.WorkoutTemplates = WorkoutTemplates;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"PassList.Types.State\", [], Types_State, () => [[\"WorkoutTemplates\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection())]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadWorkoutTemplates\", \"SavedWorkoutTemplate\", \"DeleteWorkoutTemplateClick\", \"DeleteWorkoutTemplate\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"PassList.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", WorkoutTemplates_WorkoutTemplateInfo$reflection()]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_load = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(workoutTemplatesApi().listUser()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function Cmd_delete(id) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(workoutTemplatesApi().delete(id)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, id)))) : (new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport const State_init = [new Types_State(new DeferredResult$1(1)), Cmd_batch(singleton_1(Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0)))))];\n\nexport function State_update(msg, state) {\n let matchValue, isUpdated, matchValue_1;\n if (msg.tag === 1) {\n return [new Types_State((matchValue = state.WorkoutTemplates, (matchValue.tag === 2) ? ((matchValue.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, (isUpdated = ((x_1) => (x_1.Id === msg.fields[0].Id)), exists(isUpdated, matchValue.fields[0].fields[0]) ? map((x_2) => (isUpdated(x_2) ? msg.fields[0] : x_2), matchValue.fields[0].fields[0]) : append(singleton_1(msg.fields[0]), matchValue.fields[0].fields[0]))))) : state.WorkoutTemplates) : state.WorkoutTemplates)), Cmd_none()];\n }\n else if (msg.tag === 2) {\n return [state, Cmd_fromAsync(Cmd_delete(msg.fields[0]))];\n }\n else if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [state, View_Cmd_toastError(msg.fields[0].fields[0].fields[0])];\n }\n else {\n return [new Types_State((matchValue_1 = state.WorkoutTemplates, (matchValue_1.tag === 2) ? ((matchValue_1.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, filter((x_3) => (x_3.Id !== msg.fields[0].fields[0].fields[0]), matchValue_1.fields[0].fields[0])))) : state.WorkoutTemplates) : state.WorkoutTemplates)), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(new DeferredResult$1(1)), Cmd_fromAsync(Cmd_load)];\n }\n}\n\nexport function View_WorkoutTemplateRow(view_WorkoutTemplateRowInputProps) {\n const dispatch = view_WorkoutTemplateRowInputProps.dispatch;\n const isTeacher = view_WorkoutTemplateRowInputProps.isTeacher;\n const workoutTemplate = view_WorkoutTemplateRowInputProps.workoutTemplate;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setEditHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setDeleteHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setIsEditWindow = patternInput_2[1];\n const isEditWindow = patternInput_2[0];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_3[1];\n const isDeleteWindow = patternInput_3[0];\n const children_2 = toList(delay(() => {\n let props_18, elms_1, elms, props_5, props_3, props_15, props_8, props_12;\n return append_1(singleton_2((props_18 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(elms = singleton_1(createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-primary\"], [\"children\", workoutTemplate.Workout.Title]]))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_5 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_3 = toList(delay(() => append_1(singleton_2([\"className\", \"is-size-7\"]), delay(() => append_1(patternInput[0] ? singleton_2([\"children\", \"Ändra egenskaper\"]) : empty(), delay(() => (patternInput_1[0] ? singleton_2([\"children\", \"Ta bort gruppen\"]) : empty()))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_3))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_5)))), (props_15 = ofArray([[\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg1) => {\n setEditHover(true);\n },\n onMouseLeave: (_arg2) => {\n setEditHover(false);\n },\n onClick: (_arg3) => {\n setIsEditWindow(!isEditWindow);\n },\n children: Interop_reactApi.Children.toArray([(props_8 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-pencil-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_8))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg4) => {\n setDeleteHover(true);\n },\n onMouseLeave: (_arg5) => {\n setDeleteHover(false);\n },\n onClick: (_arg6) => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n children: Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-danger\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-times\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_12))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_15))))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_18))))), delay(() => append_1(isEditWindow ? singleton_2(createElement(Render, {\n workoutTemplate: workoutTemplate,\n withIsGlobal: isTeacher,\n onSaved: (workoutTemplate_1) => {\n dispatch(new Types_Msg(1, workoutTemplate_1));\n setIsEditWindow(false);\n },\n onCancel: () => {\n setIsEditWindow(false);\n },\n })) : empty(), delay(() => (isDeleteWindow ? singleton_2(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(2, workoutTemplate.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort detta pass?\",\n })) : empty())))));\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n}\n\nexport function View_Render(user) {\n let props_6, elms, elms_1;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), []);\n const dispatch = patternInput[1];\n const isTeacher = user.Role === 2;\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setIsCreateWindow = patternInput_1[1];\n const props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_6 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => append_1(singleton_2(createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Pass\"]]))))), delay(() => {\n const matchValue = patternInput[0].WorkoutTemplates;\n let pattern_matching_result, workoutTemplates, e;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n e = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n workoutTemplates = matchValue.fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return singleton_2(loader(\"big\"));\n }\n case 1: {\n return map_1((workoutTemplate) => createElement(View_WorkoutTemplateRow, {\n workoutTemplate: workoutTemplate,\n isTeacher: isTeacher,\n dispatch: dispatch,\n }), workoutTemplates);\n }\n case 2: {\n return singleton_2(View_renderNotification([\"className\", \"is-danger\"], e));\n }\n }\n })))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = toList(delay(() => append_1(singleton_2(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"py-2\"], [\"className\", \"is-success\"], [\"children\", \"Lägg till pass\"], [\"onClick\", (_arg1) => {\n setIsCreateWindow(true);\n }]]))))), delay(() => (patternInput_1[0] ? singleton_2(createElement(Render, {\n workoutTemplate: void 0,\n withIsGlobal: isTeacher,\n onSaved: (workoutTemplate_1) => {\n dispatch(new Types_Msg(1, workoutTemplate_1));\n setIsCreateWindow(false);\n },\n onCancel: () => {\n setIsCreateWindow(false);\n },\n })) : empty()))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_8)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { Workout_getWorkoutTotalDuration, DurationModule_toHMSString, Workout_getWorkoutColor, WorkoutTemplates_WorkoutTemplateInfo$reflection } from \"../../Shared/Shared.fs.js\";\nimport { record_type, union_type, string_type, list_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { workoutTemplatesApi } from \"../Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { CollectedDragProps, DragItem$1, DragSpec$1, useDrag } from \"./ReactDnd.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { empty, map, singleton as singleton_2, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(WorkoutTemplates) {\n super();\n this.WorkoutTemplates = WorkoutTemplates;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"PassPanel.Types.State\", [], Types_State, () => [[\"WorkoutTemplates\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection())]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadWorkoutTemplates\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"PassPanel.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(WorkoutTemplates_WorkoutTemplateInfo$reflection())]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_load = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(workoutTemplatesApi().listSchool()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport const State_init = [new Types_State(new DeferredResult$1(1)), Cmd_batch(singleton_1(Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0)))))];\n\nexport function State_update(msg, state) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(new DeferredResult$1(1)), Cmd_fromAsync(Cmd_load)];\n }\n}\n\nexport function View_PassItem(workoutTemplate) {\n let props_8, props_2, props_6, props_4;\n const patternInput = useDrag(ofArray([new DragSpec$1(0, \"WorkoutTemplate\"), new DragSpec$1(1, new DragItem$1(\"WorkoutTemplate\", workoutTemplate)), new DragSpec$1(2, (mon) => (new CollectedDragProps(mon.isDragging())))]));\n const workoutTemplateColor = Workout_getWorkoutColor(workoutTemplate.Workout);\n const props_10 = ofArray([[\"style\", {\n borderRight: (((2 + \"px \") + \"solid\") + \" \") + workoutTemplateColor,\n }], [\"className\", \"py-1\"], [\"className\", \"px-1\"], [\"className\", \"my-2\"], [\"ref\", patternInput[1]], [\"children\", Interop_reactApi.Children.toArray([(props_8 = ofArray([[\"className\", \"py-0\"], [\"className\", \"px-0\"], [\"className\", \"is-gapless\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"style\", {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }], [\"className\", \"py-0\"], [\"className\", \"px-0\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", singleton_1([\"children\", workoutTemplate.Workout.Title]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2)))), (props_6 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"py-0\"], [\"className\", \"px-0\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_4 = singleton_1([\"children\", DurationModule_toHMSString(Workout_getWorkoutTotalDuration(workoutTemplate.Workout))]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_4))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_6))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_8))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_10)));\n}\n\nexport function View_Render() {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), []);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const isVisible = patternInput_1[0];\n const props_10 = ofArray([[\"className\", \"mb-4\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_5, props_3;\n return append(singleton_2((props_5 = ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-background-primary\"], [\"onClick\", (_arg1) => {\n patternInput_1[1](!isVisible);\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"card-header-title\", ofArray([[\"className\", \"px-2\"], [\"className\", \"py-2\"], [\"className\", \"has-text-weight-light\"], [\"className\", \"has-text-white\"], [\"children\", \"Pass\"]])))), (props_3 = ofArray([[\"className\", \"has-text-white\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", createObj(toList(delay(() => (isVisible ? singleton_2([\"className\", join(\" \", [\"fa\", \"fa-chevron-up\"])]) : singleton_2([\"className\", join(\" \", [\"fa\", \"fa-chevron-down\"])]))))))])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"card-header-icon\", props_3))))])]]), createElement(\"header\", createObj(Helpers_combineClasses(\"card-header\", props_5))))), delay(() => {\n let props_8;\n return isVisible ? singleton_2((props_8 = ofArray([[\"className\", \"is-size-7\"], [\"className\", \"px-2\"], [\"className\", \"py-1\"], [\"style\", {\n maxHeight: 602 + \"px\",\n overflowY: \"auto\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n const matchValue = patternInput[0].WorkoutTemplates;\n let pattern_matching_result, passes, e;\n if (matchValue.tag === 1) {\n pattern_matching_result = 0;\n }\n else if (matchValue.tag === 2) {\n if (matchValue.fields[0].tag === 1) {\n pattern_matching_result = 2;\n e = matchValue.fields[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n passes = matchValue.fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return singleton_2(loader(\"big\"));\n }\n case 1: {\n return map((pass) => createElement(View_PassItem, pass), passes);\n }\n case 2: {\n return singleton_2(createElement(\"span\", {\n children: [e],\n }));\n }\n }\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"card-content\", props_8))))) : empty();\n }));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"card\", props_10)));\n}\n\n","import { CollectedDragProps, DragItem$1, DragSpec$1, useDrag } from \"./ReactDnd.fs.js\";\nimport { ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { Workout_getWorkoutTotalDuration, DurationModule_toHMSString, Workout_getWorkoutColor, Shape_getShapeIntValue } from \"../../Shared/Shared.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\n\nexport function Render(renderInputProps) {\n const dragType = renderInputProps.dragType;\n const shapeOpt = renderInputProps.shapeOpt;\n const comment = renderInputProps.comment;\n const workout = renderInputProps.workout;\n const patternInput = useDrag(ofArray([new DragSpec$1(0, dragType), new DragSpec$1(1, new DragItem$1(dragType, renderInputProps.dragData)), new DragSpec$1(2, (mon) => (new CollectedDragProps(mon.isDragging())))]));\n const title = (shapeOpt == null) ? workout.Title : toText(interpolate(\"%P() (%P())\", [workout.Title, Shape_getShapeIntValue(shapeOpt)]));\n const props_3 = ofArray([[\"ref\", patternInput[1]], [\"className\", \"px-1\"], [\"className\", \"py-2\"], [\"className\", \"my-0\"], [\"className\", \"has-background-grey-lighter\"], [\"style\", {\n borderRight: (((2 + \"px \") + \"solid\") + \" \") + Workout_getWorkoutColor(workout),\n width: 100 + \"%\",\n height: 5.4 + \"rem\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n overflow: \"hidden\",\n whiteSpace: \"pre-line\",\n fontSize: 0.7 + \"em\",\n lineHeight: 0.95 + \"rem\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n children: [title],\n }), createElement(\"div\", {\n style: {\n opacity: 0.8,\n textAlign: \"right\",\n },\n children: DurationModule_toHMSString(Workout_getWorkoutTotalDuration(workout)),\n }), createElement(\"div\", {\n style: {\n opacity: 0.8,\n fontSize: 0.6 + \"em\",\n },\n children: comment,\n })])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_3)));\n}\n\n","import { DayFact_DayFact, Shape_getShapeIntValue, DayFact_createFromDayPlan, DayFact_DayFact_Default_Z38742B54 } from \"../../Shared/Shared.fs.js\";\nimport { interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { ShapeEditor } from \"./WorkoutPartEdit.fs.js\";\nimport { Render as Render_1 } from \"./WorkoutEdit.fs.js\";\nimport { View_RenderDeleteWindow } from \"../Common.fs.js\";\n\nexport function Render(renderInputProps) {\n const onCancel = renderInputProps.onCancel;\n const onDelete = renderInputProps.onDelete;\n const onSave = renderInputProps.onSave;\n const daySegment = renderInputProps.daySegment;\n const sourceDayPlan = renderInputProps.sourceDayPlan;\n const dayFact = renderInputProps.dayFact;\n let patternInput;\n if (dayFact == null) {\n if (sourceDayPlan == null) {\n patternInput = [\"Registrera ny träning\", DayFact_DayFact_Default_Z38742B54(daySegment)];\n }\n else {\n const dayPlan = sourceDayPlan;\n const dayFact_2 = DayFact_createFromDayPlan(dayPlan);\n patternInput = [toText(interpolate(\"Registrera %P()\", [dayPlan.Workout.Title])), dayFact_2];\n }\n }\n else {\n const dayFact_1 = dayFact;\n patternInput = [toText(interpolate(\"%P() (%P())\", [dayFact_1.Workout.Title, Shape_getShapeIntValue(dayFact_1.Shape)])), dayFact_1];\n }\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(patternInput[1]);\n const setEditModel = patternInput_1[1];\n const editModel = patternInput_1[0];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_2[1];\n const isDeleteWindow = patternInput_2[0];\n const props_28 = ofArray([[\"className\", \"is-active\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton_1([\"onClick\", (_arg1) => {\n onCancel();\n }]))))), delay(() => {\n let elms_2, elms, props_15, children_1, props_12, elms_1, props_9, value_29, props_23;\n return append(singleton((elms_2 = ofArray([(elms = ofArray([createElement(\"p\", createObj(Helpers_combineClasses(\"modal-card-title\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-bold\"], [\"children\", patternInput[0]]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"delete\", singleton_1([\"onClick\", (_arg2) => {\n onCancel();\n }]))))]), createElement(\"header\", {\n className: \"modal-card-head\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_15 = ofArray([[\"style\", {\n overflowY: \"scroll\",\n }], [\"className\", \"has-background-light\"], [\"children\", Interop_reactApi.Children.toArray([(children_1 = react.createElement(react.Fragment, {}, ShapeEditor(editModel.Shape, (newShape) => {\n setEditModel(new DayFact_DayFact(editModel.DaySegment, newShape, editModel.CommentAfterTraining, editModel.Workout));\n }), (props_12 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-7\"], [\"className\", \"has-text-grey\"], [\"className\", \"mb-1\"], [\"children\", \"Kommentar efter träning\"]])))), (elms_1 = singleton_1((props_9 = ofArray([[\"className\", \"is-small\"], [\"rows\", 3], (value_29 = editModel.CommentAfterTraining, [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_29)) : false) {\n e.value = value_29;\n }\n }]), [\"onChange\", (ev) => {\n setEditModel(new DayFact_DayFact(editModel.DaySegment, editModel.Shape, ev.target.value, editModel.Workout));\n }]]), createElement(\"textarea\", createObj(Helpers_combineClasses(\"textarea\", props_9))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_12))))), createElement(Render_1, {\n workout: editModel.Workout,\n onChange: (newWorkout) => {\n setEditModel(new DayFact_DayFact(editModel.DaySegment, editModel.Shape, editModel.CommentAfterTraining, newWorkout));\n },\n children: children_1,\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"card-content\", props_15)))), (props_23 = ofArray([[\"style\", {\n justifyContent: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append((dayFact == null) ? singleton(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg4) => {\n onCancel();\n }], [\"className\", \"is-text\"], [\"className\", \"has-text-danger\"], [\"children\", \"Avbryt\"]]))))) : singleton(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg3) => {\n setIsDeleteWindow(!isDeleteWindow);\n }], [\"className\", \"has-text-danger\"], [\"children\", \"Ta bort\"]]))))), delay(() => singleton(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg5) => {\n onSave(editModel);\n }], [\"className\", \"is-success\"], [\"children\", \"Spara\"]])))))))))))]]), createElement(\"footer\", createObj(Helpers_combineClasses(\"modal-card-foot\", props_23))))]), createElement(\"div\", {\n className: \"modal-card\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), delay(() => append(singleton(createElement(\"button\", createObj(Helpers_combineClasses(\"modal-close\", singleton_1([\"onClick\", (_arg6) => {\n onCancel();\n }]))))), delay(() => (isDeleteWindow ? singleton(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n onDelete();\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort detta pass?\",\n })) : empty())))));\n }))))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_28)));\n}\n\n","import { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Render as Render_1 } from \"./WorkoutEdit.fs.js\";\nimport { DayPlan_DayPlan } from \"../../Shared/Shared.fs.js\";\nimport { View_RenderDeleteWindow } from \"../Common.fs.js\";\n\nexport function Render(renderInputProps) {\n const onCancel = renderInputProps.onCancel;\n const onDelete = renderInputProps.onDelete;\n const onImplement = renderInputProps.onImplement;\n const onSave = renderInputProps.onSave;\n const dayPlan = renderInputProps.dayPlan;\n const patternInput = useFeliz_React__React_useState_Static_1505(dayPlan);\n const editModel = patternInput[0];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_1[1];\n const isDeleteWindow = patternInput_1[0];\n const props_20 = ofArray([[\"className\", \"is-active\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton_1([\"onClick\", (_arg1) => {\n onCancel();\n }]))))), delay(() => {\n let elms_1, elms, props_7, props_15;\n return append(singleton((elms_1 = ofArray([(elms = ofArray([createElement(\"p\", createObj(Helpers_combineClasses(\"modal-card-title\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-bold\"], [\"children\", dayPlan.Workout.Title]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"delete\", singleton_1([\"onClick\", (_arg2) => {\n onCancel();\n }]))))]), createElement(\"header\", {\n className: \"modal-card-head\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_7 = ofArray([[\"style\", {\n overflowY: \"scroll\",\n }], [\"className\", \"has-background-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(Render_1, {\n workout: editModel.Workout,\n onChange: (newWorkout) => {\n patternInput[1](new DayPlan_DayPlan(editModel.DaySegment, newWorkout));\n },\n children: null,\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"card-content\", props_7)))), (props_15 = ofArray([[\"style\", {\n justifyContent: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let onImplement_1;\n return append((onImplement == null) ? singleton(null) : (onImplement_1 = onImplement, singleton(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg3) => {\n onImplement_1();\n }], [\"children\", \"Genomför\"]])))))), delay(() => append(singleton(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg4) => {\n setIsDeleteWindow(!isDeleteWindow);\n }], [\"className\", \"has-text-danger\"], [\"children\", \"Ta bort\"]]))))), delay(() => singleton(createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg5) => {\n onSave(editModel);\n }], [\"className\", \"is-success\"], [\"children\", \"Spara\"]])))))))));\n }))))]]), createElement(\"footer\", createObj(Helpers_combineClasses(\"modal-card-foot\", props_15))))]), createElement(\"div\", {\n className: \"modal-card\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), delay(() => append(singleton(createElement(\"button\", createObj(Helpers_combineClasses(\"modal-close\", singleton_1([\"onClick\", (_arg6) => {\n onCancel();\n }]))))), delay(() => (isDeleteWindow ? singleton(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n onDelete();\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort detta pass?\",\n })) : empty())))));\n }))))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_20)));\n}\n\n","import { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { PlanFact_PlanFact, DayPlan_DayPlan, DayPlanFact_DayPlanFact, DayFact_DayFact, Shape_Shape, PlanFact_PlanFact$reflection, DaySegment_DaySegment$reflection, CalendarDay_CalendarDay$reflection, DayPlanFact_DayPlanFact$reflection, StudentDays_StudentDayKey$reflection, StudentDays_StudentDayImplementPlanRequest, StudentDays_StudentDayDeletePlanFactRequest, StudentDays_StudentDayMovePlanFactRequest, StudentDays_StudentDayUpdatePlanFactRequest } from \"../../Shared/Shared.fs.js\";\nimport { Toastr_toastError, Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { studentDaysApi } from \"../Communication.fs.js\";\nimport { Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, class_type, lambda_type, unit_type, tuple_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { useReact_useEffect_Z101E1A95, useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { CollectedDropProps, DropSpec$2, useDrop } from \"./ReactDnd.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\nimport { ofArray, item } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { empty, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { inlineSmall } from \"../Loader.fs.js\";\nimport { Render as Render_1 } from \"./WorkoutBlock.fs.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Render as Render_2 } from \"./DayFactEdit.fs.js\";\nimport { Render as Render_3 } from \"./DayPlanEdit.fs.js\";\n\nexport function updatePlanFact(studentDay, dayPlanFact, onSuccess, onError) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new StudentDays_StudentDayUpdatePlanFactRequest(studentDay.StudentId, studentDay.CalendarDay, dayPlanFact);\n return singleton.Bind(Remoting_handleNonAuth(studentDaysApi().updatePlanFact(request)), (_arg1) => {\n if (_arg1.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Save error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Save error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport function movePlanFact(studentId, toDay_0, toDay_1, fromDay_0, fromDay_1, planFact, onSuccess, onError) {\n const toDay = [toDay_0, toDay_1];\n const fromDay = [fromDay_0, fromDay_1];\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new StudentDays_StudentDayMovePlanFactRequest(studentId, toDay[0], toDay[1], fromDay[0], fromDay[1], planFact);\n return singleton.Bind(Remoting_handleNonAuth(studentDaysApi().movePlanFact(request)), (_arg1) => {\n const result = _arg1;\n if (result.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else if (result.fields[0][1] != null) {\n Toastr_toastError(result.fields[0][1], \"\");\n onError();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Move error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Move error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport function deletePlanFact(studentDay, daySegment, planFact, onSuccess, onError) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new StudentDays_StudentDayDeletePlanFactRequest(studentDay.StudentId, studentDay.CalendarDay, daySegment, planFact);\n return singleton.Bind(Remoting_handleNonAuth(studentDaysApi().deletePlanFact(request)), (_arg1) => {\n if (_arg1.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Delete error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Delete error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport function implementPlan(studentDay, dayFact, onSuccess, onError) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new StudentDays_StudentDayImplementPlanRequest(studentDay.StudentId, studentDay.CalendarDay, dayFact);\n return singleton.Bind(Remoting_handleNonAuth(studentDaysApi().implementPlan(request)), (_arg1) => {\n const result = _arg1;\n if (result.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else if (result.fields[0][1] != null) {\n Toastr_toastError(result.fields[0][1], \"\");\n onError();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Implement plan error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Implement plan error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport class StudentDayActions extends Record {\n constructor(UpdatedPlanFact, MovedPlanFact, DeletedPlanFact) {\n super();\n this.UpdatedPlanFact = UpdatedPlanFact;\n this.MovedPlanFact = MovedPlanFact;\n this.DeletedPlanFact = DeletedPlanFact;\n }\n}\n\nexport function StudentDayActions$reflection() {\n return record_type(\"DayPlanFactBox.StudentDayActions\", [], StudentDayActions, () => [[\"UpdatedPlanFact\", lambda_type(tuple_type(StudentDays_StudentDayKey$reflection(), DayPlanFact_DayPlanFact$reflection()), unit_type)], [\"MovedPlanFact\", lambda_type(tuple_type(class_type(\"System.Guid\"), tuple_type(CalendarDay_CalendarDay$reflection(), DaySegment_DaySegment$reflection()), tuple_type(CalendarDay_CalendarDay$reflection(), DaySegment_DaySegment$reflection()), PlanFact_PlanFact$reflection()), unit_type)], [\"DeletedPlanFact\", lambda_type(tuple_type(StudentDays_StudentDayKey$reflection(), DaySegment_DaySegment$reflection(), PlanFact_PlanFact$reflection()), unit_type)]]);\n}\n\nexport function Render(renderInputProps) {\n let matchValue;\n const actions = renderInputProps.actions;\n const planFact = renderInputProps.planFact;\n const daySegment = renderInputProps.daySegment;\n const studentDay = renderInputProps.studentDay;\n const dayPlanFact = renderInputProps.dayPlanFact;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setIsSaving = patternInput[1];\n useReact_useEffect_Z101E1A95(() => {\n setIsSaving(false);\n }, [dayPlanFact]);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(void 0);\n const setEditModel = patternInput_1[1];\n const editModel = patternInput_1[0];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(void 0);\n const setIsImplementPlan = patternInput_3[1];\n const isImplementPlan = patternInput_3[0];\n const patternInput_6 = useDrop(ofArray([new DropSpec$2(0, (matchValue = [dayPlanFact, planFact], (matchValue[0] != null) ? [] : ((matchValue[1].tag === 1) ? [\"WorkoutTemplate\", \"DayFact\"] : [\"WorkoutTemplate\", \"DayPlan\"]))), new DropSpec$2(1, (mon) => {\n patternInput_2[1](mon.isOver());\n const canDrop = mon.canDrop();\n return new CollectedDropProps(mon.isOver(), canDrop);\n }), new DropSpec$2(2, (dragItem) => {\n const matchValue_1 = dragItem.dragType;\n switch (matchValue_1) {\n case \"WorkoutTemplate\": {\n const workoutTemplate = dragItem.dragSrc;\n setIsSaving(true);\n const dayPlanFact_1 = (planFact.tag === 1) ? (new DayPlanFact_DayPlanFact(1, new DayFact_DayFact(daySegment, new Shape_Shape(4), \"\", workoutTemplate.Workout))) : (new DayPlanFact_DayPlanFact(0, new DayPlan_DayPlan(daySegment, workoutTemplate.Workout)));\n startImmediate(updatePlanFact(studentDay, dayPlanFact_1, () => {\n actions.UpdatedPlanFact([studentDay, dayPlanFact_1]);\n setIsSaving(false);\n }, () => {\n setIsSaving(false);\n }));\n break;\n }\n case \"DayPlan\": {\n const dragSrc = dragItem.dragSrc;\n const patternInput_4 = [item(0, dragSrc), item(1, dragSrc)];\n setIsSaving(true);\n const dayTo = [studentDay.CalendarDay, daySegment];\n const dayFrom = [patternInput_4[1], patternInput_4[0].DaySegment];\n startImmediate(movePlanFact(studentDay.StudentId, dayTo[0], dayTo[1], dayFrom[0], dayFrom[1], new PlanFact_PlanFact(0), () => {\n actions.MovedPlanFact([studentDay.StudentId, dayTo, dayFrom, new PlanFact_PlanFact(0)]);\n setIsSaving(false);\n }, () => {\n setIsSaving(false);\n }));\n break;\n }\n case \"DayFact\": {\n const dragSrc_1 = dragItem.dragSrc;\n const patternInput_5 = [item(0, dragSrc_1), item(1, dragSrc_1)];\n setIsSaving(true);\n const dayTo_1 = [studentDay.CalendarDay, daySegment];\n const dayFrom_1 = [patternInput_5[1], patternInput_5[0].DaySegment];\n startImmediate(movePlanFact(studentDay.StudentId, dayTo_1[0], dayTo_1[1], dayFrom_1[0], dayFrom_1[1], new PlanFact_PlanFact(1), () => {\n actions.MovedPlanFact([studentDay.StudentId, dayTo_1, dayFrom_1, new PlanFact_PlanFact(1)]);\n setIsSaving(false);\n }, () => {\n setIsSaving(false);\n }));\n break;\n }\n default: {\n }\n }\n })]));\n const onSave = (dayPlanFact_2) => {\n startImmediate(updatePlanFact(studentDay, dayPlanFact_2, () => {\n actions.UpdatedPlanFact([studentDay, dayPlanFact_2]);\n setEditModel(void 0);\n }, () => {\n }));\n };\n const onDelete = () => {\n startImmediate(deletePlanFact(studentDay, daySegment, planFact, () => {\n actions.DeletedPlanFact([studentDay, daySegment, planFact]);\n setEditModel(void 0);\n }, () => {\n }));\n };\n const onCancel = () => {\n setEditModel(void 0);\n };\n return react.createElement(react.Fragment, {}, ...toList(delay(() => {\n let props_1;\n return append(singleton_1((props_1 = ofArray([[\"ref\", patternInput_6[1]], [\"className\", \"py-1\"], [\"className\", \"px-0\"], [\"className\", \"mx-1\"], [\"className\", \"day-plan-fact-box\"], [\"style\", createObj(toList(delay(() => append(singleton_1([\"borderRadius\", 6 + \"px\"]), delay(() => (patternInput_2[0] ? singleton_1([\"backgroundColor\", \"#dbdbdb70\"]) : empty()))))))], [\"onClick\", (_arg1) => {\n setEditModel(dayPlanFact);\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let x_1, x;\n return (dayPlanFact == null) ? (patternInput[0] ? singleton_1(inlineSmall) : singleton_1(createElement(\"div\", {\n className: \"day-plan-fact-box-empty\",\n }))) : ((dayPlanFact.tag === 1) ? (x_1 = dayPlanFact.fields[0], singleton_1(createElement(Render_1, {\n workout: x_1.Workout,\n comment: x_1.CommentAfterTraining,\n shapeOpt: x_1.Shape,\n dragType: \"DayFact\",\n dragData: ofArray([x_1, studentDay.CalendarDay]),\n }))) : (x = dayPlanFact.fields[0], singleton_1(createElement(Render_1, {\n workout: x.Workout,\n comment: x.Workout.Comment,\n shapeOpt: void 0,\n dragType: \"DayPlan\",\n dragData: ofArray([x, studentDay.CalendarDay]),\n }))));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_1))))), delay(() => {\n let dayFact_1, dayPlan_2;\n return append((editModel == null) ? singleton_1(null) : ((editModel.tag === 1) ? (dayFact_1 = editModel.fields[0], singleton_1(createElement(Render_2, {\n dayFact: dayFact_1,\n sourceDayPlan: void 0,\n daySegment: dayFact_1.DaySegment,\n onSave: (arg_1) => {\n onSave(new DayPlanFact_DayPlanFact(1, arg_1));\n },\n onDelete: onDelete,\n onCancel: onCancel,\n }))) : (dayPlan_2 = editModel.fields[0], singleton_1(createElement(Render_3, {\n dayPlan: dayPlan_2,\n onSave: (arg) => {\n onSave(new DayPlanFact_DayPlanFact(0, arg));\n },\n onImplement: () => {\n setEditModel(void 0);\n setIsImplementPlan(dayPlan_2);\n },\n onDelete: onDelete,\n onCancel: onCancel,\n })))), delay(() => {\n if (isImplementPlan == null) {\n return singleton_1(null);\n }\n else {\n const dayPlan_3 = isImplementPlan;\n return singleton_1(createElement(Render_2, {\n dayFact: void 0,\n sourceDayPlan: dayPlan_3,\n daySegment: daySegment,\n onSave: (dayFact_2) => {\n startImmediate(implementPlan(studentDay, dayFact_2, () => {\n setIsImplementPlan(void 0);\n onSave(new DayPlanFact_DayPlanFact(1, dayFact_2));\n }, () => {\n setIsImplementPlan(void 0);\n }));\n },\n onDelete: () => {\n },\n onCancel: () => {\n setIsImplementPlan(void 0);\n },\n }));\n }\n }));\n }));\n })));\n}\n\n","import { Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { DurationModule_intToHMSString, Workout_getWorkoutTotalDuration, DurationModule_toInt, DaySegment_list, StudentDays_StudentDayKey, DayPlanFact_DayPlanFact, StudentDays_StudentDayInfo_Empty, Calendar_getCalendarDayFromWeekInfo, DaySegment_strDaySegment, Calendar_weekDaysRange, Calendar_getMonth3LetterTitle, Calendar_getWeekDay3LetterTitle, Calendar_getWeekDayDate, Calendar_getWeekStartDate, StudentDays_StudentDayInfo$reflection, Calendar_WeekInfo$reflection, PlanFact_PlanFact$reflection } from \"../../Shared/Shared.fs.js\";\nimport { record_type, list_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Render as Render_1, StudentDayActions$reflection } from \"./DayPlanFactBox.fs.js\";\nimport { borderStyleBottomGrey, borderStyleBottomPrimary, borderStylePrimary } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { map, collect, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { filter, sumBy as sumBy_1, map as map_2, tryFind, ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { map as map_1, defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { day as day_3, month as month_1 } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport { interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { map as map_3, sum, sumBy, tryFind as tryFind_1 } from \"../.fable/fable-library.3.2.1/Array.js\";\n\nexport class WeekParams extends Record {\n constructor(PlanFact, WeekInfo, StudentId, StudentDays, Actions) {\n super();\n this.PlanFact = PlanFact;\n this.WeekInfo = WeekInfo;\n this.StudentId = StudentId;\n this.StudentDays = StudentDays;\n this.Actions = Actions;\n }\n}\n\nexport function WeekParams$reflection() {\n return record_type(\"CalendarWeek.WeekParams\", [], WeekParams, () => [[\"PlanFact\", PlanFact_PlanFact$reflection()], [\"WeekInfo\", Calendar_WeekInfo$reflection()], [\"StudentId\", class_type(\"System.Guid\")], [\"StudentDays\", list_type(StudentDays_StudentDayInfo$reflection())], [\"Actions\", StudentDayActions$reflection()]]);\n}\n\nexport function Render(weekParams) {\n const props_20 = ofArray([[\"className\", \"px-2\"], [\"className\", \"pb-0\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_8;\n return append(singleton((props_8 = ofArray([[\"className\", \"has-text-centered\"], [\"className\", \"is-gapless\"], [\"className\", \"mb-2\"], [\"className\", \"pb-3\"], borderStyleBottomPrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_1([\"className\", \"is-1\"]))))), delay(() => {\n const weekStartDate = Calendar_getWeekStartDate(weekParams.WeekInfo);\n return collect((weekDay) => {\n let props_6, props_2, props_4;\n const weekDayDate = Calendar_getWeekDayDate(weekStartDate, weekDay);\n return singleton((props_6 = ofArray([[\"className\", \"py-1\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"has-text-black\"], [\"className\", \"is-size-7\"], [\"children\", defaultArg(Calendar_getWeekDay3LetterTitle(weekDay), \"\")]]), createElement(\"p\", createObj(Helpers_combineClasses(\"\", props_2)))), (props_4 = toList(delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"className\", \"is-size-6\"]), delay(() => {\n const month = defaultArg(Calendar_getMonth3LetterTitle(month_1(weekDayDate)), \"\");\n return singleton([\"children\", toText(interpolate(\"%P() %P()\", [day_3(weekDayDate), month]))]);\n })))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_4))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_6)))));\n }, Calendar_weekDaysRange);\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_8))))), delay(() => append(map((daySegment) => {\n const props_12 = ofArray([[\"className\", \"is-gapless\"], [\"className\", \"is-vcentered\"], [\"className\", \"py-1\"], [\"className\", \"my-2\"], borderStyleBottomGrey, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_10;\n return append(singleton((props_10 = ofArray([[\"className\", \"is-1\"], [\"children\", DaySegment_strDaySegment(daySegment)]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_10))))), delay(() => collect((weekDay_1) => {\n const calendarDay = Calendar_getCalendarDayFromWeekInfo(weekParams.WeekInfo, weekDay_1);\n const studentDay = defaultArg(tryFind((x) => equals(x.CalendarDay, calendarDay), weekParams.StudentDays), StudentDays_StudentDayInfo_Empty(weekParams.StudentId, calendarDay));\n const dayPlanFact = (weekParams.PlanFact.tag === 1) ? map_1((arg0_1) => (new DayPlanFact_DayPlanFact(1, arg0_1)), tryFind_1((fact) => equals(fact.DaySegment, daySegment), studentDay.DayFacts)) : map_1((arg0) => (new DayPlanFact_DayPlanFact(0, arg0)), tryFind_1((plan) => equals(plan.DaySegment, daySegment), studentDay.DayPlans));\n const studentDayKey = new StudentDays_StudentDayKey(studentDay.StudentId, studentDay.CalendarDay);\n return singleton(createElement(Render_1, {\n dayPlanFact: dayPlanFact,\n studentDay: studentDayKey,\n daySegment: daySegment,\n planFact: weekParams.PlanFact,\n actions: weekParams.Actions,\n }));\n }, Calendar_weekDaysRange)));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_12)));\n }, DaySegment_list), delay(() => {\n let props_18;\n return singleton((props_18 = ofArray([[\"className\", \"is-gapless\"], [\"className\", \"py-2\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_1([\"className\", \"is-1\"]))))), delay(() => {\n const durations = (weekParams.PlanFact.tag === 1) ? map_2((day_1) => [day_1.CalendarDay.Day, sumBy((x_3) => DurationModule_toInt(Workout_getWorkoutTotalDuration(x_3.Workout)), day_1.DayFacts, {\n GetZero: () => 0,\n Add: (x_4, y_1) => (x_4 + y_1),\n })], weekParams.StudentDays) : map_2((day) => [day.CalendarDay.Day, sum(map_3((x_1) => DurationModule_toInt(Workout_getWorkoutTotalDuration(x_1.Workout)), day.DayPlans, Int32Array), {\n GetZero: () => 0,\n Add: (x_2, y) => (x_2 + y),\n })], weekParams.StudentDays);\n return collect((weekDay_2) => {\n let props_16;\n return singleton((props_16 = ofArray([[\"className\", \"py-1\"], [\"className\", \"has-text-centered\"], [\"children\", DurationModule_intToHMSString(sumBy_1((tuple) => tuple[1], filter((tupledArg) => (tupledArg[0] === weekDay_2), durations), {\n GetZero: () => 0,\n Add: (x_5, y_2) => (x_5 + y_2),\n }))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_16)))));\n }, Calendar_weekDaysRange);\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_18)))));\n }))));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_20)));\n}\n\n","import { Union, Record } from \"./.fable/fable-library.3.2.1/Types.js\";\nimport { union_type, tuple_type, record_type, list_type, option_type, int32_type, string_type, class_type } from \"./.fable/fable-library.3.2.1/Reflection.js\";\nimport { Calendar_weekDaysRange, PlanFact_list, Shared_CalendarDay_CalendarDay__CalendarDay_WeekInfo, PlanFact_strPlanFact, StudentDays_StudentDayListRequest, Calendar_WeekInfo_get_Current, Calendar_periodWeeksRange, Calendar_getYearWeekIndex, Calendar_WeekInfo, Calendar_PeriodInfo__Next, Calendar_PeriodInfo__PreviousN_Z524259A4, Common_str, Calendar_PeriodInfo_get_Current, Calendar_getWeekInfo, Calendar_PeriodInfo__Previous, DayPlanFact_DayPlanFact, DayHelpers_withDaySegment, DayHelpers_deletePlanFact, StudentDays_StudentDayInfo, DayHelpers_addUpdatePlanFact, StudentDays_StudentDayInfo_Empty, PlanFact_PlanFact$reflection, DaySegment_DaySegment$reflection, CalendarDay_CalendarDay$reflection, DayPlanFact_DayPlanFact$reflection, StudentDays_StudentDayKey$reflection, StudentDays_StudentDayInfo$reflection, Calendar_PeriodInfo$reflection } from \"../Shared/Shared.fs.js\";\nimport { Cmd_none, Cmd_batch } from \"./.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { filter, cons, ofArray, singleton, append, map, tryFind, empty } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { int32ToString, compare, createObj, partialApply, equals } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { bind, map as map_1, defaultArg } from \"./.fable/fable-library.3.2.1/Option.js\";\nimport { equalsWith, tryFind as tryFind_1 } from \"./.fable/fable-library.3.2.1/Array.js\";\nimport { toPath, Route, navigateTo } from \"./Router.fs.js\";\nimport { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { join, interpolate, toText } from \"./.fable/fable-library.3.2.1/String.js\";\nimport { createElement } from \"react\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"./.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { empty as empty_1, collect, map as map_2, singleton as singleton_1, append as append_1, delay, toList } from \"./.fable/fable-library.3.2.1/Seq.js\";\nimport { rangeDouble } from \"./.fable/fable-library.3.2.1/Range.js\";\nimport { View_renderSelectOptionDisabled } from \"./Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"./.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { View_Render } from \"./Components/PassPanel.fs.js\";\nimport { StatisticWithTabs } from \"./Teacher/Statistic.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"./.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { singleton as singleton_2 } from \"./.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Remoting_handleNonAuth } from \"./Extensions.fs.js\";\nimport { studentsApi, studentDaysApi } from \"./Communication.fs.js\";\nimport { loader } from \"./Loader.fs.js\";\nimport { WeekParams, Render } from \"./Components/CalendarWeek.fs.js\";\nimport { StudentDayActions } from \"./Components/DayPlanFactBox.fs.js\";\n\nexport class Types_State extends Record {\n constructor(StudentId, StudentFullname, PeriodInfo, PeriodWeek, StudentDays) {\n super();\n this.StudentId = StudentId;\n this.StudentFullname = StudentFullname;\n this.PeriodInfo = PeriodInfo;\n this.PeriodWeek = PeriodWeek;\n this.StudentDays = StudentDays;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"Overview.Types.State\", [], Types_State, () => [[\"StudentId\", class_type(\"System.Guid\")], [\"StudentFullname\", string_type], [\"PeriodInfo\", Calendar_PeriodInfo$reflection()], [\"PeriodWeek\", option_type(int32_type)], [\"StudentDays\", list_type(StudentDays_StudentDayInfo$reflection())]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"UpdatedPlanFact\", \"MovedPlanFact\", \"DeletedPlanFact\", \"NavigateToPeriod\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"Overview.Types.Msg\", [], Types_Msg, () => [[[\"Item1\", StudentDays_StudentDayKey$reflection()], [\"Item2\", DayPlanFact_DayPlanFact$reflection()]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", tuple_type(CalendarDay_CalendarDay$reflection(), DaySegment_DaySegment$reflection())], [\"Item3\", tuple_type(CalendarDay_CalendarDay$reflection(), DaySegment_DaySegment$reflection())], [\"Item4\", PlanFact_PlanFact$reflection()]], [[\"Item1\", StudentDays_StudentDayKey$reflection()], [\"Item2\", DaySegment_DaySegment$reflection()], [\"Item3\", PlanFact_PlanFact$reflection()]], [[\"Item\", Calendar_PeriodInfo$reflection()]]]);\n}\n\nexport function State_init(periodInfo, periodWeek, student, studentDays) {\n return [new Types_State(student.Id, student.FullName, periodInfo, periodWeek, studentDays), Cmd_batch(empty())];\n}\n\nexport function State_update(msg, state) {\n const tryFindStudentDay = (f, days) => tryFind(f, days);\n const equalsCalendarDay = (calendarDay, x) => equals(x.CalendarDay, calendarDay);\n const updateCalendarDay = (calendarDay_1, f_1, days_1) => map((x_1) => {\n if (equalsCalendarDay(calendarDay_1, x_1)) {\n return f_1(x_1);\n }\n else {\n return x_1;\n }\n }, days_1);\n const addOrUpdateCalendarDay = (calendarDay_2, f_2, days_2) => {\n const matchValue = tryFindStudentDay(partialApply(1, equalsCalendarDay, [calendarDay_2]), state.StudentDays);\n if (matchValue == null) {\n return append(days_2, singleton(f_2(StudentDays_StudentDayInfo_Empty(state.StudentId, calendarDay_2))));\n }\n else {\n return map((x_2) => {\n if (equalsCalendarDay(calendarDay_2, x_2)) {\n return f_2(x_2);\n }\n else {\n return x_2;\n }\n }, days_2);\n }\n };\n const addOrUpdateDayPlanFact = (dayPlanFact, x_3) => {\n const patternInput = DayHelpers_addUpdatePlanFact(dayPlanFact, x_3.DayPlans, x_3.DayFacts);\n return new StudentDays_StudentDayInfo(x_3.StudentId, x_3.CalendarDay, patternInput[0], patternInput[1], x_3.DayData);\n };\n const deleteDayPlanFact = (daySegment, planFact, x_4) => {\n const patternInput_1 = DayHelpers_deletePlanFact(daySegment, planFact, x_4.DayPlans, x_4.DayFacts);\n return new StudentDays_StudentDayInfo(x_4.StudentId, x_4.CalendarDay, patternInput_1[0], patternInput_1[1], x_4.DayData);\n };\n switch (msg.tag) {\n case 1: {\n const planFact_1 = msg.fields[3];\n const dayTo = msg.fields[1];\n const dayFrom = msg.fields[2];\n const daySegmentFrom = dayFrom[1];\n const calendarDayFrom = dayFrom[0];\n return [new Types_State(state.StudentId, state.StudentFullname, state.PeriodInfo, state.PeriodWeek, defaultArg(map_1((days_5) => updateCalendarDay(calendarDayFrom, (x_6) => deleteDayPlanFact(daySegmentFrom, planFact_1, x_6), days_5), map_1((planFact_2) => addOrUpdateCalendarDay(dayTo[0], partialApply(1, addOrUpdateDayPlanFact, [planFact_2]), state.StudentDays), map_1((dayPlanFact_2) => DayHelpers_withDaySegment(dayTo[1], dayPlanFact_2), bind((x_5) => {\n if (planFact_1.tag === 1) {\n return map_1((arg0_1) => (new DayPlanFact_DayPlanFact(1, arg0_1)), tryFind_1((d_1) => equals(d_1.DaySegment, daySegmentFrom), x_5.DayFacts));\n }\n else {\n return map_1((arg0) => (new DayPlanFact_DayPlanFact(0, arg0)), tryFind_1((d) => equals(d.DaySegment, daySegmentFrom), x_5.DayPlans));\n }\n }, tryFindStudentDay(partialApply(1, equalsCalendarDay, [calendarDayFrom]), state.StudentDays))))), state.StudentDays)), Cmd_none()];\n }\n case 2: {\n return [new Types_State(state.StudentId, state.StudentFullname, state.PeriodInfo, state.PeriodWeek, updateCalendarDay(msg.fields[0].CalendarDay, partialApply(1, deleteDayPlanFact, [msg.fields[1], msg.fields[2]]), state.StudentDays)), Cmd_none()];\n }\n case 3: {\n return [state, navigateTo(new Route(29, state.StudentId, msg.fields[0]))];\n }\n default: {\n return [new Types_State(state.StudentId, state.StudentFullname, state.PeriodInfo, state.PeriodWeek, addOrUpdateCalendarDay(msg.fields[0].CalendarDay, partialApply(1, addOrUpdateDayPlanFact, [msg.fields[1]]), state.StudentDays)), Cmd_none()];\n }\n }\n}\n\nexport function View_renderNavigation(periodInfo, periodWeek, studentId, studentFullname, dispatch) {\n let props, props_23, props_21;\n const props_25 = singleton([\"children\", Interop_reactApi.Children.toArray([(props = ofArray([[\"className\", \"is-2\"], [\"className\", \"has-text-weight-bold\"], [\"className\", \"pl-3\"], [\"children\", toText(interpolate(\"for %P(), %P()/%P()\", [studentFullname, periodInfo.PeriodYear, (periodInfo.PeriodYear + 1) % 100]))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_23 = ofArray([[\"className\", \"pl-0\"], [\"children\", Interop_reactApi.Children.toArray([(props_21 = ofArray([[\"className\", \"are-small\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_4;\n return append_1(singleton_1((props_4 = toList(delay(() => append_1(singleton_1([\"href\", toPath((periodWeek == null) ? (new Route(29, studentId, Calendar_PeriodInfo__Previous(periodInfo))) : (new Route(30, studentId, Calendar_getWeekInfo(Calendar_PeriodInfo__Previous(periodInfo), 0))))]), delay(() => {\n let elms;\n return singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = singleton(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-chevron-left\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]);\n })))), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_4))))), delay(() => {\n let patternInput;\n const periodToOption = (strValue, periodInfo_1) => [strValue, toText(interpolate(\"Period %P() - %P() / %P()\", [periodInfo_1.Period + 1, periodInfo_1.PeriodYear, periodInfo_1.PeriodYear + 1])), false, periodInfo_1];\n const periods = toList(delay(() => append_1(singleton_1(periodToOption(\"current\", Calendar_PeriodInfo_get_Current())), delay(() => append_1(singleton_1([\"default\", \"----- Välj period -----\", true, void 0]), delay(() => map_2((i) => periodToOption(Common_str(i), Calendar_PeriodInfo__PreviousN_Z524259A4(periodInfo, i)), toList(rangeDouble(1, 1, 11)))))))));\n const options = map((tupledArg) => View_renderSelectOptionDisabled(tupledArg[0], tupledArg[1], tupledArg[2]), periods);\n return append_1(singleton_1(createElement(\"div\", {\n style: {\n marginRight: 0.5 + \"rem\",\n marginBottom: 0.5 + \"rem\",\n },\n children: Interop_reactApi.Children.toArray([(patternInput = Helpers_extractClasses(ofArray([[\"className\", \"is-small\"], [\"value\", \"default\"], [\"onChange\", (ev) => {\n const x = ev.target.value;\n void map_1((period_1) => dispatch(new Types_Msg(3, period_1)), bind((tupledArg_2) => tupledArg_2[3], tryFind((tupledArg_1) => (tupledArg_1[0] === x), periods)));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(options))]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))]),\n })), delay(() => {\n let props_13;\n return append_1(singleton_1((props_13 = toList(delay(() => append_1(singleton_1([\"href\", toPath((periodWeek == null) ? (new Route(29, studentId, Calendar_PeriodInfo__Next(periodInfo))) : (new Route(30, studentId, Calendar_getWeekInfo(Calendar_PeriodInfo__Next(periodInfo), 0))))]), delay(() => {\n let elms_1;\n return singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-chevron-right\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]);\n })))), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_13))))), delay(() => append_1(collect((weekIndex) => {\n let props_15;\n const itemWeekInfo = new Calendar_WeekInfo(periodInfo, weekIndex);\n return singleton_1((props_15 = toList(delay(() => append_1(equals(periodWeek, weekIndex) ? singleton_1([\"className\", \"is-primary\"]) : empty_1(), delay(() => append_1(singleton_1([\"href\", toPath(new Route(30, studentId, itemWeekInfo))]), delay(() => singleton_1([\"children\", toText(interpolate(\"V. %P()\", [Calendar_getYearWeekIndex(itemWeekInfo)]))]))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_15)))));\n }, Calendar_periodWeeksRange), delay(() => {\n let props_17;\n return append_1(singleton_1((props_17 = toList(delay(() => append_1(equals(periodWeek, void 0) ? singleton_1([\"className\", \"is-primary\"]) : empty_1(), delay(() => append_1(singleton_1([\"children\", \"Översikt\"]), delay(() => singleton_1([\"href\", toPath(new Route(29, studentId, periodInfo))]))))))), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_17))))), delay(() => {\n let props_19;\n return singleton_1((props_19 = ofArray([[\"href\", toPath(new Route(30, studentId, Calendar_WeekInfo_get_Current()))], [\"children\", \"Idag\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_19)))));\n }));\n }))));\n }));\n }));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_21))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_23))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_25)));\n}\n\nexport function View_renderMainLayout(view_renderMainLayoutInputProps) {\n let props_4, elms, props_2;\n const renderContent = view_renderMainLayoutInputProps.renderContent;\n const student = view_renderMainLayoutInputProps.student;\n const periodWeek = view_renderMainLayoutInputProps.periodWeek;\n const periodInfo = view_renderMainLayoutInputProps.periodInfo;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(periodInfo, periodWeek, student, view_renderMainLayoutInputProps.studentDays), (msg, state) => State_update(msg, state), []);\n const state_1 = patternInput[0];\n const dispatch = patternInput[1];\n const props_6 = singleton([\"children\", Interop_reactApi.Children.toArray([View_renderNavigation(periodInfo, periodWeek, student.Id, student.FullName, dispatch), (props_4 = singleton([\"children\", Interop_reactApi.Children.toArray([(elms = singleton(renderContent(state_1)(dispatch)), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_2 = ofArray([[\"style\", {\n maxWidth: 25 + \"%\",\n }], [\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n style: {\n position: \"sticky\",\n top: 10 + \"px\",\n },\n children: Interop_reactApi.Children.toArray([createElement(View_Render, null), createElement(StatisticWithTabs, {\n overviewList: state_1.StudentDays,\n studentId: student.Id,\n periodInfo: periodInfo,\n periodWeek: periodWeek,\n })]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_4))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_6)));\n}\n\nexport function View_renderMainLayoutWithLoad(view_renderMainLayoutWithLoadInputProps) {\n const renderContent = view_renderMainLayoutWithLoadInputProps.renderContent;\n const periodWeek = view_renderMainLayoutWithLoadInputProps.periodWeek;\n const periodInfo = view_renderMainLayoutWithLoadInputProps.periodInfo;\n const studentId = view_renderMainLayoutWithLoadInputProps.studentId;\n const query = new StudentDays_StudentDayListRequest(studentId, periodInfo.PeriodYear, periodInfo.Period, periodWeek, void 0);\n const dependenciesArray = [studentId, periodInfo.PeriodYear, periodInfo.Period, periodWeek];\n const paramsDef = useFeliz_React__React_useDeferred_Static_2344FC52(singleton_2.Delay(() => singleton_2.Return(dependenciesArray)), dependenciesArray);\n const matchValue = [useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentDaysApi().list(query)), dependenciesArray), useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentsApi().getSettings(studentId)), [studentId]), paramsDef];\n let pattern_matching_result, error, error_1, paramsDef_2, student_2, studentDays_2;\n if (matchValue[0].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[0].fields[0];\n }\n else if (matchValue[0].tag === 2) {\n if (matchValue[1].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 0) {\n if (matchValue[2].tag === 2) {\n if (equalsWith((x, y) => compare(x, y), matchValue[2].fields[0], dependenciesArray)) {\n pattern_matching_result = 2;\n paramsDef_2 = matchValue[2].fields[0];\n student_2 = matchValue[1].fields[0].fields[0];\n studentDays_2 = matchValue[0].fields[0];\n }\n else {\n pattern_matching_result = 3;\n }\n }\n else {\n pattern_matching_result = 3;\n }\n }\n else {\n pattern_matching_result = 1;\n error_1 = matchValue[1].fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 3;\n }\n }\n else if (matchValue[1].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 1) {\n pattern_matching_result = 1;\n error_1 = matchValue[1].fields[0].fields[0];\n }\n else {\n pattern_matching_result = 3;\n }\n }\n else {\n pattern_matching_result = 3;\n }\n switch (pattern_matching_result) {\n case 0: {\n const value = error.message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 1: {\n return createElement(\"div\", {\n children: [error_1],\n });\n }\n case 2: {\n return createElement(View_renderMainLayout, {\n periodInfo: periodInfo,\n periodWeek: periodWeek,\n student: student_2,\n studentDays: studentDays_2,\n renderContent: renderContent,\n });\n }\n case 3: {\n return loader(\"big\");\n }\n }\n}\n\nexport function View_renderPeriodLayout(state, dispatch) {\n const elms = toList(delay(() => map_2((planFact) => {\n const props_2 = singleton([\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props;\n return append_1(singleton_1((props = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", PlanFact_strPlanFact(planFact)]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props))))), delay(() => collect((periodWeek) => {\n const weekInfo = Calendar_getWeekInfo(state.PeriodInfo, periodWeek);\n return singleton_1(createElement(Render, new WeekParams(planFact, weekInfo, state.StudentId, filter((x) => equals(Shared_CalendarDay_CalendarDay__CalendarDay_WeekInfo(x.CalendarDay), weekInfo), state.StudentDays), new StudentDayActions((arg) => {\n let tupledArg;\n dispatch((tupledArg = arg, new Types_Msg(0, tupledArg[0], tupledArg[1])));\n }, (arg_1) => {\n let tupledArg_1;\n dispatch((tupledArg_1 = arg_1, new Types_Msg(1, tupledArg_1[0], tupledArg_1[1], tupledArg_1[2], tupledArg_1[3])));\n }, (arg_2) => {\n let tupledArg_2;\n dispatch((tupledArg_2 = arg_2, new Types_Msg(2, tupledArg_2[0], tupledArg_2[1], tupledArg_2[2])));\n }))));\n }, Calendar_periodWeeksRange)));\n }))))]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2)));\n }, PlanFact_list)));\n return createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function View_renderWeekLayout(weekInfo, state, dispatch) {\n const studentDays = state.StudentDays;\n const children = toList(delay(() => append_1(collect((planFact) => {\n let props;\n return append_1(singleton_1((props = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", PlanFact_strPlanFact(planFact)]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props))))), delay(() => singleton_1(createElement(Render, new WeekParams(planFact, weekInfo, state.StudentId, filter((x) => equals(Shared_CalendarDay_CalendarDay__CalendarDay_WeekInfo(x.CalendarDay), weekInfo), studentDays), new StudentDayActions((arg) => {\n let tupledArg;\n dispatch((tupledArg = arg, new Types_Msg(0, tupledArg[0], tupledArg[1])));\n }, (arg_1) => {\n let tupledArg_1;\n dispatch((tupledArg_1 = arg_1, new Types_Msg(1, tupledArg_1[0], tupledArg_1[1], tupledArg_1[2], tupledArg_1[3])));\n }, (arg_2) => {\n let tupledArg_2;\n dispatch((tupledArg_2 = arg_2, new Types_Msg(2, tupledArg_2[0], tupledArg_2[1], tupledArg_2[2])));\n }))))));\n }, PlanFact_list), delay(() => {\n let props_20, props_18;\n return singleton_1((props_20 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"Övrigt\"]])))), (props_18 = ofArray([[\"className\", \"is-gapless\"], [\"className\", \"is-centered\"], [\"className\", \"pb-3\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_8;\n return append_1(singleton_1((props_8 = ofArray([[\"className\", \"is-1\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", {\n className: \"\",\n children: \"Sjuk\",\n }), createElement(\"p\", {\n className: \"\",\n children: \"Skadad\",\n }), createElement(\"p\", {\n className: \"\",\n children: \"Resedag\",\n }), createElement(\"p\", {\n className: \"\",\n children: \"Vilopuls\",\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_8))))), delay(() => collect((weekDay) => {\n let props_16, s_4, s_5, s_6, s_7;\n const dayData = bind((x_2) => x_2.DayData, tryFind((x_1) => (x_1.CalendarDay.Day === weekDay), studentDays));\n return singleton_1((props_16 = ofArray([[\"className\", \"has-text-centered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", \"\"]])))), (s_4 = defaultArg(map_1((x_3) => {\n if (x_3.IsSick) {\n return \"+\";\n }\n else {\n return \"-\";\n }\n }, dayData), \"-\"), createElement(\"p\", {\n className: \"\",\n children: s_4,\n })), (s_5 = defaultArg(map_1((x_4) => {\n if (x_4.IsDamaged) {\n return \"+\";\n }\n else {\n return \"-\";\n }\n }, dayData), \"-\"), createElement(\"p\", {\n className: \"\",\n children: s_5,\n })), (s_6 = defaultArg(map_1((x_5) => {\n if (x_5.IsTravelDay) {\n return \"+\";\n }\n else {\n return \"-\";\n }\n }, dayData), \"-\"), createElement(\"p\", {\n className: \"\",\n children: s_6,\n })), (s_7 = defaultArg(map_1((x_6) => int32ToString(x_6.Heartrate), dayData), \"-\"), createElement(\"p\", {\n className: \"\",\n children: s_7,\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_16)))));\n }, Calendar_weekDaysRange)));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_18))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_20)))));\n }))));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function View_renderPeriod(studentId, periodInfo, _user) {\n return createElement(View_renderMainLayoutWithLoad, {\n studentId: studentId,\n periodInfo: periodInfo,\n periodWeek: void 0,\n renderContent: (state) => ((dispatch) => View_renderPeriodLayout(state, dispatch)),\n });\n}\n\nexport function View_renderWeek(studentId, weekInfo, _user) {\n return createElement(View_renderMainLayoutWithLoad, {\n studentId: studentId,\n periodInfo: weekInfo.PeriodInfo,\n periodWeek: weekInfo.PeriodWeek,\n renderContent: (state) => ((dispatch) => View_renderWeekLayout(weekInfo, state, dispatch)),\n });\n}\n\n","import { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { DayPlanFact_DayPlanFact, Workout_getWorkoutTotalDuration, DurationModule_toHMSString } from \"../../Shared/Shared.fs.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Render as Render_1 } from \"../Components/DayFactEdit.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\nimport { updatePlanFact } from \"../Components/DayPlanFactBox.fs.js\";\n\nexport function Render(renderInputProps) {\n const onSave = renderInputProps.onSave;\n const daySegment = renderInputProps.daySegment;\n const studentDayKey = renderInputProps.studentDayKey;\n const isDayFactExists = renderInputProps.isDayFactExists;\n const dayPlan = renderInputProps.dayPlan;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setIsImplement = patternInput[1];\n if (dayPlan == null) {\n return null;\n }\n else {\n const dayPlan_1 = dayPlan;\n const children_1 = toList(delay(() => {\n let props_6;\n return append(singleton((props_6 = toList(delay(() => append(singleton([\"className\", \"mb-0\"]), delay(() => append((!isDayFactExists) ? singleton([\"onClick\", (_arg1) => {\n setIsImplement(true);\n }]) : empty(), delay(() => append(singleton([\"className\", \"has-text-primary\"]), delay(() => append(singleton([\"className\", \"has-text-centered\"]), delay(() => append(singleton([\"style\", {\n border: (((1 + \"px \") + \"dashed\") + \" \") + \"#808080\",\n }]), delay(() => {\n let elms, props_4;\n return singleton([\"children\", Interop_reactApi.Children.toArray([(elms = singleton_1(createElement(\"i\", createObj(toList(delay(() => (isDayFactExists ? singleton([\"className\", join(\" \", [\"fa\", \"fa-check\"])]) : singleton([\"className\", join(\" \", [\"fa\", \"fa-arrow-right\"])]))))))), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_4 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n children: [dayPlan_1.Workout.Title],\n }), createElement(\"span\", {\n style: {\n opacity: 0.7,\n },\n className: \"ml-2\",\n children: DurationModule_toHMSString(Workout_getWorkoutTotalDuration(dayPlan_1.Workout)),\n })])]), createElement(\"p\", createObj(Helpers_combineClasses(\"\", props_4))))])]);\n })))))))))))), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_6))))), delay(() => (patternInput[0] ? singleton(createElement(Render_1, {\n dayFact: void 0,\n sourceDayPlan: dayPlan_1,\n daySegment: daySegment,\n onSave: (dayFact) => {\n startImmediate(updatePlanFact(studentDayKey, new DayPlanFact_DayPlanFact(1, dayFact), () => {\n setIsImplement(false);\n onSave(dayFact);\n }, () => {\n setIsImplement(false);\n }));\n },\n onDelete: () => {\n },\n onCancel: () => {\n setIsImplement(false);\n },\n })) : empty())));\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_1)),\n });\n }\n}\n\n","import { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { PlanFact_PlanFact, DayPlanFact_DayPlanFact, Workout_getWorkoutTotalDuration, DurationModule_toHMSString } from \"../../Shared/Shared.fs.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Render as Render_1 } from \"../Components/DayFactEdit.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\nimport { deletePlanFact, updatePlanFact } from \"../Components/DayPlanFactBox.fs.js\";\n\nexport function Render(renderInputProps) {\n const onDelete = renderInputProps.onDelete;\n const onSave = renderInputProps.onSave;\n const daySegment = renderInputProps.daySegment;\n const studentDayKey = renderInputProps.studentDayKey;\n const dayFact = renderInputProps.dayFact;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setIsEdit = patternInput[1];\n const children_2 = toList(delay(() => {\n let props_9;\n return append(singleton((props_9 = ofArray([[\"className\", \"mb-0\"], [\"onClick\", (_arg1) => {\n setIsEdit(true);\n }], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-centered\"], [\"style\", {\n border: (((1 + \"px \") + \"dashed\") + \" \") + \"#808080\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let elms_1, elms;\n if (dayFact == null) {\n return append(singleton((elms_1 = singleton_1(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-plus\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))), delay(() => singleton(createElement(\"p\", {\n className: \"\",\n children: \"Lägg till träning\",\n }))));\n }\n else {\n const dayFact_1 = dayFact;\n return append(singleton((elms = singleton_1(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-pen\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), delay(() => {\n let props_4;\n return singleton((props_4 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n children: [dayFact_1.Workout.Title],\n }), createElement(\"span\", {\n style: {\n opacity: 0.7,\n },\n className: \"ml-2\",\n children: DurationModule_toHMSString(Workout_getWorkoutTotalDuration(dayFact_1.Workout)),\n })])]), createElement(\"p\", createObj(Helpers_combineClasses(\"\", props_4)))));\n }));\n }\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_9))))), delay(() => (patternInput[0] ? singleton(createElement(Render_1, {\n dayFact: dayFact,\n sourceDayPlan: void 0,\n daySegment: daySegment,\n onSave: (dayFact_2) => {\n startImmediate(updatePlanFact(studentDayKey, new DayPlanFact_DayPlanFact(1, dayFact_2), () => {\n setIsEdit(false);\n onSave(dayFact_2);\n }, () => {\n setIsEdit(false);\n }));\n },\n onDelete: () => {\n startImmediate(deletePlanFact(studentDayKey, daySegment, new PlanFact_PlanFact(1), () => {\n setIsEdit(false);\n onDelete();\n }, () => {\n setIsEdit(false);\n }));\n },\n onCancel: () => {\n setIsEdit(false);\n },\n })) : empty())));\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n}\n\n","import { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { DayData_DayData, DayData_DayData_get_Default, Menstruation_parseMenstruationStr, Menstruation_displayMenstruation, Menstruation_list, SleepQuality_parseSleepQualityStr, SleepQuality_displaySleepQuality, Common_str, SleepQuality_list, StudentDays_StudentDayUpdateDataRequest } from \"../../Shared/Shared.fs.js\";\nimport { Toastr_toastError, Toastr_toastSuccess, Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { studentDaysApi } from \"../Communication.fs.js\";\nimport { View_checkBoxField, View_DUSelect } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { round, equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_1, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\n\nexport function saveDayData(dayData, studentDayKey, onSuccess) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new StudentDays_StudentDayUpdateDataRequest(studentDayKey.StudentId, studentDayKey.CalendarDay, dayData);\n return singleton.Bind(Remoting_handleNonAuth(studentDaysApi().updateData(request)), (_arg1) => singleton.Return((_arg1.tag === 0) ? (Toastr_toastSuccess(\"Saved\", \"\"), onSuccess(dayData)) : Toastr_toastError(\"Save day data error\", \"\")));\n }), (_arg2) => {\n Toastr_toastError(\"Save day data error\", \"\");\n return singleton.Zero();\n }));\n}\n\nexport function SleepQualityEditor(value, onChange) {\n return View_DUSelect(\"Sömnkvalité\", SleepQuality_list, (x) => Common_str(x), (x_1) => SleepQuality_displaySleepQuality(x_1), (_arg1) => SleepQuality_parseSleepQualityStr(_arg1), value, onChange);\n}\n\nexport function MenstruationEditor(value, onChange) {\n return View_DUSelect(\"Menstruation\", Menstruation_list, (x) => Common_str(x), (x_1) => Menstruation_displayMenstruation(x_1), (_arg1) => Menstruation_parseMenstruationStr(_arg1), value, onChange);\n}\n\nexport function Render(renderInputProps) {\n let elms_5, elms_1, props_7, props_2, elms, props_4, value_25, elms_4, props_24, props_12, elms_3, props_21, props_16, props_14, value_62, elms_2, elms_8, elms_6, elms_7, elms_9, props_33;\n const onSave = renderInputProps.onSave;\n const studentDayKey = renderInputProps.studentDayKey;\n const patternInput = useFeliz_React__React_useState_Static_1505(defaultArg(renderInputProps.dayData, DayData_DayData_get_Default()));\n const setEditModel = patternInput[1];\n const editModel = patternInput[0];\n const children_10 = ofArray([View_checkBoxField(\"Sjuk\", editModel.IsSick, (value_1) => {\n setEditModel(new DayData_DayData(value_1, editModel.IsDamaged, editModel.IsTravelDay, editModel.Heartrate, editModel.Sleep, editModel.SleepQuality, editModel.Menstruation));\n }), View_checkBoxField(\"Skadad\", editModel.IsDamaged, (value_2) => {\n setEditModel(new DayData_DayData(editModel.IsSick, value_2, editModel.IsTravelDay, editModel.Heartrate, editModel.Sleep, editModel.SleepQuality, editModel.Menstruation));\n }), View_checkBoxField(\"Resedag\", editModel.IsTravelDay, (value_3) => {\n setEditModel(new DayData_DayData(editModel.IsSick, editModel.IsDamaged, value_3, editModel.Heartrate, editModel.Sleep, editModel.SleepQuality, editModel.Menstruation));\n }), (elms_5 = ofArray([(elms_1 = singleton_1((props_7 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"children\", \"Vilopuls\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_2)))), (elms = singleton_1((props_4 = ofArray([[\"className\", \"is-size-7\"], [\"step\", 1], [\"min\", 0], [\"className\", \"has-text-left\"], [\"className\", \"has-text-grey\"], (value_25 = (editModel.Heartrate | 0), [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_25)) : false) {\n e.value = (value_25 | 0);\n }\n }]), [\"onChange\", (ev) => {\n const value_29 = ev.target.valueAsNumber;\n if ((!(value_29 == null)) ? (value_29 !== NaN) : false) {\n setEditModel(new DayData_DayData(editModel.IsSick, editModel.IsDamaged, editModel.IsTravelDay, round(value_29), editModel.Sleep, editModel.SleepQuality, editModel.Menstruation));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_4)))))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_7))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n })), (elms_4 = singleton_1((props_24 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-left\"], [\"children\", \"Sömn\"]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field-label\", props_12)))), (elms_3 = singleton_1((props_21 = ofArray([[\"className\", \"has-addons\"], [\"children\", Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", \"is-expanded\"], [\"children\", Interop_reactApi.Children.toArray([(props_14 = ofArray([[\"className\", \"is-size-7\"], [\"step\", 1], [\"min\", 1], [\"max\", 24], [\"className\", \"has-text-left\"], [\"className\", \"has-text-grey\"], (value_62 = (editModel.Sleep | 0), [\"ref\", (e_1) => {\n if ((!(e_1 == null)) ? (!equals(e_1.value, value_62)) : false) {\n e_1.value = (value_62 | 0);\n }\n }]), [\"onChange\", (ev_1) => {\n const value_66 = ev_1.target.valueAsNumber;\n if ((!(value_66 == null)) ? (value_66 !== NaN) : false) {\n setEditModel(new DayData_DayData(editModel.IsSick, editModel.IsDamaged, editModel.IsTravelDay, editModel.Heartrate, round(value_66), editModel.SleepQuality, editModel.Menstruation));\n }\n }]]), createElement(\"input\", createObj(cons([\"type\", \"number\"], Helpers_combineClasses(\"input\", props_14)))))])]]), createElement(\"p\", createObj(Helpers_combineClasses(\"control\", props_16)))), (elms_2 = singleton_1(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-static\"], [\"className\", \"is-small\"], [\"children\", \"timmar\"]]))))), createElement(\"p\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_21))))), createElement(\"div\", {\n className: \"field-body\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_24))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n }))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n })), (elms_8 = ofArray([(elms_6 = singleton_1(SleepQualityEditor(editModel.SleepQuality, (value_6) => {\n setEditModel(new DayData_DayData(editModel.IsSick, editModel.IsDamaged, editModel.IsTravelDay, editModel.Heartrate, editModel.Sleep, value_6, editModel.Menstruation));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n })), (elms_7 = singleton_1(MenstruationEditor(editModel.Menstruation, (value_7) => {\n setEditModel(new DayData_DayData(editModel.IsSick, editModel.IsDamaged, editModel.IsTravelDay, editModel.Heartrate, editModel.Sleep, editModel.SleepQuality, value_7));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n }))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n })), (elms_9 = singleton_1((props_33 = ofArray([[\"className\", \"is-right\"], [\"className\", \"pb-4\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"is-success\"], [\"children\", \"Spara\"], [\"onClick\", (_arg1) => {\n startImmediate(saveDayData(editModel, studentDayKey, onSave));\n }]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"buttons\", props_33))))), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_9)),\n }))]);\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_10)),\n });\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { Calendar_getCalendarDayFromWeekInfo, StudentDays_StudentDayInfo_Empty, StudentDays_StudentDayListRequest, Calendar_getMonthTitle, Calendar_getWeekDayTitle, Calendar_getDayDate, DaySegment_list, DaySegment_strDaySegment, DaySegment_isLatestDaySegment, DayHelpers_tryFindFact, DayHelpers_tryFindPlan, StudentDays_StudentDayKey, Calendar_DayInfo_FromDate_7F9DDECF, DayHelpers_deleteFact, StudentDays_StudentDayInfo, DayHelpers_addUpdateFact, DayData_DayData$reflection, DaySegment_DaySegment$reflection, DayFact_DayFact$reflection, StudentDays_StudentDayInfo$reflection, Calendar_DayInfo$reflection } from \"../../Shared/Shared.fs.js\";\nimport { union_type, class_type, record_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Route, navigateTo } from \"../Router.fs.js\";\nimport { map, empty, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { borderStyleBottomPrimary, borderStylePrimary, borderStyleBottomGrey } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { tryHead, singleton as singleton_1, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Render as Render_1 } from \"./DayPlanBlock.fs.js\";\nimport { Render as Render_2 } from \"./DayFactBlock.fs.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { month as month_1, addDays } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport { format as format_2 } from \"date-fns\";\nimport { Render as Render_3 } from \"./DayDataEdit.fs.js\";\nimport { Locale, ClassName, OnChange, Value, DateFormat, AlwaysOpen, custom, flatpickr } from \"../.fable/Fable.React.Flatpickr.3.0.0/Flatpickr.fs.js\";\nimport { Swedish } from \"flatpickr/dist/l10n/sv.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { studentDaysApi } from \"../Communication.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class State extends Record {\n constructor(DayInfo, StudentDay) {\n super();\n this.DayInfo = DayInfo;\n this.StudentDay = StudentDay;\n }\n}\n\nexport function State$reflection() {\n return record_type(\"Activity.State\", [], State, () => [[\"DayInfo\", Calendar_DayInfo$reflection()], [\"StudentDay\", StudentDays_StudentDayInfo$reflection()]]);\n}\n\nexport class Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"UpdateSelectedDate\", \"UpdatedFact\", \"DeletedFact\", \"UpdatedDayData\"];\n }\n}\n\nexport function Msg$reflection() {\n return union_type(\"Activity.Msg\", [], Msg, () => [[[\"Item\", class_type(\"System.DateTime\")]], [[\"Item\", DayFact_DayFact$reflection()]], [[\"Item\", DaySegment_DaySegment$reflection()]], [[\"Item\", DayData_DayData$reflection()]]]);\n}\n\nexport function init(dayInfo, studentDay) {\n return [new State(dayInfo, studentDay), Cmd_none()];\n}\n\nexport function update(msg, state) {\n let inputRecord, inputRecord_1, inputRecord_2;\n switch (msg.tag) {\n case 1: {\n return [new State(state.DayInfo, (inputRecord = state.StudentDay, new StudentDays_StudentDayInfo(inputRecord.StudentId, inputRecord.CalendarDay, inputRecord.DayPlans, DayHelpers_addUpdateFact(msg.fields[0], state.StudentDay.DayFacts), inputRecord.DayData))), Cmd_none()];\n }\n case 2: {\n return [new State(state.DayInfo, (inputRecord_1 = state.StudentDay, new StudentDays_StudentDayInfo(inputRecord_1.StudentId, inputRecord_1.CalendarDay, inputRecord_1.DayPlans, DayHelpers_deleteFact(msg.fields[0], state.StudentDay.DayFacts), inputRecord_1.DayData))), Cmd_none()];\n }\n case 3: {\n return [new State(state.DayInfo, (inputRecord_2 = state.StudentDay, new StudentDays_StudentDayInfo(inputRecord_2.StudentId, inputRecord_2.CalendarDay, inputRecord_2.DayPlans, inputRecord_2.DayFacts, msg.fields[0]))), Cmd_none()];\n }\n default: {\n const dayInfo = Calendar_DayInfo_FromDate_7F9DDECF(msg.fields[0]);\n return [new State(dayInfo, state.StudentDay), navigateTo(new Route(26, dayInfo))];\n }\n }\n}\n\nexport function RenderDaySegment(renderDaySegmentInputProps) {\n const dispatch = renderDaySegmentInputProps.dispatch;\n const state = renderDaySegmentInputProps.state;\n const daySegment = renderDaySegmentInputProps.daySegment;\n const studentDayKey = new StudentDays_StudentDayKey(state.StudentDay.StudentId, state.StudentDay.CalendarDay);\n const dayPlan = DayHelpers_tryFindPlan(daySegment, state.StudentDay.DayPlans);\n const dayFact = DayHelpers_tryFindFact(daySegment, state.StudentDay.DayFacts);\n const props_6 = toList(delay(() => append(singleton([\"className\", \"is-gapless\"]), delay(() => append(singleton([\"className\", \"is-vcentered\"]), delay(() => append(singleton([\"className\", \"py-4\"]), delay(() => append(singleton([\"className\", \"mb-0\"]), delay(() => append(singleton([\"className\", \"is-centered\"]), delay(() => append((!DaySegment_isLatestDaySegment(daySegment)) ? singleton(borderStyleBottomGrey) : empty(), delay(() => {\n let props, props_2, props_4;\n return singleton([\"children\", Interop_reactApi.Children.toArray([(props = ofArray([[\"className\", \"is-2\"], [\"children\", DaySegment_strDaySegment(daySegment)]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))), (props_2 = ofArray([[\"className\", \"mx-2\"], [\"children\", Interop_reactApi.Children.toArray([createElement(Render_1, {\n dayPlan: dayPlan,\n isDayFactExists: dayFact != null,\n studentDayKey: studentDayKey,\n daySegment: daySegment,\n onSave: (arg) => {\n dispatch(new Msg(1, arg));\n },\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2)))), (props_4 = ofArray([[\"className\", \"mx-2\"], [\"children\", Interop_reactApi.Children.toArray([createElement(Render_2, {\n dayFact: dayFact,\n studentDayKey: studentDayKey,\n daySegment: daySegment,\n onSave: (arg_1) => {\n dispatch(new Msg(1, arg_1));\n },\n onDelete: () => {\n dispatch(new Msg(2, daySegment));\n },\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4))))])]);\n }))))))))))))));\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6)));\n}\n\nexport function DayCalendar(dayCalendarInputProps) {\n const dispatch = dayCalendarInputProps.dispatch;\n const state = dayCalendarInputProps.state;\n const props_8 = ofArray([[\"className\", \"px-2\"], [\"className\", \"pb-0\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_6;\n return append(singleton((props_6 = ofArray([[\"className\", \"has-text-centered\"], [\"className\", \"is-gapless\"], [\"className\", \"pb-3\"], [\"className\", \"mb-0\"], borderStyleBottomPrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_1([\"className\", \"is-2\"]))))), delay(() => map((flanFact) => {\n const props_4 = ofArray([[\"className\", \"mx-2\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-black\"], [\"className\", \"is-size-5\"], [\"className\", \"has-text-weight-bold\"], [\"children\", flanFact]]))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4)));\n }, [\"Planerat\", \"Utfört\"])))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))), delay(() => map((daySegment) => createElement(RenderDaySegment, {\n daySegment: daySegment,\n state: state,\n dispatch: dispatch,\n }), DaySegment_list)));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_8)));\n}\n\nexport function DayData(dayDataInputProps) {\n const dispatch = dayDataInputProps.dispatch;\n const state = dayDataInputProps.state;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setVisible = patternInput[1];\n const isVisible = patternInput[0];\n const selectedDate = Calendar_getDayDate(state.DayInfo.WeekInfo, state.DayInfo.WeekDay);\n const props_38 = ofArray([[\"className\", \"px-2\"], [\"className\", \"pb-0\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props;\n return append(singleton((props = ofArray([[\"className\", \"has-text-centered\"], [\"className\", \"is-size-6\"], [\"className\", \"pb-3\"], [\"children\", defaultArg(Calendar_getWeekDayTitle(state.DayInfo.WeekDay), \"\")]]), createElement(\"p\", createObj(Helpers_combineClasses(\"\", props))))), delay(() => {\n let props_28, props_5, children_1, elms, props_21, elms_1, props_12, props_8, props_10, props_18, props_14, props_16, props_26, children_5, elms_2;\n return append(singleton((props_28 = ofArray([[\"className\", \"is-vcentered\"], [\"style\", {\n cursor: \"pointer\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_5 = ofArray([[\"className\", \"ml-1\"], [\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"is-narrow\"], [\"onClick\", (_arg1) => {\n dispatch(new Msg(0, addDays(selectedDate, -1)));\n }], [\"children\", Interop_reactApi.Children.toArray([(children_1 = singleton_1((elms = singleton_1(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-chevron-left\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), createElement(\"a\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_5)))), (props_21 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"onClick\", (_arg2) => {\n setVisible(!isVisible);\n }], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(props_12 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_8 = ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"pr-5\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-calendar-alt\", \"fa-2x\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_8)))), (props_10 = ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"className\", \"is-size-2\"], [\"children\", format_2(selectedDate, \"dd\")]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_10))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_12)))), (props_18 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_14 = toList(delay(() => append(singleton([\"className\", \"has-text-primary\"]), delay(() => append(singleton([\"className\", \"has-text-weight-bold\"]), delay(() => append(singleton([\"className\", \"is-size-5\"]), delay(() => singleton([\"children\", defaultArg(Calendar_getMonthTitle(month_1(selectedDate)), \"\")]))))))))), createElement(\"p\", createObj(Helpers_combineClasses(\"\", props_14)))), (props_16 = ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"is-size-5\"], [\"children\", format_2(selectedDate, \"yyyy\")]]), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_16))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_18))))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_21)))), (props_26 = ofArray([[\"className\", \"mr-1\"], [\"className\", join(\" \", [\"hoverable\"])], [\"onClick\", (_arg3) => {\n dispatch(new Msg(0, addDays(selectedDate, 1)));\n }], [\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([(children_5 = singleton_1((elms_2 = singleton_1(createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-chevron-right\"]),\n })), createElement(\"span\", {\n className: \"icon\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), createElement(\"a\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_5)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_26))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_28))))), delay(() => {\n const studentDayKey = new StudentDays_StudentDayKey(state.StudentDay.StudentId, state.StudentDay.CalendarDay);\n return append(singleton(createElement(Render_3, {\n dayData: state.StudentDay.DayData,\n studentDayKey: studentDayKey,\n onSave: (arg) => {\n dispatch(new Msg(3, arg));\n },\n })), delay(() => {\n let props_36;\n return singleton((props_36 = toList(delay(() => append(isVisible ? singleton([\"className\", \"is-active\"]) : empty(), delay(() => {\n let props_34, props_32;\n return singleton([\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton_1([\"onClick\", (_arg4) => {\n setVisible(!isVisible);\n }])))), (props_34 = ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_32 = ofArray([[\"className\", \"has-text-centered\"], [\"children\", Interop_reactApi.Children.toArray([flatpickr(ofArray([custom(\"locale\", {\n firstDayOfWeek: 1,\n }, true), AlwaysOpen(true), DateFormat(\"d M Y\"), Value(selectedDate), OnChange((x) => {\n dispatch(new Msg(0, x));\n setVisible(false);\n }), ClassName(\"input\"), Locale(Swedish)]))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_32))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"modal-content\", props_34))))])]);\n })))), createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_36)))));\n }));\n }));\n }));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_38)));\n}\n\nexport function RenderView(renderViewInputProps) {\n let props_7, elms, props_5;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(init(renderViewInputProps.dayInfo, renderViewInputProps.studentDay), (msg, state) => update(msg, state), []);\n const state_1 = patternInput[0];\n const dispatch = patternInput[1];\n const props_9 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_7 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Planerat\"]])))), createElement(DayCalendar, {\n state: state_1,\n dispatch: dispatch,\n })]), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_5 = ofArray([[\"className\", \"is-one-quarter\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Dag\"]])))), createElement(DayData, {\n state: state_1,\n dispatch: dispatch,\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_5))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_7))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_9)));\n}\n\nexport function RenderWithLoad(renderWithLoadInputProps) {\n const user = renderWithLoadInputProps.user;\n const dayInfo = renderWithLoadInputProps.dayInfo;\n const query = new StudentDays_StudentDayListRequest(user.UserId, dayInfo.WeekInfo.PeriodInfo.PeriodYear, dayInfo.WeekInfo.PeriodInfo.Period, dayInfo.WeekInfo.PeriodWeek, dayInfo.WeekDay);\n const studentDays = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentDaysApi().list(query)), [dayInfo]);\n switch (studentDays.tag) {\n case 3: {\n const value = studentDays.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n const studentDay = defaultArg(tryHead(studentDays.fields[0]), StudentDays_StudentDayInfo_Empty(user.UserId, Calendar_getCalendarDayFromWeekInfo(dayInfo.WeekInfo, dayInfo.WeekDay)));\n return createElement(RenderView, {\n dayInfo: dayInfo,\n studentDay: studentDay,\n });\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function Render(renderInputProps) {\n const user = renderInputProps.user;\n const dayInfo = renderInputProps.dayInfo;\n return createElement(RenderWithLoad, {\n dayInfo: dayInfo,\n user: user,\n });\n}\n\n","import { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { value as value_62 } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { Toastr_toastError, Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { schedulesApi } from \"../Communication.fs.js\";\nimport { Schedules_ScheduleListItem, Schedules_ScheduleListItem_Default_Z1043BF58, Schedules_ScheduleUpdateRequest, Schedules_ScheduleCreateRequest, Schedules_ScheduleCreateAsDuplicateRequest } from \"../../Shared/Shared.fs.js\";\nimport { interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { cons, ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { empty, singleton as singleton_2, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { View_checkBoxField } from \"../Common.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\n\nexport function saveScheduleListItem(scheduleListItem, isNew, sourceScheduleId, onSuccess) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(singleton.Delay(() => {\n if (isNew) {\n if (sourceScheduleId != null) {\n const sourceScheduleId_1 = value_62(sourceScheduleId);\n return singleton.Bind(Remoting_handleNonAuth(schedulesApi().get(sourceScheduleId_1)), (_arg1) => {\n const request = new Schedules_ScheduleCreateAsDuplicateRequest(scheduleListItem.Id, scheduleListItem.Title, scheduleListItem.IsGlobal, _arg1.ScheduleWeeks, sourceScheduleId_1);\n return singleton.Return(schedulesApi().createAsDuplicate(request));\n });\n }\n else {\n const request_1 = new Schedules_ScheduleCreateRequest(scheduleListItem.Id, scheduleListItem.Title, scheduleListItem.IsGlobal, []);\n return singleton.Return(schedulesApi().create(request_1));\n }\n }\n else {\n const request_2 = new Schedules_ScheduleUpdateRequest(scheduleListItem.Id, scheduleListItem.Title, scheduleListItem.IsGlobal, void 0);\n return singleton.Return(schedulesApi().update(request_2));\n }\n }), (_arg2) => singleton.Bind(Remoting_handleNonAuth(_arg2), (_arg3) => {\n if (_arg3.tag === 0) {\n onSuccess(scheduleListItem);\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Save schedule error\", \"\");\n return singleton.Zero();\n }\n }))), (_arg4) => {\n Toastr_toastError(\"Save schedule error\", \"\");\n return singleton.Zero();\n }));\n}\n\nexport function Render(renderInputProps) {\n let scheduleListItem_2, scheduleListItem_1, elms_2, elms, props_16, props_22;\n const onCancel = renderInputProps.onCancel;\n const onSaved = renderInputProps.onSaved;\n const sourceScheduleId = renderInputProps.sourceScheduleId;\n const currentUserId = renderInputProps.currentUserId;\n let patternInput;\n const matchValue = [renderInputProps.scheduleListItem, sourceScheduleId];\n patternInput = ((matchValue[0] != null) ? ((matchValue[1] == null) ? (scheduleListItem_2 = matchValue[0], [scheduleListItem_2.Title, scheduleListItem_2, false, scheduleListItem_2.TeacherId === currentUserId]) : (scheduleListItem_1 = matchValue[0], [toText(interpolate(\"Kopia av %P()\", [scheduleListItem_1.Title])), scheduleListItem_1, true, false])) : [\"Nytt program\", Schedules_ScheduleListItem_Default_Z1043BF58(currentUserId), true, true]);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(patternInput[1]);\n const setEditModel = patternInput_1[1];\n const editModel = patternInput_1[0];\n const props_27 = ofArray([[\"className\", \"is-active\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"modal-background\", singleton_1([\"onClick\", (_arg1) => {\n onCancel();\n }])))), (elms_2 = ofArray([(elms = ofArray([createElement(\"p\", createObj(Helpers_combineClasses(\"modal-card-title\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-bold\"], [\"children\", patternInput[0]]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"delete\", singleton_1([\"onClick\", (_arg2) => {\n onCancel();\n }]))))]), createElement(\"header\", {\n className: \"modal-card-head\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_16 = ofArray([[\"style\", {\n overflowY: \"scroll\",\n }], [\"className\", \"has-background-light\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_13, props_11, props_9, value_30;\n return append(singleton_2((props_13 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"is-size-7\"], [\"className\", \"mb-1\"], [\"className\", \"has-text-grey\"], [\"children\", \"Titel\"]])))), (props_11 = ofArray([[\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(props_9 = ofArray([[\"className\", \"is-small\"], (value_30 = editModel.Title, [\"ref\", (e) => {\n if ((!(e == null)) ? (!equals(e.value, value_30)) : false) {\n e.value = value_30;\n }\n }]), [\"onChange\", (ev) => {\n setEditModel(new Schedules_ScheduleListItem(editModel.Id, editModel.TeacherId, ev.target.value, editModel.IsGlobal));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_9)))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_11))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_13))))), delay(() => {\n let elms_1;\n return patternInput[3] ? singleton_2((elms_1 = singleton_1(View_checkBoxField(\"Globalt program\", editModel.IsGlobal, (newIsGlobal) => {\n setEditModel(new Schedules_ScheduleListItem(editModel.Id, editModel.TeacherId, editModel.Title, newIsGlobal));\n })), createElement(\"div\", {\n className: \"block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))) : empty();\n }));\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"card-content\", props_16)))), (props_22 = ofArray([[\"style\", {\n justifyContent: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg3) => {\n onCancel();\n }], [\"className\", \"is-text\"], [\"className\", \"has-text-danger\"], [\"children\", \"Avbryt\"]])))), createElement(\"button\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"onClick\", (_arg4) => {\n startImmediate(saveScheduleListItem(editModel, patternInput[2], sourceScheduleId, onSaved));\n }], [\"className\", \"is-success\"], [\"children\", \"Spara\"]]))))])]]), createElement(\"footer\", createObj(Helpers_combineClasses(\"modal-card-foot\", props_22))))]), createElement(\"div\", {\n className: \"modal-card\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), createElement(\"button\", createObj(Helpers_combineClasses(\"modal-close\", singleton_1([\"onClick\", (_arg5) => {\n onCancel();\n }]))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"modal\", props_27)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { Schedules_ScheduleListItem, Schedules_ScheduleListItem_Default_Z1043BF58, Auth_SignedInUser$reflection, Schedules_ScheduleListItem$reflection } from \"../../Shared/Shared.fs.js\";\nimport { union_type, string_type, class_type, record_type, list_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { View_Cmd_toastError, Cmd_fromAsync, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { schedulesApi } from \"../Communication.fs.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { ofArray, singleton as singleton_1, append, map, exists, filter } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { map as map_1, empty, singleton as singleton_2, append as append_1, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { interpolate, toText, join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { Render } from \"./ScheduleListItemEdit.fs.js\";\nimport { View_RenderDeleteWindow } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(Schedules, User) {\n super();\n this.Schedules = Schedules;\n this.User = User;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"ScheduleList.Types.State\", [], Types_State, () => [[\"Schedules\", list_type(Schedules_ScheduleListItem$reflection())], [\"User\", Auth_SignedInUser$reflection()]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"SavedSchedule\", \"DeleteScheduleClick\", \"DeleteSchedule\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"ScheduleList.Types.Msg\", [], Types_Msg, () => [[[\"Item\", Schedules_ScheduleListItem$reflection()]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_delete(id) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(schedulesApi().delete(id)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(0, id)))) : (new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function State_init(schedules, user) {\n return [new Types_State(schedules, user), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n let lst, isUpdated;\n if (msg.tag === 1) {\n return [state, Cmd_fromAsync(Cmd_delete(msg.fields[0]))];\n }\n else if (msg.tag === 2) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [state, View_Cmd_toastError(msg.fields[0].fields[0].fields[0])];\n }\n else {\n return [new Types_State(filter((x_2) => (x_2.Id !== msg.fields[0].fields[0].fields[0]), state.Schedules), state.User), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else {\n return [new Types_State((lst = state.Schedules, (isUpdated = ((x) => (x.Id === msg.fields[0].Id)), exists(isUpdated, lst) ? map((x_1) => (isUpdated(x_1) ? msg.fields[0] : x_1), lst) : append(singleton_1(msg.fields[0]), lst))), state.User), Cmd_none()];\n }\n}\n\nexport function View_ScheduleRow(view_ScheduleRowInputProps) {\n const dispatch = view_ScheduleRowInputProps.dispatch;\n const user = view_ScheduleRowInputProps.user;\n const schedule = view_ScheduleRowInputProps.schedule;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setCopyHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setDuplicateHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setOverviewHover = patternInput_2[1];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const setEditHover = patternInput_3[1];\n const patternInput_4 = useFeliz_React__React_useState_Static_1505(false);\n const setDeleteHover = patternInput_4[1];\n const patternInput_5 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDuplicateWindow = patternInput_5[1];\n const patternInput_6 = useFeliz_React__React_useState_Static_1505(false);\n const setIsEditWindow = patternInput_6[1];\n const patternInput_7 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_7[1];\n const isDeleteWindow = patternInput_7[0];\n const children_2 = toList(delay(() => {\n let props_30, elms_1, elms, props_5, props_3, props_27, props_8, props_12, props_16, props_20, props_24;\n return append_1(singleton_2((props_30 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(elms = singleton_1(createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-primary\"], [\"children\", schedule.Title]]))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_5 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_3 = toList(delay(() => append_1(singleton_2([\"className\", \"is-size-7\"]), delay(() => append_1(patternInput[0] ? singleton_2([\"children\", \"Kopiera till utövare\"]) : empty(), delay(() => append_1(patternInput_1[0] ? singleton_2([\"children\", \"Duplicera program\"]) : empty(), delay(() => append_1(patternInput_2[0] ? singleton_2([\"children\", \"Visa kalender\"]) : empty(), delay(() => append_1(patternInput_3[0] ? singleton_2([\"children\", \"Ändra egenskaper\"]) : empty(), delay(() => (patternInput_4[0] ? singleton_2([\"children\", \"Ta bort programmet\"]) : empty()))))))))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_3))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_5)))), (props_27 = ofArray([[\"className\", \"has-text-right\"], [\"style\", {\n whiteSpace: \"nowrap\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n onMouseEnter: (_arg1) => {\n setCopyHover(true);\n },\n onMouseLeave: (_arg2) => {\n setCopyHover(false);\n },\n className: \"px-2\",\n href: toPath(new Route(22, schedule.Id)),\n children: Interop_reactApi.Children.toArray([(props_8 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-user-plus\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_8))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg3) => {\n setDuplicateHover(true);\n },\n onMouseLeave: (_arg4) => {\n setDuplicateHover(false);\n },\n onClick: (_arg5) => {\n setIsDuplicateWindow(true);\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-copy\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_12))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg6) => {\n setOverviewHover(true);\n },\n onMouseLeave: (_arg7) => {\n setOverviewHover(false);\n },\n className: \"px-2\",\n href: toPath(new Route(23, schedule.Id)),\n children: Interop_reactApi.Children.toArray([(props_16 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-calendar-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_16))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg8) => {\n setEditHover(true);\n },\n onMouseLeave: (_arg9) => {\n setEditHover(false);\n },\n onClick: (_arg10) => {\n setIsEditWindow(true);\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_20 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-pencil-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_20))))]),\n }), createElement(\"a\", {\n onMouseEnter: (_arg11) => {\n setDeleteHover(true);\n },\n onMouseLeave: (_arg12) => {\n setDeleteHover(false);\n },\n onClick: (_arg13) => {\n setIsDeleteWindow(true);\n },\n className: \"px-2\",\n children: Interop_reactApi.Children.toArray([(props_24 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-danger\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fas\", \"fa-times\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_24))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_27))))]), createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_30))))), delay(() => {\n let scheduleDuplicate, inputRecord;\n return append_1(patternInput_5[0] ? (scheduleDuplicate = (inputRecord = Schedules_ScheduleListItem_Default_Z1043BF58(schedule.TeacherId), new Schedules_ScheduleListItem(inputRecord.Id, inputRecord.TeacherId, schedule.Title, schedule.IsGlobal)), singleton_2(createElement(Render, {\n scheduleListItem: scheduleDuplicate,\n currentUserId: user.UserId,\n sourceScheduleId: schedule.Id,\n onSaved: (schedule_1) => {\n dispatch(new Types_Msg(0, schedule_1));\n setIsDuplicateWindow(false);\n },\n onCancel: () => {\n setIsDuplicateWindow(false);\n },\n }))) : empty(), delay(() => append_1(patternInput_6[0] ? singleton_2(createElement(Render, {\n scheduleListItem: schedule,\n currentUserId: user.UserId,\n sourceScheduleId: void 0,\n onSaved: (schedule_2) => {\n dispatch(new Types_Msg(0, schedule_2));\n setIsEditWindow(false);\n },\n onCancel: () => {\n setIsEditWindow(false);\n },\n })) : empty(), delay(() => (isDeleteWindow ? singleton_2(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(1, schedule.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: toText(interpolate(\"Vill du verkligen ta bort %P() och all data kopplad till detta program?\", [schedule.Title])),\n })) : empty())))));\n }));\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n });\n}\n\nexport function View_RenderView(view_RenderViewInputProps) {\n let props_10, elms, elms_1;\n const user = view_RenderViewInputProps.user;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(view_RenderViewInputProps.schedules, user), (msg, state) => State_update(msg, state), []);\n const state_1 = patternInput[0];\n const dispatch = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setIsCreateWindow = patternInput_1[1];\n const props_12 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_10 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => append_1(singleton_2(createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Alla program\"]]))))), delay(() => append_1(singleton_2(createElement(\"div\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-text-primary\"], [\"children\", \"Skapade av mig\"]]))))), delay(() => map_1((schedule) => createElement(View_ScheduleRow, {\n schedule: schedule,\n user: user,\n dispatch: dispatch,\n }), filter((x) => (x.TeacherId === user.UserId), state_1.Schedules)))))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = toList(delay(() => append_1(singleton_2(createElement(\"a\", createObj(Helpers_combineClasses(\"button\", ofArray([[\"className\", \"py-2\"], [\"className\", \"mb-5\"], [\"className\", \"is-success\"], [\"children\", \"Lägg till program\"], [\"onClick\", (_arg1) => {\n setIsCreateWindow(true);\n }]]))))), delay(() => append_1(patternInput_1[0] ? singleton_2(createElement(Render, {\n scheduleListItem: void 0,\n currentUserId: user.UserId,\n sourceScheduleId: void 0,\n onSaved: (schedule_1) => {\n dispatch(new Types_Msg(0, schedule_1));\n setIsCreateWindow(false);\n },\n onCancel: () => {\n setIsCreateWindow(false);\n },\n })) : empty(), delay(() => append_1(singleton_2(createElement(\"div\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-text-primary\"], [\"children\", \"Skapade av andra\"]]))))), delay(() => map_1((schedule_2) => createElement(View_ScheduleRow, {\n schedule: schedule_2,\n user: user,\n dispatch: dispatch,\n }), filter((x_1) => (x_1.TeacherId !== user.UserId), state_1.Schedules)))))))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_10))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_12)));\n}\n\nexport function View_RenderWithLoad(user) {\n const schedules = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(schedulesApi().list()), []);\n switch (schedules.tag) {\n case 3: {\n const value = schedules.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n return createElement(View_RenderView, {\n schedules: schedules.fields[0],\n user: user,\n });\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function View_Render(user) {\n return createElement(View_RenderWithLoad, user);\n}\n\n","import { Calendar_getWeekInfo, Calendar_getWeekStartDate, Calendar_getWeekOfYear, Calendar_PeriodInfo_get_Current, Calendar_PeriodInfo__ShiftN_Z524259A4 } from \"../../Shared/Shared.fs.js\";\nimport { cons, ofArray, append, head, tryFind, map } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { join, padLeft, interpolate, toText } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { createObj, equals, int32ToString } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { rangeDouble } from \"../.fable/fable-library.3.2.1/Range.js\";\nimport { View_renderSelectOption } from \"../Common.fs.js\";\nimport { map as map_1, defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { useReact_useEffect_Z101E1A95 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { Helpers_combineClasses, Helpers_extractClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { createElement } from \"react\";\n\nexport const startPeriodShift = -3;\n\nexport const endPeriodShift = 13;\n\nexport const defaultPeriod = Calendar_PeriodInfo__ShiftN_Z524259A4(Calendar_PeriodInfo_get_Current(), startPeriodShift);\n\nexport function Render(renderInputProps) {\n let patternInput;\n const selectOptions = renderInputProps.selectOptions;\n const onChange = renderInputProps.onChange;\n const value = renderInputProps.value;\n const periods = map((periodShift) => {\n let copyOfStruct;\n const period = Calendar_PeriodInfo__ShiftN_Z524259A4(Calendar_PeriodInfo_get_Current(), periodShift);\n const periodStartYearWeek = Calendar_getWeekOfYear(Calendar_getWeekStartDate(Calendar_getWeekInfo(period, 0)));\n const label = toText(interpolate(\"%P()/%P() P. %P() (v. %P() - %P())\", [period.PeriodYear, (period.PeriodYear + 1) % 100, period.Period + 1, padLeft(int32ToString(periodStartYearWeek.Week), 2, \"0\"), padLeft((copyOfStruct = (periodStartYearWeek.Week + 3), int32ToString(copyOfStruct)), 2, \"0\")]));\n return [period, label, label];\n }, toList(rangeDouble(startPeriodShift, 1, endPeriodShift)));\n const getId = (tupledArg) => tupledArg[1];\n const getPeriod = (tupledArg_1) => tupledArg_1[0];\n const periodOptions = map((tupledArg_2) => View_renderSelectOption(tupledArg_2[1], tupledArg_2[2]), periods);\n const selectedPeriodId = defaultArg(map_1(getId, tryFind((tupledArg_3) => equals(tupledArg_3[0], value), periods)), getId(head(periods)));\n useReact_useEffect_Z101E1A95(() => {\n onChange(getPeriod(head(periods)));\n }, []);\n const props_4 = ofArray([[\"className\", \"is-expanded\"], [\"children\", Interop_reactApi.Children.toArray([(patternInput = Helpers_extractClasses(append(ofArray([[\"className\", \"is-fullwidth\"], [\"className\", \"has-text-right\"], [\"value\", selectedPeriodId], [\"onChange\", (ev) => {\n const selectedPeriodId_1 = ev.target.value;\n onChange(defaultArg(map_1(getPeriod, tryFind((tupledArg_4) => (tupledArg_4[1] === selectedPeriodId_1), periods)), getPeriod(head(periods))));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(periodOptions))]]), selectOptions)), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_4)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { GroupIdModule_toString, UserIdModule_toString, StudentDays_ScheduleAssignMode, StudentDays_ScheduleAssignRequest, StudentDays_ScheduleAssignMode$reflection, Calendar_PeriodInfo$reflection, Students_StudentListItem$reflection, Groups_GroupListItem$reflection, Schedules_ScheduleInfo$reflection } from \"../../Shared/Shared.fs.js\";\nimport { bool_type, record_type, union_type, string_type, unit_type, class_type, list_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { FSharpSet__get_IsEmpty, FSharpSet__Contains, FSharpSet__Remove, FSharpSet__Add, empty, toList } from \"../.fable/fable-library.3.2.1/Set.js\";\nimport { studentsApi, groupsApi, schedulesApi, studentDaysApi } from \"../Communication.fs.js\";\nimport { equals, createObj, comparePrimitives } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Render, defaultPeriod } from \"./SchedulePeriodSelect.fs.js\";\nimport { Cmd_OfFunc_result, Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { singleton as singleton_2, empty as empty_1, cons, ofArray, fold, filter, map } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { collect, map as map_1, singleton as singleton_1, append, delay, toList as toList_1 } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(Schedule, Groups, Students, SelectedGroupIds, SelectedStudentIds, SelectedPeriod, SelectedScheduleAssignMode, AssignProgress) {\n super();\n this.Schedule = Schedule;\n this.Groups = Groups;\n this.Students = Students;\n this.SelectedGroupIds = SelectedGroupIds;\n this.SelectedStudentIds = SelectedStudentIds;\n this.SelectedPeriod = SelectedPeriod;\n this.SelectedScheduleAssignMode = SelectedScheduleAssignMode;\n this.AssignProgress = AssignProgress;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"ScheduleAssign.Types.State\", [], Types_State, () => [[\"Schedule\", Schedules_ScheduleInfo$reflection()], [\"Groups\", list_type(Groups_GroupListItem$reflection())], [\"Students\", list_type(Students_StudentListItem$reflection())], [\"SelectedGroupIds\", class_type(\"Microsoft.FSharp.Collections.FSharpSet`1\", [class_type(\"System.Guid\")])], [\"SelectedStudentIds\", class_type(\"Microsoft.FSharp.Collections.FSharpSet`1\", [class_type(\"System.Guid\")])], [\"SelectedPeriod\", Calendar_PeriodInfo$reflection()], [\"SelectedScheduleAssignMode\", StudentDays_ScheduleAssignMode$reflection()], [\"AssignProgress\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"GroupClick\", \"StudentClick\", \"SelectPeriod\", \"SelectScheduleAssignMode\", \"AssignClick\", \"Assign\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"ScheduleAssign.Types.Msg\", [], Types_Msg, () => [[[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", bool_type]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", bool_type]], [[\"Item\", Calendar_PeriodInfo$reflection()]], [[\"Item\", StudentDays_ScheduleAssignMode$reflection()]], [], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_assign(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new StudentDays_ScheduleAssignRequest(state.Schedule.Id, toList(state.SelectedStudentIds), state.SelectedPeriod, state.Schedule.ScheduleWeeks, state.SelectedScheduleAssignMode);\n return singleton.Bind(Remoting_handleNonAuth(studentDaysApi().assign(request)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function State_init(schedule, groups, students) {\n return [new Types_State(schedule, groups, students, empty({\n Compare: (x, y) => comparePrimitives(x, y),\n }), empty({\n Compare: (x_1, y_1) => comparePrimitives(x_1, y_1),\n }), defaultPeriod, new StudentDays_ScheduleAssignMode(1), new DeferredResult$1(0)), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n if (msg.tag === 1) {\n return [new Types_State(state.Schedule, state.Groups, state.Students, state.SelectedGroupIds, msg.fields[1] ? FSharpSet__Add(state.SelectedStudentIds, msg.fields[0]) : FSharpSet__Remove(state.SelectedStudentIds, msg.fields[0]), state.SelectedPeriod, state.SelectedScheduleAssignMode, state.AssignProgress), Cmd_none()];\n }\n else if (msg.tag === 2) {\n return [new Types_State(state.Schedule, state.Groups, state.Students, state.SelectedGroupIds, state.SelectedStudentIds, msg.fields[0], state.SelectedScheduleAssignMode, state.AssignProgress), Cmd_none()];\n }\n else if (msg.tag === 3) {\n return [new Types_State(state.Schedule, state.Groups, state.Students, state.SelectedGroupIds, state.SelectedStudentIds, state.SelectedPeriod, msg.fields[0], state.AssignProgress), Cmd_none()];\n }\n else if (msg.tag === 4) {\n return [state, Cmd_OfFunc_result(new Types_Msg(5, new AsyncOperationStatus$1(0)))];\n }\n else if (msg.tag === 5) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Schedule, state.Groups, state.Students, state.SelectedGroupIds, state.SelectedStudentIds, state.SelectedPeriod, state.SelectedScheduleAssignMode, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(state.Schedule, state.Groups, state.Students, state.SelectedGroupIds, state.SelectedStudentIds, state.SelectedPeriod, state.SelectedScheduleAssignMode, new DeferredResult$1(2, new FSharpResult$2(0, void 0))), View_Cmd_toastSuccess(\"Pass kopierade till utövare\")];\n }\n }\n else {\n return [new Types_State(state.Schedule, state.Groups, state.Students, state.SelectedGroupIds, state.SelectedStudentIds, state.SelectedPeriod, state.SelectedScheduleAssignMode, new DeferredResult$1(1)), Cmd_fromAsync(Cmd_assign(state))];\n }\n }\n else {\n let patternInput;\n const studentIds = map((x_1) => x_1.Id, filter((x) => (x.GroupId === msg.fields[0]), state.Students));\n patternInput = (msg.fields[1] ? [FSharpSet__Add(state.SelectedGroupIds, msg.fields[0]), fold((set$_1, item) => FSharpSet__Add(set$_1, item), state.SelectedStudentIds, studentIds)] : [FSharpSet__Remove(state.SelectedGroupIds, msg.fields[0]), fold((set$_3, item_1) => FSharpSet__Remove(set$_3, item_1), state.SelectedStudentIds, studentIds)]);\n return [new Types_State(state.Schedule, state.Groups, state.Students, patternInput[0], patternInput[1], state.SelectedPeriod, state.SelectedScheduleAssignMode, state.AssignProgress), Cmd_none()];\n }\n}\n\nexport function View_User(view_UserInputProps) {\n let elms, props;\n const dispatch = view_UserInputProps.dispatch;\n const state = view_UserInputProps.state;\n const student = view_UserInputProps.student;\n const checkboxId = \"checkbox_\" + UserIdModule_toString(student.Id);\n const props_5 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([(props = ofArray([[\"name\", checkboxId], [\"className\", join(\" \", [\"is-checkradio\"])], [\"id\", checkboxId], [\"checked\", FSharpSet__Contains(state.SelectedStudentIds, student.Id)], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(1, student.Id, ev.target.checked));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"checkbox\"], Helpers_combineClasses(\"checkbox\", props))))), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-normal\"], [\"htmlFor\", checkboxId], [\"children\", student.FullName]]))))]), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_5)));\n}\n\nexport function View_UserGroup(view_UserGroupInputProps) {\n const dispatch = view_UserGroupInputProps.dispatch;\n const state = view_UserGroupInputProps.state;\n const groupStudents = view_UserGroupInputProps.groupStudents;\n const group = view_UserGroupInputProps.group;\n const checkboxId = \"checkbox_\" + GroupIdModule_toString(group.Id);\n return react.createElement(react.Fragment, {}, ...toList_1(delay(() => {\n let props_5, elms, props;\n return append(singleton_1((props_5 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"className\", \"has-background-primary-light\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([(props = ofArray([[\"name\", checkboxId], [\"className\", join(\" \", [\"is-checkradio\"])], [\"id\", checkboxId], [\"checked\", FSharpSet__Contains(state.SelectedGroupIds, group.Id)], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, group.Id, ev.target.checked));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"checkbox\"], Helpers_combineClasses(\"checkbox\", props))))), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-primary\"], [\"htmlFor\", checkboxId], [\"children\", group.Title]]))))]), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_5))))), delay(() => map_1((student) => createElement(View_User, {\n student: student,\n state: state,\n dispatch: dispatch,\n }), groupStudents)));\n })));\n}\n\nexport function View_RenderMain(view_RenderMainInputProps) {\n let props_33, elms_2;\n const students = view_RenderMainInputProps.students;\n const groups = view_RenderMainInputProps.groups;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(view_RenderMainInputProps.schedule, groups, students), (msg, state) => State_update(msg, state), []);\n const state_1 = patternInput[0];\n const dispatch = patternInput[1];\n const props_35 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(props_33 = singleton_2([\"children\", Interop_reactApi.Children.toArray([(elms_2 = toList_1(delay(() => append(singleton_1(createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Alla Grupper\"]]))))), delay(() => append(collect((group) => {\n const groupStudents = filter((x) => (x.GroupId === group.Id), students);\n return singleton_1(createElement(View_UserGroup, {\n group: group,\n groupStudents: groupStudents,\n state: state_1,\n dispatch: dispatch,\n }));\n }, groups), delay(() => {\n let props_18, props_9, elms, props_4, props_16, elms_1, props_11;\n return append(singleton_1((props_18 = ofArray([[\"className\", \"mt-5\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty_1()))), (props_9 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(elms = ofArray([(props_4 = ofArray([[\"name\", \"copy-mode\"], [\"className\", join(\" \", [\"is-checkradio\"])], [\"id\", \"copy-mode-append\"], [\"checked\", equals(state_1.SelectedScheduleAssignMode, new StudentDays_ScheduleAssignMode(1))], [\"onChange\", (ev) => {\n const _arg1 = ev.target.checked;\n dispatch(new Types_Msg(3, new StudentDays_ScheduleAssignMode(1)));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"radio\"], Helpers_combineClasses(\"radio\", props_4))))), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-normal\"], [\"htmlFor\", \"copy-mode-append\"], [\"children\", \"Lägg till\"]]))))]), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_9)))), (props_16 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(elms_1 = ofArray([(props_11 = ofArray([[\"name\", \"copy-mode\"], [\"className\", join(\" \", [\"is-checkradio\"])], [\"id\", \"copy-mode-overwrite\"], [\"checked\", equals(state_1.SelectedScheduleAssignMode, new StudentDays_ScheduleAssignMode(2))], [\"onChange\", (ev_1) => {\n const _arg2 = ev_1.target.checked;\n dispatch(new Types_Msg(3, new StudentDays_ScheduleAssignMode(2)));\n }]]), createElement(\"input\", createObj(cons([\"type\", \"radio\"], Helpers_combineClasses(\"radio\", props_11))))), createElement(\"label\", createObj(Helpers_combineClasses(\"label\", ofArray([[\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-normal\"], [\"htmlFor\", \"copy-mode-overwrite\"], [\"children\", \"Skriv över\"]]))))]), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_16))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_18))))), delay(() => {\n let props_28, props_22, props_20, props_26, props_24;\n return singleton_1((props_28 = ofArray([[\"className\", \"pt-2\"], [\"style\", {\n justifyContent: \"flex-end\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_22 = ofArray([[\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([(props_20 = singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(Render, {\n value: state_1.SelectedPeriod,\n onChange: (arg) => {\n dispatch(new Types_Msg(2, arg));\n },\n selectOptions: empty_1(),\n })])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_22)))), (props_26 = ofArray([[\"className\", \"is-narrow\"], [\"children\", Interop_reactApi.Children.toArray([(props_24 = ofArray([[\"className\", \"py-2\"], [\"className\", \"is-success\"], [\"disabled\", FSharpSet__get_IsEmpty(state_1.SelectedStudentIds)], [\"onClick\", (_arg3) => {\n dispatch(new Types_Msg(4));\n }], [\"children\", \"Kopiera till utövare\"]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_24))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_26))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_28)))));\n }));\n })))))), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n })), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty_1())))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_33))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_35)));\n}\n\nexport function View_RenderWithLoad(view_RenderWithLoadInputProps) {\n const scheduleId = view_RenderWithLoadInputProps.scheduleId;\n const matchValue = [useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(schedulesApi().get(scheduleId)), [scheduleId]), useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(groupsApi().list()), [scheduleId]), useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(studentsApi().list()), [scheduleId])];\n let pattern_matching_result, error, groups_1, schedule_1, students_1;\n if (matchValue[0].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[0].fields[0];\n }\n else if (matchValue[0].tag === 2) {\n if (matchValue[1].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[2].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[2].fields[0];\n }\n else if (matchValue[2].tag === 2) {\n pattern_matching_result = 1;\n groups_1 = matchValue[1].fields[0];\n schedule_1 = matchValue[0].fields[0];\n students_1 = matchValue[2].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[2].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[2].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[1].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[1].fields[0];\n }\n else if (matchValue[2].tag === 3) {\n pattern_matching_result = 0;\n error = matchValue[2].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n switch (pattern_matching_result) {\n case 0: {\n const value = error.message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 1: {\n return createElement(View_RenderMain, {\n schedule: schedule_1,\n groups: groups_1,\n students: students_1,\n });\n }\n case 2: {\n return loader(\"big\");\n }\n }\n}\n\nexport function View_Render(view_RenderInputProps) {\n const _arg1 = view_RenderInputProps._arg1;\n const scheduleId = view_RenderInputProps.scheduleId;\n return createElement(View_RenderWithLoad, {\n scheduleId: scheduleId,\n });\n}\n\n","import { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { DayPlan_DayPlan, DaySegment_DaySegment$reflection, DayPlan_DayPlan$reflection, Schedules_ScheduleDeletePlanRequest, Schedules_ScheduleMovePlanRequest, Schedules_ScheduleUpdatePlanRequest } from \"../../Shared/Shared.fs.js\";\nimport { Toastr_toastError, Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { schedulesApi } from \"../Communication.fs.js\";\nimport { Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, lambda_type, unit_type, tuple_type, int32_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { useReact_useEffect_Z101E1A95, useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { CollectedDropProps, DropSpec$2, useDrop } from \"../Components/ReactDnd.fs.js\";\nimport { startImmediate } from \"../.fable/fable-library.3.2.1/Async.js\";\nimport { ofArray, item } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { createElement } from \"react\";\nimport * as react from \"react\";\nimport { empty, singleton as singleton_1, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { inlineSmall } from \"../Loader.fs.js\";\nimport { Render as Render_1 } from \"../Components/WorkoutBlock.fs.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Render as Render_2 } from \"../Components/DayPlanEdit.fs.js\";\n\nexport function updatePlan(scheduleDayKey, dayPlan, onSuccess, onError) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Schedules_ScheduleUpdatePlanRequest(scheduleDayKey.ScheduleId, scheduleDayKey.PeriodWeek, scheduleDayKey.WeekDay, dayPlan);\n return singleton.Bind(Remoting_handleNonAuth(schedulesApi().updatePlan(request)), (_arg1) => {\n if (_arg1.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Save error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Save error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport function movePlan(scheduleId, toDay_0, toDay_1, toDay_2, fromDay_0, fromDay_1, fromDay_2, onSuccess, onError) {\n const toDay = [toDay_0, toDay_1, toDay_2];\n const fromDay = [fromDay_0, fromDay_1, fromDay_2];\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Schedules_ScheduleMovePlanRequest(scheduleId, toDay[0], toDay[1], toDay[2], fromDay[0], fromDay[1], fromDay[2]);\n return singleton.Bind(Remoting_handleNonAuth(schedulesApi().movePlan(request)), (_arg1) => {\n if (_arg1.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Move error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Move error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport function deletePlan(scheduleDayKey, daySegment, onSuccess, onError) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Schedules_ScheduleDeletePlanRequest(scheduleDayKey.ScheduleId, scheduleDayKey.PeriodWeek, scheduleDayKey.WeekDay, daySegment);\n return singleton.Bind(Remoting_handleNonAuth(schedulesApi().deletePlan(request)), (_arg1) => {\n if (_arg1.tag === 0) {\n onSuccess();\n return singleton.Zero();\n }\n else {\n Toastr_toastError(\"Delete error\", \"\");\n onError();\n return singleton.Zero();\n }\n });\n }), (_arg2) => {\n Toastr_toastError(\"Delete error\", \"\");\n onError();\n return singleton.Zero();\n }));\n}\n\nexport class ScheduleDayActions extends Record {\n constructor(UpdatedPlan, MovedPlan, DeletedPlan) {\n super();\n this.UpdatedPlan = UpdatedPlan;\n this.MovedPlan = MovedPlan;\n this.DeletedPlan = DeletedPlan;\n }\n}\n\nexport function ScheduleDayActions$reflection() {\n return record_type(\"ScheduleDayBox.ScheduleDayActions\", [], ScheduleDayActions, () => [[\"UpdatedPlan\", lambda_type(tuple_type(int32_type, int32_type, DayPlan_DayPlan$reflection()), unit_type)], [\"MovedPlan\", lambda_type(tuple_type(tuple_type(int32_type, int32_type, DaySegment_DaySegment$reflection()), tuple_type(int32_type, int32_type, DaySegment_DaySegment$reflection())), unit_type)], [\"DeletedPlan\", lambda_type(tuple_type(int32_type, int32_type, DaySegment_DaySegment$reflection()), unit_type)]]);\n}\n\nexport function Render(renderInputProps) {\n const actions = renderInputProps.actions;\n const daySegment = renderInputProps.daySegment;\n const scheduleDayKey = renderInputProps.scheduleDayKey;\n const dayPlan = renderInputProps.dayPlan;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setIsSaving = patternInput[1];\n useReact_useEffect_Z101E1A95(() => {\n setIsSaving(false);\n }, [dayPlan, scheduleDayKey]);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(void 0);\n const setEditModel = patternInput_1[1];\n const editModel = patternInput_1[0];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const patternInput_4 = useDrop(ofArray([new DropSpec$2(0, (dayPlan != null) ? [] : [\"WorkoutTemplate\", \"DayPlan\"]), new DropSpec$2(1, (mon) => {\n patternInput_2[1](mon.isOver());\n const canDrop = mon.canDrop();\n return new CollectedDropProps(mon.isOver(), canDrop);\n }), new DropSpec$2(2, (dragItem) => {\n const matchValue = dragItem.dragType;\n switch (matchValue) {\n case \"WorkoutTemplate\": {\n setIsSaving(true);\n const dayPlan_1 = new DayPlan_DayPlan(daySegment, dragItem.dragSrc.Workout);\n startImmediate(updatePlan(scheduleDayKey, dayPlan_1, () => {\n actions.UpdatedPlan([scheduleDayKey.PeriodWeek, scheduleDayKey.WeekDay, dayPlan_1]);\n setIsSaving(false);\n }, () => {\n setIsSaving(false);\n }));\n break;\n }\n case \"DayPlan\": {\n const dragSrc = dragItem.dragSrc;\n const patternInput_3 = [item(0, dragSrc), item(1, dragSrc)];\n const scheduleDayKeyFrom = patternInput_3[1];\n setIsSaving(true);\n const dayTo = [scheduleDayKey.PeriodWeek, scheduleDayKey.WeekDay, daySegment];\n const dayFrom = [scheduleDayKeyFrom.PeriodWeek, scheduleDayKeyFrom.WeekDay, patternInput_3[0].DaySegment];\n startImmediate(movePlan(scheduleDayKey.ScheduleId, dayTo[0], dayTo[1], dayTo[2], dayFrom[0], dayFrom[1], dayFrom[2], () => {\n actions.MovedPlan([dayTo, dayFrom]);\n setIsSaving(false);\n }, () => {\n setIsSaving(false);\n }));\n break;\n }\n default: {\n }\n }\n })]));\n return react.createElement(react.Fragment, {}, ...toList(delay(() => {\n let props_1;\n return append(singleton_1((props_1 = ofArray([[\"ref\", patternInput_4[1]], [\"className\", \"py-1\"], [\"className\", \"px-0\"], [\"className\", \"mx-1\"], [\"style\", createObj(toList(delay(() => append(singleton_1([\"borderRadius\", 6 + \"px\"]), delay(() => (patternInput_2[0] ? singleton_1([\"backgroundColor\", \"#dbdbdb70\"]) : empty()))))))], [\"onClick\", (_arg1) => {\n setEditModel(dayPlan);\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n if (dayPlan == null) {\n return patternInput[0] ? singleton_1(inlineSmall) : singleton_1(createElement(\"div\", {\n style: {\n padding: (((3 + \"rem\") + \" \") + 0) + \"px\",\n },\n }));\n }\n else {\n const x = dayPlan;\n return singleton_1(createElement(Render_1, {\n workout: x.Workout,\n comment: x.Workout.Comment,\n shapeOpt: void 0,\n dragType: \"DayPlan\",\n dragData: ofArray([x, scheduleDayKey]),\n }));\n }\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_1))))), delay(() => {\n if (editModel == null) {\n return singleton_1(null);\n }\n else {\n const dayPlan_3 = editModel;\n return singleton_1(createElement(Render_2, {\n dayPlan: dayPlan_3,\n onSave: (dayPlan_2) => {\n startImmediate(updatePlan(scheduleDayKey, dayPlan_2, () => {\n actions.UpdatedPlan([scheduleDayKey.PeriodWeek, scheduleDayKey.WeekDay, dayPlan_2]);\n setEditModel(void 0);\n }, () => {\n }));\n },\n onImplement: void 0,\n onDelete: () => {\n startImmediate(deletePlan(scheduleDayKey, daySegment, () => {\n actions.DeletedPlan([scheduleDayKey.PeriodWeek, scheduleDayKey.WeekDay, daySegment]);\n setEditModel(void 0);\n }, () => {\n }));\n },\n onCancel: () => {\n setEditModel(void 0);\n },\n }));\n }\n }));\n })));\n}\n\n","import { Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { record_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { DurationModule_intToHMSString, Workout_getWorkoutTotalDuration, DurationModule_toInt, DaySegment_list, Schedules_ScheduleDayKey, ScheduleDay_ScheduleDay_Default_Z524259A4, DaySegment_strDaySegment, Calendar_weekDaysRange, Calendar_getWeekDay3LetterTitle, ScheduleWeek_ScheduleWeek$reflection } from \"../../Shared/Shared.fs.js\";\nimport { Render as Render_1, ScheduleDayActions$reflection } from \"./ScheduleDayBox.fs.js\";\nimport { borderStyleBottomGrey, borderStyleBottomPrimary, borderStylePrimary } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { collect, map, singleton, append, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { ofArray, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { defaultArg } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { sumBy, sum, map as map_1, tryFind } from \"../.fable/fable-library.3.2.1/Array.js\";\n\nexport class WeekParams extends Record {\n constructor(ScheduleId, ScheduleWeek, Actions) {\n super();\n this.ScheduleId = ScheduleId;\n this.ScheduleWeek = ScheduleWeek;\n this.Actions = Actions;\n }\n}\n\nexport function WeekParams$reflection() {\n return record_type(\"ScheduleWeek.WeekParams\", [], WeekParams, () => [[\"ScheduleId\", class_type(\"System.Guid\")], [\"ScheduleWeek\", ScheduleWeek_ScheduleWeek$reflection()], [\"Actions\", ScheduleDayActions$reflection()]]);\n}\n\nexport function Render(weekParams) {\n const props_18 = ofArray([[\"className\", \"px-2\"], [\"className\", \"pb-0\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_6;\n return append(singleton((props_6 = ofArray([[\"className\", \"has-text-centered\"], [\"className\", \"is-gapless\"], [\"className\", \"mb-2\"], [\"className\", \"pb-3\"], borderStyleBottomPrimary, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_1([\"className\", \"is-1\"]))))), delay(() => map((weekDay) => {\n let props_2;\n const props_4 = ofArray([[\"className\", \"py-1\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"className\", \"has-text-weight-bold\"], [\"className\", \"is-size-6\"], [\"children\", defaultArg(Calendar_getWeekDay3LetterTitle(weekDay), \"\")]]), createElement(\"p\", createObj(Helpers_combineClasses(\"\", props_2))))])]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4)));\n }, Calendar_weekDaysRange)))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))), delay(() => append(map((daySegment) => {\n const props_10 = ofArray([[\"className\", \"is-gapless\"], [\"className\", \"is-vcentered\"], [\"className\", \"py-1\"], [\"className\", \"my-2\"], borderStyleBottomGrey, [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_8;\n return append(singleton((props_8 = ofArray([[\"className\", \"is-1\"], [\"children\", DaySegment_strDaySegment(daySegment)]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_8))))), delay(() => collect((weekDay_1) => {\n const dayPlan = tryFind((plan) => equals(plan.DaySegment, daySegment), defaultArg(tryFind((x) => (x.WeekDay === weekDay_1), weekParams.ScheduleWeek.ScheduleDays), ScheduleDay_ScheduleDay_Default_Z524259A4(weekDay_1)).DayPlans);\n const scheduleDayKey = new Schedules_ScheduleDayKey(weekParams.ScheduleId, weekParams.ScheduleWeek.PeriodWeek, weekDay_1);\n return singleton(createElement(Render_1, {\n dayPlan: dayPlan,\n scheduleDayKey: scheduleDayKey,\n daySegment: daySegment,\n actions: weekParams.Actions,\n }));\n }, Calendar_weekDaysRange)));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_10)));\n }, DaySegment_list), delay(() => {\n let props_16;\n return singleton((props_16 = ofArray([[\"className\", \"is-gapless\"], [\"className\", \"py-2\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => append(singleton(createElement(\"div\", createObj(Helpers_combineClasses(\"column\", singleton_1([\"className\", \"is-1\"]))))), delay(() => {\n const durations = map_1((day) => [day.WeekDay, sum(map_1((x_1) => DurationModule_toInt(Workout_getWorkoutTotalDuration(x_1.Workout)), day.DayPlans, Int32Array), {\n GetZero: () => 0,\n Add: (x_2, y) => (x_2 + y),\n })], weekParams.ScheduleWeek.ScheduleDays);\n return collect((weekDay_2) => {\n let props_14;\n return singleton((props_14 = ofArray([[\"className\", \"py-1\"], [\"className\", \"has-text-centered\"], [\"children\", DurationModule_intToHMSString(sumBy((tuple) => tuple[1], durations.filter((tupledArg) => (tupledArg[0] === weekDay_2)), {\n GetZero: () => 0,\n Add: (x_3, y_1) => (x_3 + y_1),\n }))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_14)))));\n }, Calendar_weekDaysRange);\n }))))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_16)))));\n }))));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_18)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { union_type, tuple_type, record_type, option_type, int32_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { ScheduleWeek_ScheduleWeek_Default_Z524259A4, Calendar_periodWeeksRange, GroupIdModule_fromString, DurationModule_toHMSString, GroupIdModule_toString, Workout_getWorkoutTotalDuration, DurationModule_toInt, DurationModule_fromInt, ScheduleHelpers_deleteScheduleWeeksPlan, ScheduleHelpers_addUpdateScheduleWeeksPlan, DayPlan_DayPlan, ScheduleHelpers_tryFindScheduleWeeksDayPlan, Schedules_ScheduleInfo, DaySegment_DaySegment$reflection, DayPlan_DayPlan$reflection, Schedules_ScheduleInfo$reflection } from \"../../Shared/Shared.fs.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { tryFind, tryItem, sum, sumBy } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { createObj, equals } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { Remoting_handleNonAuth } from \"../Extensions.fs.js\";\nimport { schedulesApi, groupsApi } from \"../Communication.fs.js\";\nimport { cons, singleton as singleton_1, ofArray, map as map_1, tryHead, empty } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { useReact_useEffect_Z101E1A95, useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { defaultArg, bind, map } from \"../.fable/fable-library.3.2.1/Option.js\";\nimport { View_renderSelectOption } from \"../Common.fs.js\";\nimport { Render, defaultPeriod } from \"./SchedulePeriodSelect.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { collect, empty as empty_1, map as map_2, append, singleton as singleton_2, delay, toList } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { interpolate, toText, join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { loader } from \"../Loader.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { View_Render } from \"../Components/PassPanel.fs.js\";\nimport { WeekParams, Render as Render_1 } from \"./ScheduleWeek.fs.js\";\nimport { ScheduleDayActions } from \"./ScheduleDayBox.fs.js\";\n\nexport class Types_State extends Record {\n constructor(PeriodWeek, Schedule) {\n super();\n this.PeriodWeek = PeriodWeek;\n this.Schedule = Schedule;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"ScheduleCalendar.Types.State\", [], Types_State, () => [[\"PeriodWeek\", option_type(int32_type)], [\"Schedule\", Schedules_ScheduleInfo$reflection()]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"UpdatedPlan\", \"MovedPlan\", \"DeletedPlan\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"ScheduleCalendar.Types.Msg\", [], Types_Msg, () => [[[\"Item1\", int32_type], [\"Item2\", int32_type], [\"Item3\", DayPlan_DayPlan$reflection()]], [[\"Item1\", tuple_type(int32_type, int32_type, DaySegment_DaySegment$reflection())], [\"Item2\", tuple_type(int32_type, int32_type, DaySegment_DaySegment$reflection())]], [[\"Item1\", int32_type], [\"Item2\", int32_type], [\"Item3\", DaySegment_DaySegment$reflection()]]]);\n}\n\nexport function State_init(periodWeek, schedule) {\n return [new Types_State(periodWeek, schedule), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n let newDayPlan;\n const withWeeks = (weeks, state_1) => {\n let inputRecord;\n return new Types_State(state_1.PeriodWeek, (inputRecord = state_1.Schedule, new Schedules_ScheduleInfo(inputRecord.Id, inputRecord.TeacherId, inputRecord.Title, inputRecord.IsGlobal, weeks)));\n };\n switch (msg.tag) {\n case 1: {\n const weekDayFrom = msg.fields[1][1] | 0;\n const periodWeekFrom = msg.fields[1][0] | 0;\n const daySegmentFrom = msg.fields[1][2];\n const planFromOpt = ScheduleHelpers_tryFindScheduleWeeksDayPlan(periodWeekFrom, weekDayFrom, daySegmentFrom, state.Schedule.ScheduleWeeks);\n return [withWeeks(((planFromOpt == null) ? ((x) => x) : (newDayPlan = (new DayPlan_DayPlan(msg.fields[0][2], planFromOpt.Workout)), (arg) => ScheduleHelpers_addUpdateScheduleWeeksPlan(msg.fields[0][0], msg.fields[0][1], newDayPlan, ScheduleHelpers_deleteScheduleWeeksPlan(periodWeekFrom, weekDayFrom, daySegmentFrom, arg))))(state.Schedule.ScheduleWeeks), state), Cmd_none()];\n }\n case 2: {\n return [withWeeks(ScheduleHelpers_deleteScheduleWeeksPlan(msg.fields[0], msg.fields[1], msg.fields[2], state.Schedule.ScheduleWeeks), state), Cmd_none()];\n }\n default: {\n return [withWeeks(ScheduleHelpers_addUpdateScheduleWeeksPlan(msg.fields[0], msg.fields[1], msg.fields[2], state.Schedule.ScheduleWeeks), state), Cmd_none()];\n }\n }\n}\n\nexport function View_RenderSummary(view_RenderSummaryInputProps) {\n let periodWeekOpt, group_2, props_8, props_6, props_4, props_16, props_14, props_12, elms, elms_1, props_29;\n const periodWeek = view_RenderSummaryInputProps.periodWeek;\n const current = DurationModule_fromInt(sumBy((scheduleWeek) => sumBy((scheduleDay) => sumBy((dayPlan) => DurationModule_toInt(Workout_getWorkoutTotalDuration(dayPlan.Workout)), scheduleDay.DayPlans, {\n GetZero: () => 0,\n Add: (x_2, y) => (x_2 + y),\n }), scheduleWeek.ScheduleDays, {\n GetZero: () => 0,\n Add: (x_3, y_1) => (x_3 + y_1),\n }), view_RenderSummaryInputProps.schedule.ScheduleWeeks.filter((x) => {\n if (equals(x.PeriodWeek, periodWeek)) {\n return true;\n }\n else {\n return equals(periodWeek, void 0);\n }\n }), {\n GetZero: () => 0,\n Add: (x_4, y_2) => (x_4 + y_2),\n })) | 0;\n const groupsRequest = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(groupsApi().list()), []);\n const groupsList = (groupsRequest.tag === 2) ? groupsRequest.fields[0] : empty();\n const patternInput = useFeliz_React__React_useState_Static_1505(void 0);\n const setSelectedGroupId = patternInput[1];\n const selectedGroupId = patternInput[0];\n const firstGroupId = map((x_6) => x_6.Id, tryHead(groupsList));\n useReact_useEffect_Z101E1A95(() => {\n setSelectedGroupId(firstGroupId);\n }, [groupsList]);\n const groupOptions = map_1((group) => View_renderSelectOption(GroupIdModule_toString(group.Id), group.Title), groupsList);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(defaultPeriod);\n const selectedPeriod = patternInput_1[0];\n const groupRequest = useFeliz_React__React_useDeferred_Static_2344FC52(singleton.Delay(() => {\n if (selectedGroupId == null) {\n return singleton.Return(void 0);\n }\n else {\n const selectedGroupId_1 = selectedGroupId;\n return singleton.Bind(Remoting_handleNonAuth(groupsApi().get(selectedGroupId_1)), (_arg1) => singleton.Return(_arg1));\n }\n }), [selectedGroupId]);\n const groupPlanDuration = map((hours) => DurationModule_fromInt(hours * 3600), bind((periodWeekOpt = periodWeek, (periodPlan) => ((periodWeekOpt == null) ? sum(periodPlan.WeekHours, {\n GetZero: () => 0,\n Add: (x_8, y_3) => (x_8 + y_3),\n }) : tryItem(periodWeekOpt, periodPlan.WeekHours))), bind((yearPlan) => tryItem(selectedPeriod.Period, yearPlan.PeriodPlans), bind((array_4) => tryFind((yearPlan_1) => (yearPlan_1.Year === selectedPeriod.PeriodYear), array_4), (groupRequest.tag === 2) ? ((groupRequest.fields[0] != null) ? (group_2 = groupRequest.fields[0], group_2.YearPlans) : (void 0)) : (void 0)))));\n const props_32 = singleton_1([\"children\", Interop_reactApi.Children.toArray([createElement(\"p\", createObj(Helpers_combineClasses(\"panel-heading\", ofArray([[\"className\", \"is-size-6\"], [\"className\", \"has-text-weight-light\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Summering\"]])))), (props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_6 = ofArray([[\"style\", {\n width: 100 + \"vh\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-narrow\"], [\"children\", \"Nuvarande:\"]])))), (props_4 = ofArray([[\"className\", \"has-text-right\"], [\"children\", DurationModule_toHMSString(current)]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_4))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_6))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"panel-block\", props_8)))), (props_16 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_14 = ofArray([[\"style\", {\n width: 100 + \"vh\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-narrow\"], [\"children\", \"Planerad:\"]])))), (props_12 = ofArray([[\"className\", \"has-text-right\"], [\"children\", defaultArg(map((x_11) => DurationModule_toHMSString(x_11), groupPlanDuration), \"N/A\")]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_12))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_14))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"panel-block\", props_16)))), createElement(\"div\", {\n className: \"panel-block\",\n children: \"Grupp och period för att visa planerad tid:\",\n }), (elms = toList(delay(() => {\n let props_26, props_24, patternInput_2;\n return (groupsRequest.tag === 3) ? singleton_2(createElement(\"span\", {\n children: [\"Error on loading\"],\n })) : ((groupsRequest.tag === 2) ? singleton_2((props_26 = ofArray([[\"style\", {\n width: 100 + \"vh\",\n }], [\"children\", Interop_reactApi.Children.toArray([(props_24 = ofArray([[\"className\", \"is-expanded\"], [\"children\", Interop_reactApi.Children.toArray([(patternInput_2 = Helpers_extractClasses(ofArray([[\"className\", \"is-fullwidth\"], [\"className\", \"is-small\"], [\"className\", \"has-text-right\"], [\"value\", defaultArg(map((x_12) => GroupIdModule_toString(x_12), selectedGroupId), \"\")], [\"onChange\", (ev) => {\n setSelectedGroupId(GroupIdModule_fromString(ev.target.value));\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(groupOptions))]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput_2[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput_2[1]))]),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"control\", props_24))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_26))))) : singleton_2(loader(\"big\")));\n })), createElement(\"div\", {\n className: \"panel-block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (elms_1 = singleton_1((props_29 = ofArray([[\"style\", {\n width: 100 + \"vh\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(Render, {\n value: selectedPeriod,\n onChange: patternInput_1[1],\n selectOptions: singleton_1([\"className\", \"is-small\"]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_29))))), createElement(\"div\", {\n className: \"panel-block\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]);\n return createElement(\"nav\", createObj(Helpers_combineClasses(\"panel\", props_32)));\n}\n\nexport function View_renderNavigation(state) {\n let props_3, props_14, props_12, children;\n const props_16 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_3 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-weight-bold\"], [\"className\", \"pl-3\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n className: \"\",\n children: \"Programmets utformning: \",\n }), createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-weight-bold\"], [\"children\", state.Schedule.Title]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_3)))), (props_14 = ofArray([[\"className\", \"pl-0\"], [\"children\", Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", \"is-toggle\"], [\"className\", \"is-small\"], [\"children\", Interop_reactApi.Children.toArray([(children = toList(delay(() => append(map_2((periodWeek) => {\n const props_6 = toList(delay(() => append(equals(state.PeriodWeek, periodWeek) ? singleton_2([\"className\", \"is-active\"]) : empty_1(), delay(() => singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n children: toText(interpolate(\"Vecka %P()\", [periodWeek + 1])),\n href: toPath(new Route(24, state.Schedule.Id, periodWeek)),\n })])])))));\n return createElement(\"li\", createObj(Helpers_combineClasses(\"\", props_6)));\n }, Calendar_periodWeeksRange), delay(() => {\n let props_9;\n return singleton_2((props_9 = toList(delay(() => append(equals(state.PeriodWeek, void 0) ? singleton_2([\"className\", \"is-active\"]) : empty_1(), delay(() => singleton_2([\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n children: \"Översikt\",\n href: toPath(new Route(23, state.Schedule.Id)),\n })])]))))), createElement(\"li\", createObj(Helpers_combineClasses(\"\", props_9)))));\n })))), createElement(\"ul\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"tabs\", props_12))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_14))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_16)));\n}\n\nexport function View_RenderMainLayout(view_RenderMainLayoutInputProps) {\n let props_4, elms, props_2;\n const renderContent = view_RenderMainLayoutInputProps.renderContent;\n const schedule = view_RenderMainLayoutInputProps.schedule;\n const periodWeek = view_RenderMainLayoutInputProps.periodWeek;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(periodWeek, schedule), (msg, state) => State_update(msg, state), [periodWeek, schedule]);\n const state_1 = patternInput[0];\n const elms_1 = ofArray([View_renderNavigation(state_1), (props_4 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = singleton_1(renderContent(state_1)(patternInput[1])), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), (props_2 = ofArray([[\"className\", \"is-2\"], [\"className\", \"ml-2\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", {\n style: {\n position: \"sticky\",\n top: 10 + \"px\",\n },\n children: Interop_reactApi.Children.toArray([createElement(View_Render, null), createElement(View_RenderSummary, {\n periodWeek: state_1.PeriodWeek,\n schedule: state_1.Schedule,\n })]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_4))))]);\n return createElement(\"div\", {\n className: \"container\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n });\n}\n\nexport function View_renderPeriodLayout(state, dispatch) {\n let props;\n const elms = singleton_1((props = singleton_1([\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => collect((periodWeek) => singleton_2(createElement(Render_1, new WeekParams(state.Schedule.Id, defaultArg(tryFind((x) => (x.PeriodWeek === periodWeek), state.Schedule.ScheduleWeeks), ScheduleWeek_ScheduleWeek_Default_Z524259A4(periodWeek)), new ScheduleDayActions((arg) => {\n let tupledArg;\n dispatch((tupledArg = arg, new Types_Msg(0, tupledArg[0], tupledArg[1], tupledArg[2])));\n }, (arg_1) => {\n let tupledArg_1;\n dispatch((tupledArg_1 = arg_1, new Types_Msg(1, tupledArg_1[0], tupledArg_1[1])));\n }, (arg_2) => {\n let tupledArg_2;\n dispatch((tupledArg_2 = arg_2, new Types_Msg(2, tupledArg_2[0], tupledArg_2[1], tupledArg_2[2])));\n })))), Calendar_periodWeeksRange)))))]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props)))));\n return createElement(\"div\", {\n className: \"columns\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n });\n}\n\nexport function View_renderWeekLayout(periodWeek, state, dispatch) {\n const scheduleWeek = defaultArg(tryFind((x) => (x.PeriodWeek === periodWeek), state.Schedule.ScheduleWeeks), ScheduleWeek_ScheduleWeek_Default_Z524259A4(periodWeek));\n const children = toList(delay(() => singleton_2(createElement(Render_1, new WeekParams(state.Schedule.Id, scheduleWeek, new ScheduleDayActions((arg) => {\n let tupledArg;\n dispatch((tupledArg = arg, new Types_Msg(0, tupledArg[0], tupledArg[1], tupledArg[2])));\n }, (arg_1) => {\n let tupledArg_1;\n dispatch((tupledArg_1 = arg_1, new Types_Msg(1, tupledArg_1[0], tupledArg_1[1])));\n }, (arg_2) => {\n let tupledArg_2;\n dispatch((tupledArg_2 = arg_2, new Types_Msg(2, tupledArg_2[0], tupledArg_2[1], tupledArg_2[2])));\n }))))));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function View_RenderMainLayoutWithLoad(view_RenderMainLayoutWithLoadInputProps) {\n const renderContent = view_RenderMainLayoutWithLoadInputProps.renderContent;\n const periodWeek = view_RenderMainLayoutWithLoadInputProps.periodWeek;\n const scheduleId = view_RenderMainLayoutWithLoadInputProps.scheduleId;\n const schedule = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(schedulesApi().get(scheduleId)), [scheduleId]);\n switch (schedule.tag) {\n case 3: {\n const value = schedule.fields[0].message;\n return createElement(\"div\", {\n children: [value],\n });\n }\n case 2: {\n return createElement(View_RenderMainLayout, {\n periodWeek: periodWeek,\n schedule: schedule.fields[0],\n renderContent: renderContent,\n });\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function View_RenderPeriod(view_RenderPeriodInputProps) {\n const _arg1 = view_RenderPeriodInputProps._arg1;\n const scheduleId = view_RenderPeriodInputProps.scheduleId;\n return createElement(View_RenderMainLayoutWithLoad, {\n scheduleId: scheduleId,\n periodWeek: void 0,\n renderContent: (state) => ((dispatch) => View_renderPeriodLayout(state, dispatch)),\n });\n}\n\nexport function View_RenderWeek(view_RenderWeekInputProps) {\n const _arg1 = view_RenderWeekInputProps._arg1;\n const periodWeek = view_RenderWeekInputProps.periodWeek;\n const scheduleId = view_RenderWeekInputProps.scheduleId;\n return createElement(View_RenderMainLayoutWithLoad, {\n scheduleId: scheduleId,\n periodWeek: periodWeek,\n renderContent: (state) => ((dispatch) => View_renderWeekLayout(periodWeek, state, dispatch)),\n });\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { Calendar_PeriodInfo_get_Current, EmailModule_toString, Admin_Favorite, Students_StudentListItem$reflection, Admin_Favorite$reflection } from \"../../Shared/Shared.fs.js\";\nimport { tuple_type, class_type, record_type, list_type, union_type, string_type, array_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { adminApi } from \"../Communication.fs.js\";\nimport { Cmd_none, Cmd_OfFunc_result, Cmd_batch } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { filter, length, ofArray, empty, ofSeq, singleton as singleton_1 } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { distinct } from \"../.fable/fable-library.3.2.1/Seq2.js\";\nimport { map as map_1, empty as empty_1, singleton as singleton_2, append, delay, toList, collect } from \"../.fable/fable-library.3.2.1/Seq.js\";\nimport { createObj, stringHash } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { contains, map } from \"../.fable/fable-library.3.2.1/Array.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../.fable/Feliz.1.51.0/React.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { Route, toPath } from \"../Router.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { toString } from \"../.fable/fable-library.3.2.1/Date.js\";\nimport { View_renderNotification, View_RenderDeleteWindow } from \"../Common.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_State extends Record {\n constructor(Favorites, ListStudents) {\n super();\n this.Favorites = Favorites;\n this.ListStudents = ListStudents;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"AdminOverview.Types.State\", [], Types_State, () => [[\"Favorites\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Admin_Favorite$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(Admin_Favorite$reflection())]], [[\"ErrorValue\", string_type]]]))], [\"ListStudents\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_StudentListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_StudentListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoadFavorites\", \"LoadStudents\", \"DeleteFavoriteClick\", \"DeleteFavorite\", \"DeleteFavoriteUserClick\", \"DeleteFavoriteUser\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"AdminOverview.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Admin_Favorite$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", array_type(Admin_Favorite$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [list_type(Students_StudentListItem$reflection()), string_type], FSharpResult$2, () => [[[\"ResultValue\", list_type(Students_StudentListItem$reflection())]], [[\"ErrorValue\", string_type]]]))]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [class_type(\"System.Guid\"), string_type], FSharpResult$2, () => [[[\"ResultValue\", class_type(\"System.Guid\")]], [[\"ErrorValue\", string_type]]]))]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [tuple_type(class_type(\"System.Guid\"), class_type(\"System.Guid\")), string_type], FSharpResult$2, () => [[[\"ResultValue\", tuple_type(class_type(\"System.Guid\"), class_type(\"System.Guid\"))]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport const Cmd_loadFavorites = singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(adminApi().favoriteList()), (_arg1) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n\nexport function Cmd_loadStudents(ids) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(adminApi().studentsByIds(ids)), (_arg1) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(0, _arg1)))))), (_arg2) => singleton.Return(new Types_Msg(1, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Cmd_deleteFavorite(favoriteId) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(adminApi().deleteFavorite(favoriteId)), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(0, favoriteId)))) : (new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(3, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Cmd_deleteFavoriteUser(favoriteId, userId) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(adminApi().deleteFavoriteUser([favoriteId, userId])), (_arg1) => {\n const result = _arg1;\n return singleton.Return((result.tag === 0) ? (new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(0, [favoriteId, userId])))) : (new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, result.fields[0])))));\n })), (_arg2) => singleton.Return(new Types_Msg(5, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport const State_init = [new Types_State(new DeferredResult$1(1), new DeferredResult$1(1)), Cmd_batch(singleton_1(Cmd_OfFunc_result(new Types_Msg(0, new AsyncOperationStatus$1(0)))))];\n\nexport function State_update(msg, state) {\n let matchValue, matchValue_1, matchValue_2;\n if (msg.tag === 1) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Favorites, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n else {\n return [new Types_State(state.Favorites, new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0]))), Cmd_none()];\n }\n }\n else {\n return [new Types_State(state.Favorites, new DeferredResult$1(1)), Cmd_fromAsync(Cmd_loadStudents((matchValue = state.Favorites, (matchValue.tag === 2) ? ((matchValue.fields[0].tag === 0) ? ofSeq(distinct(collect((x_1) => x_1.UserIds, matchValue.fields[0].fields[0]), {\n Equals: (x_2, y) => (x_2 === y),\n GetHashCode: (x_2) => stringHash(x_2),\n })) : empty()) : empty())))];\n }\n }\n else if (msg.tag === 2) {\n return [state, Cmd_fromAsync(Cmd_deleteFavorite(msg.fields[0]))];\n }\n else if (msg.tag === 3) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.ListStudents), Cmd_none()];\n }\n else {\n return [new Types_State((matchValue_1 = state.Favorites, (matchValue_1.tag === 2) ? ((matchValue_1.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, matchValue_1.fields[0].fields[0].filter((x_4) => (x_4.Id !== msg.fields[0].fields[0].fields[0]))))) : state.Favorites) : state.Favorites), state.ListStudents), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.tag === 4) {\n return [state, Cmd_fromAsync(Cmd_deleteFavoriteUser(msg.fields[0], msg.fields[1]))];\n }\n else if (msg.tag === 5) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.ListStudents), Cmd_none()];\n }\n else {\n return [new Types_State((matchValue_2 = state.Favorites, (matchValue_2.tag === 2) ? ((matchValue_2.fields[0].tag === 0) ? (new DeferredResult$1(2, new FSharpResult$2(0, map((x_5) => {\n if (x_5.Id === msg.fields[0].fields[0].fields[0][0]) {\n return new Admin_Favorite(x_5.Id, x_5.Title, x_5.UserIds.filter((xx) => (xx !== msg.fields[0].fields[0].fields[0][1])));\n }\n else {\n return x_5;\n }\n }, matchValue_2.fields[0].fields[0])))) : state.Favorites) : state.Favorites), state.ListStudents), Cmd_none()];\n }\n }\n else {\n return [state, Cmd_none()];\n }\n }\n else if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.ListStudents), Cmd_none()];\n }\n else {\n return [new Types_State(new DeferredResult$1(2, new FSharpResult$2(0, msg.fields[0].fields[0].fields[0])), state.ListStudents), Cmd_OfFunc_result(new Types_Msg(1, new AsyncOperationStatus$1(0)))];\n }\n }\n else {\n return [new Types_State(new DeferredResult$1(1), state.ListStudents), Cmd_fromAsync(Cmd_loadFavorites)];\n }\n}\n\nexport function View_RenderStudent(view_RenderStudentInputProps) {\n const dispatch = view_RenderStudentInputProps.dispatch;\n const student = view_RenderStudentInputProps.student;\n const favorite = view_RenderStudentInputProps.favorite;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setChatHover = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const setStatisticHover = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setOverViewHover = patternInput_2[1];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const setPlanHover = patternInput_3[1];\n const patternInput_4 = useFeliz_React__React_useState_Static_1505(false);\n const patternInput_5 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_5[1];\n const isDeleteWindow = patternInput_5[0];\n const props_28 = ofArray([[\"className\", \"is-vcentered\"], [\"style\", {\n borderTop: (((1 + \"px \") + \"solid\") + \" \") + \"#A9A9A9\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_3, value_10;\n return append(singleton_2((props_3 = ofArray([[\"style\", {\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", {\n children: [student.FullName],\n }), createElement(\"br\", {}), (value_10 = EmailModule_toString(student.Email), createElement(\"span\", {\n children: [value_10],\n }))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_3))))), delay(() => {\n let props_7, props_5;\n return append(singleton_2((props_7 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_5 = toList(delay(() => append(singleton_2([\"className\", \"is-size-7\"]), delay(() => append(patternInput[0] ? singleton_2([\"children\", \"Visa chat\"]) : empty_1(), delay(() => append(patternInput_1[0] ? singleton_2([\"children\", \"Visa statistik\"]) : empty_1(), delay(() => append(patternInput_2[0] ? singleton_2([\"children\", \"Visa kalender\"]) : empty_1(), delay(() => append(patternInput_3[0] ? singleton_2([\"children\", \"Visa årsplanering\"]) : empty_1(), delay(() => (patternInput_4[0] ? singleton_2([\"children\", \"Ta bort utövaren från favoritlistan\"]) : empty_1()))))))))))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_5))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_7))))), delay(() => {\n let props_26, props_15, props_19, props_23;\n return append(singleton_2((props_26 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg1) => {\n setChatHover(true);\n },\n onMouseLeave: (_arg2) => {\n setChatHover(false);\n },\n href: toPath(new Route(6, student.Id)),\n style: {\n width: 5 + \"rem\",\n display: \"inline-block\",\n textAlign: \"left\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_10;\n return append(singleton_2((props_10 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-comments\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_10))))), delay(() => {\n const matchValue = student.ChatChangeDate;\n if (matchValue == null) {\n return singleton_2(null);\n }\n else {\n const x = matchValue;\n return singleton_2(createElement(\"span\", {\n style: {\n color: \"#666\",\n fontSize: 0.7 + \"rem\",\n },\n className: \"ml-1\",\n children: toString(x, \"d/M\"),\n }));\n }\n }));\n })))),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg3) => {\n setStatisticHover(true);\n },\n onMouseLeave: (_arg4) => {\n setStatisticHover(false);\n },\n href: toPath(new Route(15, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_15 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-chart-bar\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_15))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg5) => {\n setOverViewHover(true);\n },\n onMouseLeave: (_arg6) => {\n setOverViewHover(false);\n },\n href: toPath(new Route(29, student.Id, Calendar_PeriodInfo_get_Current())),\n children: Interop_reactApi.Children.toArray([(props_19 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"fa\", \"fa-calendar-alt\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_19))))]),\n }), createElement(\"a\", {\n className: \"px-2\",\n onMouseEnter: (_arg7) => {\n setPlanHover(true);\n },\n onMouseLeave: (_arg8) => {\n setPlanHover(false);\n },\n href: toPath(new Route(13, student.Id)),\n children: Interop_reactApi.Children.toArray([(props_23 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-success\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", {\n className: join(\" \", [\"far\", \"fa-clock\"]),\n })])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_23))))]),\n })])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_26))))), delay(() => (isDeleteWindow ? singleton_2(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(4, favorite.Id, student.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort här utövaren från favoritlistan?\",\n })) : empty_1())));\n }));\n }));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_28)));\n}\n\nexport function View_RenderFavorite(view_RenderFavoriteInputProps) {\n const dispatch = view_RenderFavoriteInputProps.dispatch;\n const students = view_RenderFavoriteInputProps.students;\n const favorite = view_RenderFavoriteInputProps.favorite;\n const patternInput = useFeliz_React__React_useState_Static_1505(true);\n const setVisible = patternInput[1];\n const isVisible = patternInput[0];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(false);\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setIsDeleteWindow = patternInput_2[1];\n const isDeleteWindow = patternInput_2[0];\n const props_16 = ofArray([[\"className\", \"mb-2\"], [\"className\", \"py-2\"], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#808080\",\n alignContent: \"space-between\",\n }], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_14, props_2, props_6, props_4, props_12;\n return append(singleton_2((props_14 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([(props_2 = ofArray([[\"onClick\", (_arg1) => {\n setVisible(!isVisible);\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", ofArray([[\"className\", \"has-text-primary\"], [\"children\", favorite.Title]]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_2)))), (props_6 = ofArray([[\"className\", \"is-narrow\"], [\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray([(props_4 = toList(delay(() => append(singleton_2([\"className\", \"is-size-7\"]), delay(() => (patternInput_1[0] ? singleton_2([\"children\", \"Ta bort favoritlistan\"]) : empty_1()))))), createElement(\"span\", createObj(Helpers_combineClasses(\"\", props_4))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_6)))), (props_12 = ofArray([[\"className\", \"has-text-right\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let props_9;\n return (length(students) > 0) ? singleton_2(createElement(\"a\", {\n className: join(\" \", [\"hoverable\"]),\n className: \"px-2\",\n onClick: (_arg2) => {\n setVisible(!isVisible);\n },\n children: Interop_reactApi.Children.toArray([(props_9 = ofArray([[\"className\", join(\" \", [\"hoverable\"])], [\"className\", \"has-text-primary\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"i\", createObj(toList(delay(() => (isVisible ? singleton_2([\"className\", join(\" \", [\"fa\", \"fa-chevron-up\"])]) : singleton_2([\"className\", join(\" \", [\"fa\", \"fa-chevron-down\"])]))))))])]]), createElement(\"span\", createObj(Helpers_combineClasses(\"icon\", props_9))))]),\n })) : empty_1();\n }))))]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_12))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_14))))), delay(() => append(isVisible ? map_1((student) => createElement(View_RenderStudent, {\n favorite: favorite,\n student: student,\n dispatch: dispatch,\n }), students) : empty_1(), delay(() => (isDeleteWindow ? singleton_2(createElement(View_RenderDeleteWindow, {\n confirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n dispatch(new Types_Msg(2, favorite.Id));\n },\n notConfirmed: () => {\n setIsDeleteWindow(!isDeleteWindow);\n },\n text: \"Är du säker på att du vill ta bort den här favoritlistan?\",\n })) : empty_1())))));\n }))))]]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_16)));\n}\n\nexport function Component_Render(user) {\n let props_7, elms;\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init, (msg, state) => State_update(msg, state), [user]);\n const state_1 = patternInput[0];\n const props_9 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_7 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms = toList(delay(() => {\n let props_2;\n return append(singleton_2((props_2 = ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"style\", {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }], [\"children\", Interop_reactApi.Children.toArray([createElement(\"span\", createObj(Helpers_combineClasses(\"\", singleton_1([\"children\", \"Utövare\"]))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_2))))), delay(() => {\n const matchValue = [state_1.Favorites, state_1.ListStudents];\n let pattern_matching_result, favorites, students, e;\n if (matchValue[0].tag === 2) {\n if (matchValue[0].fields[0].tag === 1) {\n pattern_matching_result = 1;\n e = matchValue[0].fields[0].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 1) {\n pattern_matching_result = 1;\n e = matchValue[1].fields[0].fields[0];\n }\n else {\n pattern_matching_result = 0;\n favorites = matchValue[0].fields[0].fields[0];\n students = matchValue[1].fields[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[1].tag === 2) {\n if (matchValue[1].fields[0].tag === 1) {\n pattern_matching_result = 1;\n e = matchValue[1].fields[0].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n switch (pattern_matching_result) {\n case 0: {\n return collect((favorite) => {\n const favoriteStudents = filter((x) => contains(x.Id, favorite.UserIds, {\n Equals: (x_1, y) => (x_1 === y),\n GetHashCode: (x_1) => stringHash(x_1),\n }), students);\n return singleton_2(createElement(View_RenderFavorite, {\n favorite: favorite,\n students: favoriteStudents,\n dispatch: patternInput[1],\n }));\n }, favorites);\n }\n case 1: {\n return singleton_2(View_renderNotification([\"className\", \"is-danger\"], e));\n }\n case 2: {\n return singleton_2(loader(\"big\"));\n }\n }\n }));\n })), createElement(\"div\", {\n className: \"column\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n })), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", empty())))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_7))))])]);\n return createElement(\"div\", createObj(Helpers_combineClasses(\"container\", props_9)));\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, union_type, unit_type, list_type, record_type, string_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { GroupIdModule_fromString, GroupIdModule_toString, SchoolIdModule_fromString, SchoolIdModule_toString, EmailModule_toString, Admin_StudentSchoolUpdateRequest, Admin_GroupAdminItem$reflection, Schools_School$reflection } from \"../../Shared/Shared.fs.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { schoolsApi, adminApi } from \"../Communication.fs.js\";\nimport { validateSync } from \"../.fable/Fable.Validation.0.2.1/Validation.fs.js\";\nimport { empty } from \"../.fable/fable-library.3.2.1/Map.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { singleton as singleton_1, cons, ofArray, filter, map } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { borderStylePrimary, View_renderSelectOption } from \"../Common.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_extractClasses, Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { join } from \"../.fable/fable-library.3.2.1/String.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Id, Email, FullName, SchoolId, GroupId) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.FullName = FullName;\n this.SchoolId = SchoolId;\n this.GroupId = GroupId;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"StudentSchoolEdit.Types.Form\", [], Types_Form, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"FullName\", string_type], [\"SchoolId\", class_type(\"System.Guid\")], [\"GroupId\", class_type(\"System.Guid\")]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, OriginalValue, Schools, Groups, Saving, FormErrors, IsNeedValidation) {\n super();\n this.Form = Form;\n this.OriginalValue = OriginalValue;\n this.Schools = Schools;\n this.Groups = Groups;\n this.Saving = Saving;\n this.FormErrors = FormErrors;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"StudentSchoolEdit.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"OriginalValue\", Types_Form$reflection()], [\"Schools\", list_type(Schools_School$reflection())], [\"Groups\", list_type(Admin_GroupAdminItem$reflection())], [\"Saving\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"FormErrors\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, list_type(string_type)])], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"SchoolIdChanged\", \"GroupIdChanged\", \"Save\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"StudentSchoolEdit.Types.Msg\", [], Types_Msg, () => [[[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_save(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => {\n const request = new Admin_StudentSchoolUpdateRequest(state.Form.Id, state.Form.SchoolId, state.Form.GroupId);\n return singleton.Bind(Remoting_handleNonAuth(adminApi().updateStudentSchool(request)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n });\n }), (_arg2) => singleton.Return(new Types_Msg(2, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function Validation_validate(formInfo) {\n return validateSync(true, (_arg1) => (new Types_Form(formInfo.Id, formInfo.Email, formInfo.FullName, formInfo.SchoolId, formInfo.GroupId)));\n}\n\nexport function Validation_validateIf(needValidate, x) {\n if (needValidate) {\n const matchValue = Validation_validate(x);\n if (matchValue.tag === 1) {\n return [x, matchValue.fields[0]];\n }\n else {\n return [matchValue.fields[0], empty()];\n }\n }\n else {\n return [x, empty()];\n }\n}\n\nexport function State_init(student, schools, groups) {\n const form = new Types_Form(student.Id, student.Email, student.FullName, student.SchoolId, student.GroupId);\n return [new Types_State(form, form, schools, groups, new DeferredResult$1(0), empty(), false), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n let inputRecord_1, inputRecord;\n if (msg.tag === 1) {\n const patternInput_1 = Validation_validateIf(state.IsNeedValidation, (inputRecord_1 = state.Form, new Types_Form(inputRecord_1.Id, inputRecord_1.Email, inputRecord_1.FullName, inputRecord_1.SchoolId, msg.fields[0])));\n return [new Types_State(patternInput_1[0], state.OriginalValue, state.Schools, state.Groups, state.Saving, patternInput_1[1], state.IsNeedValidation), Cmd_none()];\n }\n else if (msg.tag === 2) {\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.Schools, state.Groups, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.FormErrors, state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State(state.Form, state.Form, state.Schools, state.Groups, new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.FormErrors, state.IsNeedValidation), View_Cmd_toastSuccess(\"Student saved\")];\n }\n }\n else {\n const matchValue = Validation_validate(state.Form);\n if (matchValue.tag === 1) {\n return [new Types_State(state.Form, state.OriginalValue, state.Schools, state.Groups, state.Saving, matchValue.fields[0], true), Cmd_none()];\n }\n else {\n return [new Types_State(matchValue.fields[0], state.OriginalValue, state.Schools, state.Groups, new DeferredResult$1(1), empty(), true), Cmd_fromAsync(Cmd_save(state))];\n }\n }\n }\n else {\n const patternInput = Validation_validateIf(state.IsNeedValidation, (inputRecord = state.Form, new Types_Form(inputRecord.Id, inputRecord.Email, inputRecord.FullName, msg.fields[0], inputRecord.GroupId)));\n return [new Types_State(patternInput[0], state.OriginalValue, state.Schools, state.Groups, state.Saving, patternInput[1], state.IsNeedValidation), Cmd_none()];\n }\n}\n\nexport function View_view(view_viewInputProps) {\n let props_66, props_64, props_62, props_60, props_12, props_10, props_8, elms_1, elms, props_24, props_22, props_20, elms_3, elms_2, props_16, props_39, props_37, props_35, props_33, elms_4, patternInput, props_54, props_52, props_50, props_48, elms_5, patternInput_1, elms_7, elms_6, props_56;\n const dispatch = view_viewInputProps.dispatch;\n const state = view_viewInputProps.state;\n const availableSchools = map((x) => View_renderSelectOption(x.Id, x.Title), state.Schools);\n const availableGroups = map((x_2) => View_renderSelectOption(x_2.Id, x_2.Title), filter((x_1) => (x_1.SchoolId === state.Form.SchoolId), state.Groups));\n const elms_8 = singleton_1((props_66 = ofArray([[\"className\", \"is-6\"], [\"className\", \"pt-6\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Ändra egenskaper\"]])))), (props_64 = ofArray([[\"className\", \"px-5\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(props_62 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_60 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_10 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Fullständigt namn: \"]])))), (props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton_1((elms = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"defaultValue\", state.Form.FullName], [\"disabled\", true]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_8))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_10))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_12)))), (props_24 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_22 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Epost:\"]])))), (props_20 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_3 = singleton_1((elms_2 = singleton_1((props_16 = ofArray([[\"defaultValue\", EmailModule_toString(state.Form.Email)], [\"disabled\", true]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_16)))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_22))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_24)))), (props_39 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_37 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"School:\"]])))), (props_35 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_33 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_4 = singleton_1((patternInput = Helpers_extractClasses(ofArray([[\"className\", \"is-fullwidth\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(availableSchools))], [\"value\", SchoolIdModule_toString(state.Form.SchoolId)], [\"onChange\", (ev) => {\n dispatch(new Types_Msg(0, SchoolIdModule_fromString(ev.target.value)));\n }]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput[1]))]),\n }))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_33))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_35))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_37))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_39)))), (props_54 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_52 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Grupp:\"]])))), (props_50 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_48 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_5 = singleton_1((patternInput_1 = Helpers_extractClasses(ofArray([[\"className\", \"is-fullwidth\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(availableGroups))], [\"value\", GroupIdModule_toString(state.Form.GroupId)], [\"onChange\", (ev_1) => {\n dispatch(new Types_Msg(1, GroupIdModule_fromString(ev_1.target.value)));\n }]])), createElement(\"div\", {\n className: join(\" \", cons(\"select\", patternInput_1[0])),\n children: Interop_reactApi.Children.toArray([createElement(\"select\", createObj(patternInput_1[1]))]),\n }))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"field\", props_48))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_50))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_52))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_54)))), (elms_7 = singleton_1((elms_6 = singleton_1((props_56 = ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Spara\"], [\"disabled\", equals(state.Saving, new DeferredResult$1(1)) ? true : equals(state.Form, state.OriginalValue)], [\"onClick\", (x_7) => {\n x_7.preventDefault();\n dispatch(new Types_Msg(2, new AsyncOperationStatus$1(0)));\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_56))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_7)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_60))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_62))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_64))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_66)))));\n return createElement(\"div\", {\n className: \"container\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_8)),\n });\n}\n\nexport function Component_RenderForm(component_RenderFormInputProps) {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(component_RenderFormInputProps.student, component_RenderFormInputProps.isNew, component_RenderFormInputProps.groups), (msg, state) => State_update(msg, state), []);\n return createElement(View_view, {\n state: patternInput[0],\n dispatch: patternInput[1],\n });\n}\n\nexport function Component_ResolveStudent(component_ResolveStudentInputProps) {\n const groups = component_ResolveStudentInputProps.groups;\n const schools = component_ResolveStudentInputProps.schools;\n const id = component_ResolveStudentInputProps.id;\n const student = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(adminApi().getStudentSchool(id)), [id]);\n switch (student.tag) {\n case 2: {\n return createElement(Component_RenderForm, {\n student: student.fields[0],\n isNew: schools,\n groups: groups,\n });\n }\n case 3: {\n return createElement(\"div\", {\n children: [\"Error\"],\n });\n }\n default: {\n return loader(\"big\");\n }\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const _arg1 = component_RenderInputProps._arg1;\n const id = component_RenderInputProps.id;\n const matchValue = [useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(schoolsApi().list()), [id]), useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(adminApi().getAllGroups()), [id])];\n let pattern_matching_result, groups_1, schools_1;\n if (matchValue[0].tag === 2) {\n if (matchValue[1].tag === 2) {\n pattern_matching_result = 0;\n groups_1 = matchValue[1].fields[0];\n schools_1 = matchValue[0].fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return createElement(Component_ResolveStudent, {\n id: id,\n schools: schools_1,\n groups: groups_1,\n });\n }\n case 1: {\n return loader(\"big\");\n }\n }\n}\n\n","import { Union, Record } from \"../.fable/fable-library.3.2.1/Types.js\";\nimport { bool_type, union_type, unit_type, record_type, option_type, string_type, class_type } from \"../.fable/fable-library.3.2.1/Reflection.js\";\nimport { FSharpResult$2 } from \"../.fable/fable-library.3.2.1/Choice.js\";\nimport { Cmd_fromAsync, View_Cmd_toastSuccess, DeferredResult$1, AsyncOperationStatus$1, Remoting_handleNonAuth, AsyncOperationStatus$1$reflection, DeferredResult$1$reflection } from \"../Extensions.fs.js\";\nimport { singleton } from \"../.fable/fable-library.3.2.1/AsyncBuilder.js\";\nimport { usersApi } from \"../Communication.fs.js\";\nimport { Cmd_none } from \"../.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { Interop_reactApi } from \"../.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport { equals, createObj } from \"../.fable/fable-library.3.2.1/Util.js\";\nimport { Helpers_combineClasses } from \"../.fable/Feliz.Bulma.2.17.0/ElementBuilders.fs.js\";\nimport { singleton as singleton_1, cons, ofArray } from \"../.fable/fable-library.3.2.1/List.js\";\nimport { borderStylePrimary } from \"../Common.fs.js\";\nimport { EmailModule_toString } from \"../../Shared/Shared.fs.js\";\nimport { useFeliz_React__React_useElmish_Static_17DC4F1D } from \"../.fable/Feliz.UseElmish.1.5.1/UseElmish.fs.js\";\nimport { useFeliz_React__React_useDeferred_Static_2344FC52 } from \"../.fable/Feliz.UseDeferred.1.4.1/UseDeferred.fs.js\";\nimport { loader } from \"../Loader.fs.js\";\n\nexport class Types_Form extends Record {\n constructor(Id, Email, Password, FullName, DeletedDate) {\n super();\n this.Id = Id;\n this.Email = Email;\n this.Password = Password;\n this.FullName = FullName;\n this.DeletedDate = DeletedDate;\n }\n}\n\nexport function Types_Form$reflection() {\n return record_type(\"UserRestore.Types.Form\", [], Types_Form, () => [[\"Id\", class_type(\"System.Guid\")], [\"Email\", string_type], [\"Password\", string_type], [\"FullName\", string_type], [\"DeletedDate\", option_type(class_type(\"System.DateTimeOffset\"))]]);\n}\n\nexport class Types_State extends Record {\n constructor(Form, Restoring, IsNeedValidation) {\n super();\n this.Form = Form;\n this.Restoring = Restoring;\n this.IsNeedValidation = IsNeedValidation;\n }\n}\n\nexport function Types_State$reflection() {\n return record_type(\"UserRestore.Types.State\", [], Types_State, () => [[\"Form\", Types_Form$reflection()], [\"Restoring\", DeferredResult$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))], [\"IsNeedValidation\", bool_type]]);\n}\n\nexport class Types_Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Restore\"];\n }\n}\n\nexport function Types_Msg$reflection() {\n return union_type(\"UserRestore.Types.Msg\", [], Types_Msg, () => [[[\"Item\", AsyncOperationStatus$1$reflection(union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [unit_type, string_type], FSharpResult$2, () => [[[\"ResultValue\", unit_type]], [[\"ErrorValue\", string_type]]]))]]]);\n}\n\nexport function Cmd_restore(state) {\n return singleton.Delay(() => singleton.TryWith(singleton.Delay(() => singleton.Bind(Remoting_handleNonAuth(usersApi().restore(state.Form.Id)), (_arg1) => {\n const response = _arg1;\n return (response.tag === 1) ? singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, response.fields[0])))) : singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(0, void 0))));\n })), (_arg2) => singleton.Return(new Types_Msg(0, new AsyncOperationStatus$1(1, new FSharpResult$2(1, _arg2.message))))));\n}\n\nexport function State_init(user) {\n return [new Types_State(new Types_Form(user.Id, user.Email, \"\", user.FullName, user.DeletedDate), new DeferredResult$1(0), false), Cmd_none()];\n}\n\nexport function State_update(msg, state) {\n let inputRecord;\n if (msg.fields[0].tag === 1) {\n if (msg.fields[0].fields[0].tag === 1) {\n return [new Types_State(state.Form, new DeferredResult$1(2, new FSharpResult$2(1, msg.fields[0].fields[0].fields[0])), state.IsNeedValidation), Cmd_none()];\n }\n else {\n return [new Types_State((inputRecord = state.Form, new Types_Form(inputRecord.Id, inputRecord.Email, inputRecord.Password, inputRecord.FullName, void 0)), new DeferredResult$1(2, new FSharpResult$2(0, void 0)), state.IsNeedValidation), View_Cmd_toastSuccess(\"User restored\")];\n }\n }\n else {\n return [new Types_State(state.Form, new DeferredResult$1(1), true), Cmd_fromAsync(Cmd_restore(state))];\n }\n}\n\nexport function View_view(view_viewInputProps) {\n let props_36, props_34, props_32, props_30, props_12, props_10, props_8, elms_1, elms, props_24, props_22, props_20, elms_3, elms_2, props_16, elms_5, elms_4, props_26;\n const dispatch = view_viewInputProps.dispatch;\n const state = view_viewInputProps.state;\n const elms_6 = singleton_1((props_36 = ofArray([[\"className\", \"is-6\"], [\"className\", \"pt-6\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"box\", ofArray([[\"className\", \"py-2\"], [\"className\", \"has-background-primary\"], [\"className\", \"has-text-white\"], [\"children\", \"Ändra egenskaper\"]])))), (props_34 = ofArray([[\"className\", \"px-5\"], borderStylePrimary, [\"children\", Interop_reactApi.Children.toArray([(props_32 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_30 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(props_12 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_10 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Fullständigt namn: \"]])))), (props_8 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_1 = singleton_1((elms = singleton_1(createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", ofArray([[\"placeholder\", \"Nytt fullständigt namn\"], [\"defaultValue\", state.Form.FullName], [\"disabled\", true]])))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_1)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_8))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_10))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_12)))), (props_24 = ofArray([[\"className\", \"has-background-primary-light\"], [\"children\", Interop_reactApi.Children.toArray([(props_22 = ofArray([[\"className\", \"is-vcentered\"], [\"children\", Interop_reactApi.Children.toArray([createElement(\"div\", createObj(Helpers_combineClasses(\"column\", ofArray([[\"className\", \"is-one-quarter\"], [\"className\", \"has-text-primary\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Epost:\"]])))), (props_20 = singleton_1([\"children\", Interop_reactApi.Children.toArray([(elms_3 = singleton_1((elms_2 = singleton_1((props_16 = ofArray([[\"placeholder\", \"Ny epost\"], [\"defaultValue\", EmailModule_toString(state.Form.Email)], [\"disabled\", true]]), createElement(\"input\", createObj(cons([\"type\", \"text\"], Helpers_combineClasses(\"input\", props_16)))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_2)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_3)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_20))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_22))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_24)))), (elms_5 = singleton_1((elms_4 = singleton_1((props_26 = ofArray([[\"className\", \"is-success\"], [\"className\", \"is-fullwidth\"], [\"className\", \"has-text-weight-bold\"], [\"children\", \"Restore\"], [\"disabled\", equals(state.Restoring, new DeferredResult$1(1)) ? true : equals(state.Form.DeletedDate, void 0)], [\"onClick\", (x) => {\n x.preventDefault();\n dispatch(new Types_Msg(0, new AsyncOperationStatus$1(0)));\n }]]), createElement(\"a\", createObj(Helpers_combineClasses(\"button\", props_26))))), createElement(\"div\", {\n className: \"control\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_4)),\n }))), createElement(\"div\", {\n className: \"field\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_5)),\n }))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_30))))])]), createElement(\"div\", createObj(Helpers_combineClasses(\"columns\", props_32))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"box\", props_34))))])]]), createElement(\"div\", createObj(Helpers_combineClasses(\"column\", props_36)))));\n return createElement(\"div\", {\n className: \"container\",\n children: Interop_reactApi.Children.toArray(Array.from(elms_6)),\n });\n}\n\nexport function Component_RenderForm(user) {\n const patternInput = useFeliz_React__React_useElmish_Static_17DC4F1D(State_init(user), (msg, state) => State_update(msg, state), []);\n return createElement(View_view, {\n state: patternInput[0],\n dispatch: patternInput[1],\n });\n}\n\nexport function Component_ResolveStudent(component_ResolveStudentInputProps) {\n const id = component_ResolveStudentInputProps.id;\n const student = useFeliz_React__React_useDeferred_Static_2344FC52(Remoting_handleNonAuth(usersApi().getUser(id)), [id]);\n if (student.tag === 2) {\n if (student.fields[0] == null) {\n return createElement(\"div\", {\n children: [\"User not found\"],\n });\n }\n else {\n const user = student.fields[0];\n return createElement(Component_RenderForm, user);\n }\n }\n else {\n return loader(\"big\");\n }\n}\n\nexport function Component_Render(component_RenderInputProps) {\n const _arg1 = component_RenderInputProps._arg1;\n const id = component_RenderInputProps.id;\n return createElement(Component_ResolveStudent, {\n id: id,\n });\n}\n\n","import { Record, Union } from \"./.fable/fable-library.3.2.1/Types.js\";\nimport { lambda_type, record_type, union_type, int32_type, class_type, string_type } from \"./.fable/fable-library.3.2.1/Reflection.js\";\nimport { Calendar_WeekInfo_get_Current, Calendar_PeriodInfo_get_Current, Calendar_DayInfo_get_Current, Users_User, Auth_SignedInUser$reflection, Users_User$reflection, Calendar_WeekInfo$reflection, Calendar_PeriodInfo$reflection, Calendar_DayInfo$reflection } from \"../Shared/Shared.fs.js\";\nimport { Cmd_OfFunc_result, Cmd_batch, Cmd_none } from \"./.fable/Fable.Elmish.3.1.0/cmd.fs.js\";\nimport { navigateTo, Route, modifyUrl } from \"./Router.fs.js\";\nimport { map, defaultArg } from \"./.fable/fable-library.3.2.1/Option.js\";\nimport { saveUser, removeUser, getUser } from \"./LocalStorage.fs.js\";\nimport { singleton, ofArray } from \"./.fable/fable-library.3.2.1/List.js\";\nimport { Remoting_subscribeUserChangedEvent } from \"./Extensions.fs.js\";\nimport { createElement } from \"react\";\nimport { Interop_reactApi } from \"./.fable/Feliz.1.51.0/Interop.fs.js\";\nimport { empty, singleton as singleton_1, append, delay, toList } from \"./.fable/fable-library.3.2.1/Seq.js\";\nimport { Render } from \"./Admin/HeaderAdmin.fs.js\";\nimport { Render as Render_1 } from \"./Teacher/HeaderTeacher.fs.js\";\nimport { Render as Render_2 } from \"./Student/HeaderStudent.fs.js\";\nimport { DndContext } from \"./Components/ReactDnd.fs.js\";\nimport { equals } from \"./.fable/fable-library.3.2.1/Util.js\";\nimport { Render as Render_3 } from \"./Login/GdprModal.fs.js\";\nimport { Component_Render } from \"./Login/ForgotPassword.fs.js\";\nimport { Component_Render as Component_Render_1 } from \"./Login/ResetPassword.fs.js\";\nimport { render } from \"./Login/Gdpr.fs.js\";\nimport { render as render_1 } from \"./Login/Application.fs.js\";\nimport { Component_Render as Component_Render_2 } from \"./Settings/Settings.fs.js\";\nimport { Component_Render as Component_Render_3 } from \"./Chat.fs.js\";\nimport { View_Render } from \"./Teacher/GroupList.fs.js\";\nimport { Component_Render as Component_Render_4 } from \"./Teacher/GroupEdit.fs.js\";\nimport { Component_Render as Component_Render_5 } from \"./Teacher/StudentList.fs.js\";\nimport { Component_Render as Component_Render_6 } from \"./Teacher/StudentEdit.fs.js\";\nimport { Component_Render as Component_Render_7 } from \"./Teacher/StudentPlan.fs.js\";\nimport { View_Render as View_Render_1 } from \"./Student/StudentExternalTeachers.fs.js\";\nimport { Render as Render_4 } from \"./Teacher/StudentStatistics.fs.js\";\nimport { Render as Render_5 } from \"./Teacher/GroupStatistics.fs.js\";\nimport { Render as Render_6 } from \"./Teacher/SchoolStatistics.fs.js\";\nimport { Component_Render as Component_Render_8 } from \"./Teacher/TeacherList.fs.js\";\nimport { Component_Render as Component_Render_9 } from \"./Teacher/TeacherEdit.fs.js\";\nimport { View_Render as View_Render_2 } from \"./PassList.fs.js\";\nimport { View_renderPeriod, View_renderWeek } from \"./Overview.fs.js\";\nimport { Render as Render_7 } from \"./Student/Activity.fs.js\";\nimport { View_Render as View_Render_3 } from \"./Teacher/ScheduleList.fs.js\";\nimport { View_Render as View_Render_4 } from \"./Teacher/ScheduleAssign.fs.js\";\nimport { View_RenderWeek, View_RenderPeriod } from \"./Teacher/ScheduleCalendar.fs.js\";\nimport { Component_Render as Component_Render_10 } from \"./Admin/AdminOverview.fs.js\";\nimport { Component_Render as Component_Render_11 } from \"./Admin/StudentSchoolEdit.fs.js\";\nimport { Component_Render as Component_Render_12 } from \"./Admin/UserRestore.fs.js\";\nimport { Component_Render as Component_Render_13 } from \"./Login/Login.fs.js\";\n\nexport class Page extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"Login\", \"ForgotPassword\", \"ResetPassword\", \"Gdpr\", \"Application\", \"Settings\", \"Chat\", \"GroupList\", \"GroupAdd\", \"GroupEdit\", \"StudentList\", \"StudentAdd\", \"StudentEdit\", \"UserRestore\", \"StudentPlan\", \"StudentExternalTeachers\", \"StudentStatistics\", \"GroupStatistics\", \"SchoolStatistics\", \"TeacherList\", \"TeacherAdd\", \"TeacherEdit\", \"ScheduleList\", \"ScheduleAssign\", \"ScheduleCalendarPeriod\", \"ScheduleCalendarWeek\", \"Activity\", \"PassList\", \"OverviewToday\", \"OverviewPeriod\", \"OverviewWeek\", \"AdminOverview\", \"StudentSchoolEdit\"];\n }\n}\n\nexport function Page$reflection() {\n return union_type(\"Index.Page\", [], Page, () => [[], [], [[\"Item\", string_type]], [], [], [], [[\"Item\", class_type(\"System.Guid\")]], [], [], [[\"Item\", class_type(\"System.Guid\")]], [], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [], [], [[\"Item\", class_type(\"System.Guid\")]], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", int32_type]], [[\"Item\", Calendar_DayInfo$reflection()]], [], [[\"Item\", class_type(\"System.Guid\")]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", Calendar_PeriodInfo$reflection()]], [[\"Item1\", class_type(\"System.Guid\")], [\"Item2\", Calendar_WeekInfo$reflection()]], [], [[\"Item\", class_type(\"System.Guid\")]]]);\n}\n\nexport class State extends Record {\n constructor(CurrentPage, User) {\n super();\n this.CurrentPage = CurrentPage;\n this.User = User;\n }\n}\n\nexport function State$reflection() {\n return record_type(\"Index.State\", [], State, () => [[\"CurrentPage\", Page$reflection()], [\"User\", Users_User$reflection()]]);\n}\n\nexport class Msg extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"LoggedInApp\", \"Logout\", \"Unauthorized\", \"StartSubscription\", \"UserChanged\"];\n }\n}\n\nexport function Msg$reflection() {\n return union_type(\"Index.Msg\", [], Msg, () => [[[\"Item\", Auth_SignedInUser$reflection()]], [], [], [], [[\"Item\", lambda_type(Auth_SignedInUser$reflection(), Auth_SignedInUser$reflection())]]]);\n}\n\nexport function isHeaderRouteActive(currentPage, headerRoute) {\n const matchValue = [headerRoute, currentPage];\n let pattern_matching_result;\n if (matchValue[0].tag === 27) {\n if (matchValue[1].tag === 27) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 5) {\n if (matchValue[1].tag === 5) {\n pattern_matching_result = 1;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 31) {\n if (matchValue[1].tag === 31) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1].tag === 10) {\n pattern_matching_result = 3;\n }\n else if (matchValue[1].tag === 11) {\n pattern_matching_result = 4;\n }\n else if (matchValue[1].tag === 12) {\n pattern_matching_result = 5;\n }\n else if (matchValue[1].tag === 32) {\n pattern_matching_result = 6;\n }\n else if (matchValue[1].tag === 13) {\n pattern_matching_result = 7;\n }\n else if (matchValue[1].tag === 14) {\n pattern_matching_result = 8;\n }\n else if (matchValue[1].tag === 16) {\n pattern_matching_result = 9;\n }\n else if (matchValue[1].tag === 17) {\n pattern_matching_result = 10;\n }\n else if (matchValue[1].tag === 18) {\n pattern_matching_result = 11;\n }\n else if (matchValue[1].tag === 6) {\n pattern_matching_result = 12;\n }\n else if (matchValue[1].tag === 29) {\n pattern_matching_result = 13;\n }\n else if (matchValue[1].tag === 30) {\n pattern_matching_result = 14;\n }\n else if (matchValue[1].tag === 28) {\n pattern_matching_result = 15;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 7) {\n if (matchValue[1].tag === 7) {\n pattern_matching_result = 16;\n }\n else if (matchValue[1].tag === 8) {\n pattern_matching_result = 17;\n }\n else if (matchValue[1].tag === 9) {\n pattern_matching_result = 18;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 10) {\n if (matchValue[1].tag === 10) {\n pattern_matching_result = 19;\n }\n else if (matchValue[1].tag === 11) {\n pattern_matching_result = 20;\n }\n else if (matchValue[1].tag === 12) {\n pattern_matching_result = 21;\n }\n else if (matchValue[1].tag === 14) {\n pattern_matching_result = 22;\n }\n else if (matchValue[1].tag === 16) {\n pattern_matching_result = 23;\n }\n else if (matchValue[1].tag === 17) {\n pattern_matching_result = 24;\n }\n else if (matchValue[1].tag === 18) {\n pattern_matching_result = 25;\n }\n else if (matchValue[1].tag === 6) {\n pattern_matching_result = 26;\n }\n else if (matchValue[1].tag === 29) {\n pattern_matching_result = 27;\n }\n else if (matchValue[1].tag === 30) {\n pattern_matching_result = 28;\n }\n else if (matchValue[1].tag === 28) {\n pattern_matching_result = 29;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 18) {\n if (matchValue[1].tag === 19) {\n pattern_matching_result = 30;\n }\n else if (matchValue[1].tag === 20) {\n pattern_matching_result = 31;\n }\n else if (matchValue[1].tag === 21) {\n pattern_matching_result = 32;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 21) {\n if (matchValue[1].tag === 22) {\n pattern_matching_result = 33;\n }\n else if (matchValue[1].tag === 23) {\n pattern_matching_result = 34;\n }\n else if (matchValue[1].tag === 24) {\n pattern_matching_result = 35;\n }\n else if (matchValue[1].tag === 25) {\n pattern_matching_result = 36;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 25) {\n if (matchValue[1].tag === 26) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 29) {\n if (matchValue[1].tag === 29) {\n pattern_matching_result = 38;\n }\n else if (matchValue[1].tag === 30) {\n pattern_matching_result = 39;\n }\n else if (matchValue[1].tag === 28) {\n pattern_matching_result = 40;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else if (matchValue[0].tag === 6) {\n if (matchValue[1].tag === 6) {\n pattern_matching_result = 41;\n }\n else {\n pattern_matching_result = 42;\n }\n }\n else {\n pattern_matching_result = 42;\n }\n switch (pattern_matching_result) {\n case 0: {\n return true;\n }\n case 1: {\n return true;\n }\n case 2: {\n return true;\n }\n case 3: {\n return true;\n }\n case 4: {\n return true;\n }\n case 5: {\n return true;\n }\n case 6: {\n return true;\n }\n case 7: {\n return true;\n }\n case 8: {\n return true;\n }\n case 9: {\n return true;\n }\n case 10: {\n return true;\n }\n case 11: {\n return true;\n }\n case 12: {\n return true;\n }\n case 13: {\n return true;\n }\n case 14: {\n return true;\n }\n case 15: {\n return true;\n }\n case 16: {\n return true;\n }\n case 17: {\n return true;\n }\n case 18: {\n return true;\n }\n case 19: {\n return true;\n }\n case 20: {\n return true;\n }\n case 21: {\n return true;\n }\n case 22: {\n return true;\n }\n case 23: {\n return true;\n }\n case 24: {\n return true;\n }\n case 25: {\n return true;\n }\n case 26: {\n return true;\n }\n case 27: {\n return true;\n }\n case 28: {\n return true;\n }\n case 29: {\n return true;\n }\n case 30: {\n return true;\n }\n case 31: {\n return true;\n }\n case 32: {\n return true;\n }\n case 33: {\n return true;\n }\n case 34: {\n return true;\n }\n case 35: {\n return true;\n }\n case 36: {\n return true;\n }\n case 37: {\n return true;\n }\n case 38: {\n return true;\n }\n case 39: {\n return true;\n }\n case 40: {\n return true;\n }\n case 41: {\n return true;\n }\n case 42: {\n return false;\n }\n }\n}\n\nexport function urlUpdate(nextPage, state) {\n const matchValue = [nextPage, state.User];\n let pattern_matching_result, resetPasswordId, id, id_1, id_2, id_3, id_4, id_5, userId, info, userId_1, info_1, userId_2, dayInfo, scheduleId, scheduleId_1, periodWeek, scheduleId_2, userId_3, id_6, id_7, id_8, id_9, user;\n if (matchValue[0] != null) {\n if (matchValue[0].tag === 1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[0].tag === 2) {\n pattern_matching_result = 2;\n resetPasswordId = matchValue[0].fields[0];\n }\n else if (matchValue[0].tag === 3) {\n pattern_matching_result = 3;\n }\n else if (matchValue[0].tag === 4) {\n pattern_matching_result = 4;\n }\n else if (matchValue[0].tag === 5) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 5;\n }\n }\n else if (matchValue[0].tag === 6) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 6;\n id = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 7) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 7;\n }\n }\n else if (matchValue[0].tag === 8) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 8;\n }\n }\n else if (matchValue[0].tag === 9) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 9;\n id_1 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 10) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 10;\n }\n }\n else if (matchValue[0].tag === 11) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 11;\n }\n }\n else if (matchValue[0].tag === 12) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 12;\n id_2 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 13) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 13;\n id_3 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 14) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 14;\n id_4 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 18) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 15;\n }\n }\n else if (matchValue[0].tag === 19) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 16;\n }\n }\n else if (matchValue[0].tag === 20) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 17;\n id_5 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 28) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 18;\n userId = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 29) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 19;\n info = matchValue[0].fields[1];\n userId_1 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 30) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 20;\n info_1 = matchValue[0].fields[1];\n userId_2 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 25) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 21;\n }\n }\n else if (matchValue[0].tag === 26) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 22;\n dayInfo = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 27) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 23;\n }\n }\n else if (matchValue[0].tag === 21) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 24;\n }\n }\n else if (matchValue[0].tag === 22) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 25;\n scheduleId = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 23) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 26;\n scheduleId_1 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 24) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 27;\n periodWeek = matchValue[0].fields[1];\n scheduleId_2 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 15) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 28;\n userId_3 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 16) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 29;\n id_6 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 17) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 30;\n id_7 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 31) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 31;\n }\n }\n else if (matchValue[0].tag === 32) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 32;\n id_8 = matchValue[0].fields[0];\n }\n }\n else if (matchValue[0].tag === 33) {\n if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else {\n pattern_matching_result = 33;\n id_9 = matchValue[0].fields[0];\n }\n }\n else {\n pattern_matching_result = 0;\n }\n }\n else if (matchValue[1].tag === 0) {\n pattern_matching_result = 37;\n }\n else if (matchValue[1].fields[0].Role === 1) {\n pattern_matching_result = 34;\n }\n else if (matchValue[1].fields[0].Role === 2) {\n pattern_matching_result = 35;\n }\n else {\n pattern_matching_result = 36;\n user = matchValue[1].fields[0];\n }\n switch (pattern_matching_result) {\n case 0: {\n return [new State(new Page(0), new Users_User(0)), Cmd_none()];\n }\n case 1: {\n return [new State(new Page(1), state.User), Cmd_none()];\n }\n case 2: {\n return [new State(new Page(2, resetPasswordId), state.User), Cmd_none()];\n }\n case 3: {\n return [new State(new Page(3), state.User), Cmd_none()];\n }\n case 4: {\n return [new State(new Page(4), state.User), Cmd_none()];\n }\n case 5: {\n return [new State(new Page(5), state.User), Cmd_none()];\n }\n case 6: {\n return [new State(new Page(6, id), state.User), Cmd_none()];\n }\n case 7: {\n return [new State(new Page(7), state.User), Cmd_none()];\n }\n case 8: {\n return [new State(new Page(8), state.User), Cmd_none()];\n }\n case 9: {\n return [new State(new Page(9, id_1), state.User), Cmd_none()];\n }\n case 10: {\n return [new State(new Page(10), state.User), Cmd_none()];\n }\n case 11: {\n return [new State(new Page(11), state.User), Cmd_none()];\n }\n case 12: {\n return [new State(new Page(12, id_2), state.User), Cmd_none()];\n }\n case 13: {\n return [new State(new Page(14, id_3), state.User), Cmd_none()];\n }\n case 14: {\n return [new State(new Page(15, id_4), state.User), Cmd_none()];\n }\n case 15: {\n return [new State(new Page(19), state.User), Cmd_none()];\n }\n case 16: {\n return [new State(new Page(20), state.User), Cmd_none()];\n }\n case 17: {\n return [new State(new Page(21, id_5), state.User), Cmd_none()];\n }\n case 18: {\n return [new State(new Page(28, userId), state.User), Cmd_none()];\n }\n case 19: {\n return [new State(new Page(29, userId_1, info), state.User), Cmd_none()];\n }\n case 20: {\n return [new State(new Page(30, userId_2, info_1), state.User), Cmd_none()];\n }\n case 21: {\n return [new State(new Page(26, Calendar_DayInfo_get_Current()), state.User), Cmd_none()];\n }\n case 22: {\n return [new State(new Page(26, dayInfo), state.User), Cmd_none()];\n }\n case 23: {\n return [new State(new Page(27), state.User), Cmd_none()];\n }\n case 24: {\n return [new State(new Page(22), state.User), Cmd_none()];\n }\n case 25: {\n return [new State(new Page(23, scheduleId), state.User), Cmd_none()];\n }\n case 26: {\n return [new State(new Page(24, scheduleId_1), state.User), Cmd_none()];\n }\n case 27: {\n return [new State(new Page(25, scheduleId_2, periodWeek), state.User), Cmd_none()];\n }\n case 28: {\n return [new State(new Page(16, userId_3), state.User), Cmd_none()];\n }\n case 29: {\n return [new State(new Page(17, id_6), state.User), Cmd_none()];\n }\n case 30: {\n return [new State(new Page(18, id_7), state.User), Cmd_none()];\n }\n case 31: {\n return [new State(new Page(31), state.User), Cmd_none()];\n }\n case 32: {\n return [new State(new Page(32, id_8), state.User), Cmd_none()];\n }\n case 33: {\n return [new State(new Page(13, id_9), state.User), Cmd_none()];\n }\n case 34: {\n return [new State(new Page(31), state.User), modifyUrl(new Route(31))];\n }\n case 35: {\n return [new State(new Page(7), state.User), modifyUrl(new Route(7))];\n }\n case 36: {\n return [new State(new Page(28, user.UserId), state.User), modifyUrl(new Route(28, user.UserId))];\n }\n case 37: {\n return [new State(new Page(0), state.User), modifyUrl(new Route(0))];\n }\n }\n}\n\nexport function init(page) {\n const user = defaultArg(map((arg0) => (new Users_User(1, arg0)), getUser()), new Users_User(0));\n const patternInput = urlUpdate(page, new State((user.tag === 0) ? (new Page(0)) : ((user.fields[0].Role === 1) ? (new Page(31)) : ((user.fields[0].Role === 2) ? (new Page(7)) : (new Page(28, user.fields[0].UserId)))), user));\n return [patternInput[0], Cmd_batch(ofArray([patternInput[1], Cmd_OfFunc_result(new Msg(3))]))];\n}\n\nexport function update(msg, state) {\n let matchValue, user_5;\n let pattern_matching_result, user_1;\n if (msg.tag === 0) {\n if (msg.fields[0].Role === 1) {\n pattern_matching_result = 0;\n user_1 = msg.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return [new State(state.CurrentPage, new Users_User(1, user_1)), navigateTo(new Route(31))];\n }\n case 1: {\n let pattern_matching_result_1, user_3;\n if (msg.tag === 0) {\n if (msg.fields[0].Role === 2) {\n pattern_matching_result_1 = 0;\n user_3 = msg.fields[0];\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n return [new State(state.CurrentPage, new Users_User(1, user_3)), navigateTo(new Route(10))];\n }\n case 1: {\n switch (msg.tag) {\n case 1: {\n removeUser();\n return [new State(state.CurrentPage, new Users_User(0)), navigateTo(new Route(0))];\n }\n case 2: {\n return init(new Route(0));\n }\n case 3: {\n return [state, Cmd_batch(singleton(Remoting_subscribeUserChangedEvent((arg0) => (new Msg(4, arg0)))))];\n }\n case 4: {\n return [new State(state.CurrentPage, (matchValue = state.User, (matchValue.tag === 0) ? (new Users_User(0)) : (user_5 = msg.fields[0](matchValue.fields[0]), (saveUser(user_5), new Users_User(1, user_5))))), Cmd_none()];\n }\n default: {\n const user_4 = msg.fields[0];\n return [new State(state.CurrentPage, new Users_User(1, user_4)), navigateTo(new Route(29, user_4.UserId, Calendar_PeriodInfo_get_Current()))];\n }\n }\n }\n }\n }\n }\n}\n\nexport function pageUser(roleFilter, state, dispatch, content) {\n let user_4, user_2;\n const matchValue = [state.User, roleFilter];\n let pattern_matching_result;\n if (matchValue[0].tag === 1) {\n if (matchValue[1] != null) {\n if (matchValue[1] === 1) {\n if (matchValue[0].fields[0].Role !== 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return createElement(\"p\", {\n children: [\"Only administrators can access this page\"],\n });\n }\n case 1: {\n let pattern_matching_result_1;\n if (matchValue[0].tag === 1) {\n if (matchValue[1] != null) {\n if (matchValue[1] === 2) {\n if (user_2 = matchValue[0].fields[0], (user_2.Role !== 2) ? (user_2.Role !== 1) : false) {\n pattern_matching_result_1 = 0;\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n return createElement(\"p\", {\n children: [\"Only teachers can access this page\"],\n });\n }\n case 1: {\n let pattern_matching_result_2;\n if (matchValue[0].tag === 1) {\n if (matchValue[1] != null) {\n if (matchValue[1] === 3) {\n if (user_4 = matchValue[0].fields[0], (user_4.Role !== 3) ? (user_4.Role !== 1) : false) {\n pattern_matching_result_2 = 0;\n }\n else {\n pattern_matching_result_2 = 1;\n }\n }\n else {\n pattern_matching_result_2 = 1;\n }\n }\n else {\n pattern_matching_result_2 = 1;\n }\n }\n else {\n pattern_matching_result_2 = 1;\n }\n switch (pattern_matching_result_2) {\n case 0: {\n return createElement(\"p\", {\n children: [\"Only students can access this page\"],\n });\n }\n case 1: {\n if (matchValue[0].tag === 1) {\n const user_6 = matchValue[0].fields[0];\n return createElement(\"div\", {\n className: \"app-root\",\n children: Interop_reactApi.Children.toArray(Array.from(toList(delay(() => {\n let matchValue_1;\n return append((matchValue_1 = (user_6.Role | 0), (matchValue_1 === 1) ? singleton_1(createElement(Render, {\n user: user_6,\n logOut: () => {\n dispatch(new Msg(1));\n },\n isActive: (headerRoute) => isHeaderRouteActive(state.CurrentPage, headerRoute),\n })) : ((matchValue_1 === 2) ? singleton_1(createElement(Render_1, {\n user: user_6,\n logOut: () => {\n dispatch(new Msg(1));\n },\n isActive: (headerRoute_1) => isHeaderRouteActive(state.CurrentPage, headerRoute_1),\n })) : ((matchValue_1 === 3) ? singleton_1(createElement(Render_2, {\n user: user_6,\n logOut: () => {\n dispatch(new Msg(1));\n },\n isActive: (headerRoute_2) => isHeaderRouteActive(state.CurrentPage, headerRoute_2),\n })) : singleton_1(null)))), delay(() => append(singleton_1(DndContext([content(user_6)])), delay(() => (equals(user_6.GdprAcceptDate, void 0) ? singleton_1(createElement(Render_3, null)) : empty())))));\n })))),\n });\n }\n else {\n return createElement(\"p\", {\n children: [\"Only authentificated user can access this page\"],\n });\n }\n }\n }\n }\n }\n }\n }\n}\n\nexport const pageAll = (state) => ((dispatch) => ((content) => pageUser(void 0, state, dispatch, content)));\n\nexport const pageAdmin = (state) => ((dispatch) => ((content) => pageUser(1, state, dispatch, content)));\n\nexport const pageTeacher = (state) => ((dispatch) => ((content) => pageUser(2, state, dispatch, content)));\n\nexport const pageStudent = (state) => ((dispatch) => ((content) => pageUser(3, state, dispatch, content)));\n\nexport function view(state, dispatch) {\n let weekInfo;\n if (equals(state.CurrentPage, new Page(0))) {\n document.getElementById(\"viewport_id\").setAttribute(\"content\", \"width=device-width, initial-scale=1\");\n }\n else {\n document.getElementById(\"viewport_id\").setAttribute(\"content\", \"\");\n }\n const matchValue = state.CurrentPage;\n switch (matchValue.tag) {\n case 1: {\n return createElement(Component_Render, null);\n }\n case 2: {\n return createElement(Component_Render_1, {\n code: matchValue.fields[0],\n });\n }\n case 3: {\n return render;\n }\n case 4: {\n return render_1;\n }\n case 5: {\n return pageAll(state)(dispatch)((user) => createElement(Component_Render_2, user));\n }\n case 6: {\n return pageAll(state)(dispatch)((user_1) => createElement(Component_Render_3, {\n studentId: matchValue.fields[0],\n user: user_1,\n }));\n }\n case 7: {\n return pageTeacher(state)(dispatch)((_user) => createElement(View_Render, _user));\n }\n case 8: {\n return pageTeacher(state)(dispatch)((arg10$0040) => createElement(Component_Render_4, {\n id: void 0,\n }));\n }\n case 9: {\n return pageTeacher(state)(dispatch)((arg10$0040_1) => createElement(Component_Render_4, {\n id: matchValue.fields[0],\n }));\n }\n case 10: {\n return pageTeacher(state)(dispatch)((user_2) => createElement(Component_Render_5, user_2));\n }\n case 11: {\n return pageTeacher(state)(dispatch)((arg10$0040_2) => createElement(Component_Render_6, {\n id: void 0,\n }));\n }\n case 12: {\n return pageTeacher(state)(dispatch)((arg10$0040_3) => createElement(Component_Render_6, {\n id: matchValue.fields[0],\n }));\n }\n case 14: {\n return pageAll(state)(dispatch)((user_3) => createElement(Component_Render_7, {\n id: matchValue.fields[0],\n user: user_3,\n }));\n }\n case 15: {\n return pageAll(state)(dispatch)((_user_1) => createElement(View_Render_1, {\n studentId: matchValue.fields[0],\n _user: _user_1,\n }));\n }\n case 16: {\n return pageAll(state)(dispatch)((arg10$0040_4) => createElement(Render_4, {\n studentId: matchValue.fields[0],\n }));\n }\n case 17: {\n return pageTeacher(state)(dispatch)((arg10$0040_5) => createElement(Render_5, {\n groupId: matchValue.fields[0],\n }));\n }\n case 18: {\n return pageTeacher(state)(dispatch)((arg10$0040_6) => createElement(Render_6, {\n schoolId: matchValue.fields[0],\n }));\n }\n case 19: {\n return pageTeacher(state)(dispatch)((user_4) => createElement(Component_Render_8, user_4));\n }\n case 20: {\n return pageTeacher(state)(dispatch)((arg10$0040_7) => createElement(Component_Render_9, {\n id: void 0,\n }));\n }\n case 21: {\n return pageTeacher(state)(dispatch)((arg10$0040_8) => createElement(Component_Render_9, {\n id: matchValue.fields[0],\n }));\n }\n case 27: {\n return pageAll(state)(dispatch)((user_5) => createElement(View_Render_2, user_5));\n }\n case 28: {\n return pageAll(state)(dispatch)((weekInfo = Calendar_WeekInfo_get_Current(), (_user_2) => View_renderWeek(matchValue.fields[0], weekInfo, _user_2)));\n }\n case 29: {\n return pageAll(state)(dispatch)((_user_3) => View_renderPeriod(matchValue.fields[0], matchValue.fields[1], _user_3));\n }\n case 30: {\n return pageAll(state)(dispatch)((_user_4) => View_renderWeek(matchValue.fields[0], matchValue.fields[1], _user_4));\n }\n case 26: {\n return pageStudent(state)(dispatch)((user_6) => createElement(Render_7, {\n dayInfo: matchValue.fields[0],\n user: user_6,\n }));\n }\n case 22: {\n return pageTeacher(state)(dispatch)((user_7) => createElement(View_Render_3, user_7));\n }\n case 23: {\n return pageTeacher(state)(dispatch)((arg10$0040_9) => createElement(View_Render_4, {\n scheduleId: matchValue.fields[0],\n }));\n }\n case 24: {\n return pageTeacher(state)(dispatch)((arg10$0040_10) => createElement(View_RenderPeriod, {\n scheduleId: matchValue.fields[0],\n }));\n }\n case 25: {\n return pageTeacher(state)(dispatch)((arg20$0040) => createElement(View_RenderWeek, {\n scheduleId: matchValue.fields[0],\n periodWeek: matchValue.fields[1],\n }));\n }\n case 31: {\n return pageAdmin(state)(dispatch)((user_8) => createElement(Component_Render_10, user_8));\n }\n case 32: {\n return pageAdmin(state)(dispatch)((arg10$0040_11) => createElement(Component_Render_11, {\n id: matchValue.fields[0],\n }));\n }\n case 13: {\n return pageAdmin(state)(dispatch)((arg10$0040_12) => createElement(Component_Render_12, {\n id: matchValue.fields[0],\n }));\n }\n default: {\n return createElement(Component_Render_13, {\n loggedIn: (arg) => {\n dispatch(new Msg(0, arg));\n },\n });\n }\n }\n}\n\n","import { ProgramModule_mkProgram, ProgramModule_withSubscription, ProgramModule_run } from \"./.fable/Fable.Elmish.3.1.0/program.fs.js\";\nimport { Program_withReactSynchronous } from \"./.fable/Fable.Elmish.React.3.0.1/react.fs.js\";\nimport { ProgramModule_toNavigable } from \"./.fable/Fable.Elmish.Browser.3.0.4/navigation.fs.js\";\nimport { parseHash } from \"./.fable/Fable.Elmish.Browser.3.0.4/parser.fs.js\";\nimport { routeParser } from \"./Router.fs.js\";\nimport { view, update, init, Msg, urlUpdate as urlUpdate_1 } from \"./Index.fs.js\";\nimport { Remoting_subscribe } from \"./Extensions.fs.js\";\nimport \"./styles/global.scss\";\n\n\nProgramModule_run(Program_withReactSynchronous(\"elmish-app\", ProgramModule_toNavigable((location) => parseHash(routeParser, location), (nextPage, state_2) => urlUpdate_1(nextPage, state_2), ProgramModule_withSubscription((model) => Remoting_subscribe(new Msg(2), model), ProgramModule_mkProgram((page) => init(page), (msg, state) => update(msg, state), (state_1, dispatch) => view(state_1, dispatch))))));\n\n","import { equals, getEnumUnderlyingType, isEnum, getTupleElements, isTuple, getElementType, isArray, getFunctionElements, isFunction, getUnionCases, getUnionCaseFields, isUnion, getGenerics, getRecordElements, name, isRecord, fullName } from \"../fable-library.3.2.1/Reflection.js\";\nimport { UnionCase, RecordField, TypeInfo } from \"./TypeInfo.fs.js\";\nimport { map } from \"../fable-library.3.2.1/Array.js\";\nimport { collect, singleton, append, delay, toArray } from \"../fable-library.3.2.1/Seq.js\";\nimport { structuralHash, Lazy } from \"../fable-library.3.2.1/Util.js\";\nimport { Dictionary } from \"../fable-library.3.2.1/MutableMap.js\";\nimport { tryGetValue } from \"../fable-library.3.2.1/MapUtil.js\";\nimport { FSharpRef } from \"../fable-library.3.2.1/Types.js\";\nimport { endsWith, isNullOrEmpty } from \"../fable-library.3.2.1/String.js\";\n\nexport function $007CPrimitiveType$007C_$007C(primType) {\n const matchValue = fullName(primType);\n switch (matchValue) {\n case \"System.String\": {\n return new TypeInfo(2);\n }\n case \"System.Char\": {\n return new TypeInfo(1);\n }\n case \"System.Int16\": {\n return new TypeInfo(11);\n }\n case \"System.Int32\": {\n return new TypeInfo(6);\n }\n case \"Microsoft.FSharp.Core.int64`1\":\n case \"System.Int64\": {\n return new TypeInfo(12);\n }\n case \"System.UInt16\": {\n return new TypeInfo(3);\n }\n case \"System.UInt32\": {\n return new TypeInfo(4);\n }\n case \"System.UInt64\": {\n return new TypeInfo(5);\n }\n case \"System.DateTime\": {\n return new TypeInfo(15);\n }\n case \"System.TimeSpan\": {\n return new TypeInfo(18);\n }\n case \"System.DateTimeOffset\": {\n return new TypeInfo(16);\n }\n case \"System.Boolean\": {\n return new TypeInfo(7);\n }\n case \"System.Single\": {\n return new TypeInfo(8);\n }\n case \"System.Double\": {\n return new TypeInfo(9);\n }\n case \"Microsoft.FSharp.Core.decimal`1\":\n case \"System.Decimal\": {\n return new TypeInfo(10);\n }\n case \"System.Numerics.BigInteger\": {\n return new TypeInfo(17);\n }\n case \"Microsoft.FSharp.Core.Unit\": {\n return new TypeInfo(0);\n }\n case \"System.Guid\": {\n return new TypeInfo(19);\n }\n case \"System.Byte\": {\n return new TypeInfo(13);\n }\n case \"System.SByte\": {\n return new TypeInfo(14);\n }\n case \"System.Object\": {\n return new TypeInfo(20);\n }\n default: {\n return void 0;\n }\n }\n}\n\nexport function $007CRecordType$007C_$007C(t) {\n if (isRecord(t)) {\n return map((field) => [field, name(field), field[1]], getRecordElements(t));\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CSetType$007C_$007C(t) {\n if (fullName(t).indexOf(\"Microsoft.FSharp.Collections.FSharpSet`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CNullable$007C_$007C(t) {\n if (fullName(t).indexOf(\"System.Nullable`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CUnionType$007C_$007C(t) {\n if (isUnion(t)) {\n return map((info) => [name(info), info, map((prop) => prop[1], getUnionCaseFields(info))], getUnionCases(t));\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CMapType$007C_$007C(t) {\n if (fullName(t).indexOf(\"Microsoft.FSharp.Collections.FSharpMap`2\") === 0) {\n const genArgs = getGenerics(t);\n return [genArgs[0], genArgs[1]];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CListType$007C_$007C(t) {\n if (fullName(t).indexOf(\"Microsoft.FSharp.Collections.FSharpList`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function flattenFuncTypes(typeDef) {\n return toArray(delay(() => {\n if (isFunction(typeDef)) {\n const patternInput = getFunctionElements(typeDef);\n return append(flattenFuncTypes(patternInput[0]), delay(() => flattenFuncTypes(patternInput[1])));\n }\n else {\n return singleton(typeDef);\n }\n }));\n}\n\nexport function $007CFuncType$007C_$007C(t) {\n if (isFunction(t)) {\n return flattenFuncTypes(t);\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CArrayType$007C_$007C(t) {\n if (isArray(t)) {\n return getElementType(t);\n }\n else {\n return void 0;\n }\n}\n\nexport function $007COptionType$007C_$007C(t) {\n if (fullName(t).indexOf(\"Microsoft.FSharp.Core.FSharpOption`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CTupleType$007C_$007C(t) {\n if (isTuple(t)) {\n return getTupleElements(t);\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CSeqType$007C_$007C(t) {\n if (fullName(t).indexOf(\"System.Collections.Generic.IEnumerable`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CDictionaryType$007C_$007C(t) {\n if (fullName(t).indexOf(\"System.Collections.Generic.Dictionary\") === 0) {\n const genArgs = getGenerics(t);\n return [genArgs[0], genArgs[1]];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CResizeArrayType$007C_$007C(t) {\n if (fullName(t).indexOf(\"System.Collections.Generic.List\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CHashSetType$007C_$007C(t) {\n if (fullName(t).indexOf(\"System.Collections.Generic.HashSet\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CAsyncType$007C_$007C(t) {\n if (fullName(t).indexOf(\"Microsoft.FSharp.Control.FSharpAsync`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CPromiseType$007C_$007C(t) {\n if (fullName(t).indexOf(\"Fable.Core.JS.Promise`1\") === 0) {\n return getGenerics(t)[0];\n }\n else {\n return void 0;\n }\n}\n\nfunction lazyToDelayed(l, unitVar0) {\n return l.Value;\n}\n\nexport function $007CEnumType$007C_$007C(t) {\n if (isEnum(t)) {\n return getEnumUnderlyingType(t);\n }\n else {\n return void 0;\n }\n}\n\nfunction _createTypeInfo(resolvedType) {\n let l, l_3, l_4, l_5, l_6, l_7, l_8, l_9, l_10, l_11, l_12, l_13, l_14, l_15, l_16, l_17;\n const activePatternResult6176 = $007CPrimitiveType$007C_$007C(resolvedType);\n if (activePatternResult6176 != null) {\n const typeInfo = activePatternResult6176;\n return typeInfo;\n }\n else {\n const activePatternResult6175 = $007CFuncType$007C_$007C(resolvedType);\n if (activePatternResult6175 != null) {\n const types = activePatternResult6175;\n return new TypeInfo(34, (l = (new Lazy(() => map((resolvedType_1) => createTypeInfo(resolvedType_1), types))), () => lazyToDelayed(l, void 0)));\n }\n else {\n const activePatternResult6174 = $007CRecordType$007C_$007C(resolvedType);\n if (activePatternResult6174 != null) {\n const fields = activePatternResult6174;\n const l_1 = new Lazy(() => [toArray(delay(() => collect((matchValue) => singleton(new RecordField(matchValue[1], createTypeInfo(matchValue[2]), matchValue[0])), fields))), resolvedType]);\n return new TypeInfo(36, () => lazyToDelayed(l_1, void 0));\n }\n else {\n const activePatternResult6173 = $007CUnionType$007C_$007C(resolvedType);\n if (activePatternResult6173 != null) {\n const cases = activePatternResult6173;\n const l_2 = new Lazy(() => [toArray(delay(() => collect((matchValue_1) => singleton(new UnionCase(matchValue_1[0], map((resolvedType_2) => createTypeInfo(resolvedType_2), matchValue_1[2]), matchValue_1[1])), cases))), resolvedType]);\n return new TypeInfo(37, () => lazyToDelayed(l_2, void 0));\n }\n else {\n const activePatternResult6172 = $007CEnumType$007C_$007C(resolvedType);\n if (activePatternResult6172 != null) {\n const elemType = activePatternResult6172;\n return new TypeInfo(35, (l_3 = (new Lazy(() => [createTypeInfo(elemType), resolvedType])), () => lazyToDelayed(l_3, void 0)));\n }\n else {\n const activePatternResult6171 = $007CListType$007C_$007C(resolvedType);\n if (activePatternResult6171 != null) {\n const elemType_1 = activePatternResult6171;\n return new TypeInfo(25, (l_4 = (new Lazy(() => createTypeInfo(elemType_1))), () => lazyToDelayed(l_4, void 0)));\n }\n else {\n const activePatternResult6170 = $007CResizeArrayType$007C_$007C(resolvedType);\n if (activePatternResult6170 != null) {\n const elemType_2 = activePatternResult6170;\n return new TypeInfo(32, (l_5 = (new Lazy(() => createTypeInfo(elemType_2))), () => lazyToDelayed(l_5, void 0)));\n }\n else {\n const activePatternResult6169 = $007CHashSetType$007C_$007C(resolvedType);\n if (activePatternResult6169 != null) {\n const elemType_3 = activePatternResult6169;\n return new TypeInfo(33, (l_6 = (new Lazy(() => createTypeInfo(elemType_3))), () => lazyToDelayed(l_6, void 0)));\n }\n else {\n const activePatternResult6168 = $007CArrayType$007C_$007C(resolvedType);\n if (activePatternResult6168 != null) {\n const elemType_4 = activePatternResult6168;\n return new TypeInfo(27, (l_7 = (new Lazy(() => createTypeInfo(elemType_4))), () => lazyToDelayed(l_7, void 0)));\n }\n else {\n const activePatternResult6167 = $007CTupleType$007C_$007C(resolvedType);\n if (activePatternResult6167 != null) {\n const types_1 = activePatternResult6167;\n return new TypeInfo(29, (l_8 = (new Lazy(() => map((resolvedType_3) => createTypeInfo(resolvedType_3), types_1))), () => lazyToDelayed(l_8, void 0)));\n }\n else {\n const activePatternResult6166 = $007COptionType$007C_$007C(resolvedType);\n if (activePatternResult6166 != null) {\n const elemType_5 = activePatternResult6166;\n return new TypeInfo(24, (l_9 = (new Lazy(() => createTypeInfo(elemType_5))), () => lazyToDelayed(l_9, void 0)));\n }\n else {\n const activePatternResult6165 = $007CNullable$007C_$007C(resolvedType);\n if (activePatternResult6165 != null) {\n const elemType_6 = activePatternResult6165;\n return new TypeInfo(24, (l_10 = (new Lazy(() => createTypeInfo(elemType_6))), () => lazyToDelayed(l_10, void 0)));\n }\n else {\n const activePatternResult6164 = $007CSetType$007C_$007C(resolvedType);\n if (activePatternResult6164 != null) {\n const elemType_7 = activePatternResult6164;\n return new TypeInfo(26, (l_11 = (new Lazy(() => createTypeInfo(elemType_7))), () => lazyToDelayed(l_11, void 0)));\n }\n else {\n const activePatternResult6163 = $007CMapType$007C_$007C(resolvedType);\n if (activePatternResult6163 != null) {\n const keyType = activePatternResult6163[0];\n const valueType = activePatternResult6163[1];\n return new TypeInfo(30, (l_12 = (new Lazy(() => [createTypeInfo(keyType), createTypeInfo(valueType)])), () => lazyToDelayed(l_12, void 0)));\n }\n else {\n const activePatternResult6162 = $007CDictionaryType$007C_$007C(resolvedType);\n if (activePatternResult6162 != null) {\n const keyType_1 = activePatternResult6162[0];\n const valueType_1 = activePatternResult6162[1];\n return new TypeInfo(31, (l_13 = (new Lazy(() => [createTypeInfo(keyType_1), createTypeInfo(valueType_1), valueType_1])), () => lazyToDelayed(l_13, void 0)));\n }\n else {\n const activePatternResult6161 = $007CSeqType$007C_$007C(resolvedType);\n if (activePatternResult6161 != null) {\n const elemType_8 = activePatternResult6161;\n return new TypeInfo(28, (l_14 = (new Lazy(() => createTypeInfo(elemType_8))), () => lazyToDelayed(l_14, void 0)));\n }\n else {\n const activePatternResult6160 = $007CAsyncType$007C_$007C(resolvedType);\n if (activePatternResult6160 != null) {\n const elemType_9 = activePatternResult6160;\n return new TypeInfo(22, (l_15 = (new Lazy(() => createTypeInfo(elemType_9))), () => lazyToDelayed(l_15, void 0)));\n }\n else {\n const activePatternResult6159 = $007CPromiseType$007C_$007C(resolvedType);\n if (activePatternResult6159 != null) {\n const elemType_10 = activePatternResult6159;\n return new TypeInfo(23, (l_16 = (new Lazy(() => createTypeInfo(elemType_10))), () => lazyToDelayed(l_16, void 0)));\n }\n else {\n return new TypeInfo(21, (l_17 = (new Lazy(() => resolvedType)), () => lazyToDelayed(l_17, void 0)));\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\nconst typeInfoCache = new Dictionary([], {\n Equals: (x, y) => equals(x, y),\n GetHashCode: (x) => structuralHash(x),\n});\n\nexport function createTypeInfo(resolvedType) {\n let matchValue;\n let outArg = null;\n matchValue = [tryGetValue(typeInfoCache, resolvedType, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n const ti_1 = _createTypeInfo(resolvedType);\n if (((!isNullOrEmpty(fullName(resolvedType))) ? (!endsWith(fullName(resolvedType), \"`1[]\")) : false) ? (!endsWith(fullName(resolvedType), \"`2[]\")) : false) {\n typeInfoCache.set(resolvedType, ti_1);\n return ti_1;\n }\n else {\n return ti_1;\n }\n }\n}\n\nexport function isPrimitive(_arg1) {\n switch (_arg1.tag) {\n case 0:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 15:\n case 16:\n case 17:\n case 19:\n case 24: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport function enumUnion(_arg1) {\n if (_arg1.tag === 37) {\n return _arg1.fields[0]()[0].every((case$) => (case$.CaseTypes.length === 0));\n }\n else {\n return false;\n }\n}\n\n","import { Record } from \"../fable-library.3.2.1/Types.js\";\nimport { string_type, record_type, int32_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { some } from \"../fable-library.3.2.1/Option.js\";\nimport { seq, noneOf, optWhitespace, whitespace, oneOf, string, takeWhile, test, fail, all, any, digit, lookahead, succeed, eof, letters, letter, lazy, index } from \"./Parsimmon.js\";\nimport { join } from \"../fable-library.3.2.1/String.js\";\nimport { reduce } from \"../fable-library.3.2.1/List.js\";\n\nexport class TokenPosition extends Record {\n constructor(offset, line, column) {\n super();\n this.offset = (offset | 0);\n this.line = (line | 0);\n this.column = (column | 0);\n }\n}\n\nexport function TokenPosition$reflection() {\n return record_type(\"Fable.Parsimmon.TokenPosition\", [], TokenPosition, () => [[\"offset\", int32_type], [\"line\", int32_type], [\"column\", int32_type]]);\n}\n\nexport class NodeResult$1 extends Record {\n constructor(name, value, start, end) {\n super();\n this.name = name;\n this.value = value;\n this.start = start;\n this.end = end;\n }\n}\n\nexport function NodeResult$1$reflection(gen0) {\n return record_type(\"Fable.Parsimmon.NodeResult`1\", [gen0], NodeResult$1, () => [[\"name\", string_type], [\"value\", gen0], [\"start\", TokenPosition$reflection()], [\"end\", TokenPosition$reflection()]]);\n}\n\nexport function Parsimmon_parseRaw(input, parser) {\n return parser.parse(input);\n}\n\nexport function Parsimmon_parse(input, parser) {\n const result = parser.parse(input);\n if (result.status) {\n return some(result.value);\n }\n else {\n return void 0;\n }\n}\n\nexport const Parsimmon_index = index;\n\nexport function Parsimmon_orTry(otherParser, parser) {\n return parser.or(otherParser);\n}\n\nexport function Parsimmon_times(n, parser) {\n return parser.times(n);\n}\n\nexport function Parsimmon_atLeast(n, parser) {\n return parser.atLeast(n);\n}\n\nexport function Parsimmon_atMost(n, parser) {\n return parser.atMost(n);\n}\n\nexport function Parsimmon_skip(skipped, keep) {\n return keep.skip(skipped);\n}\n\nexport function Parsimmon_many(parser) {\n return parser.many();\n}\n\nexport const Parsimmon_ofLazy = lazy;\n\nexport function Parsimmon_seperateByAtLeastOne(seperator, parser) {\n return parser.sepBy1(seperator);\n}\n\nexport function Parsimmon_chain(after, before) {\n return before.then(after);\n}\n\nexport function Parsimmon_bind(f, p) {\n return p.chain(f);\n}\n\nexport const Parsimmon_letter = letter;\n\nexport function Parsimmon_timesBetween(min, max, parser) {\n return parser.times(min, max);\n}\n\nexport const Parsimmon_letters = letters;\n\nexport const Parsimmon_endOfFile = eof;\n\nexport function Parsimmon_notFollowedBy(p, before) {\n return before.notFollowedBy(p);\n}\n\nexport const Parsimmon_succeed = succeed;\n\nexport const Parsimmon_lookahead = lookahead;\n\nexport const Parsimmon_digit = digit;\n\nexport const Parsimmon_digits = Parsimmon_many(Parsimmon_digit);\n\nexport function Parsimmon_fallback(value, parser) {\n return parser.fallback(value);\n}\n\nexport function Parsimmon_seperateBy(content, others) {\n return others.sepBy(content);\n}\n\nexport function Parsimmon_between(left, right, middle) {\n return Parsimmon_skip(right, Parsimmon_chain(middle, left));\n}\n\nexport function Parsimmon_map(f, parser) {\n return parser.map(f);\n}\n\nexport function Parsimmon_tie(parser) {\n return Parsimmon_map((strings) => join(\"\", strings), parser);\n}\n\nexport const Parsimmon_any = any;\n\nexport function Parsimmon_choose(ps) {\n return reduce((acc, parser) => (acc.or(parser)), ps);\n}\n\nexport const Parsimmon_all = all;\n\nexport const Parsimmon_fail = fail;\n\nexport const Parsimmon_satisfy = test;\n\nexport const Parsimmon_takeWhile = takeWhile;\n\nexport const Parsimmon_str = string;\n\nexport const Parsimmon_oneOf = oneOf;\n\nexport const Parsimmon_whitespace = whitespace;\n\nexport const Parsimmon_optionalWhitespace = optWhitespace;\n\nexport function Parsimmon_atLeastOneOrMany(parser) {\n return Parsimmon_atLeast(1, parser);\n}\n\nexport function Parsimmon_stringReturn(input, value) {\n return Parsimmon_map((_arg1) => value, Parsimmon_str(input));\n}\n\nexport const Parsimmon_noneOf = noneOf;\n\nexport const Parsimmon_seq2 = seq;\n\nexport function Parsimmon_trim(trimmed, p) {\n return p.trim(trimmed);\n}\n\nexport function Parsimmon_concat(parser) {\n return parser.map((strings) => join(\"\", strings));\n}\n\nexport const Parsimmon_seq3 = seq;\n\nexport const Parsimmon_seq4 = seq;\n\nexport const Parsimmon_seq5 = seq;\n\nexport function Parsimmon_node(description, p) {\n return p.node(description);\n}\n\n","import { Parsimmon_seperateBy, Parsimmon_ofLazy, Parsimmon_optionalWhitespace, Parsimmon_between, Parsimmon_satisfy, Parsimmon_orTry, Parsimmon_oneOf, Parsimmon_stringReturn, Parsimmon_choose, Parsimmon_many, Parsimmon_seq3, Parsimmon_str, Parsimmon_seq2, Parsimmon_map, Parsimmon_digit, Parsimmon_atLeastOneOrMany, Parsimmon_concat } from \"../Fable.Parsimmon.4.1.0/Parsimmon.fs.js\";\nimport { parse } from \"../fable-library.3.2.1/Double.js\";\nimport { join } from \"../fable-library.3.2.1/String.js\";\nimport { Json } from \"./Json.fs.js\";\nimport { map, ofArray } from \"../fable-library.3.2.1/List.js\";\nimport { ofList } from \"../fable-library.3.2.1/Map.js\";\nimport { Lazy } from \"../fable-library.3.2.1/Util.js\";\n\nexport const digits = Parsimmon_concat(Parsimmon_atLeastOneOrMany(Parsimmon_digit));\n\nexport const jint = Parsimmon_map((value) => parse(value), digits);\n\nexport const negJint = Parsimmon_map((tupledArg) => (-tupledArg[1]), Parsimmon_seq2(Parsimmon_str(\"-\"), jint));\n\nexport const jfloat = Parsimmon_map((tupledArg) => {\n const digitsLeft = tupledArg[0];\n return parse(join(\"\", [(digitsLeft === \"\") ? \"0\" : digitsLeft, tupledArg[1], tupledArg[2]]));\n}, Parsimmon_seq3(Parsimmon_concat(Parsimmon_many(Parsimmon_digit)), Parsimmon_str(\".\"), Parsimmon_concat(Parsimmon_atLeastOneOrMany(Parsimmon_digit))));\n\nexport const negativeJFloat = Parsimmon_map((tupledArg) => (-tupledArg[1]), Parsimmon_seq2(Parsimmon_str(\"-\"), jfloat));\n\nexport const jnumber = Parsimmon_map((arg0) => (new Json(0, arg0)), Parsimmon_choose(ofArray([jfloat, negativeJFloat, jint, negJint])));\n\nexport const jbool = Parsimmon_choose(ofArray([Parsimmon_stringReturn(\"true\", new Json(2, true)), Parsimmon_stringReturn(\"false\", new Json(2, false))]));\n\nexport const jnull = Parsimmon_stringReturn(\"null\", new Json(3));\n\nexport const stringLiteral = (() => {\n const escape = Parsimmon_map((_arg1) => {\n switch (_arg1) {\n case \"b\": {\n return \"\\b\";\n }\n case \"f\": {\n return \"\\f\";\n }\n case \"n\": {\n return \"\\n\";\n }\n case \"r\": {\n return \"\\r\";\n }\n case \"t\": {\n return \"\\t\";\n }\n default: {\n return _arg1;\n }\n }\n }, Parsimmon_oneOf(\"\\\"\\\\/bfnrt\"));\n const anyCharSnippet = Parsimmon_concat(Parsimmon_many(Parsimmon_orTry(Parsimmon_map((tuple) => tuple[1], Parsimmon_seq2(Parsimmon_str(\"\\\\\"), escape)), Parsimmon_satisfy((c_1) => ((c_1 !== \"\\\"\") ? (c_1 !== \"\\\\\") : false)))));\n return Parsimmon_between(Parsimmon_str(\"\\\"\"), Parsimmon_str(\"\\\"\"), anyCharSnippet);\n})();\n\nexport const jstring = stringLiteral.map((arg0) => (new Json(1, arg0)));\n\nexport function withWhitespace(p) {\n return Parsimmon_between(Parsimmon_optionalWhitespace, Parsimmon_optionalWhitespace, p);\n}\n\nexport const jvalue = Parsimmon_choose(map((p) => withWhitespace(p), ofArray([jnull, jbool, jnumber, jstring])));\n\nexport const comma = withWhitespace(Parsimmon_str(\",\"));\n\nfunction json$004099() {\n return Parsimmon_ofLazy(() => Parsimmon_choose(ofArray([jvalue, Parsimmon_map((arg) => (new Json(4, ofArray(arg))), Parsimmon_between(withWhitespace(Parsimmon_str(\"[\")), withWhitespace(Parsimmon_str(\"]\")), Parsimmon_seperateBy(comma, json$004099$002D1.Value))), Parsimmon_map((arg_2) => (new Json(5, ofList(ofArray(arg_2)))), Parsimmon_between(withWhitespace(Parsimmon_str(\"{\")), withWhitespace(Parsimmon_str(\"}\")), Parsimmon_seperateBy(comma, Parsimmon_map((tupledArg) => [tupledArg[0], tupledArg[2]], Parsimmon_seq3(withWhitespace(stringLiteral), withWhitespace(Parsimmon_str(\":\")), withWhitespace(json$004099$002D1.Value))))))])));\n}\n\nconst json$004099$002D1 = new Lazy(json$004099);\n\nexport const json = json$004099$002D1.Value;\n\nexport const jsonParser = withWhitespace(json);\n\n","import { Parsimmon_parse } from \"../Fable.Parsimmon.4.1.0/Parsimmon.fs.js\";\nimport { jsonParser } from \"./Parser.fs.js\";\nimport { join, toText, printf, toFail } from \"../fable-library.3.2.1/String.js\";\nimport { head, tail, isEmpty, empty, singleton, concat, ofArray, map as map_1 } from \"../fable-library.3.2.1/List.js\";\nimport { tryFind, ofList, toList } from \"../fable-library.3.2.1/Map.js\";\nimport { partialApply, isIterable, getEnumerator } from \"../fable-library.3.2.1/Util.js\";\nimport { toString } from \"../fable-library.3.2.1/Decimal.js\";\nimport { toDecimal } from \"../fable-library.3.2.1/BigInt.js\";\nimport { toString as toString_1 } from \"../fable-library.3.2.1/Date.js\";\nimport { value as value_5, some } from \"../fable-library.3.2.1/Option.js\";\nimport { $007CNativeObject$007C_$007C, $007CNativeArray$007C_$007C, $007CNull$007C_$007C, $007CNativeBool$007C_$007C, $007CNativeNumber$007C_$007C, $007CNativeString$007C_$007C } from \"./TypeCheck.fs.js\";\nimport { Json } from \"./Json.fs.js\";\nimport { map as map_2 } from \"../fable-library.3.2.1/Array.js\";\nimport { map as map_3, delay, toList as toList_1 } from \"../fable-library.3.2.1/Seq.js\";\n\nexport function InteropUtil_isDateOffset(x) {\n if (x instanceof Date) {\n return \"offset\" in x;\n }\n else {\n return false;\n }\n}\n\nexport function InteropUtil_isObjectLiteral(x) {\n return (typeof x) === \"object\";\n}\n\nexport function InteropUtil_isBigInt(x) {\n if (((((!(x == null)) ? InteropUtil_isObjectLiteral(x) : false) ? (\"signInt\" in x) : false) ? (\"v\" in x) : false) ? (\"digits\" in (x[\"v\"])) : false) {\n return \"bound\" in (x[\"v\"]);\n }\n else {\n return false;\n }\n}\n\nexport function SimpleJson_tryParse(input) {\n return Parsimmon_parse(input, jsonParser);\n}\n\nexport function SimpleJson_parse(input) {\n const matchValue = SimpleJson_tryParse(input);\n if (matchValue == null) {\n return toFail(printf(\"Could not parse the JSON input: %s\"))(input);\n }\n else {\n return matchValue;\n }\n}\n\nexport function SimpleJson_toString(_arg1) {\n if (_arg1.tag === 2) {\n if (_arg1.fields[0]) {\n return \"true\";\n }\n else {\n return \"false\";\n }\n }\n else if (_arg1.tag === 0) {\n return _arg1.fields[0].toString();\n }\n else if (_arg1.tag === 1) {\n return toText(printf(\"\\\"%s\\\"\"))(_arg1.fields[0]);\n }\n else if (_arg1.tag === 4) {\n const arg10_1 = join(\",\", map_1((_arg1_1) => SimpleJson_toString(_arg1_1), _arg1.fields[0]));\n return toText(printf(\"[%s]\"))(arg10_1);\n }\n else if (_arg1.tag === 5) {\n const arg10_3 = join(\",\", map_1((tupledArg) => {\n const arg20 = SimpleJson_toString(tupledArg[1]);\n return toText(printf(\"\\\"%s\\\":%s\"))(tupledArg[0])(arg20);\n }, toList(_arg1.fields[0])));\n return toText(printf(\"{%s}\"))(arg10_3);\n }\n else {\n return \"null\";\n }\n}\n\nexport function SimpleJson_toPlainObject(input) {\n switch (input.tag) {\n case 2: {\n return input.fields[0];\n }\n case 0: {\n return input.fields[0];\n }\n case 1: {\n return input.fields[0];\n }\n case 4: {\n const array = [];\n const enumerator = getEnumerator(input.fields[0]);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const value_3 = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n void (array.push(SimpleJson_toPlainObject(value_3)));\n }\n }\n finally {\n enumerator.Dispose();\n }\n return array;\n }\n case 5: {\n const jsObject = ({});\n const enumerator_1 = getEnumerator(toList(input.fields[0]));\n try {\n while (enumerator_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n jsObject[forLoopVar[0]] = SimpleJson_toPlainObject(forLoopVar[1]);\n }\n }\n finally {\n enumerator_1.Dispose();\n }\n return jsObject;\n }\n default: {\n return null;\n }\n }\n}\n\nexport function SimpleJson_stringify(value) {\n if (value == null) {\n return JSON.stringify(null);\n }\n else {\n return JSON.stringify(value, (key, jsonValue) => {\n let copyOfStruct;\n return InteropUtil_isBigInt(jsonValue) ? toString(toDecimal(jsonValue)) : ((jsonValue instanceof Date) ? toString_1(jsonValue, \"o\") : (((typeof jsonValue) === \"string\") ? jsonValue : (isIterable(jsonValue) ? (Array.isArray(jsonValue) ? jsonValue : (Array.from(jsonValue))) : (InteropUtil_isBigInt(jsonValue) ? toString(toDecimal(jsonValue)) : (InteropUtil_isDateOffset(jsonValue) ? (copyOfStruct = jsonValue, toString_1(copyOfStruct, \"O\")) : jsonValue)))));\n }, some(0));\n }\n}\n\nexport function SimpleJson_parseNative$0027(x) {\n const activePatternResult6261 = $007CNativeString$007C_$007C(x);\n if (activePatternResult6261 != null) {\n const str = activePatternResult6261;\n return new Json(1, str);\n }\n else {\n const activePatternResult6260 = $007CNativeNumber$007C_$007C(x);\n if (activePatternResult6260 != null) {\n const number = activePatternResult6260;\n return new Json(0, number);\n }\n else {\n const activePatternResult6259 = $007CNativeBool$007C_$007C(x);\n if (activePatternResult6259 != null) {\n const value = activePatternResult6259;\n return new Json(2, value);\n }\n else if ($007CNull$007C_$007C(x) != null) {\n return new Json(3);\n }\n else {\n const activePatternResult6257 = $007CNativeArray$007C_$007C(x);\n if (activePatternResult6257 != null) {\n const arr = activePatternResult6257;\n return new Json(4, ofArray(map_2((x_1) => SimpleJson_parseNative$0027(x_1), arr)));\n }\n else {\n const activePatternResult6256 = $007CNativeObject$007C_$007C(x);\n if (activePatternResult6256 != null) {\n const object = value_5(activePatternResult6256);\n return new Json(5, ofList(toList_1(delay(() => map_3((key) => [key, SimpleJson_parseNative$0027(object[key])], Object.keys(object))))));\n }\n else {\n return new Json(3);\n }\n }\n }\n }\n }\n}\n\nexport function SimpleJson_parseNative(input) {\n return SimpleJson_parseNative$0027(JSON.parse(input));\n}\n\nexport function SimpleJson_tryParseNative(input) {\n try {\n return SimpleJson_parseNative(input);\n }\n catch (ex) {\n return void 0;\n }\n}\n\nexport function SimpleJson_fromObjectLiteral(x) {\n try {\n return SimpleJson_parseNative$0027(x);\n }\n catch (matchValue) {\n return void 0;\n }\n}\n\nexport function SimpleJson_mapKeys(f, _arg1) {\n switch (_arg1.tag) {\n case 5: {\n return new Json(5, ofList(map_1((tupledArg) => [f(tupledArg[0]), SimpleJson_mapKeys(f, tupledArg[1])], toList(_arg1.fields[0]))));\n }\n case 4: {\n return new Json(4, map_1((_arg1_1) => SimpleJson_mapKeys(f, _arg1_1), _arg1.fields[0]));\n }\n default: {\n return _arg1;\n }\n }\n}\n\nexport function SimpleJson_mapbyKey(f, _arg1) {\n switch (_arg1.tag) {\n case 5: {\n return new Json(5, ofList(map_1((tupledArg) => {\n const key = tupledArg[0];\n return [key, f(key, tupledArg[1])];\n }, toList(_arg1.fields[0]))));\n }\n case 4: {\n return new Json(4, map_1((_arg1_1) => SimpleJson_mapbyKey(f, _arg1_1), _arg1.fields[0]));\n }\n default: {\n return _arg1;\n }\n }\n}\n\nexport function SimpleJson_mapKeysByPath(f, json) {\n const mapKey = (xs, _arg1) => {\n switch (_arg1.tag) {\n case 5: {\n return new Json(5, ofList(map_1((tupledArg) => {\n const key = tupledArg[0];\n const value = tupledArg[1];\n const keyPath = concat([xs, singleton(key)]);\n const matchValue = f(keyPath);\n if (matchValue == null) {\n return [key, mapKey(keyPath, value)];\n }\n else {\n return [matchValue, mapKey(keyPath, value)];\n }\n }, toList(_arg1.fields[0]))));\n }\n case 4: {\n return new Json(4, map_1(partialApply(1, mapKey, [xs]), _arg1.fields[0]));\n }\n default: {\n return _arg1;\n }\n }\n };\n return mapKey(empty(), json);\n}\n\nexport function SimpleJson_readPath(keys_mut, input_mut) {\n SimpleJson_readPath:\n while (true) {\n const keys = keys_mut, input = input_mut;\n const matchValue = [keys, input];\n let pattern_matching_result, dict, key, dict_1, firstKey, rest;\n if (!isEmpty(matchValue[0])) {\n if (isEmpty(tail(matchValue[0]))) {\n if (matchValue[1].tag === 5) {\n pattern_matching_result = 1;\n dict = matchValue[1].fields[0];\n key = head(matchValue[0]);\n }\n else {\n pattern_matching_result = 3;\n }\n }\n else if (matchValue[1].tag === 5) {\n pattern_matching_result = 2;\n dict_1 = matchValue[1].fields[0];\n firstKey = head(matchValue[0]);\n rest = tail(matchValue[0]);\n }\n else {\n pattern_matching_result = 3;\n }\n }\n else {\n pattern_matching_result = 0;\n }\n switch (pattern_matching_result) {\n case 0: {\n return void 0;\n }\n case 1: {\n return tryFind(key, dict);\n }\n case 2: {\n const matchValue_1 = tryFind(firstKey, dict_1);\n let pattern_matching_result_1, nextDict;\n if (matchValue_1 != null) {\n if (matchValue_1.tag === 5) {\n pattern_matching_result_1 = 0;\n nextDict = matchValue_1.fields[0];\n }\n else {\n pattern_matching_result_1 = 1;\n }\n }\n else {\n pattern_matching_result_1 = 1;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n keys_mut = rest;\n input_mut = (new Json(5, nextDict));\n continue SimpleJson_readPath;\n }\n case 1: {\n return void 0;\n }\n }\n }\n case 3: {\n return void 0;\n }\n }\n break;\n }\n}\n\n","import { some } from \"../fable-library.3.2.1/Option.js\";\n\nexport function $007CNativeString$007C_$007C(x) {\n if (typeof (x) === 'string') {\n return x;\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CNativeBool$007C_$007C(x) {\n if (typeof (x) === 'boolean') {\n return x;\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CNativeNumber$007C_$007C(x) {\n if (typeof (x) === 'number') {\n return x;\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CNativeObject$007C_$007C(x) {\n if (typeof (x) === 'object') {\n return some(x);\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CNull$007C_$007C(x) {\n if (x == null) {\n return some(x);\n }\n else {\n return void 0;\n }\n}\n\nexport function $007CNativeArray$007C_$007C(x) {\n if (Array.isArray(x)) {\n return x;\n }\n else {\n return void 0;\n }\n}\n\n","// tslint:disable:ban-types\nexport function isIterable(x) {\n return x != null && typeof x === \"object\" && Symbol.iterator in x;\n}\nexport function isArrayLike(x) {\n return Array.isArray(x) || ArrayBuffer.isView(x);\n}\nfunction isComparer(x) {\n return typeof x.Compare === \"function\";\n}\nfunction isComparable(x) {\n return typeof x.CompareTo === \"function\";\n}\nfunction isEquatable(x) {\n return typeof x.Equals === \"function\";\n}\nfunction isHashable(x) {\n return typeof x.GetHashCode === \"function\";\n}\nexport function isDisposable(x) {\n return x != null && typeof x.Dispose === \"function\";\n}\nexport function sameConstructor(x, y) {\n return Object.getPrototypeOf(x).constructor === Object.getPrototypeOf(y).constructor;\n}\nexport class Enumerator {\n constructor(iter) {\n this.iter = iter;\n }\n [\"System.Collections.Generic.IEnumerator`1.get_Current\"]() {\n return this.current;\n }\n [\"System.Collections.IEnumerator.get_Current\"]() {\n return this.current;\n }\n [\"System.Collections.IEnumerator.MoveNext\"]() {\n const cur = this.iter.next();\n this.current = cur.value;\n return !cur.done;\n }\n [\"System.Collections.IEnumerator.Reset\"]() {\n throw new Error(\"JS iterators cannot be reset\");\n }\n Dispose() {\n return;\n }\n}\nexport function getEnumerator(o) {\n return typeof o.GetEnumerator === \"function\"\n ? o.GetEnumerator()\n : new Enumerator(o[Symbol.iterator]());\n}\nexport function toIterator(en) {\n return {\n [Symbol.iterator]() { return this; },\n next() {\n const hasNext = en[\"System.Collections.IEnumerator.MoveNext\"]();\n const current = hasNext ? en[\"System.Collections.IEnumerator.get_Current\"]() : undefined;\n return { done: !hasNext, value: current };\n },\n };\n}\nexport class Comparer {\n constructor(f) {\n this.Compare = f || compare;\n }\n}\nexport function comparerFromEqualityComparer(comparer) {\n // Sometimes IEqualityComparer also implements IComparer\n if (isComparer(comparer)) {\n return new Comparer(comparer.Compare);\n }\n else {\n return new Comparer((x, y) => {\n const xhash = comparer.GetHashCode(x);\n const yhash = comparer.GetHashCode(y);\n if (xhash === yhash) {\n return comparer.Equals(x, y) ? 0 : -1;\n }\n else {\n return xhash < yhash ? -1 : 1;\n }\n });\n }\n}\nexport function assertEqual(actual, expected, msg) {\n if (!equals(actual, expected)) {\n throw Object.assign(new Error(msg || `Expected: ${expected} - Actual: ${actual}`), {\n actual,\n expected,\n });\n }\n}\nexport function assertNotEqual(actual, expected, msg) {\n if (equals(actual, expected)) {\n throw Object.assign(new Error(msg || `Expected: ${expected} - Actual: ${actual}`), {\n actual,\n expected,\n });\n }\n}\nexport class Lazy {\n constructor(factory) {\n this.factory = factory;\n this.isValueCreated = false;\n }\n get Value() {\n if (!this.isValueCreated) {\n this.createdValue = this.factory();\n this.isValueCreated = true;\n }\n return this.createdValue;\n }\n get IsValueCreated() {\n return this.isValueCreated;\n }\n}\nexport function lazyFromValue(v) {\n return new Lazy(() => v);\n}\nexport function padWithZeros(i, length) {\n let str = i.toString(10);\n while (str.length < length) {\n str = \"0\" + str;\n }\n return str;\n}\nexport function padLeftAndRightWithZeros(i, lengthLeft, lengthRight) {\n let str = i.toString(10);\n while (str.length < lengthLeft) {\n str = \"0\" + str;\n }\n while (str.length < lengthRight) {\n str = str + \"0\";\n }\n return str;\n}\nexport function dateOffset(date) {\n const date1 = date;\n return typeof date1.offset === \"number\"\n ? date1.offset\n : (date.kind === 1 /* UTC */\n ? 0 : date.getTimezoneOffset() * -60000);\n}\nexport function int16ToString(i, radix) {\n i = i < 0 && radix != null && radix !== 10 ? 0xFFFF + i + 1 : i;\n return i.toString(radix);\n}\nexport function int32ToString(i, radix) {\n i = i < 0 && radix != null && radix !== 10 ? 0xFFFFFFFF + i + 1 : i;\n return i.toString(radix);\n}\nexport class ObjectRef {\n static id(o) {\n if (!ObjectRef.idMap.has(o)) {\n ObjectRef.idMap.set(o, ++ObjectRef.count);\n }\n return ObjectRef.idMap.get(o);\n }\n}\nObjectRef.idMap = new WeakMap();\nObjectRef.count = 0;\nexport function stringHash(s) {\n let i = 0;\n let h = 5381;\n const len = s.length;\n while (i < len) {\n h = (h * 33) ^ s.charCodeAt(i++);\n }\n return h;\n}\nexport function numberHash(x) {\n return x * 2654435761 | 0;\n}\n// From https://stackoverflow.com/a/37449594\nexport function combineHashCodes(hashes) {\n if (hashes.length === 0) {\n return 0;\n }\n return hashes.reduce((h1, h2) => {\n return ((h1 << 5) + h1) ^ h2;\n });\n}\nexport function physicalHash(x) {\n if (x == null) {\n return 0;\n }\n switch (typeof x) {\n case \"boolean\":\n return x ? 1 : 0;\n case \"number\":\n return numberHash(x);\n case \"string\":\n return stringHash(x);\n default:\n return numberHash(ObjectRef.id(x));\n }\n}\nexport function identityHash(x) {\n if (x == null) {\n return 0;\n }\n else if (isHashable(x)) {\n return x.GetHashCode();\n }\n else {\n return physicalHash(x);\n }\n}\nexport function dateHash(x) {\n return x.getTime();\n}\nexport function arrayHash(x) {\n const len = x.length;\n const hashes = new Array(len);\n for (let i = 0; i < len; i++) {\n hashes[i] = structuralHash(x[i]);\n }\n return combineHashCodes(hashes);\n}\nexport function structuralHash(x) {\n if (x == null) {\n return 0;\n }\n switch (typeof x) {\n case \"boolean\":\n return x ? 1 : 0;\n case \"number\":\n return numberHash(x);\n case \"string\":\n return stringHash(x);\n default: {\n if (isHashable(x)) {\n return x.GetHashCode();\n }\n else if (isArrayLike(x)) {\n return arrayHash(x);\n }\n else if (x instanceof Date) {\n return dateHash(x);\n }\n else if (Object.getPrototypeOf(x).constructor === Object) {\n // TODO: check call-stack to prevent cyclic objects?\n const hashes = Object.values(x).map((v) => structuralHash(v));\n return combineHashCodes(hashes);\n }\n else {\n // Classes don't implement GetHashCode by default, but must use identity hashing\n return numberHash(ObjectRef.id(x));\n // return stringHash(String(x));\n }\n }\n }\n}\n// Intended for custom numeric types, like long or decimal\nexport function fastStructuralHash(x) {\n return stringHash(String(x));\n}\n// Intended for declared types that may or may not implement GetHashCode\nexport function safeHash(x) {\n return x == null ? 0 : isHashable(x) ? x.GetHashCode() : numberHash(ObjectRef.id(x));\n}\nexport function equalArraysWith(x, y, eq) {\n if (x == null) {\n return y == null;\n }\n if (y == null) {\n return false;\n }\n if (x.length !== y.length) {\n return false;\n }\n for (let i = 0; i < x.length; i++) {\n if (!eq(x[i], y[i])) {\n return false;\n }\n }\n return true;\n}\nexport function equalArrays(x, y) {\n return equalArraysWith(x, y, equals);\n}\nfunction equalObjects(x, y) {\n const xKeys = Object.keys(x);\n const yKeys = Object.keys(y);\n if (xKeys.length !== yKeys.length) {\n return false;\n }\n xKeys.sort();\n yKeys.sort();\n for (let i = 0; i < xKeys.length; i++) {\n if (xKeys[i] !== yKeys[i] || !equals(x[xKeys[i]], y[yKeys[i]])) {\n return false;\n }\n }\n return true;\n}\nexport function equals(x, y) {\n if (x === y) {\n return true;\n }\n else if (x == null) {\n return y == null;\n }\n else if (y == null) {\n return false;\n }\n else if (typeof x !== \"object\") {\n return false;\n }\n else if (isEquatable(x)) {\n return x.Equals(y);\n }\n else if (isArrayLike(x)) {\n return isArrayLike(y) && equalArrays(x, y);\n }\n else if (x instanceof Date) {\n return (y instanceof Date) && compareDates(x, y) === 0;\n }\n else {\n return Object.getPrototypeOf(x).constructor === Object && equalObjects(x, y);\n }\n}\nexport function compareDates(x, y) {\n let xtime;\n let ytime;\n // DateTimeOffset and DateTime deals with equality differently.\n if (\"offset\" in x && \"offset\" in y) {\n xtime = x.getTime();\n ytime = y.getTime();\n }\n else {\n xtime = x.getTime() + dateOffset(x);\n ytime = y.getTime() + dateOffset(y);\n }\n return xtime === ytime ? 0 : (xtime < ytime ? -1 : 1);\n}\nexport function comparePrimitives(x, y) {\n return x === y ? 0 : (x < y ? -1 : 1);\n}\nexport function compareArraysWith(x, y, comp) {\n if (x == null) {\n return y == null ? 0 : 1;\n }\n if (y == null) {\n return -1;\n }\n if (x.length !== y.length) {\n return x.length < y.length ? -1 : 1;\n }\n for (let i = 0, j = 0; i < x.length; i++) {\n j = comp(x[i], y[i]);\n if (j !== 0) {\n return j;\n }\n }\n return 0;\n}\nexport function compareArrays(x, y) {\n return compareArraysWith(x, y, compare);\n}\nfunction compareObjects(x, y) {\n const xKeys = Object.keys(x);\n const yKeys = Object.keys(y);\n if (xKeys.length !== yKeys.length) {\n return xKeys.length < yKeys.length ? -1 : 1;\n }\n xKeys.sort();\n yKeys.sort();\n for (let i = 0, j = 0; i < xKeys.length; i++) {\n const key = xKeys[i];\n if (key !== yKeys[i]) {\n return key < yKeys[i] ? -1 : 1;\n }\n else {\n j = compare(x[key], y[key]);\n if (j !== 0) {\n return j;\n }\n }\n }\n return 0;\n}\nexport function compare(x, y) {\n if (x === y) {\n return 0;\n }\n else if (x == null) {\n return y == null ? 0 : -1;\n }\n else if (y == null) {\n return 1;\n }\n else if (typeof x !== \"object\") {\n return x < y ? -1 : 1;\n }\n else if (isComparable(x)) {\n return x.CompareTo(y);\n }\n else if (isArrayLike(x)) {\n return isArrayLike(y) ? compareArrays(x, y) : -1;\n }\n else if (x instanceof Date) {\n return y instanceof Date ? compareDates(x, y) : -1;\n }\n else {\n return Object.getPrototypeOf(x).constructor === Object ? compareObjects(x, y) : -1;\n }\n}\nexport function min(comparer, x, y) {\n return comparer(x, y) < 0 ? x : y;\n}\nexport function max(comparer, x, y) {\n return comparer(x, y) > 0 ? x : y;\n}\nexport function clamp(comparer, value, min, max) {\n return (comparer(value, min) < 0) ? min : (comparer(value, max) > 0) ? max : value;\n}\nexport function createAtom(value) {\n let atom = value;\n return (value, isSetter) => {\n if (!isSetter) {\n return atom;\n }\n else {\n atom = value;\n return void 0;\n }\n };\n}\nexport function createObj(fields) {\n const obj = {};\n for (const kv of fields) {\n obj[kv[0]] = kv[1];\n }\n return obj;\n}\nexport function jsOptions(mutator) {\n const opts = {};\n mutator(opts);\n return opts;\n}\nexport function round(value, digits = 0) {\n const m = Math.pow(10, digits);\n const n = +(digits ? value * m : value).toFixed(8);\n const i = Math.floor(n);\n const f = n - i;\n const e = 1e-8;\n const r = (f > 0.5 - e && f < 0.5 + e) ? ((i % 2 === 0) ? i : i + 1) : Math.round(n);\n return digits ? r / m : r;\n}\nexport function sign(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n}\nexport function randomNext(min, max) {\n return Math.floor(Math.random() * (max - min)) + min;\n}\nexport function randomBytes(buffer) {\n if (buffer == null) {\n throw new Error(\"Buffer cannot be null\");\n }\n for (let i = 0; i < buffer.length; i += 6) {\n // Pick random 48-bit number. Fill buffer in 2 24-bit chunks to avoid bitwise truncation.\n let r = Math.floor(Math.random() * 281474976710656); // Low 24 bits = chunk 1.\n const rhi = Math.floor(r / 16777216); // High 24 bits shifted via division = chunk 2.\n for (let j = 0; j < 6 && i + j < buffer.length; j++) {\n if (j === 3) {\n r = rhi;\n }\n buffer[i + j] = r & 255;\n r >>>= 8;\n }\n }\n}\nexport function unescapeDataString(s) {\n // https://stackoverflow.com/a/4458580/524236\n return decodeURIComponent((s).replace(/\\+/g, \"%20\"));\n}\nexport function escapeDataString(s) {\n return encodeURIComponent(s).replace(/!/g, \"%21\")\n .replace(/'/g, \"%27\")\n .replace(/\\(/g, \"%28\")\n .replace(/\\)/g, \"%29\")\n .replace(/\\*/g, \"%2A\");\n}\nexport function escapeUriString(s) {\n return encodeURI(s);\n}\n// ICollection.Clear and Count members can be called on Arrays\n// or Dictionaries so we need a runtime check (see #1120)\nexport function count(col) {\n if (isArrayLike(col)) {\n return col.length;\n }\n else {\n let count = 0;\n for (const _ of col) {\n count++;\n }\n return count;\n }\n}\nexport function clear(col) {\n if (isArrayLike(col)) {\n col.splice(0);\n }\n else {\n col.clear();\n }\n}\nconst CURRIED_KEY = \"__CURRIED__\";\nexport function uncurry(arity, f) {\n // f may be a function option with None value\n if (f == null || f.length > 1) {\n return f;\n }\n let uncurriedFn;\n switch (arity) {\n case 2:\n uncurriedFn = (a1, a2) => f(a1)(a2);\n break;\n case 3:\n uncurriedFn = (a1, a2, a3) => f(a1)(a2)(a3);\n break;\n case 4:\n uncurriedFn = (a1, a2, a3, a4) => f(a1)(a2)(a3)(a4);\n break;\n case 5:\n uncurriedFn = (a1, a2, a3, a4, a5) => f(a1)(a2)(a3)(a4)(a5);\n break;\n case 6:\n uncurriedFn = (a1, a2, a3, a4, a5, a6) => f(a1)(a2)(a3)(a4)(a5)(a6);\n break;\n case 7:\n uncurriedFn = (a1, a2, a3, a4, a5, a6, a7) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7);\n break;\n case 8:\n uncurriedFn = (a1, a2, a3, a4, a5, a6, a7, a8) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8);\n break;\n default:\n throw new Error(\"Uncurrying to more than 8-arity is not supported: \" + arity);\n }\n uncurriedFn[CURRIED_KEY] = f;\n return uncurriedFn;\n}\nexport function curry(arity, f) {\n if (f == null || f.length === 1) {\n return f;\n }\n if (CURRIED_KEY in f) {\n return f[CURRIED_KEY];\n }\n switch (arity) {\n case 2:\n return (a1) => (a2) => f(a1, a2);\n case 3:\n return (a1) => (a2) => (a3) => f(a1, a2, a3);\n case 4:\n return (a1) => (a2) => (a3) => (a4) => f(a1, a2, a3, a4);\n case 5:\n return (a1) => (a2) => (a3) => (a4) => (a5) => f(a1, a2, a3, a4, a5);\n case 6:\n return (a1) => (a2) => (a3) => (a4) => (a5) => (a6) => f(a1, a2, a3, a4, a5, a6);\n case 7:\n return (a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => f(a1, a2, a3, a4, a5, a6, a7);\n case 8:\n return (a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => f(a1, a2, a3, a4, a5, a6, a7, a8);\n default:\n throw new Error(\"Currying to more than 8-arity is not supported: \" + arity);\n }\n}\nexport function checkArity(arity, f) {\n return f.length > arity\n ? (...args1) => (...args2) => f.apply(undefined, args1.concat(args2))\n : f;\n}\nexport function partialApply(arity, f, args) {\n if (f == null) {\n return undefined;\n }\n else if (CURRIED_KEY in f) {\n f = f[CURRIED_KEY];\n for (let i = 0; i < args.length; i++) {\n f = f(args[i]);\n }\n return f;\n }\n else {\n switch (arity) {\n case 1:\n // Wrap arguments to make sure .concat doesn't destruct arrays. Example\n // [1,2].concat([3,4],5) --> [1,2,3,4,5] // fails\n // [1,2].concat([[3,4],5]) --> [1,2,[3,4],5] // ok\n return (a1) => f.apply(undefined, args.concat([a1]));\n case 2:\n return (a1) => (a2) => f.apply(undefined, args.concat([a1, a2]));\n case 3:\n return (a1) => (a2) => (a3) => f.apply(undefined, args.concat([a1, a2, a3]));\n case 4:\n return (a1) => (a2) => (a3) => (a4) => f.apply(undefined, args.concat([a1, a2, a3, a4]));\n case 5:\n return (a1) => (a2) => (a3) => (a4) => (a5) => f.apply(undefined, args.concat([a1, a2, a3, a4, a5]));\n case 6:\n return (a1) => (a2) => (a3) => (a4) => (a5) => (a6) => f.apply(undefined, args.concat([a1, a2, a3, a4, a5, a6]));\n case 7:\n return (a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => f.apply(undefined, args.concat([a1, a2, a3, a4, a5, a6, a7]));\n case 8:\n return (a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => f.apply(undefined, args.concat([a1, a2, a3, a4, a5, a6, a7, a8]));\n default:\n throw new Error(\"Partially applying to more than 8-arity is not supported: \" + arity);\n }\n }\n}\nexport function mapCurriedArgs(fn, mappings) {\n function mapArg(fn, arg, mappings, idx) {\n const mapping = mappings[idx];\n if (mapping !== 0) {\n const expectedArity = mapping[0];\n const actualArity = mapping[1];\n if (expectedArity > 1) {\n arg = curry(expectedArity, arg);\n }\n if (actualArity > 1) {\n arg = uncurry(actualArity, arg);\n }\n }\n const res = fn(arg);\n if (idx + 1 === mappings.length) {\n return res;\n }\n else {\n return (arg) => mapArg(res, arg, mappings, idx + 1);\n }\n }\n return (arg) => mapArg(fn, arg, mappings, 0);\n}\n","// Adapted from https://github.com/MikeMcl/big.js/blob/0f94dc9110d55c4f324a47ba6a2e832ce23ac589/big.mjs\n/* tslint:disable */\nimport { combineHashCodes } from \"../Util.js\";\nimport { symbol } from \"../Numeric.js\";\n// The shared prototype object.\nvar P = {\n GetHashCode() { return combineHashCodes([this.s, this.e].concat(this.c)); },\n Equals(x) { return !this.cmp(x); },\n CompareTo(x) { return this.cmp(x); },\n [symbol]() {\n const _this = this;\n return {\n multiply: y => _this.mul(y),\n toPrecision: sd => _this.toPrecision(sd),\n toExponential: dp => _this.toExponential(dp),\n toFixed: dp => _this.toFixed(dp),\n toHex: () => (Number(_this) >>> 0).toString(16),\n };\n }\n};\n/*\n * big.js v6.0.3\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\n * Copyright (c) 2020 Michael Mclaughlin\n * https://github.com/MikeMcl/big.js/LICENCE.md\n */\n/************************************** EDITABLE DEFAULTS *****************************************/\n// The default values below must be integers within the stated ranges.\n/*\n * The maximum number of decimal places (DP) of the results of operations involving division:\n * div and sqrt, and pow with negative exponents.\n */\nvar DP = 28, // 0 to MAX_DP\n/*\n * The rounding mode (RM) used when rounding to the above decimal places.\n *\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\n * 3 Away from zero. (ROUND_UP)\n */\nRM = 1, // 0, 1, 2 or 3\n// The maximum value of DP and Big.DP.\nMAX_DP = 1E6, // 0 to 1000000\n// The maximum magnitude of the exponent argument to the pow method.\nMAX_POWER = 1E6, // 1 to 1000000\n/*\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\n * (JavaScript numbers: -7)\n * -1000000 is the minimum recommended exponent value of a Big.\n */\nNE = -29, // 0 to -1000000\n/*\n * The positive exponent (PE) at and above which toString returns exponential notation.\n * (JavaScript numbers: 21)\n * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\n */\nPE = 29, // 0 to 1000000\n/*\n * When true, an error will be thrown if a primitive number is passed to the Big constructor,\n * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\n * primitive number without a loss of precision.\n */\nSTRICT = false, // true or false\n/**************************************************************************************************/\n// Error messages.\nNAME = '[big.js] ', INVALID = NAME + 'Invalid ', INVALID_DP = INVALID + 'decimal places', INVALID_RM = INVALID + 'rounding mode', DIV_BY_ZERO = NAME + 'Division by zero', UNDEFINED = void 0, NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\n/*\n * Create and return a Big constructor.\n */\nfunction _Big_() {\n /*\n * The Big constructor and exported function.\n * Create and return a new instance of a Big number object.\n *\n * n {number|string|Big} A numeric value.\n */\n function Big(n) {\n var x = this;\n // Enable constructor usage without new.\n if (!(x instanceof Big))\n return n === UNDEFINED ? _Big_() : new Big(n);\n // Duplicate.\n if (n instanceof Big) {\n x.s = n.s;\n x.e = n.e;\n x.c = n.c.slice();\n normalize(x);\n }\n else {\n if (typeof n !== 'string') {\n if (Big.strict === true) {\n throw TypeError(INVALID + 'number');\n }\n // Minus zero?\n n = n === 0 && 1 / n < 0 ? '-0' : String(n);\n }\n parse(x, n);\n }\n // Retain a reference to this Big constructor.\n // Shadow Big.prototype.constructor which points to Object.\n x.constructor = Big;\n }\n Big.prototype = P;\n Big.DP = DP;\n Big.RM = RM;\n Big.NE = NE;\n Big.PE = PE;\n Big.strict = STRICT;\n return Big;\n}\nfunction normalize(x) {\n // x = round(x, DP, 0);\n if (x.c.length > 1 && !x.c[0]) {\n let i = x.c.findIndex(x => x);\n x.c = x.c.slice(i);\n x.e = x.e - i;\n }\n}\n/*\n * Parse the number or string value passed to a Big constructor.\n *\n * x {Big} A Big number instance.\n * n {number|string} A numeric value.\n */\nfunction parse(x, n) {\n var e, i, nl;\n if (!NUMERIC.test(n)) {\n throw Error(INVALID + 'number');\n }\n // Determine sign.\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\n // Decimal point?\n if ((e = n.indexOf('.')) > -1)\n n = n.replace('.', '');\n // Exponential form?\n if ((i = n.search(/e/i)) > 0) {\n // Determine exponent.\n if (e < 0)\n e = i;\n e += +n.slice(i + 1);\n n = n.substring(0, i);\n }\n else if (e < 0) {\n // Integer.\n e = n.length;\n }\n nl = n.length;\n // Determine leading zeros before decimal point.\n for (i = 0; i < e && i < nl && n.charAt(i) == '0';)\n ++i;\n // original version (ignores decimal point).\n // // Determine leading zeros.\n // for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\n if (i == nl) {\n // Zero.\n x.c = [x.e = 0];\n }\n else {\n x.e = e - i - 1;\n x.c = [];\n // Convert string to array of digits without leading zeros\n for (e = 0; i < nl;)\n x.c[e++] = +n.charAt(i++);\n // older version (doesn't keep trailing zeroes).\n // // Determine trailing zeros.\n // for (; nl > 0 && n.charAt(--nl) == '0';);\n // // Convert string to array of digits without leading/trailing zeros.\n // for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\n }\n x = round(x, Big.DP + 1, Big.RM);\n return x;\n}\n/*\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\n *\n * x {Big} The Big to round.\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\n * [more] {boolean} Whether the result of division was truncated.\n */\nfunction round(x, sd, rm, more) {\n var xc = x.c;\n if (rm === UNDEFINED)\n rm = Big.RM;\n if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\n throw Error(INVALID_RM);\n }\n if (sd < 1) {\n more =\n rm === 3 && (more || !!xc[0]) || sd === 0 && (rm === 1 && xc[0] >= 5 ||\n rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED)));\n xc.length = 1;\n if (more) {\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n x.e = x.e - sd + 1;\n xc[0] = 1;\n }\n else {\n // Zero.\n xc[0] = x.e = 0;\n }\n }\n else if (sd < xc.length) {\n // xc[sd] is the digit after the digit that may be rounded up.\n const isZero = xc.findIndex((xci, idx) => idx >= sd && xci > 0) < 0;\n more =\n rm === 1 && xc[sd] >= 5 ||\n rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\n (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\n rm === 3 && (more || !isZero);\n // Remove any digits after the required precision.\n xc.length = sd--;\n // Round up?\n if (more) {\n // Rounding up may mean the previous digit has to be rounded up.\n for (; ++xc[sd] > 9;) {\n xc[sd] = 0;\n if (!sd--) {\n ++x.e;\n xc.unshift(1);\n }\n }\n }\n // Remove trailing zeros.\n for (sd = xc.length; !xc[--sd];)\n xc.pop();\n }\n return x;\n}\n/*\n * Return a string representing the value of Big x in normal or exponential notation.\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\n */\nfunction stringify(x, doExponential, isNonzero) {\n var e = x.e, s = x.c.join(''), n = s.length;\n // Exponential notation?\n if (doExponential) {\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\n // Normal notation.\n }\n else if (e < 0) {\n for (; ++e;)\n s = '0' + s;\n s = '0.' + s;\n }\n else if (e > 0) {\n if (++e > n) {\n for (e -= n; e--;)\n s += '0';\n }\n else if (e < n) {\n s = s.slice(0, e) + '.' + s.slice(e);\n }\n }\n else if (n > 1) {\n s = s.charAt(0) + '.' + s.slice(1);\n }\n return x.s < 0 && isNonzero ? '-' + s : s;\n}\n// Prototype/instance methods\n/*\n * Return a new Big whose value is the absolute value of this Big.\n */\nP.abs = function () {\n var x = new this.constructor(this);\n x.s = 1;\n return x;\n};\n/*\n * Return 1 if the value of this Big is greater than the value of Big y,\n * -1 if the value of this Big is less than the value of Big y, or\n * 0 if they have the same value.\n */\nP.cmp = function (y) {\n var isneg, Big = this.constructor, x = new Big(this), y = new Big(y), xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;\n // Either zero?\n if (!xc[0] || !yc[0])\n return !xc[0] ? !yc[0] ? 0 : -j : i;\n // Signs differ?\n if (i != j)\n return i;\n isneg = i < 0;\n // Compare exponents.\n if (k != l)\n return k > l ^ isneg ? 1 : -1;\n // Compare digit by digit.\n j = Math.max(xc.length, yc.length);\n for (i = 0; i < j; i++) {\n k = i < xc.length ? xc[i] : 0;\n l = i < yc.length ? yc[i] : 0;\n if (k != l)\n return k > l ^ isneg ? 1 : -1;\n }\n return 0;\n // original version (doesn't compare well trailing zeroes, e.g. 1.0 with 1.00)\n // j = (k = xc.length) < (l = yc.length) ? k : l;\n // // Compare digit by digit.\n // for (i = -1; ++i < j;) {\n // if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\n // }\n // // Compare lengths.\n // return k == l ? 0 : k > l ^ isneg ? 1 : -1;\n};\n/*\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\n */\nP.div = function (y) {\n var Big = this.constructor, x = new Big(this), y = new Big(y), a = x.c, // dividend\n b = y.c, // divisor\n k = x.s == y.s ? 1 : -1, dp = Big.DP;\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\n throw Error(INVALID_DP);\n }\n // Divisor is zero?\n if (!b[0]) {\n throw Error(DIV_BY_ZERO);\n }\n // Dividend is 0? Return +-0.\n if (!a[0]) {\n y.s = k;\n y.c = [y.e = 0];\n return y;\n }\n var bl, bt, n, cmp, ri, bz = b.slice(), ai = bl = b.length, al = a.length, r = a.slice(0, bl), // remainder\n rl = r.length, q = y, // quotient\n qc = q.c = [], qi = 0, p = dp + (q.e = x.e - y.e) + 1; // precision of the result\n q.s = k;\n k = p < 0 ? 0 : p;\n // Create version of divisor with leading zero.\n bz.unshift(0);\n // Add zeros to make remainder as long as divisor.\n for (; rl++ < bl;)\n r.push(0);\n do {\n // n is how many times the divisor goes into current remainder.\n for (n = 0; n < 10; n++) {\n // Compare divisor and remainder.\n if (bl != (rl = r.length)) {\n cmp = bl > rl ? 1 : -1;\n }\n else {\n for (ri = -1, cmp = 0; ++ri < bl;) {\n if (b[ri] != r[ri]) {\n cmp = b[ri] > r[ri] ? 1 : -1;\n break;\n }\n }\n }\n // If divisor < remainder, subtract divisor from remainder.\n if (cmp < 0) {\n // Remainder can't be more than 1 digit longer than divisor.\n // Equalise lengths using divisor with extra leading zero?\n for (bt = rl == bl ? b : bz; rl;) {\n if (r[--rl] < bt[rl]) {\n ri = rl;\n for (; ri && !r[--ri];)\n r[ri] = 9;\n --r[ri];\n r[rl] += 10;\n }\n r[rl] -= bt[rl];\n }\n for (; !r[0];)\n r.shift();\n }\n else {\n break;\n }\n }\n // Add the digit n to the result array.\n qc[qi++] = cmp ? n : ++n;\n // Update the remainder.\n if (r[0] && cmp)\n r[rl] = a[ai] || 0;\n else\n r = [a[ai]];\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\n // Leading zero? Do not remove if result is simply zero (qi == 1).\n if (!qc[0] && qi != 1) {\n // There can't be more than one zero.\n qc.shift();\n q.e--;\n p--;\n }\n // Round?\n if (qi > p)\n round(q, p, Big.RM, r[0] !== UNDEFINED);\n return q;\n};\n/*\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\n */\nP.eq = function (y) {\n return this.cmp(y) === 0;\n};\n/*\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\n * false.\n */\nP.gt = function (y) {\n return this.cmp(y) > 0;\n};\n/*\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\n * return false.\n */\nP.gte = function (y) {\n return this.cmp(y) > -1;\n};\n/*\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\n */\nP.lt = function (y) {\n return this.cmp(y) < 0;\n};\n/*\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\n * return false.\n */\nP.lte = function (y) {\n return this.cmp(y) < 1;\n};\n/*\n * Return a new Big whose value is the value of this Big minus the value of Big y.\n */\nP.minus = P.sub = function (y) {\n var i, j, t, xlty, Big = this.constructor, x = new Big(this), y = new Big(y), a = x.s, b = y.s;\n // Signs differ?\n if (a != b) {\n y.s = -b;\n return x.plus(y);\n }\n var xc = x.c.slice(), xe = x.e, yc = y.c, ye = y.e;\n // Either zero?\n if (!xc[0] || !yc[0]) {\n if (yc[0]) {\n y.s = -b;\n }\n else if (xc[0]) {\n y = new Big(x);\n }\n else {\n y.s = 1;\n }\n return y;\n }\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\n if (a = xe - ye) {\n if (xlty = a < 0) {\n a = -a;\n t = xc;\n }\n else {\n ye = xe;\n t = yc;\n }\n t.reverse();\n for (b = a; b--;)\n t.push(0);\n t.reverse();\n }\n else {\n // Exponents equal. Check digit by digit.\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\n for (a = b = 0; b < j; b++) {\n if (xc[b] != yc[b]) {\n xlty = xc[b] < yc[b];\n break;\n }\n }\n }\n // x < y? Point xc to the array of the bigger number.\n if (xlty) {\n t = xc;\n xc = yc;\n yc = t;\n y.s = -y.s;\n }\n /*\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\n * needs to start at yc.length.\n */\n if ((b = (j = yc.length) - (i = xc.length)) > 0)\n for (; b--;)\n xc[i++] = 0;\n // Subtract yc from xc.\n for (b = i; j > a;) {\n if (xc[--j] < yc[j]) {\n for (i = j; i && !xc[--i];)\n xc[i] = 9;\n --xc[i];\n xc[j] += 10;\n }\n xc[j] -= yc[j];\n }\n // Remove trailing zeros.\n for (; xc[--b] === 0;)\n xc.pop();\n // Remove leading zeros and adjust exponent accordingly.\n for (; xc[0] === 0;) {\n xc.shift();\n --ye;\n }\n if (!xc[0]) {\n // n - n = +0\n y.s = 1;\n // Result must be zero.\n xc = [ye = 0];\n }\n y.c = xc;\n y.e = ye;\n return y;\n};\n/*\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\n */\nP.mod = function (y) {\n var ygtx, Big = this.constructor, x = new Big(this), y = new Big(y), a = x.s, b = y.s;\n if (!y.c[0]) {\n throw Error(DIV_BY_ZERO);\n }\n x.s = y.s = 1;\n ygtx = y.cmp(x) == 1;\n x.s = a;\n y.s = b;\n if (ygtx)\n return new Big(x);\n a = Big.DP;\n b = Big.RM;\n Big.DP = Big.RM = 0;\n x = x.div(y);\n Big.DP = a;\n Big.RM = b;\n return this.minus(x.times(y));\n};\n/*\n * Return a new Big whose value is the value of this Big plus the value of Big y.\n */\nP.plus = P.add = function (y) {\n var e, k, t, Big = this.constructor, x = new Big(this), y = new Big(y);\n // Signs differ?\n if (x.s != y.s) {\n y.s = -y.s;\n return x.minus(y);\n }\n var xe = x.e, xc = x.c, ye = y.e, yc = y.c;\n // Either zero?\n if (!xc[0] || !yc[0]) {\n if (!yc[0]) {\n if (xc[0]) {\n y = new Big(x);\n }\n else {\n y.s = x.s;\n }\n }\n return y;\n }\n xc = xc.slice();\n // Prepend zeros to equalise exponents.\n // Note: reverse faster than unshifts.\n if (e = xe - ye) {\n if (e > 0) {\n ye = xe;\n t = yc;\n }\n else {\n e = -e;\n t = xc;\n }\n t.reverse();\n for (; e--;)\n t.push(0);\n t.reverse();\n }\n // Point xc to the longer array.\n if (xc.length - yc.length < 0) {\n t = yc;\n yc = xc;\n xc = t;\n }\n e = yc.length;\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\n for (k = 0; e; xc[e] %= 10)\n k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n if (k) {\n xc.unshift(k);\n ++ye;\n }\n // Remove trailing zeros.\n for (e = xc.length; xc[--e] === 0;)\n xc.pop();\n y.c = xc;\n y.e = ye;\n return y;\n};\n/*\n * Return a Big whose value is the value of this Big raised to the power n.\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\n * mode Big.RM.\n *\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\n */\nP.pow = function (n) {\n var Big = this.constructor, x = new Big(this), y = new Big('1'), one = new Big('1'), isneg = n < 0;\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\n throw Error(INVALID + 'exponent');\n }\n if (isneg)\n n = -n;\n for (;;) {\n if (n & 1)\n y = y.times(x);\n n >>= 1;\n if (!n)\n break;\n x = x.times(x);\n }\n return isneg ? one.div(y) : y;\n};\n/*\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\n *\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\n */\nP.prec = function (sd, rm) {\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\n throw Error(INVALID + 'precision');\n }\n return round(new this.constructor(this), sd, rm);\n};\n/*\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\n * using rounding mode rm, or Big.RM if rm is not specified.\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\n * If dp is not specified, round to 0 decimal places.\n *\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\n */\nP.round = function (dp, rm) {\n if (dp === UNDEFINED)\n dp = 0;\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\n throw Error(INVALID_DP);\n }\n return round(new this.constructor(this), dp + this.e + 1, rm);\n};\n/*\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\n */\nP.sqrt = function () {\n var r, c, t, Big = this.constructor, x = new Big(this), s = x.s, e = x.e, half = new Big('0.5');\n // Zero?\n if (!x.c[0])\n return new Big(x);\n // Negative?\n if (s < 0) {\n throw Error(NAME + 'No square root');\n }\n // Estimate.\n s = Math.sqrt(x + '');\n // Math.sqrt underflow/overflow?\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\n if (s === 0 || s === 1 / 0) {\n c = x.c.join('');\n if (!(c.length + e & 1))\n c += '0';\n s = Math.sqrt(c);\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\n r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\n }\n else {\n r = new Big(s + '');\n }\n e = r.e + (Big.DP += 4);\n // Newton-Raphson iteration.\n do {\n t = r;\n r = half.times(t.plus(x.div(t)));\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\n return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\n};\n/*\n * Return a new Big whose value is the value of this Big times the value of Big y.\n */\nP.times = P.mul = function (y) {\n var c, Big = this.constructor, x = new Big(this), y = new Big(y), xc = x.c, yc = y.c, a = xc.length, b = yc.length, i = x.e, j = y.e;\n // Determine sign of result.\n y.s = x.s == y.s ? 1 : -1;\n // Return signed 0 if either 0.\n if (!xc[0] || !yc[0]) {\n y.c = [y.e = 0];\n return y;\n }\n // Initialise exponent of result as x.e + y.e.\n y.e = i + j;\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\n if (a < b) {\n c = xc;\n xc = yc;\n yc = c;\n j = a;\n a = b;\n b = j;\n }\n // Initialise coefficient array of result with zeros.\n for (c = new Array(j = a + b); j--;)\n c[j] = 0;\n // Multiply.\n // i is initially xc.length.\n for (i = b; i--;) {\n b = 0;\n // a is yc.length.\n for (j = a + i; j > i;) {\n // Current sum of products at this digit position, plus carry.\n b = c[j] + yc[i] * xc[j - i - 1] + b;\n c[j--] = b % 10;\n // carry\n b = b / 10 | 0;\n }\n c[j] = b;\n }\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\n if (b)\n ++y.e;\n else\n c.shift();\n // Remove trailing zeros.\n for (i = c.length; !c[--i];)\n c.pop();\n y.c = c;\n return y;\n};\n/*\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\n *\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\n */\nP.toExponential = function (dp, rm) {\n var x = this, n = x.c[0];\n if (dp !== UNDEFINED) {\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\n throw Error(INVALID_DP);\n }\n x = round(new x.constructor(x), ++dp, rm);\n for (; x.c.length < dp;)\n x.c.push(0);\n }\n return stringify(x, true, !!n);\n};\n/*\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\n *\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\n *\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\n */\nP.toFixed = function (dp, rm) {\n var x = this, n = x.c[0];\n if (dp !== UNDEFINED) {\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\n throw Error(INVALID_DP);\n }\n x = round(new x.constructor(x), dp + x.e + 1, rm);\n // x.e may have changed if the value is rounded up.\n for (dp = dp + x.e + 1; x.c.length < dp;)\n x.c.push(0);\n }\n return stringify(x, false, !!n);\n};\n/*\n * Return a string representing the value of this Big.\n * Return exponential notation if this Big has a positive exponent equal to or greater than\n * Big.PE, or a negative exponent equal to or less than Big.NE.\n * Omit the sign for negative zero.\n */\nP.toJSON = P.toString = function () {\n var x = this, Big = x.constructor;\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\n};\n/*\n * Return the value of this Big as a primitve number.\n */\nP.toNumber = function () {\n var n = Number(stringify(this, true, true));\n if (this.constructor.strict === true && !this.eq(n.toString())) {\n throw Error(NAME + 'Imprecise conversion');\n }\n return n;\n};\n/*\n * Return a string representing the value of this Big rounded to sd significant digits using\n * rounding mode rm, or Big.RM if rm is not specified.\n * Use exponential notation if sd is less than the number of digits necessary to represent\n * the integer part of the value in normal notation.\n *\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\n */\nP.toPrecision = function (sd, rm) {\n var x = this, Big = x.constructor, n = x.c[0];\n if (sd !== UNDEFINED) {\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\n throw Error(INVALID + 'precision');\n }\n x = round(new Big(x), sd, rm);\n for (; x.c.length < sd;)\n x.c.push(0);\n }\n return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\n};\n/*\n * Return a string representing the value of this Big.\n * Return exponential notation if this Big has a positive exponent equal to or greater than\n * Big.PE, or a negative exponent equal to or less than Big.NE.\n * Include the sign for negative zero.\n */\nP.valueOf = function () {\n var x = this, Big = x.constructor;\n if (Big.strict === true) {\n throw Error(NAME + 'valueOf disallowed');\n }\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\n};\n// Export\nexport var Big = _Big_();\n/// \nexport default Big;\n","import Decimal from \"./lib/big.js\";\nimport { FSharpRef } from \"./Types.js\";\nexport default Decimal;\nexport const get_Zero = new Decimal(0);\nexport const get_One = new Decimal(1);\nexport const get_MinusOne = new Decimal(-1);\nexport const get_MaxValue = new Decimal(\"79228162514264337593543950335\");\nexport const get_MinValue = new Decimal(\"-79228162514264337593543950335\");\nexport function compare(x, y) {\n return x.cmp(y);\n}\nexport function equals(x, y) {\n return !x.cmp(y);\n}\nexport function abs(x) {\n return x.abs();\n}\nexport function round(x, digits = 0) {\n return x.round(digits, 2 /* ROUND_HALF_EVEN */);\n}\nexport function truncate(x) {\n return x.round(0, 0 /* ROUND_DOWN */);\n}\nexport function ceiling(x) {\n return x.round(0, x.cmp(0) >= 0 ? 3 /* ROUND_UP */ : 0 /* ROUND_DOWN */);\n}\nexport function floor(x) {\n return x.round(0, x.cmp(0) >= 0 ? 0 /* ROUND_DOWN */ : 3 /* ROUND_UP */);\n}\nexport function pow(x, n) {\n return x.pow(n);\n}\nexport function sqrt(x) {\n return x.sqrt();\n}\nexport function op_Addition(x, y) {\n return x.add(y);\n}\nexport function op_Subtraction(x, y) {\n return x.sub(y);\n}\nexport function op_Multiply(x, y) {\n return x.mul(y);\n}\nexport function op_Division(x, y) {\n return x.div(y);\n}\nexport function op_Modulus(x, y) {\n return x.mod(y);\n}\nexport function op_UnaryNegation(x) {\n const x2 = new Decimal(x);\n x2.s = -x2.s || 0;\n return x2;\n}\nexport const add = op_Addition;\nexport const subtract = op_Subtraction;\nexport const multiply = op_Multiply;\nexport const divide = op_Division;\nexport const remainder = op_Modulus;\nexport const negate = op_UnaryNegation;\nexport function toString(x) {\n return x.toString();\n}\nexport function tryParse(str, defValue) {\n try {\n defValue.contents = new Decimal(str.trim());\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexport function parse(str) {\n const defValue = new FSharpRef(get_Zero);\n if (tryParse(str, defValue)) {\n return defValue.contents;\n }\n else {\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\nexport function toNumber(x) {\n return +x;\n}\nfunction decimalToHex(dec, bitSize) {\n const hex = new Uint8Array(bitSize / 4 | 0);\n let hexCount = 1;\n for (let d = 0; d < dec.length; d++) {\n let value = dec[d];\n for (let i = 0; i < hexCount; i++) {\n const digit = hex[i] * 10 + value | 0;\n hex[i] = digit & 0xF;\n value = digit >> 4;\n }\n if (value !== 0) {\n hex[hexCount++] = value;\n }\n }\n return hex.slice(0, hexCount); // digits in reverse order\n}\nfunction hexToDecimal(hex, bitSize) {\n const dec = new Uint8Array(bitSize * 301 / 1000 + 1 | 0);\n let decCount = 1;\n for (let d = hex.length - 1; d >= 0; d--) {\n let carry = hex[d];\n for (let i = 0; i < decCount; i++) {\n const val = dec[i] * 16 + carry | 0;\n dec[i] = (val % 10) | 0;\n carry = (val / 10) | 0;\n }\n while (carry > 0) {\n dec[decCount++] = (carry % 10) | 0;\n carry = (carry / 10) | 0;\n }\n }\n return dec.slice(0, decCount); // digits in reverse order\n}\nfunction setInt32Bits(hexDigits, bits, offset) {\n for (let i = 0; i < 8; i++) {\n hexDigits[offset + i] = (bits >> (i * 4)) & 0xF;\n }\n}\nfunction getInt32Bits(hexDigits, offset) {\n let bits = 0;\n for (let i = 0; i < 8; i++) {\n bits = bits | (hexDigits[offset + i] << (i * 4));\n }\n return bits;\n}\nexport function fromIntArray(bits) {\n return fromInts(bits[0], bits[1], bits[2], bits[3]);\n}\nexport function fromInts(low, mid, high, signExp) {\n const isNegative = signExp < 0;\n const scale = (signExp >> 16) & 0x7F;\n return fromParts(low, mid, high, isNegative, scale);\n}\nexport function fromParts(low, mid, high, isNegative, scale) {\n const bitSize = 96;\n const hexDigits = new Uint8Array(bitSize / 4);\n setInt32Bits(hexDigits, low, 0);\n setInt32Bits(hexDigits, mid, 8);\n setInt32Bits(hexDigits, high, 16);\n const decDigits = hexToDecimal(hexDigits, bitSize);\n scale = scale & 0x7F;\n const big = new Decimal(0);\n big.c = Array.from(decDigits.reverse());\n big.e = decDigits.length - scale - 1;\n big.s = isNegative ? -1 : 1;\n const d = new Decimal(big);\n return d;\n}\nexport function getBits(d) {\n const bitSize = 96;\n const decDigits = Uint8Array.from(d.c);\n const hexDigits = decimalToHex(decDigits, bitSize);\n const low = getInt32Bits(hexDigits, 0);\n const mid = getInt32Bits(hexDigits, 8);\n const high = getInt32Bits(hexDigits, 16);\n const decStr = d.toString();\n const dotPos = decStr.indexOf(\".\");\n const scale = dotPos < 0 ? 0 : decStr.length - dotPos - 1;\n const signExp = ((scale & 0x7F) << 16) | (d.s < 0 ? 0x80000000 : 0);\n return [low, mid, high, signExp];\n}\n// export function makeRangeStepFunction(step: Decimal, last: Decimal) {\n// const stepComparedWithZero = step.cmp(get_Zero);\n// if (stepComparedWithZero === 0) {\n// throw new Error(\"The step of a range cannot be zero\");\n// }\n// const stepGreaterThanZero = stepComparedWithZero > 0;\n// return (x: Decimal) => {\n// const comparedWithLast = x.cmp(last);\n// if ((stepGreaterThanZero && comparedWithLast <= 0)\n// || (!stepGreaterThanZero && comparedWithLast >= 0)) {\n// return [x, op_Addition(x, step)];\n// } else {\n// return undefined;\n// }\n// };\n// }\n","import { equals, toIterator, getEnumerator } from \"./Util.js\";\nimport { iterate, map, delay, toArray, iterateIndexed, concat } from \"./Seq.js\";\nimport { FSharpRef } from \"./Types.js\";\nimport { class_type } from \"./Reflection.js\";\nimport { getItemFromDict, tryGetValue } from \"./MapUtil.js\";\nimport { format } from \"./String.js\";\n\nexport class Dictionary {\n constructor(pairs, comparer) {\n const this$ = new FSharpRef(null);\n this.comparer = comparer;\n this$.contents = this;\n this.hashMap = (new Map([]));\n this[\"init@8-1\"] = 1;\n const enumerator = getEnumerator(pairs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const pair = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n Dictionary__Add_5BDDA1(this$.contents, pair[0], pair[1]);\n }\n }\n finally {\n enumerator.Dispose();\n }\n }\n get [Symbol.toStringTag]() {\n return \"Dictionary\";\n }\n toJSON(_key) {\n const this$ = this;\n return Array.from(this$);\n }\n [\"System.Collections.IEnumerable.GetEnumerator\"]() {\n const this$ = this;\n return getEnumerator(this$);\n }\n GetEnumerator() {\n const this$ = this;\n return getEnumerator(concat(this$.hashMap.values()));\n }\n [Symbol.iterator]() {\n return toIterator(this.GetEnumerator());\n }\n [\"System.Collections.Generic.ICollection`1.Add2B595\"](item) {\n const this$ = this;\n Dictionary__Add_5BDDA1(this$, item[0], item[1]);\n }\n [\"System.Collections.Generic.ICollection`1.Clear\"]() {\n const this$ = this;\n Dictionary__Clear(this$);\n }\n [\"System.Collections.Generic.ICollection`1.Contains2B595\"](item) {\n const this$ = this;\n const matchValue = Dictionary__TryFind_2B595(this$, item[0]);\n let pattern_matching_result;\n if (matchValue != null) {\n if (equals(matchValue[1], item[1])) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return true;\n }\n case 1: {\n return false;\n }\n }\n }\n [\"System.Collections.Generic.ICollection`1.CopyToZ2E171D71\"](array, arrayIndex) {\n const this$ = this;\n iterateIndexed((i, e) => {\n array[arrayIndex + i] = e;\n }, this$);\n }\n [\"System.Collections.Generic.ICollection`1.get_Count\"]() {\n const this$ = this;\n return Dictionary__get_Count(this$) | 0;\n }\n [\"System.Collections.Generic.ICollection`1.get_IsReadOnly\"]() {\n return false;\n }\n [\"System.Collections.Generic.ICollection`1.Remove2B595\"](item) {\n const this$ = this;\n const matchValue = Dictionary__TryFind_2B595(this$, item[0]);\n if (matchValue != null) {\n if (equals(matchValue[1], item[1])) {\n void Dictionary__Remove_2B595(this$, item[0]);\n }\n return true;\n }\n else {\n return false;\n }\n }\n [\"System.Collections.Generic.IDictionary`2.Add5BDDA1\"](key, value) {\n const this$ = this;\n Dictionary__Add_5BDDA1(this$, key, value);\n }\n [\"System.Collections.Generic.IDictionary`2.ContainsKey2B595\"](key) {\n const this$ = this;\n return Dictionary__ContainsKey_2B595(this$, key);\n }\n [\"System.Collections.Generic.IDictionary`2.get_Item2B595\"](key) {\n const this$ = this;\n return Dictionary__get_Item_2B595(this$, key);\n }\n [\"System.Collections.Generic.IDictionary`2.set_Item5BDDA1\"](key, v) {\n const this$ = this;\n Dictionary__set_Item_5BDDA1(this$, key, v);\n }\n [\"System.Collections.Generic.IDictionary`2.get_Keys\"]() {\n const this$ = this;\n return toArray(delay(() => map((pair) => pair[0], this$)));\n }\n [\"System.Collections.Generic.IDictionary`2.Remove2B595\"](key) {\n const this$ = this;\n return Dictionary__Remove_2B595(this$, key);\n }\n [\"System.Collections.Generic.IDictionary`2.TryGetValue23A0B95A\"](key, value) {\n const this$ = this;\n const matchValue = Dictionary__TryFind_2B595(this$, key);\n if (matchValue != null) {\n const pair = matchValue;\n value.contents = pair[1];\n return true;\n }\n else {\n return false;\n }\n }\n [\"System.Collections.Generic.IDictionary`2.get_Values\"]() {\n const this$ = this;\n return toArray(delay(() => map((pair) => pair[1], this$)));\n }\n get size() {\n const this$ = this;\n return Dictionary__get_Count(this$) | 0;\n }\n clear() {\n const this$ = this;\n Dictionary__Clear(this$);\n }\n delete(k) {\n const this$ = this;\n return Dictionary__Remove_2B595(this$, k);\n }\n entries() {\n const this$ = this;\n return map((p) => [p[0], p[1]], this$);\n }\n get(k) {\n const this$ = this;\n return Dictionary__get_Item_2B595(this$, k);\n }\n has(k) {\n const this$ = this;\n return Dictionary__ContainsKey_2B595(this$, k);\n }\n keys() {\n const this$ = this;\n return map((p) => p[0], this$);\n }\n set(k, v) {\n const this$ = this;\n Dictionary__set_Item_5BDDA1(this$, k, v);\n return this$;\n }\n values() {\n const this$ = this;\n return map((p) => p[1], this$);\n }\n forEach(f, thisArg) {\n const this$ = this;\n iterate((p) => {\n f(p[1], p[0], this$);\n }, this$);\n }\n}\n\nexport function Dictionary$reflection(gen0, gen1) {\n return class_type(\"Fable.Collections.Dictionary\", [gen0, gen1], Dictionary);\n}\n\nexport function Dictionary_$ctor_6623D9B3(pairs, comparer) {\n return new Dictionary(pairs, comparer);\n}\n\nfunction Dictionary__TryFindIndex_2B595(this$, k) {\n const h = this$.comparer.GetHashCode(k) | 0;\n let matchValue;\n let outArg = null;\n matchValue = [tryGetValue(this$.hashMap, h, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return [true, h, matchValue[1].findIndex((pair) => this$.comparer.Equals(k, pair[0]))];\n }\n else {\n return [false, h, -1];\n }\n}\n\nexport function Dictionary__TryFind_2B595(this$, k) {\n const matchValue = Dictionary__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return getItemFromDict(this$.hashMap, matchValue[1])[matchValue[2]];\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function Dictionary__get_Comparer(this$) {\n return this$.comparer;\n}\n\nexport function Dictionary__Clear(this$) {\n this$.hashMap.clear();\n}\n\nexport function Dictionary__get_Count(this$) {\n let count = 0;\n let enumerator = getEnumerator(this$.hashMap.values());\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const pairs = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n count = ((count + pairs.length) | 0);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return count | 0;\n}\n\nexport function Dictionary__get_Item_2B595(this$, k) {\n const matchValue = Dictionary__TryFind_2B595(this$, k);\n if (matchValue != null) {\n return matchValue[1];\n }\n else {\n throw (new Error(\"The item was not found in collection\"));\n }\n}\n\nexport function Dictionary__set_Item_5BDDA1(this$, k, v) {\n const matchValue = Dictionary__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n getItemFromDict(this$.hashMap, matchValue[1])[matchValue[2]] = [k, v];\n break;\n }\n case 1: {\n if (matchValue[0]) {\n const value = void (getItemFromDict(this$.hashMap, matchValue[1]).push([k, v]));\n }\n else {\n this$.hashMap.set(matchValue[1], [[k, v]]);\n }\n break;\n }\n }\n}\n\nexport function Dictionary__Add_5BDDA1(this$, k, v) {\n const matchValue = Dictionary__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n const msg = format(\"An item with the same key has already been added. Key: {0}\", k);\n throw (new Error(msg));\n break;\n }\n case 1: {\n if (matchValue[0]) {\n const value = void (getItemFromDict(this$.hashMap, matchValue[1]).push([k, v]));\n }\n else {\n this$.hashMap.set(matchValue[1], [[k, v]]);\n }\n break;\n }\n }\n}\n\nexport function Dictionary__ContainsKey_2B595(this$, k) {\n const matchValue = Dictionary__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return true;\n }\n case 1: {\n return false;\n }\n }\n}\n\nexport function Dictionary__Remove_2B595(this$, k) {\n const matchValue = Dictionary__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n getItemFromDict(this$.hashMap, matchValue[1]).splice(matchValue[2], 1);\n return true;\n }\n case 1: {\n return false;\n }\n }\n}\n\n","import { fromBits, getHighBits, getHighBitsUnsigned, getLowBits, getLowBitsUnsigned } from \"./Long.js\";\nconst littleEndian = true;\nexport function isLittleEndian() {\n return littleEndian;\n}\nexport function getBytesBoolean(value) {\n const bytes = new Uint8Array(1);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setUint8(0, value ? 1 : 0);\n return bytes;\n}\nexport function getBytesChar(value) {\n const bytes = new Uint8Array(2);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setUint16(0, value.charCodeAt(0), littleEndian);\n return bytes;\n}\nexport function getBytesInt16(value) {\n const bytes = new Uint8Array(2);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setInt16(0, value, littleEndian);\n return bytes;\n}\nexport function getBytesInt32(value) {\n const bytes = new Uint8Array(4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setInt32(0, value, littleEndian);\n return bytes;\n}\nexport function getBytesInt64(value) {\n const bytes = new Uint8Array(8);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setInt32(littleEndian ? 0 : 4, getLowBits(value), littleEndian);\n view.setInt32(littleEndian ? 4 : 0, getHighBits(value), littleEndian);\n return bytes;\n}\nexport function getBytesUInt16(value) {\n const bytes = new Uint8Array(2);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setUint16(0, value, littleEndian);\n return bytes;\n}\nexport function getBytesUInt32(value) {\n const bytes = new Uint8Array(4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setUint32(0, value, littleEndian);\n return bytes;\n}\nexport function getBytesUInt64(value) {\n const bytes = new Uint8Array(8);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setUint32(littleEndian ? 0 : 4, getLowBitsUnsigned(value), littleEndian);\n view.setUint32(littleEndian ? 4 : 0, getHighBitsUnsigned(value), littleEndian);\n return bytes;\n}\nexport function getBytesSingle(value) {\n const bytes = new Uint8Array(4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setFloat32(0, value, littleEndian);\n return bytes;\n}\nexport function getBytesDouble(value) {\n const bytes = new Uint8Array(8);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n view.setFloat64(0, value, littleEndian);\n return bytes;\n}\nexport function int64BitsToDouble(value) {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n view.setInt32(littleEndian ? 0 : 4, getLowBits(value), littleEndian);\n view.setInt32(littleEndian ? 4 : 0, getHighBits(value), littleEndian);\n return view.getFloat64(0, littleEndian);\n}\nexport function doubleToInt64Bits(value) {\n const buffer = new ArrayBuffer(8);\n const view = new DataView(buffer);\n view.setFloat64(0, value, littleEndian);\n const lowBits = view.getInt32(littleEndian ? 0 : 4, littleEndian);\n const highBits = view.getInt32(littleEndian ? 4 : 0, littleEndian);\n return fromBits(lowBits, highBits, false);\n}\nexport function toBoolean(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getUint8(offset) === 1 ? true : false;\n}\nexport function toChar(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n const code = view.getUint16(offset, littleEndian);\n return String.fromCharCode(code);\n}\nexport function toInt16(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getInt16(offset, littleEndian);\n}\nexport function toInt32(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getInt32(offset, littleEndian);\n}\nexport function toInt64(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n const lowBits = view.getInt32(offset + (littleEndian ? 0 : 4), littleEndian);\n const highBits = view.getInt32(offset + (littleEndian ? 4 : 0), littleEndian);\n return fromBits(lowBits, highBits, false);\n}\nexport function toUInt16(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getUint16(offset, littleEndian);\n}\nexport function toUInt32(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getUint32(offset, littleEndian);\n}\nexport function toUInt64(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n const lowBits = view.getUint32(offset + (littleEndian ? 0 : 4), littleEndian);\n const highBits = view.getUint32(offset + (littleEndian ? 4 : 0), littleEndian);\n return fromBits(lowBits, highBits, true);\n}\nexport function toSingle(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, littleEndian);\n}\nexport function toDouble(bytes, offset) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, littleEndian);\n}\nexport function toString(bytes, offset, count) {\n const array = ArrayBuffer.isView(bytes) ? bytes : Uint8Array.from(bytes);\n let buffer = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n if (offset != null && count != null) {\n buffer = buffer.subarray(offset, offset + count);\n }\n else if (offset != null) {\n buffer = buffer.subarray(offset);\n }\n return Array.from(buffer).map((b) => (\"0\" + b.toString(16)).slice(-2)).join(\"-\");\n}\n","import { toString as dateToString } from \"./Date.js\";\nimport { compare as numericCompare, isNumeric, multiply, toExponential, toFixed, toHex, toPrecision } from \"./Numeric.js\";\nimport { escape } from \"./RegExp.js\";\nimport { toString } from \"./Types.js\";\nconst fsFormatRegExp = /(^|[^%])%([0+\\- ]*)(\\*|\\d+)?(?:\\.(\\d+))?(\\w)/g;\nconst interpolateRegExp = /(?:(^|[^%])%([0+\\- ]*)(\\d+)?(?:\\.(\\d+))?(\\w))?%P\\(\\)/g;\nconst formatRegExp = /\\{(\\d+)(,-?\\d+)?(?:\\:([a-zA-Z])(\\d{0,2})|\\:(.+?))?\\}/g;\nfunction isLessThan(x, y) {\n return numericCompare(x, y) < 0;\n}\nfunction cmp(x, y, ic) {\n function isIgnoreCase(i) {\n return i === true ||\n i === 1 /* CurrentCultureIgnoreCase */ ||\n i === 3 /* InvariantCultureIgnoreCase */ ||\n i === 5 /* OrdinalIgnoreCase */;\n }\n function isOrdinal(i) {\n return i === 4 /* Ordinal */ ||\n i === 5 /* OrdinalIgnoreCase */;\n }\n if (x == null) {\n return y == null ? 0 : -1;\n }\n if (y == null) {\n return 1;\n } // everything is bigger than null\n if (isOrdinal(ic)) {\n if (isIgnoreCase(ic)) {\n x = x.toLowerCase();\n y = y.toLowerCase();\n }\n return (x === y) ? 0 : (x < y ? -1 : 1);\n }\n else {\n if (isIgnoreCase(ic)) {\n x = x.toLocaleLowerCase();\n y = y.toLocaleLowerCase();\n }\n return x.localeCompare(y);\n }\n}\nexport function compare(...args) {\n switch (args.length) {\n case 2: return cmp(args[0], args[1], false);\n case 3: return cmp(args[0], args[1], args[2]);\n case 4: return cmp(args[0], args[1], args[2] === true);\n case 5: return cmp(args[0].substr(args[1], args[4]), args[2].substr(args[3], args[4]), false);\n case 6: return cmp(args[0].substr(args[1], args[4]), args[2].substr(args[3], args[4]), args[5]);\n case 7: return cmp(args[0].substr(args[1], args[4]), args[2].substr(args[3], args[4]), args[5] === true);\n default: throw new Error(\"String.compare: Unsupported number of parameters\");\n }\n}\nexport function compareOrdinal(x, y) {\n return cmp(x, y, 4 /* Ordinal */);\n}\nexport function compareTo(x, y) {\n return cmp(x, y, 0 /* CurrentCulture */);\n}\nexport function startsWith(str, pattern, ic) {\n if (str.length >= pattern.length) {\n return cmp(str.substr(0, pattern.length), pattern, ic) === 0;\n }\n return false;\n}\nexport function indexOfAny(str, anyOf, ...args) {\n if (str == null || str === \"\") {\n return -1;\n }\n const startIndex = (args.length > 0) ? args[0] : 0;\n if (startIndex < 0) {\n throw new Error(\"Start index cannot be negative\");\n }\n const length = (args.length > 1) ? args[1] : str.length - startIndex;\n if (length < 0) {\n throw new Error(\"Length cannot be negative\");\n }\n if (length > str.length - startIndex) {\n throw new Error(\"Invalid startIndex and length\");\n }\n str = str.substr(startIndex, length);\n for (const c of anyOf) {\n const index = str.indexOf(c);\n if (index > -1) {\n return index + startIndex;\n }\n }\n return -1;\n}\nexport function printf(input) {\n return {\n input,\n cont: fsFormat(input),\n };\n}\nexport function interpolate(str, values) {\n let valIdx = 0;\n let strIdx = 0;\n let result = \"\";\n interpolateRegExp.lastIndex = 0;\n let match = interpolateRegExp.exec(str);\n while (match) {\n // The first group corresponds to the no-escape char (^|[^%]), the actual pattern starts in the next char\n // Note: we don't use negative lookbehind because some browsers don't support it yet\n const matchIndex = match.index + (match[1] || \"\").length;\n result += str.substring(strIdx, matchIndex).replace(/%%/g, \"%\");\n const [, , flags, padLength, precision, format] = match;\n result += formatReplacement(values[valIdx++], flags, padLength, precision, format);\n strIdx = interpolateRegExp.lastIndex;\n // Likewise we need to move interpolateRegExp.lastIndex one char behind to make sure we match the no-escape char next time\n interpolateRegExp.lastIndex -= 1;\n match = interpolateRegExp.exec(str);\n }\n result += str.substring(strIdx).replace(/%%/g, \"%\");\n return result;\n}\nfunction continuePrint(cont, arg) {\n return typeof arg === \"string\" ? cont(arg) : arg.cont(cont);\n}\nexport function toConsole(arg) {\n // Don't remove the lambda here, see #1357\n return continuePrint((x) => console.log(x), arg);\n}\nexport function toConsoleError(arg) {\n return continuePrint((x) => console.error(x), arg);\n}\nexport function toText(arg) {\n return continuePrint((x) => x, arg);\n}\nexport function toFail(arg) {\n return continuePrint((x) => {\n throw new Error(x);\n }, arg);\n}\nfunction formatReplacement(rep, flags, padLength, precision, format) {\n let sign = \"\";\n flags = flags || \"\";\n format = format || \"\";\n if (isNumeric(rep)) {\n if (format.toLowerCase() !== \"x\") {\n if (isLessThan(rep, 0)) {\n rep = multiply(rep, -1);\n sign = \"-\";\n }\n else {\n if (flags.indexOf(\" \") >= 0) {\n sign = \" \";\n }\n else if (flags.indexOf(\"+\") >= 0) {\n sign = \"+\";\n }\n }\n }\n precision = precision == null ? null : parseInt(precision, 10);\n switch (format) {\n case \"f\":\n case \"F\":\n precision = precision != null ? precision : 6;\n rep = toFixed(rep, precision);\n break;\n case \"g\":\n case \"G\":\n rep = precision != null ? toPrecision(rep, precision) : toPrecision(rep);\n break;\n case \"e\":\n case \"E\":\n rep = precision != null ? toExponential(rep, precision) : toExponential(rep);\n break;\n case \"x\":\n rep = toHex(rep);\n break;\n case \"X\":\n rep = toHex(rep).toUpperCase();\n break;\n default: // AOid\n rep = String(rep);\n break;\n }\n }\n else if (rep instanceof Date) {\n rep = dateToString(rep);\n }\n else {\n rep = toString(rep);\n }\n padLength = typeof padLength === \"number\" ? padLength : parseInt(padLength, 10);\n if (!isNaN(padLength)) {\n const zeroFlag = flags.indexOf(\"0\") >= 0; // Use '0' for left padding\n const minusFlag = flags.indexOf(\"-\") >= 0; // Right padding\n const ch = minusFlag || !zeroFlag ? \" \" : \"0\";\n if (ch === \"0\") {\n rep = padLeft(rep, padLength - sign.length, ch, minusFlag);\n rep = sign + rep;\n }\n else {\n rep = padLeft(sign + rep, padLength, ch, minusFlag);\n }\n }\n else {\n rep = sign + rep;\n }\n return rep;\n}\nfunction createPrinter(cont, _strParts, _matches, _result = \"\", padArg = -1) {\n return (...args) => {\n // Make copies of the values passed by reference because the function can be used multiple times\n let result = _result;\n const strParts = _strParts.slice();\n const matches = _matches.slice();\n for (const arg of args) {\n const [, , flags, _padLength, precision, format] = matches[0];\n let padLength = _padLength;\n if (padArg >= 0) {\n padLength = padArg;\n padArg = -1;\n }\n else if (padLength === \"*\") {\n if (arg < 0) {\n throw new Error(\"Non-negative number required\");\n }\n padArg = arg;\n continue;\n }\n result += strParts[0];\n result += formatReplacement(arg, flags, padLength, precision, format);\n strParts.splice(0, 1);\n matches.splice(0, 1);\n }\n if (matches.length === 0) {\n result += strParts[0];\n return cont(result);\n }\n else {\n return createPrinter(cont, strParts, matches, result, padArg);\n }\n };\n}\nexport function fsFormat(str) {\n return (cont) => {\n fsFormatRegExp.lastIndex = 0;\n const strParts = [];\n const matches = [];\n let strIdx = 0;\n let match = fsFormatRegExp.exec(str);\n while (match) {\n // The first group corresponds to the no-escape char (^|[^%]), the actual pattern starts in the next char\n // Note: we don't use negative lookbehind because some browsers don't support it yet\n const matchIndex = match.index + (match[1] || \"\").length;\n strParts.push(str.substring(strIdx, matchIndex).replace(/%%/g, \"%\"));\n matches.push(match);\n strIdx = fsFormatRegExp.lastIndex;\n // Likewise we need to move fsFormatRegExp.lastIndex one char behind to make sure we match the no-escape char next time\n fsFormatRegExp.lastIndex -= 1;\n match = fsFormatRegExp.exec(str);\n }\n if (strParts.length === 0) {\n return cont(str.replace(/%%/g, \"%\"));\n }\n else {\n strParts.push(str.substring(strIdx).replace(/%%/g, \"%\"));\n return createPrinter(cont, strParts, matches);\n }\n };\n}\nexport function format(str, ...args) {\n if (typeof str === \"object\" && args.length > 0) {\n // Called with culture info\n str = args[0];\n args.shift();\n }\n return str.replace(formatRegExp, (_, idx, padLength, format, precision, pattern) => {\n let rep = args[idx];\n if (isNumeric(rep)) {\n precision = precision == null ? null : parseInt(precision, 10);\n switch (format) {\n case \"f\":\n case \"F\":\n precision = precision != null ? precision : 2;\n rep = toFixed(rep, precision);\n break;\n case \"g\":\n case \"G\":\n rep = precision != null ? toPrecision(rep, precision) : toPrecision(rep);\n break;\n case \"e\":\n case \"E\":\n rep = precision != null ? toExponential(rep, precision) : toExponential(rep);\n break;\n case \"p\":\n case \"P\":\n precision = precision != null ? precision : 2;\n rep = toFixed(multiply(rep, 100), precision) + \" %\";\n break;\n case \"d\":\n case \"D\":\n rep = precision != null ? padLeft(String(rep), precision, \"0\") : String(rep);\n break;\n case \"x\":\n case \"X\":\n rep = precision != null ? padLeft(toHex(rep), precision, \"0\") : toHex(rep);\n if (format === \"X\") {\n rep = rep.toUpperCase();\n }\n break;\n default:\n if (pattern) {\n let sign = \"\";\n rep = pattern.replace(/(0+)(\\.0+)?/, (_, intPart, decimalPart) => {\n if (isLessThan(rep, 0)) {\n rep = multiply(rep, -1);\n sign = \"-\";\n }\n rep = toFixed(rep, decimalPart != null ? decimalPart.length - 1 : 0);\n return padLeft(rep, (intPart || \"\").length - sign.length + (decimalPart != null ? decimalPart.length : 0), \"0\");\n });\n rep = sign + rep;\n }\n }\n }\n else if (rep instanceof Date) {\n rep = dateToString(rep, pattern || format);\n }\n else {\n rep = toString(rep);\n }\n padLength = parseInt((padLength || \" \").substring(1), 10);\n if (!isNaN(padLength)) {\n rep = padLeft(String(rep), Math.abs(padLength), \" \", padLength < 0);\n }\n return rep;\n });\n}\nexport function endsWith(str, search) {\n const idx = str.lastIndexOf(search);\n return idx >= 0 && idx === str.length - search.length;\n}\nexport function initialize(n, f) {\n if (n < 0) {\n throw new Error(\"String length must be non-negative\");\n }\n const xs = new Array(n);\n for (let i = 0; i < n; i++) {\n xs[i] = f(i);\n }\n return xs.join(\"\");\n}\nexport function insert(str, startIndex, value) {\n if (startIndex < 0 || startIndex > str.length) {\n throw new Error(\"startIndex is negative or greater than the length of this instance.\");\n }\n return str.substring(0, startIndex) + value + str.substring(startIndex);\n}\nexport function isNullOrEmpty(str) {\n return typeof str !== \"string\" || str.length === 0;\n}\nexport function isNullOrWhiteSpace(str) {\n return typeof str !== \"string\" || /^\\s*$/.test(str);\n}\nexport function concat(...xs) {\n return xs.map((x) => String(x)).join(\"\");\n}\nexport function join(delimiter, xs) {\n if (Array.isArray(xs)) {\n return xs.join(delimiter);\n }\n else {\n return Array.from(xs).join(delimiter);\n }\n}\nexport function joinWithIndices(delimiter, xs, startIndex, count) {\n const endIndexPlusOne = startIndex + count;\n if (endIndexPlusOne > xs.length) {\n throw new Error(\"Index and count must refer to a location within the buffer.\");\n }\n return xs.slice(startIndex, endIndexPlusOne).join(delimiter);\n}\nfunction notSupported(name) {\n throw new Error(\"The environment doesn't support '\" + name + \"', please use a polyfill.\");\n}\nexport function toBase64String(inArray) {\n let str = \"\";\n for (let i = 0; i < inArray.length; i++) {\n str += String.fromCharCode(inArray[i]);\n }\n return typeof btoa === \"function\" ? btoa(str) : notSupported(\"btoa\");\n}\nexport function fromBase64String(b64Encoded) {\n const binary = typeof atob === \"function\" ? atob(b64Encoded) : notSupported(\"atob\");\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\nexport function padLeft(str, len, ch, isRight) {\n ch = ch || \" \";\n len = len - str.length;\n for (let i = 0; i < len; i++) {\n str = isRight ? str + ch : ch + str;\n }\n return str;\n}\nexport function padRight(str, len, ch) {\n return padLeft(str, len, ch, true);\n}\nexport function remove(str, startIndex, count) {\n if (startIndex >= str.length) {\n throw new Error(\"startIndex must be less than length of string\");\n }\n if (typeof count === \"number\" && (startIndex + count) > str.length) {\n throw new Error(\"Index and count must refer to a location within the string.\");\n }\n return str.slice(0, startIndex) + (typeof count === \"number\" ? str.substr(startIndex + count) : \"\");\n}\nexport function replace(str, search, replace) {\n return str.replace(new RegExp(escape(search), \"g\"), replace);\n}\nexport function replicate(n, x) {\n return initialize(n, () => x);\n}\nexport function getCharAtIndex(input, index) {\n if (index < 0 || index >= input.length) {\n throw new Error(\"Index was outside the bounds of the array.\");\n }\n return input[index];\n}\nexport function split(str, splitters, count, removeEmpty) {\n count = typeof count === \"number\" ? count : undefined;\n removeEmpty = typeof removeEmpty === \"number\" ? removeEmpty : undefined;\n if (count && count < 0) {\n throw new Error(\"Count cannot be less than zero\");\n }\n if (count === 0) {\n return [];\n }\n if (!Array.isArray(splitters)) {\n if (removeEmpty === 0) {\n return str.split(splitters, count);\n }\n const len = arguments.length;\n splitters = Array(len - 1);\n for (let key = 1; key < len; key++) {\n splitters[key - 1] = arguments[key];\n }\n }\n splitters = splitters.map((x) => escape(x));\n splitters = splitters.length > 0 ? splitters : [\" \"];\n let i = 0;\n const splits = [];\n const reg = new RegExp(splitters.join(\"|\"), \"g\");\n while (count == null || count > 1) {\n const m = reg.exec(str);\n if (m === null) {\n break;\n }\n if (!removeEmpty || (m.index - i) > 0) {\n count = count != null ? count - 1 : count;\n splits.push(str.substring(i, m.index));\n }\n i = reg.lastIndex;\n }\n if (!removeEmpty || (str.length - i) > 0) {\n splits.push(str.substring(i));\n }\n return splits;\n}\nexport function trim(str, ...chars) {\n if (chars.length === 0) {\n return str.trim();\n }\n const pattern = \"[\" + escape(chars.join(\"\")) + \"]+\";\n return str.replace(new RegExp(\"^\" + pattern), \"\").replace(new RegExp(pattern + \"$\"), \"\");\n}\nexport function trimStart(str, ...chars) {\n return chars.length === 0\n ? str.trimStart()\n : str.replace(new RegExp(\"^[\" + escape(chars.join(\"\")) + \"]+\"), \"\");\n}\nexport function trimEnd(str, ...chars) {\n return chars.length === 0\n ? str.trimEnd()\n : str.replace(new RegExp(\"[\" + escape(chars.join(\"\")) + \"]+$\"), \"\");\n}\nexport function filter(pred, x) {\n return x.split(\"\").filter((c) => pred(c)).join(\"\");\n}\nexport function substring(str, startIndex, length) {\n if ((startIndex + (length || 0) > str.length)) {\n throw new Error(\"Invalid startIndex and/or length\");\n }\n return length != null ? str.substr(startIndex, length) : str.substr(startIndex);\n}\n","/**\n * DateTimeOffset functions.\n *\n * Note: DateOffset instances are always DateObjects in local\n * timezone (because JS dates are all kinds of messed up).\n * A local date returns UTC epoc when `.getTime()` is called.\n *\n * However, this means that in order to construct an UTC date\n * from a DateOffset with offset of +5 hours, you first need\n * to subtract those 5 hours, than add the \"local\" offset.\n * As said, all kinds of messed up.\n *\n * Basically; invariant: date.getTime() always return UTC time.\n */\nimport { create as createDate, dateOffsetToString, daysInMonth, offsetRegex, parseRaw } from \"./Date.js\";\nimport { fromValue, ticksToUnixEpochMilliseconds, unixEpochMillisecondsToTicks } from \"./Long.js\";\nimport { compareDates, padWithZeros } from \"./Util.js\";\nexport default function DateTimeOffset(value, offset) {\n checkOffsetInRange(offset);\n const d = new Date(value);\n d.offset = offset != null ? offset : new Date().getTimezoneOffset() * -60000;\n return d;\n}\nfunction checkOffsetInRange(offset) {\n if (offset != null && offset !== 0) {\n if (offset % 60000 !== 0) {\n throw new Error(\"Offset must be specified in whole minutes.\");\n }\n if (Math.abs(offset / 3600000) > 14) {\n throw new Error(\"Offset must be within plus or minus 14 hours.\");\n }\n }\n}\nexport function fromDate(date, offset) {\n let offset2 = 0;\n switch (date.kind) {\n case 1 /* UTC */:\n if (offset != null && offset !== 0) {\n throw new Error(\"The UTC Offset for Utc DateTime instances must be 0.\");\n }\n offset2 = 0;\n break;\n case 2 /* Local */:\n offset2 = date.getTimezoneOffset() * -60000;\n if (offset != null && offset !== offset2) {\n throw new Error(\"The UTC Offset of the local dateTime parameter does not match the offset argument.\");\n }\n break;\n case 0 /* Unspecified */:\n default:\n if (offset == null) {\n offset2 = date.getTimezoneOffset() * -60000;\n }\n else {\n offset2 = offset;\n }\n break;\n }\n return DateTimeOffset(date.getTime(), offset2);\n}\nexport function fromTicks(ticks, offset) {\n ticks = fromValue(ticks);\n const epoc = ticksToUnixEpochMilliseconds(ticks) - offset;\n return DateTimeOffset(epoc, offset);\n}\nexport function getUtcTicks(date) {\n return unixEpochMillisecondsToTicks(date.getTime(), 0);\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTimeOffset(-62135596800000, 0);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTimeOffset(253402300799999, 0);\n}\nexport function parse(str) {\n const date = parseRaw(str);\n const offsetMatch = offsetRegex.exec(str);\n const offset = offsetMatch == null\n ? date.getTimezoneOffset() * -60000\n : (offsetMatch[0] === \"Z\"\n ? 0\n : parseInt(offsetMatch[1], 10) * 3600000\n + parseInt(offsetMatch[2], 10) * 60000);\n return DateTimeOffset(date.getTime(), offset);\n}\nexport function tryParse(v, defValue) {\n try {\n defValue.contents = parse(v);\n return true;\n }\n catch (_err) {\n return false;\n }\n}\nexport function create(year, month, day, h, m, s, ms, offset) {\n if (offset == null) {\n offset = ms;\n ms = 0;\n }\n checkOffsetInRange(offset);\n let date;\n if (offset === 0) {\n date = new Date(Date.UTC(year, month - 1, day, h, m, s, ms));\n if (year <= 99) {\n date.setFullYear(year, month - 1, day);\n }\n }\n else {\n const str = padWithZeros(year, 4) + \"-\" +\n padWithZeros(month, 2) + \"-\" +\n padWithZeros(day, 2) + \"T\" +\n padWithZeros(h, 2) + \":\" +\n padWithZeros(m, 2) + \":\" +\n padWithZeros(s, 2) + \".\" +\n padWithZeros(ms, 3) +\n dateOffsetToString(offset);\n date = new Date(str);\n }\n const dateValue = date.getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date\");\n }\n return DateTimeOffset(dateValue, offset);\n}\nexport function now() {\n const date = new Date();\n const offset = date.getTimezoneOffset() * -60000;\n return DateTimeOffset(date.getTime(), offset);\n}\nexport function utcNow() {\n const date = now();\n return DateTimeOffset(date.getTime(), 0);\n}\nexport function toUniversalTime(date) {\n return DateTimeOffset(date.getTime(), 0);\n}\nexport function toLocalTime(date) {\n return DateTimeOffset(date.getTime(), date.getTimezoneOffset() * -60000);\n}\nexport function timeOfDay(d) {\n var _a;\n const d2 = new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n return d2.getUTCHours() * 3600000\n + d2.getUTCMinutes() * 60000\n + d2.getUTCSeconds() * 1000\n + d2.getUTCMilliseconds();\n}\nexport function date(d) {\n var _a;\n const d2 = new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n return createDate(d2.getUTCFullYear(), d2.getUTCMonth() + 1, d2.getUTCDate(), 0, 0, 0, 0);\n}\nexport function day(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCDate();\n}\nexport function hour(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCHours();\n}\nexport function millisecond(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCMilliseconds();\n}\nexport function minute(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCMinutes();\n}\nexport function month(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCMonth() + 1;\n}\nexport function second(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCSeconds();\n}\nexport function year(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCFullYear();\n}\nexport function dayOfWeek(d) {\n var _a;\n return new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0)).getUTCDay();\n}\nexport function dayOfYear(d) {\n var _a;\n const d2 = new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n const _year = d2.getUTCFullYear();\n const _month = d2.getUTCMonth() + 1;\n let _day = d2.getUTCDate();\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n var _a;\n return DateTimeOffset(d.getTime() + ts, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addDays(d, v) {\n var _a;\n return DateTimeOffset(d.getTime() + v * 86400000, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addHours(d, v) {\n var _a;\n return DateTimeOffset(d.getTime() + v * 3600000, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addMinutes(d, v) {\n var _a;\n return DateTimeOffset(d.getTime() + v * 60000, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addSeconds(d, v) {\n var _a;\n return DateTimeOffset(d.getTime() + v * 1000, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addMilliseconds(d, v) {\n var _a;\n return DateTimeOffset(d.getTime() + v, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addYears(d, v) {\n var _a;\n const newMonth = d.getUTCMonth() + 1;\n const newYear = d.getUTCFullYear() + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, d.getUTCDate());\n return create(newYear, newMonth, newDay, d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds(), ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n}\nexport function addMonths(d, v) {\n var _a, _b;\n const d2 = new Date(d.getTime() + ((_a = d.offset) !== null && _a !== void 0 ? _a : 0));\n let newMonth = d2.getUTCMonth() + 1 + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = d2.getUTCFullYear() + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, d2.getUTCDate());\n return create(newYear, newMonth, newDay, d2.getUTCHours(), d2.getUTCMinutes(), d2.getUTCSeconds(), d2.getUTCMilliseconds(), ((_b = d.offset) !== null && _b !== void 0 ? _b : 0));\n}\nexport function subtract(d, that) {\n var _a;\n return typeof that === \"number\"\n ? DateTimeOffset(d.getTime() - that, ((_a = d.offset) !== null && _a !== void 0 ? _a : 0))\n : d.getTime() - that.getTime();\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport function equalsExact(d1, d2) {\n return d1.getTime() === d2.getTime() && d1.offset === d2.offset;\n}\nexport function compare(d1, d2) {\n return compareDates(d1, d2);\n}\nexport const compareTo = compare;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function toOffset(d, offset) {\n return DateTimeOffset(d.getTime(), offset);\n}\n","import { Record } from \"../Types.js\";\nimport { record_type, array_type, int32_type } from \"../Reflection.js\";\nimport { op_LeftShift, op_BitwiseAnd, op_Addition, compare, op_Subtraction, op_Division, equals, fromInteger, op_Multiply, op_Modulus, toInt, fromBits } from \"../Long.js\";\nimport { copy, initialize, map, fill } from \"../Array.js\";\nimport { toArray, empty, head, tail, isEmpty, cons } from \"../List.js\";\nimport { int32ToString } from \"../Util.js\";\nimport { isNullOrEmpty, join } from \"../String.js\";\n\nexport class BigNat extends Record {\n constructor(bound, digits) {\n super();\n this.bound = (bound | 0);\n this.digits = digits;\n }\n}\n\nexport function BigNat$reflection() {\n return record_type(\"BigInt.BigNat\", [], BigNat, () => [[\"bound\", int32_type], [\"digits\", array_type(int32_type)]]);\n}\n\nexport function BigNatModule_FFT_pow32(x_mut, n_mut) {\n BigNatModule_FFT_pow32:\n while (true) {\n const x = x_mut, n = n_mut;\n if (n === 0) {\n return 1;\n }\n else if ((n % 2) === 0) {\n x_mut = (x * x);\n n_mut = (~(~(n / 2)));\n continue BigNatModule_FFT_pow32;\n }\n else {\n return (x * BigNatModule_FFT_pow32(x * x, ~(~(n / 2)))) | 0;\n }\n break;\n }\n}\n\nexport function BigNatModule_FFT_leastBounding2Power(b) {\n const findBounding2Power = (b_1_mut, tp_mut, i_mut) => {\n findBounding2Power:\n while (true) {\n const b_1 = b_1_mut, tp = tp_mut, i = i_mut;\n if (b_1 <= tp) {\n return [tp, i];\n }\n else {\n b_1_mut = b_1;\n tp_mut = (tp * 2);\n i_mut = (i + 1);\n continue findBounding2Power;\n }\n break;\n }\n };\n return findBounding2Power(b, 1, 0);\n}\n\nexport const BigNatModule_FFT_p = fromBits(2013265921, 0, false);\n\nconst BigNatModule_FFT_patternInput$004075 = [27, 15, 31, 440564289];\n\nexport const BigNatModule_FFT_w = BigNatModule_FFT_patternInput$004075[3];\n\nexport const BigNatModule_FFT_m = BigNatModule_FFT_patternInput$004075[1];\n\nexport const BigNatModule_FFT_k = BigNatModule_FFT_patternInput$004075[0];\n\nexport const BigNatModule_FFT_g = BigNatModule_FFT_patternInput$004075[2];\n\nexport const BigNatModule_FFT_primeP = BigNatModule_FFT_p;\n\nexport const BigNatModule_FFT_maxBitsInsideFp = 30;\n\nexport const BigNatModule_FFT_Fp_p = 2013265921;\n\nexport const BigNatModule_FFT_Fp_p64 = fromBits(2013265921, 0, true);\n\nexport function BigNatModule_FFT_Fp_toInt(x) {\n return ~(~x);\n}\n\nexport function BigNatModule_FFT_Fp_ofInt32(x) {\n return x >>> 0;\n}\n\nexport const BigNatModule_FFT_Fp_mzero = 0;\n\nexport const BigNatModule_FFT_Fp_mone = 1;\n\nexport const BigNatModule_FFT_Fp_mtwo = 2;\n\nexport function BigNatModule_FFT_Fp_mpow(x_mut, n_mut) {\n BigNatModule_FFT_Fp_mpow:\n while (true) {\n const x = x_mut, n = n_mut;\n if (n === 0) {\n return BigNatModule_FFT_Fp_mone;\n }\n else if ((n % 2) === 0) {\n x_mut = (toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(x, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0);\n n_mut = (~(~(n / 2)));\n continue BigNatModule_FFT_Fp_mpow;\n }\n else {\n const y_2 = BigNatModule_FFT_Fp_mpow(toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(x, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0, ~(~(n / 2)));\n return toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(y_2, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0;\n }\n break;\n }\n}\n\nexport function BigNatModule_FFT_Fp_mpowL(x_mut, n_mut) {\n BigNatModule_FFT_Fp_mpowL:\n while (true) {\n const x = x_mut, n = n_mut;\n if (equals(n, fromBits(0, 0, false))) {\n return BigNatModule_FFT_Fp_mone;\n }\n else if (equals(op_Modulus(n, fromBits(2, 0, false)), fromBits(0, 0, false))) {\n x_mut = (toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(x, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0);\n n_mut = op_Division(n, fromBits(2, 0, false));\n continue BigNatModule_FFT_Fp_mpowL;\n }\n else {\n const y_2 = BigNatModule_FFT_Fp_mpowL(toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(x, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0, op_Division(n, fromBits(2, 0, false)));\n return toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(y_2, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0;\n }\n break;\n }\n}\n\nexport function BigNatModule_FFT_Fp_m2PowNthRoot(n) {\n return BigNatModule_FFT_Fp_mpow(BigNatModule_FFT_w >>> 0, BigNatModule_FFT_pow32(2, BigNatModule_FFT_k - n));\n}\n\nexport function BigNatModule_FFT_Fp_minv(x) {\n return BigNatModule_FFT_Fp_mpowL(x, op_Subtraction(BigNatModule_FFT_primeP, fromBits(2, 0, false)));\n}\n\nexport function BigNatModule_FFT_computeFFT(lambda, mu, n, w, u, res, offset) {\n let x_1, x_3, y_5;\n if (n === 1) {\n res[offset] = u[mu];\n }\n else {\n const halfN = (~(~(n / 2))) | 0;\n const ww = toInt(op_Modulus(op_Multiply(fromInteger(w, true, 6), fromInteger(w, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0;\n const offsetHalfN = (offset + halfN) | 0;\n BigNatModule_FFT_computeFFT(lambda * 2, mu, halfN, ww, u, res, offset);\n BigNatModule_FFT_computeFFT(lambda * 2, lambda + mu, halfN, ww, u, res, offsetHalfN);\n let wj = BigNatModule_FFT_Fp_mone;\n for (let j = 0; j <= (halfN - 1); j++) {\n const even = res[offset + j];\n const odd = res[offsetHalfN + j];\n res[offset + j] = ((even + (x_1 = wj, toInt(op_Modulus(op_Multiply(fromInteger(x_1, true, 6), fromInteger(odd, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0)) % BigNatModule_FFT_Fp_p);\n res[offsetHalfN + j] = (((even + BigNatModule_FFT_Fp_p) - (x_3 = wj, toInt(op_Modulus(op_Multiply(fromInteger(x_3, true, 6), fromInteger(odd, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0)) % BigNatModule_FFT_Fp_p);\n wj = (y_5 = wj, toInt(op_Modulus(op_Multiply(fromInteger(w, true, 6), fromInteger(y_5, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0);\n }\n }\n}\n\nexport function BigNatModule_FFT_computFftInPlace(n, w, u) {\n const res = fill(new Uint32Array(n), 0, n, BigNatModule_FFT_Fp_mzero);\n BigNatModule_FFT_computeFFT(1, 0, n, w, u, res, 0);\n return res;\n}\n\nexport function BigNatModule_FFT_computeInverseFftInPlace(n, w, uT) {\n const bigKInv = BigNatModule_FFT_Fp_minv(n >>> 0);\n return map((y) => (toInt(op_Modulus(op_Multiply(fromInteger(bigKInv, true, 6), fromInteger(y, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0), BigNatModule_FFT_computFftInPlace(n, BigNatModule_FFT_Fp_minv(w), uT), Uint32Array);\n}\n\nexport const BigNatModule_FFT_maxTwoPower = 29;\n\nexport const BigNatModule_FFT_twoPowerTable = initialize(BigNatModule_FFT_maxTwoPower - 1, (i) => BigNatModule_FFT_pow32(2, i), Int32Array);\n\nexport function BigNatModule_FFT_computeFftPaddedPolynomialProduct(bigK, k, u, v) {\n const w = BigNatModule_FFT_Fp_m2PowNthRoot(k);\n const n = bigK | 0;\n const uT = BigNatModule_FFT_computFftInPlace(n, w, u);\n const vT = BigNatModule_FFT_computFftInPlace(n, w, v);\n return BigNatModule_FFT_computeInverseFftInPlace(n, w, initialize(n, (i) => {\n const x = uT[i];\n const y = vT[i];\n return toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(y, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0;\n }, Uint32Array));\n}\n\nexport function BigNatModule_FFT_padTo(n, u) {\n const uBound = u.length | 0;\n return initialize(n, (i) => ((i < uBound) ? BigNatModule_FFT_Fp_ofInt32(u[i]) : BigNatModule_FFT_Fp_mzero), Uint32Array);\n}\n\nexport function BigNatModule_FFT_computeFftPolynomialProduct(degu, u, degv, v) {\n const patternInput = BigNatModule_FFT_leastBounding2Power((degu + degv) + 1);\n const bigK = patternInput[0] | 0;\n const w = BigNatModule_FFT_Fp_m2PowNthRoot(patternInput[1]);\n const u_1 = BigNatModule_FFT_padTo(bigK, u);\n const v_1 = BigNatModule_FFT_padTo(bigK, v);\n const n = bigK | 0;\n const uT = BigNatModule_FFT_computFftInPlace(n, w, u_1);\n const vT = BigNatModule_FFT_computFftInPlace(n, w, v_1);\n return map((x_1) => BigNatModule_FFT_Fp_toInt(x_1), BigNatModule_FFT_computeInverseFftInPlace(n, w, initialize(n, (i) => {\n const x = uT[i];\n const y = vT[i];\n return toInt(op_Modulus(op_Multiply(fromInteger(x, true, 6), fromInteger(y, true, 6)), BigNatModule_FFT_Fp_p64)) >>> 0;\n }, Uint32Array)), Int32Array);\n}\n\nexport const BigNatModule_FFT_mzero = BigNatModule_FFT_Fp_mzero;\n\nexport const BigNatModule_FFT_mone = BigNatModule_FFT_Fp_mone;\n\nexport const BigNatModule_FFT_maxFp = ((BigNatModule_FFT_Fp_p + BigNatModule_FFT_Fp_p) - BigNatModule_FFT_mone) % BigNatModule_FFT_Fp_p;\n\nexport function BigNatModule_bound(n) {\n return n.bound;\n}\n\nexport function BigNatModule_setBound(n, v) {\n n.bound = (v | 0);\n}\n\nexport function BigNatModule_coeff(n, i) {\n return n.digits[i];\n}\n\nexport function BigNatModule_coeff64(n, i) {\n return fromInteger(BigNatModule_coeff(n, i), false, 2);\n}\n\nexport function BigNatModule_setCoeff(n, i, v) {\n n.digits[i] = (v | 0);\n}\n\nexport function BigNatModule_pow64(x_mut, n_mut) {\n BigNatModule_pow64:\n while (true) {\n const x = x_mut, n = n_mut;\n if (n === 0) {\n return fromBits(1, 0, false);\n }\n else if ((n % 2) === 0) {\n x_mut = op_Multiply(x, x);\n n_mut = (~(~(n / 2)));\n continue BigNatModule_pow64;\n }\n else {\n return op_Multiply(x, BigNatModule_pow64(op_Multiply(x, x), ~(~(n / 2))));\n }\n break;\n }\n}\n\nexport function BigNatModule_pow32(x_mut, n_mut) {\n BigNatModule_pow32:\n while (true) {\n const x = x_mut, n = n_mut;\n if (n === 0) {\n return 1;\n }\n else if ((n % 2) === 0) {\n x_mut = (x * x);\n n_mut = (~(~(n / 2)));\n continue BigNatModule_pow32;\n }\n else {\n return (x * BigNatModule_pow32(x * x, ~(~(n / 2)))) | 0;\n }\n break;\n }\n}\n\nexport function BigNatModule_hash(n) {\n let res = 0;\n for (let i = 0; i <= (n.bound - 1); i++) {\n res = ((n.digits[i] + (res << 3)) | 0);\n }\n return res | 0;\n}\n\nexport function BigNatModule_maxInt(a, b) {\n if (a < b) {\n return b | 0;\n }\n else {\n return a | 0;\n }\n}\n\nexport function BigNatModule_minInt(a, b) {\n if (a < b) {\n return a | 0;\n }\n else {\n return b | 0;\n }\n}\n\nexport const BigNatModule_baseBits = 24;\n\nexport const BigNatModule_baseN = 16777216;\n\nexport const BigNatModule_baseMask = 16777215;\n\nexport const BigNatModule_baseNi64 = fromBits(16777216, 0, false);\n\nexport const BigNatModule_baseMaski64 = fromBits(16777215, 0, false);\n\nexport const BigNatModule_baseMaskU = fromBits(16777215, 0, true);\n\nexport const BigNatModule_baseMask32A = 16777215;\n\nexport const BigNatModule_baseMask32B = 255;\n\nexport const BigNatModule_baseShift32B = 24;\n\nexport const BigNatModule_baseMask64A = 16777215;\n\nexport const BigNatModule_baseMask64B = 16777215;\n\nexport const BigNatModule_baseMask64C = 65535;\n\nexport const BigNatModule_baseShift64B = 24;\n\nexport const BigNatModule_baseShift64C = 48;\n\nexport function BigNatModule_divbase(x) {\n return ~(~((x >>> 0) >>> BigNatModule_baseBits));\n}\n\nexport function BigNatModule_modbase(x) {\n return x & BigNatModule_baseMask;\n}\n\nexport function BigNatModule_createN(b) {\n return new BigNat(b, new Int32Array(b));\n}\n\nexport function BigNatModule_copyN(x) {\n return new BigNat(x.bound, copy(x.digits));\n}\n\nexport function BigNatModule_normN(n) {\n const findLeastBound = (na_mut, i_mut) => {\n findLeastBound:\n while (true) {\n const na = na_mut, i = i_mut;\n if ((i === -1) ? true : (na[i] !== 0)) {\n return (i + 1) | 0;\n }\n else {\n na_mut = na;\n i_mut = (i - 1);\n continue findLeastBound;\n }\n break;\n }\n };\n const bound = findLeastBound(n.digits, n.bound - 1) | 0;\n n.bound = (bound | 0);\n return n;\n}\n\nexport const BigNatModule_boundInt = 2;\n\nexport const BigNatModule_boundInt64 = 3;\n\nexport const BigNatModule_boundBase = 1;\n\nexport function BigNatModule_embed(x) {\n const x_1 = ((x < 0) ? 0 : x) | 0;\n if (x_1 < BigNatModule_baseN) {\n const r = BigNatModule_createN(1);\n r.digits[0] = (x_1 | 0);\n return BigNatModule_normN(r);\n }\n else {\n const r_1 = BigNatModule_createN(BigNatModule_boundInt);\n for (let i = 0; i <= (BigNatModule_boundInt - 1); i++) {\n r_1.digits[i] = (((~(~(x_1 / BigNatModule_pow32(BigNatModule_baseN, i)))) % BigNatModule_baseN) | 0);\n }\n return BigNatModule_normN(r_1);\n }\n}\n\nexport function BigNatModule_embed64(x) {\n const x_1 = (compare(x, fromBits(0, 0, false)) < 0) ? fromBits(0, 0, false) : x;\n const r = BigNatModule_createN(BigNatModule_boundInt64);\n for (let i = 0; i <= (BigNatModule_boundInt64 - 1); i++) {\n r.digits[i] = ((~(~toInt(op_Modulus(op_Division(x_1, BigNatModule_pow64(BigNatModule_baseNi64, i)), BigNatModule_baseNi64)))) | 0);\n }\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_eval32(n) {\n if (n.bound === 1) {\n return n.digits[0] | 0;\n }\n else {\n let acc = 0;\n for (let i = n.bound - 1; i >= 0; i--) {\n acc = ((n.digits[i] + (BigNatModule_baseN * acc)) | 0);\n }\n return acc | 0;\n }\n}\n\nexport function BigNatModule_eval64(n) {\n if (n.bound === 1) {\n return fromInteger(n.digits[0], false, 2);\n }\n else {\n let acc = fromBits(0, 0, false);\n for (let i = n.bound - 1; i >= 0; i--) {\n acc = op_Addition(fromInteger(n.digits[i], false, 2), op_Multiply(BigNatModule_baseNi64, acc));\n }\n return acc;\n }\n}\n\nexport const BigNatModule_one = BigNatModule_embed(1);\n\nexport const BigNatModule_zero = BigNatModule_embed(0);\n\nexport function BigNatModule_restrictTo(d, n) {\n return new BigNat(BigNatModule_minInt(d, n.bound), n.digits);\n}\n\nexport function BigNatModule_shiftUp(d, n) {\n const m = BigNatModule_createN(n.bound + d);\n for (let i = 0; i <= (n.bound - 1); i++) {\n m.digits[i + d] = (n.digits[i] | 0);\n }\n return m;\n}\n\nexport function BigNatModule_shiftDown(d, n) {\n if ((n.bound - d) <= 0) {\n return BigNatModule_zero;\n }\n else {\n const m = BigNatModule_createN(n.bound - d);\n for (let i = 0; i <= (m.bound - 1); i++) {\n m.digits[i] = (n.digits[i + d] | 0);\n }\n return m;\n }\n}\n\nexport function BigNatModule_degree(n) {\n return n.bound - 1;\n}\n\nexport function BigNatModule_addP(i_mut, n_mut, c_mut, p_mut, q_mut, r_mut) {\n let z, i_1, z_1, i_2;\n BigNatModule_addP:\n while (true) {\n const i = i_mut, n = n_mut, c = c_mut, p = p_mut, q = q_mut, r = r_mut;\n if (i < n) {\n const x = (((z = p, (i_1 = (i | 0), (i_1 < z.bound) ? z.digits[i_1] : 0)) + (z_1 = q, (i_2 = (i | 0), (i_2 < z_1.bound) ? z_1.digits[i_2] : 0))) + c) | 0;\n r.digits[i] = (BigNatModule_modbase(x) | 0);\n i_mut = (i + 1);\n n_mut = n;\n c_mut = BigNatModule_divbase(x);\n p_mut = p;\n q_mut = q;\n r_mut = r;\n continue BigNatModule_addP;\n }\n break;\n }\n}\n\nexport function BigNatModule_add(p, q) {\n const rbound = (1 + BigNatModule_maxInt(p.bound, q.bound)) | 0;\n const r = BigNatModule_createN(rbound);\n BigNatModule_addP(0, rbound, 0, p, q, r);\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_subP(i_mut, n_mut, c_mut, p_mut, q_mut, r_mut) {\n let z, i_1, z_1, i_2;\n BigNatModule_subP:\n while (true) {\n const i = i_mut, n = n_mut, c = c_mut, p = p_mut, q = q_mut, r = r_mut;\n if (i < n) {\n const x = (((z = p, (i_1 = (i | 0), (i_1 < z.bound) ? z.digits[i_1] : 0)) - (z_1 = q, (i_2 = (i | 0), (i_2 < z_1.bound) ? z_1.digits[i_2] : 0))) + c) | 0;\n if (x > 0) {\n r.digits[i] = (BigNatModule_modbase(x) | 0);\n i_mut = (i + 1);\n n_mut = n;\n c_mut = BigNatModule_divbase(x);\n p_mut = p;\n q_mut = q;\n r_mut = r;\n continue BigNatModule_subP;\n }\n else {\n const x_1 = (x + BigNatModule_baseN) | 0;\n r.digits[i] = (BigNatModule_modbase(x_1) | 0);\n i_mut = (i + 1);\n n_mut = n;\n c_mut = (BigNatModule_divbase(x_1) - 1);\n p_mut = p;\n q_mut = q;\n r_mut = r;\n continue BigNatModule_subP;\n }\n }\n else {\n return c !== 0;\n }\n break;\n }\n}\n\nexport function BigNatModule_sub(p, q) {\n const rbound = BigNatModule_maxInt(p.bound, q.bound) | 0;\n const r = BigNatModule_createN(rbound);\n if (BigNatModule_subP(0, rbound, 0, p, q, r)) {\n return BigNatModule_embed(0);\n }\n else {\n return BigNatModule_normN(r);\n }\n}\n\nexport function BigNatModule_isZero(p) {\n return p.bound === 0;\n}\n\nexport function BigNatModule_IsZero(p) {\n return BigNatModule_isZero(p);\n}\n\nexport function BigNatModule_isOne(p) {\n if (p.bound === 1) {\n return p.digits[0] === 1;\n }\n else {\n return false;\n }\n}\n\nexport function BigNatModule_equal(p, q) {\n if (p.bound === q.bound) {\n const check = (pa_mut, qa_mut, i_mut) => {\n check:\n while (true) {\n const pa = pa_mut, qa = qa_mut, i = i_mut;\n if (i === -1) {\n return true;\n }\n else if (pa[i] === qa[i]) {\n pa_mut = pa;\n qa_mut = qa;\n i_mut = (i - 1);\n continue check;\n }\n else {\n return false;\n }\n break;\n }\n };\n return check(p.digits, q.digits, p.bound - 1);\n }\n else {\n return false;\n }\n}\n\nexport function BigNatModule_shiftCompare(p, pn, q, qn) {\n if ((p.bound + pn) < (q.bound + qn)) {\n return -1;\n }\n else if ((p.bound + pn) > (q.bound + pn)) {\n return 1;\n }\n else {\n const check = (pa_mut, qa_mut, i_mut) => {\n check:\n while (true) {\n const pa = pa_mut, qa = qa_mut, i = i_mut;\n if (i === -1) {\n return 0;\n }\n else {\n const pai = ((i < pn) ? 0 : pa[i - pn]) | 0;\n const qai = ((i < qn) ? 0 : qa[i - qn]) | 0;\n if (pai === qai) {\n pa_mut = pa;\n qa_mut = qa;\n i_mut = (i - 1);\n continue check;\n }\n else if (pai < qai) {\n return -1;\n }\n else {\n return 1;\n }\n }\n break;\n }\n };\n return check(p.digits, q.digits, (p.bound + pn) - 1) | 0;\n }\n}\n\nexport function BigNatModule_compare(p, q) {\n if (p.bound < q.bound) {\n return -1;\n }\n else if (p.bound > q.bound) {\n return 1;\n }\n else {\n const check = (pa_mut, qa_mut, i_mut) => {\n check:\n while (true) {\n const pa = pa_mut, qa = qa_mut, i = i_mut;\n if (i === -1) {\n return 0;\n }\n else if (pa[i] === qa[i]) {\n pa_mut = pa;\n qa_mut = qa;\n i_mut = (i - 1);\n continue check;\n }\n else if (pa[i] < qa[i]) {\n return -1;\n }\n else {\n return 1;\n }\n break;\n }\n };\n return check(p.digits, q.digits, p.bound - 1) | 0;\n }\n}\n\nexport function BigNatModule_lt(p, q) {\n return BigNatModule_compare(p, q) === -1;\n}\n\nexport function BigNatModule_gt(p, q) {\n return BigNatModule_compare(p, q) === 1;\n}\n\nexport function BigNatModule_lte(p, q) {\n return BigNatModule_compare(p, q) !== 1;\n}\n\nexport function BigNatModule_gte(p, q) {\n return BigNatModule_compare(p, q) !== -1;\n}\n\nexport function BigNatModule_min(a, b) {\n if (BigNatModule_lt(a, b)) {\n return a;\n }\n else {\n return b;\n }\n}\n\nexport function BigNatModule_max(a, b) {\n if (BigNatModule_lt(a, b)) {\n return b;\n }\n else {\n return a;\n }\n}\n\nexport function BigNatModule_contributeArr(a_mut, i_mut, c_mut) {\n BigNatModule_contributeArr:\n while (true) {\n const a = a_mut, i = i_mut, c = c_mut;\n const x = op_Addition(fromInteger(a[i], false, 2), c);\n const c_1 = op_Division(x, BigNatModule_baseNi64);\n const x_3 = (~(~toInt(op_BitwiseAnd(x, BigNatModule_baseMaski64)))) | 0;\n a[i] = (x_3 | 0);\n if (compare(c_1, fromBits(0, 0, false)) > 0) {\n a_mut = a;\n i_mut = (i + 1);\n c_mut = c_1;\n continue BigNatModule_contributeArr;\n }\n break;\n }\n}\n\nexport function BigNatModule_scale(k, p) {\n const r = BigNatModule_createN(p.bound + BigNatModule_boundInt);\n const k_1 = fromInteger(k, false, 2);\n for (let i = 0; i <= (p.bound - 1); i++) {\n BigNatModule_contributeArr(r.digits, i, op_Multiply(k_1, fromInteger(p.digits[i], false, 2)));\n }\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_mulSchoolBookBothSmall(p, q) {\n const r = BigNatModule_createN(2);\n const rak = op_Multiply(fromInteger(p, false, 2), fromInteger(q, false, 2));\n BigNatModule_setCoeff(r, 0, ~(~toInt(op_BitwiseAnd(rak, BigNatModule_baseMaski64))));\n BigNatModule_setCoeff(r, 1, ~(~toInt(op_Division(rak, BigNatModule_baseNi64))));\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_mulSchoolBookCarry(r_mut, c_mut, k_mut) {\n BigNatModule_mulSchoolBookCarry:\n while (true) {\n const r = r_mut, c = c_mut, k = k_mut;\n if (compare(c, fromBits(0, 0, false)) > 0) {\n const rak = op_Addition(BigNatModule_coeff64(r, k), c);\n BigNatModule_setCoeff(r, k, ~(~toInt(op_BitwiseAnd(rak, BigNatModule_baseMaski64))));\n r_mut = r;\n c_mut = op_Division(rak, BigNatModule_baseNi64);\n k_mut = (k + 1);\n continue BigNatModule_mulSchoolBookCarry;\n }\n break;\n }\n}\n\nexport function BigNatModule_mulSchoolBookOneSmall(p, q) {\n const bp = BigNatModule_bound(p) | 0;\n const r = BigNatModule_createN(bp + 1);\n const q_1 = fromInteger(q, false, 2);\n let c = fromBits(0, 0, false);\n for (let i = 0; i <= (bp - 1); i++) {\n const rak = op_Addition(op_Addition(c, BigNatModule_coeff64(r, i)), op_Multiply(BigNatModule_coeff64(p, i), q_1));\n BigNatModule_setCoeff(r, i, ~(~toInt(op_BitwiseAnd(rak, BigNatModule_baseMaski64))));\n c = op_Division(rak, BigNatModule_baseNi64);\n }\n BigNatModule_mulSchoolBookCarry(r, c, bp);\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_mulSchoolBookNeitherSmall(p, q) {\n const r = BigNatModule_createN(p.bound + q.bound);\n const ra = r.digits;\n for (let i = 0; i <= (p.bound - 1); i++) {\n const pai = fromInteger(p.digits[i], false, 2);\n let c = fromBits(0, 0, false);\n let k = i;\n for (let j = 0; j <= (q.bound - 1); j++) {\n const qaj = fromInteger(q.digits[j], false, 2);\n const rak = op_Addition(op_Addition(fromInteger(ra[k], false, 2), c), op_Multiply(pai, qaj));\n ra[k] = ((~(~toInt(op_BitwiseAnd(rak, BigNatModule_baseMaski64)))) | 0);\n c = op_Division(rak, BigNatModule_baseNi64);\n k = ((k + 1) | 0);\n }\n BigNatModule_mulSchoolBookCarry(r, c, k);\n }\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_mulSchoolBook(p, q) {\n const pSmall = BigNatModule_bound(p) === 1;\n const qSmall = BigNatModule_bound(q) === 1;\n if (pSmall ? qSmall : false) {\n return BigNatModule_mulSchoolBookBothSmall(BigNatModule_coeff(p, 0), BigNatModule_coeff(q, 0));\n }\n else if (pSmall) {\n return BigNatModule_mulSchoolBookOneSmall(q, BigNatModule_coeff(p, 0));\n }\n else if (qSmall) {\n return BigNatModule_mulSchoolBookOneSmall(p, BigNatModule_coeff(q, 0));\n }\n else {\n return BigNatModule_mulSchoolBookNeitherSmall(p, q);\n }\n}\n\nexport class BigNatModule_encoding extends Record {\n constructor(bigL, twoToBigL, k, bigK, bigN, split, splits) {\n super();\n this.bigL = (bigL | 0);\n this.twoToBigL = (twoToBigL | 0);\n this.k = (k | 0);\n this.bigK = (bigK | 0);\n this.bigN = (bigN | 0);\n this.split = (split | 0);\n this.splits = splits;\n }\n}\n\nexport function BigNatModule_encoding$reflection() {\n return record_type(\"BigInt.BigNatModule.encoding\", [], BigNatModule_encoding, () => [[\"bigL\", int32_type], [\"twoToBigL\", int32_type], [\"k\", int32_type], [\"bigK\", int32_type], [\"bigN\", int32_type], [\"split\", int32_type], [\"splits\", array_type(int32_type)]]);\n}\n\nexport function BigNatModule_mkEncoding(bigL, k, bigK, bigN) {\n return new BigNatModule_encoding(bigL, BigNatModule_pow32(2, bigL), k, bigK, bigN, ~(~(BigNatModule_baseBits / bigL)), initialize(~(~(BigNatModule_baseBits / bigL)), (i) => BigNatModule_pow32(2, bigL * i), Int32Array));\n}\n\nexport const BigNatModule_table = [BigNatModule_mkEncoding(1, 28, 268435456, 268435456), BigNatModule_mkEncoding(2, 26, 67108864, 134217728), BigNatModule_mkEncoding(3, 24, 16777216, 50331648), BigNatModule_mkEncoding(4, 22, 4194304, 16777216), BigNatModule_mkEncoding(5, 20, 1048576, 5242880), BigNatModule_mkEncoding(6, 18, 262144, 1572864), BigNatModule_mkEncoding(7, 16, 65536, 458752), BigNatModule_mkEncoding(8, 14, 16384, 131072), BigNatModule_mkEncoding(9, 12, 4096, 36864), BigNatModule_mkEncoding(10, 10, 1024, 10240), BigNatModule_mkEncoding(11, 8, 256, 2816), BigNatModule_mkEncoding(12, 6, 64, 768), BigNatModule_mkEncoding(13, 4, 16, 208)];\n\nexport function BigNatModule_calculateTableTow(bigL) {\n const k = (BigNatModule_FFT_maxBitsInsideFp - (2 * bigL)) | 0;\n const bigK = BigNatModule_pow64(fromBits(2, 0, false), k);\n return [bigL, k, bigK, op_Multiply(bigK, fromInteger(bigL, false, 2))];\n}\n\nexport function BigNatModule_encodingGivenResultBits(bitsRes) {\n const selectFrom = (i_mut) => {\n selectFrom:\n while (true) {\n const i = i_mut;\n if (((i + 1) < BigNatModule_table.length) ? (bitsRes < BigNatModule_table[i + 1].bigN) : false) {\n i_mut = (i + 1);\n continue selectFrom;\n }\n else {\n return BigNatModule_table[i];\n }\n break;\n }\n };\n if (bitsRes >= BigNatModule_table[0].bigN) {\n throw (new Error(\"Product is huge, around 268435456 bits, beyond quickmul\"));\n }\n else {\n return selectFrom(0);\n }\n}\n\nexport const BigNatModule_bitmask = initialize(BigNatModule_baseBits, (i) => (BigNatModule_pow32(2, i) - 1), Int32Array);\n\nexport const BigNatModule_twopowers = initialize(BigNatModule_baseBits, (i) => BigNatModule_pow32(2, i), Int32Array);\n\nexport const BigNatModule_twopowersI64 = initialize(BigNatModule_baseBits, (i) => BigNatModule_pow64(fromBits(2, 0, false), i));\n\nexport function BigNatModule_wordBits(word) {\n const hi = (k_mut) => {\n hi:\n while (true) {\n const k = k_mut;\n if (k === 0) {\n return 0;\n }\n else if ((word & BigNatModule_twopowers[k - 1]) !== 0) {\n return k | 0;\n }\n else {\n k_mut = (k - 1);\n continue hi;\n }\n break;\n }\n };\n return hi(BigNatModule_baseBits) | 0;\n}\n\nexport function BigNatModule_bits(u) {\n if (u.bound === 0) {\n return 0;\n }\n else {\n return ((BigNatModule_degree(u) * BigNatModule_baseBits) + BigNatModule_wordBits(u.digits[BigNatModule_degree(u)])) | 0;\n }\n}\n\nexport function BigNatModule_extractBits(n, enc, bi) {\n let z, i, z_1, i_1, z_2, i_2;\n const biw = (~(~(bi / BigNatModule_baseBits))) | 0;\n const bjw = (~(~(((bi + enc.bigL) - 1) / BigNatModule_baseBits))) | 0;\n if (biw !== bjw) {\n const xbit = (bi % BigNatModule_baseBits) | 0;\n return ((((z = n, (i = (biw | 0), (i < z.bound) ? z.digits[i] : 0)) >> xbit) | ((z_1 = n, (i_1 = (bjw | 0), (i_1 < z_1.bound) ? z_1.digits[i_1] : 0)) << (BigNatModule_baseBits - xbit))) & BigNatModule_bitmask[enc.bigL]) | 0;\n }\n else {\n return (((z_2 = n, (i_2 = (biw | 0), (i_2 < z_2.bound) ? z_2.digits[i_2] : 0)) >> (bi % BigNatModule_baseBits)) & BigNatModule_bitmask[enc.bigL]) | 0;\n }\n}\n\nexport function BigNatModule_encodePoly(enc, n) {\n const poly = fill(new Uint32Array(enc.bigK), 0, enc.bigK, BigNatModule_FFT_Fp_ofInt32(0));\n const biMax = (n.bound * BigNatModule_baseBits) | 0;\n const encoder = (i_mut, bi_mut) => {\n encoder:\n while (true) {\n const i = i_mut, bi = bi_mut;\n if ((i === enc.bigK) ? true : (bi > biMax)) {\n }\n else {\n const pi = BigNatModule_extractBits(n, enc, bi) | 0;\n poly[i] = BigNatModule_FFT_Fp_ofInt32(pi);\n i_mut = (i + 1);\n bi_mut = (bi + enc.bigL);\n continue encoder;\n }\n break;\n }\n };\n encoder(0, 0);\n return poly;\n}\n\nexport function BigNatModule_decodeResultBits(enc, poly) {\n let n = 0;\n for (let i = 0; i <= (poly.length - 1); i++) {\n if (poly[i] !== BigNatModule_FFT_mzero) {\n n = (i | 0);\n }\n }\n return (((BigNatModule_FFT_maxBitsInsideFp + (enc.bigL * n)) + 1) + 1) | 0;\n}\n\nexport function BigNatModule_decodePoly(enc, poly) {\n const rbound = ((~(~(BigNatModule_decodeResultBits(enc, poly) / BigNatModule_baseBits))) + 1) | 0;\n const r = BigNatModule_createN(rbound);\n const evaluate = (i_mut, j_mut, d_mut) => {\n evaluate:\n while (true) {\n const i = i_mut, j = j_mut, d = d_mut;\n if (i === enc.bigK) {\n }\n else {\n if (j >= rbound) {\n }\n else {\n BigNatModule_contributeArr(r.digits, j, op_Multiply(fromInteger(BigNatModule_FFT_Fp_toInt(poly[i]), false, 2), BigNatModule_twopowersI64[d]));\n }\n const d_1 = (d + enc.bigL) | 0;\n const patternInput = (d_1 >= BigNatModule_baseBits) ? [j + 1, d_1 - BigNatModule_baseBits] : [j, d_1];\n i_mut = (i + 1);\n j_mut = patternInput[0];\n d_mut = patternInput[1];\n continue evaluate;\n }\n break;\n }\n };\n evaluate(0, 0, 0);\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_quickMulUsingFft(u, v) {\n const enc = BigNatModule_encodingGivenResultBits(BigNatModule_bits(u) + BigNatModule_bits(v));\n return BigNatModule_normN(BigNatModule_decodePoly(enc, BigNatModule_FFT_computeFftPaddedPolynomialProduct(enc.bigK, enc.k, BigNatModule_encodePoly(enc, u), BigNatModule_encodePoly(enc, v))));\n}\n\nexport const BigNatModule_minDigitsKaratsuba = 16;\n\nexport function BigNatModule_recMulKaratsuba(mul, p, q) {\n const bmax = BigNatModule_maxInt(p.bound, q.bound) | 0;\n if (bmax > BigNatModule_minDigitsKaratsuba) {\n const k = (~(~(bmax / 2))) | 0;\n const a0 = BigNatModule_restrictTo(k, p);\n const a1 = BigNatModule_shiftDown(k, p);\n const b0 = BigNatModule_restrictTo(k, q);\n const b1 = BigNatModule_shiftDown(k, q);\n const q0 = mul(a0, b0);\n const q1 = mul(BigNatModule_add(a0, a1), BigNatModule_add(b0, b1));\n const q2 = mul(a1, b1);\n return BigNatModule_add(q0, BigNatModule_shiftUp(k, BigNatModule_add(BigNatModule_sub(q1, BigNatModule_add(q0, q2)), BigNatModule_shiftUp(k, q2))));\n }\n else {\n return BigNatModule_mulSchoolBook(p, q);\n }\n}\n\nexport function BigNatModule_mulKaratsuba(x, y) {\n return BigNatModule_recMulKaratsuba((x_1, y_1) => BigNatModule_mulKaratsuba(x_1, y_1), x, y);\n}\n\nexport const BigNatModule_productDigitsUpperSchoolBook = ~(~(64000 / BigNatModule_baseBits));\n\nexport const BigNatModule_singleDigitForceSchoolBook = ~(~(32000 / BigNatModule_baseBits));\n\nexport const BigNatModule_productDigitsUpperFft = ~(~(BigNatModule_table[0].bigN / BigNatModule_baseBits));\n\nexport function BigNatModule_mul(p, q) {\n return BigNatModule_mulSchoolBook(p, q);\n}\n\nexport function BigNatModule_scaleSubInPlace(x, f, a, n) {\n const patternInput = [x.digits, BigNatModule_degree(x)];\n const x_1 = patternInput[0];\n const patternInput_1 = [a.digits, BigNatModule_degree(a)];\n const ad = patternInput_1[1] | 0;\n const a_1 = patternInput_1[0];\n const f_1 = fromInteger(f, false, 2);\n let j = 0;\n let z = op_Multiply(f_1, fromInteger(a_1[0], false, 2));\n while ((compare(z, fromBits(0, 0, false)) > 0) ? true : (j < ad)) {\n if (j > patternInput[1]) {\n throw (new Error(\"scaleSubInPlace: pre-condition did not apply, result would be -ve\"));\n }\n let zLo = ~(~toInt(op_BitwiseAnd(z, BigNatModule_baseMaski64)));\n let zHi = op_Division(z, BigNatModule_baseNi64);\n if (zLo <= x_1[j + n]) {\n x_1[j + n] = ((x_1[j + n] - zLo) | 0);\n }\n else {\n x_1[j + n] = ((x_1[j + n] + (BigNatModule_baseN - zLo)) | 0);\n zHi = op_Addition(zHi, fromBits(1, 0, false));\n }\n if (j < ad) {\n z = op_Addition(zHi, op_Multiply(f_1, fromInteger(a_1[j + 1], false, 2)));\n }\n else {\n z = zHi;\n }\n j = ((j + 1) | 0);\n }\n void BigNatModule_normN(x);\n}\n\nexport function BigNatModule_scaleSub(x, f, a, n) {\n const freshx = BigNatModule_add(x, BigNatModule_zero);\n BigNatModule_scaleSubInPlace(freshx, f, a, n);\n return BigNatModule_normN(freshx);\n}\n\nexport function BigNatModule_scaleAddInPlace(x, f, a, n) {\n const patternInput = [x.digits, BigNatModule_degree(x)];\n const x_1 = patternInput[0];\n const patternInput_1 = [a.digits, BigNatModule_degree(a)];\n const ad = patternInput_1[1] | 0;\n const a_1 = patternInput_1[0];\n const f_1 = fromInteger(f, false, 2);\n let j = 0;\n let z = op_Multiply(f_1, fromInteger(a_1[0], false, 2));\n while ((compare(z, fromBits(0, 0, false)) > 0) ? true : (j < ad)) {\n if (j > patternInput[1]) {\n throw (new Error(\"scaleSubInPlace: pre-condition did not apply, result would be -ve\"));\n }\n let zLo = ~(~toInt(op_BitwiseAnd(z, BigNatModule_baseMaski64)));\n let zHi = op_Division(z, BigNatModule_baseNi64);\n if (zLo < (BigNatModule_baseN - x_1[j + n])) {\n x_1[j + n] = ((x_1[j + n] + zLo) | 0);\n }\n else {\n x_1[j + n] = ((zLo - (BigNatModule_baseN - x_1[j + n])) | 0);\n zHi = op_Addition(zHi, fromBits(1, 0, false));\n }\n if (j < ad) {\n z = op_Addition(zHi, op_Multiply(f_1, fromInteger(a_1[j + 1], false, 2)));\n }\n else {\n z = zHi;\n }\n j = ((j + 1) | 0);\n }\n void BigNatModule_normN(x);\n}\n\nexport function BigNatModule_scaleAdd(x, f, a, n) {\n const freshx = BigNatModule_add(x, BigNatModule_zero);\n BigNatModule_scaleAddInPlace(freshx, f, a, n);\n return BigNatModule_normN(freshx);\n}\n\nexport function BigNatModule_removeFactor(x, a, n) {\n const patternInput = [BigNatModule_degree(a), BigNatModule_degree(x)];\n const degx = patternInput[1] | 0;\n const dega = patternInput[0] | 0;\n if (degx < (dega + n)) {\n return 0;\n }\n else {\n const patternInput_1 = [a.digits, x.digits];\n const xa = patternInput_1[1];\n const aa = patternInput_1[0];\n const f = ((dega === 0) ? ((degx === n) ? (~(~(xa[n] / aa[0]))) : (~(~toInt(op_Division(op_Addition(op_Multiply(fromInteger(xa[degx], false, 2), BigNatModule_baseNi64), fromInteger(xa[degx - 1], false, 2)), fromInteger(aa[0], false, 2)))))) : ((degx === (dega + n)) ? (~(~(xa[degx] / (aa[dega] + 1)))) : (~(~toInt(op_Division(op_Addition(op_Multiply(fromInteger(xa[degx], false, 2), BigNatModule_baseNi64), fromInteger(xa[degx - 1], false, 2)), op_Addition(fromInteger(aa[dega], false, 2), fromBits(1, 0, false)))))))) | 0;\n if (f === 0) {\n if (BigNatModule_shiftCompare(a, n, x, 0) !== 1) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else {\n return f | 0;\n }\n }\n}\n\nexport function BigNatModule_divmod(b, a) {\n if (BigNatModule_isZero(a)) {\n throw (new Error());\n }\n else if (BigNatModule_degree(b) < BigNatModule_degree(a)) {\n return [BigNatModule_zero, b];\n }\n else {\n const x = BigNatModule_copyN(b);\n const d = BigNatModule_createN(((BigNatModule_degree(b) - BigNatModule_degree(a)) + 1) + 1);\n let p = BigNatModule_degree(b);\n const m = BigNatModule_degree(a) | 0;\n let n = p - m;\n const Invariant = (tupledArg) => {\n };\n let finished = false;\n while (!finished) {\n Invariant([d, x, n, p]);\n const f = BigNatModule_removeFactor(x, a, n) | 0;\n if (f > 0) {\n BigNatModule_scaleSubInPlace(x, f, a, n);\n BigNatModule_scaleAddInPlace(d, f, BigNatModule_one, n);\n Invariant([d, x, n, p]);\n }\n else {\n finished = ((f === 0) ? (n === 0) : false);\n if (!finished) {\n if (p === (m + n)) {\n Invariant([d, x, n - 1, p]);\n n = ((n - 1) | 0);\n }\n else {\n Invariant([d, x, n - 1, p - 1]);\n n = ((n - 1) | 0);\n p = ((p - 1) | 0);\n }\n }\n }\n }\n return [BigNatModule_normN(d), BigNatModule_normN(x)];\n }\n}\n\nexport function BigNatModule_div(b, a) {\n return BigNatModule_divmod(b, a)[0];\n}\n\nexport function BigNatModule_rem(b, a) {\n return BigNatModule_divmod(b, a)[1];\n}\n\nexport function BigNatModule_bitAnd(a, b) {\n const r = BigNatModule_createN(BigNatModule_minInt(a.bound, b.bound));\n for (let i = 0; i <= (r.bound - 1); i++) {\n r.digits[i] = ((a.digits[i] & b.digits[i]) | 0);\n }\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_bitOr(a, b) {\n const r = BigNatModule_createN(BigNatModule_maxInt(a.bound, b.bound));\n for (let i = 0; i <= (a.bound - 1); i++) {\n r.digits[i] = ((r.digits[i] | a.digits[i]) | 0);\n }\n for (let i_1 = 0; i_1 <= (b.bound - 1); i_1++) {\n r.digits[i_1] = ((r.digits[i_1] | b.digits[i_1]) | 0);\n }\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_bitXor(a, b) {\n const r = BigNatModule_createN(BigNatModule_maxInt(a.bound, b.bound));\n for (let i = 0; i <= (a.bound - 1); i++) {\n r.digits[i] = ((r.digits[i] ^ a.digits[i]) | 0);\n }\n for (let i_1 = 0; i_1 <= (b.bound - 1); i_1++) {\n r.digits[i_1] = ((r.digits[i_1] ^ b.digits[i_1]) | 0);\n }\n return BigNatModule_normN(r);\n}\n\nexport function BigNatModule_hcf(a, b) {\n const hcfloop = (a_1_mut, b_1_mut) => {\n hcfloop:\n while (true) {\n const a_1 = a_1_mut, b_1 = b_1_mut;\n if (BigNatModule_equal(BigNatModule_zero, a_1)) {\n return b_1;\n }\n else {\n a_1_mut = BigNatModule_divmod(b_1, a_1)[1];\n b_1_mut = a_1;\n continue hcfloop;\n }\n break;\n }\n };\n if (BigNatModule_lt(a, b)) {\n return hcfloop(a, b);\n }\n else {\n return hcfloop(b, a);\n }\n}\n\nexport const BigNatModule_two = BigNatModule_embed(2);\n\nexport function BigNatModule_powi(x, n) {\n const power = (acc_mut, x_1_mut, n_1_mut) => {\n power:\n while (true) {\n const acc = acc_mut, x_1 = x_1_mut, n_1 = n_1_mut;\n if (n_1 === 0) {\n return acc;\n }\n else if ((n_1 % 2) === 0) {\n acc_mut = acc;\n x_1_mut = BigNatModule_mul(x_1, x_1);\n n_1_mut = (~(~(n_1 / 2)));\n continue power;\n }\n else {\n acc_mut = BigNatModule_mul(x_1, acc);\n x_1_mut = BigNatModule_mul(x_1, x_1);\n n_1_mut = (~(~(n_1 / 2)));\n continue power;\n }\n break;\n }\n };\n return power(BigNatModule_one, x, n);\n}\n\nexport function BigNatModule_pow(x, n) {\n const power = (acc_mut, x_1_mut, n_1_mut) => {\n power:\n while (true) {\n const acc = acc_mut, x_1 = x_1_mut, n_1 = n_1_mut;\n if (BigNatModule_isZero(n_1)) {\n return acc;\n }\n else {\n const patternInput = BigNatModule_divmod(n_1, BigNatModule_two);\n const ndiv2 = patternInput[0];\n if (BigNatModule_isZero(patternInput[1])) {\n acc_mut = acc;\n x_1_mut = BigNatModule_mul(x_1, x_1);\n n_1_mut = ndiv2;\n continue power;\n }\n else {\n acc_mut = BigNatModule_mul(x_1, acc);\n x_1_mut = BigNatModule_mul(x_1, x_1);\n n_1_mut = ndiv2;\n continue power;\n }\n }\n break;\n }\n };\n return power(BigNatModule_one, x, n);\n}\n\nexport function BigNatModule_toFloat(n) {\n const evalFloat = (acc_mut, k_mut, i_mut) => {\n evalFloat:\n while (true) {\n const acc = acc_mut, k = k_mut, i = i_mut;\n if (i === n.bound) {\n return acc;\n }\n else {\n acc_mut = (acc + (k * n.digits[i]));\n k_mut = (k * BigNatModule_baseN);\n i_mut = (i + 1);\n continue evalFloat;\n }\n break;\n }\n };\n return evalFloat(0, 1, 0);\n}\n\nexport function BigNatModule_ofInt32(n) {\n return BigNatModule_embed(n);\n}\n\nexport function BigNatModule_ofInt64(n) {\n return BigNatModule_embed64(n);\n}\n\nexport function BigNatModule_toUInt32(n) {\n const matchValue = n.bound | 0;\n switch (matchValue) {\n case 0: {\n return 0;\n }\n case 1: {\n const value = n.digits[0] | 0;\n return value >>> 0;\n }\n case 2: {\n const patternInput = [n.digits[0], n.digits[1]];\n const xB = patternInput[1] | 0;\n if (xB > BigNatModule_baseMask32B) {\n throw (new Error());\n }\n return ((patternInput[0] & BigNatModule_baseMask32A) >>> 0) + ((((xB & BigNatModule_baseMask32B) >>> 0) << BigNatModule_baseShift32B) >>> 0);\n }\n default: {\n throw (new Error());\n }\n }\n}\n\nexport function BigNatModule_toUInt64(n) {\n const matchValue = n.bound | 0;\n switch (matchValue) {\n case 0: {\n return fromBits(0, 0, true);\n }\n case 1: {\n return fromInteger(n.digits[0], true, 2);\n }\n case 2: {\n const patternInput = [n.digits[0], n.digits[1]];\n return op_Addition(fromInteger(patternInput[0] & BigNatModule_baseMask64A, true, 2), op_LeftShift(fromInteger(patternInput[1] & BigNatModule_baseMask64B, true, 2), BigNatModule_baseShift64B));\n }\n case 3: {\n const patternInput_1 = [n.digits[0], n.digits[1], n.digits[2]];\n const xC = patternInput_1[2] | 0;\n if (xC > BigNatModule_baseMask64C) {\n throw (new Error());\n }\n return op_Addition(op_Addition(fromInteger(patternInput_1[0] & BigNatModule_baseMask64A, true, 2), op_LeftShift(fromInteger(patternInput_1[1] & BigNatModule_baseMask64B, true, 2), BigNatModule_baseShift64B)), op_LeftShift(fromInteger(xC & BigNatModule_baseMask64C, true, 2), BigNatModule_baseShift64C));\n }\n default: {\n throw (new Error());\n }\n }\n}\n\nexport function BigNatModule_toString(n) {\n const degn = BigNatModule_degree(n) | 0;\n const route = (prior_mut, k_mut, ten2k_mut) => {\n route:\n while (true) {\n const prior = prior_mut, k = k_mut, ten2k = ten2k_mut;\n if (BigNatModule_degree(ten2k) > degn) {\n return cons([k, ten2k], prior);\n }\n else {\n prior_mut = cons([k, ten2k], prior);\n k_mut = (k + 1);\n ten2k_mut = BigNatModule_mul(ten2k, ten2k);\n continue route;\n }\n break;\n }\n };\n const collect = (isLeading_mut, digits_mut, n_1_mut, _arg1_mut) => {\n collect:\n while (true) {\n const isLeading = isLeading_mut, digits = digits_mut, n_1 = n_1_mut, _arg1 = _arg1_mut;\n if (!isEmpty(_arg1)) {\n const prior_1 = tail(_arg1);\n const patternInput = BigNatModule_divmod(n_1, head(_arg1)[1]);\n const nL = patternInput[1];\n const nH = patternInput[0];\n if (isLeading ? BigNatModule_isZero(nH) : false) {\n isLeading_mut = isLeading;\n digits_mut = digits;\n n_1_mut = nL;\n _arg1_mut = prior_1;\n continue collect;\n }\n else {\n isLeading_mut = isLeading;\n digits_mut = collect(false, digits, nL, prior_1);\n n_1_mut = nH;\n _arg1_mut = prior_1;\n continue collect;\n }\n }\n else {\n const n_2 = BigNatModule_eval32(n_1) | 0;\n if (isLeading ? (n_2 === 0) : false) {\n return digits;\n }\n else {\n return cons(int32ToString(n_2), digits);\n }\n }\n break;\n }\n };\n const digits_4 = collect(true, empty(), n, route(empty(), 0, BigNatModule_embed(10)));\n if (isEmpty(digits_4)) {\n return \"0\";\n }\n else {\n return join(\"\", toArray(digits_4));\n }\n}\n\nexport function BigNatModule_ofString(str) {\n const len = str.length | 0;\n if (isNullOrEmpty(str)) {\n throw (new Error(\"empty string\\\\nParameter name: str\"));\n }\n const ten = BigNatModule_embed(10);\n const build = (acc_mut, i_mut) => {\n build:\n while (true) {\n const acc = acc_mut, i = i_mut;\n if (i === len) {\n return acc;\n }\n else {\n const d = (str[i].charCodeAt(0) - \"0\".charCodeAt(0)) | 0;\n if ((0 <= d) ? (d <= 9) : false) {\n acc_mut = BigNatModule_add(BigNatModule_mul(ten, acc), BigNatModule_embed(d));\n i_mut = (i + 1);\n continue build;\n }\n else {\n throw (new Error());\n }\n }\n break;\n }\n };\n return build(BigNatModule_embed(0), 0);\n}\n\nexport function BigNatModule_isSmall(n) {\n return n.bound <= 1;\n}\n\nexport function BigNatModule_getSmall(n) {\n const z = n;\n const i = 0;\n if (i < z.bound) {\n return z.digits[i] | 0;\n }\n else {\n return 0;\n }\n}\n\nexport function BigNatModule_factorial(n) {\n const productR = (a, b) => {\n if (BigNatModule_equal(a, b)) {\n return a;\n }\n else {\n const m = BigNatModule_div(BigNatModule_add(a, b), BigNatModule_ofInt32(2));\n return BigNatModule_mul(productR(a, m), productR(BigNatModule_add(m, BigNatModule_one), b));\n }\n };\n return productR(BigNatModule_one, n);\n}\n\n","import { BigNatModule_factorial, BigNatModule_ofString, BigNatModule_toFloat, BigNatModule_toUInt64, BigNatModule_toUInt32, BigNatModule_pow, BigNatModule_two, BigNatModule_rem, BigNatModule_lte, BigNatModule_hcf, BigNatModule_bitXor, BigNatModule_bitOr, BigNatModule_bitAnd, BigNatModule_divmod, BigNatModule_mul, BigNatModule_isOne, BigNatModule_sub, BigNatModule_gte, BigNatModule_scale, BigNatModule_one, BigNatModule_add, BigNatModule_ofInt64, BigNatModule_hash, BigNatModule_gt, BigNatModule_lt, BigNatModule_equal, BigNatModule_getSmall, BigNatModule_isSmall, BigNatModule_ofInt32, BigNatModule_toString, BigNatModule_isZero } from \"./n.js\";\nimport { Record, toString } from \"../Types.js\";\nimport { class_type } from \"../Reflection.js\";\nimport { initialize } from \"../Array.js\";\nimport { op_Addition, op_Multiply, fromValue, equals, fromBits, compare, fromInteger, op_UnaryNegation } from \"../Long.js\";\nimport { op_UnaryNegation_Int32 } from \"../Int32.js\";\nimport Decimal from \"../Decimal.js\";\n\nexport class BigInteger extends Record {\n constructor(signInt, v) {\n super();\n this.signInt = (signInt | 0);\n this.v = v;\n }\n toString() {\n const x = this;\n const matchValue = BigInteger__get_SignInt(x) | 0;\n switch (matchValue) {\n case -1: {\n return BigNatModule_isZero(BigInteger__get_V(x)) ? \"0\" : (\"-\" + BigNatModule_toString(BigInteger__get_V(x)));\n }\n case 0: {\n return \"0\";\n }\n case 1: {\n return BigNatModule_toString(BigInteger__get_V(x));\n }\n default: {\n throw (new Error(\"signs should be +/- 1 or 0\"));\n }\n }\n }\n Equals(obj) {\n const this$ = this;\n return (obj instanceof BigInteger) ? BigInteger_op_Equality_56F059C0(this$, obj) : false;\n }\n GetHashCode() {\n const x = this;\n return BigInteger_hash_Z665282C2(x) | 0;\n }\n toJSON(_key) {\n const this$ = this;\n return toString(this$);\n }\n CompareTo(obj) {\n const this$ = this;\n if (obj instanceof BigInteger) {\n return BigInteger_compare_56F059C0(this$, obj) | 0;\n }\n else {\n throw (new Error(\"the objects are not comparable\\\\nParameter name: obj\"));\n }\n }\n}\n\nexport function BigInteger$reflection() {\n return class_type(\"BigInt.BigInteger\", void 0, BigInteger, class_type(\"System.ValueType\"));\n}\n\nexport function BigInteger_$ctor_Z2BE94A1(signInt, v) {\n return new BigInteger(signInt, v);\n}\n\n(() => {\n BigInteger.smallLim = 4096;\n BigInteger.smallPosTab = initialize(BigInteger.smallLim, (n) => BigNatModule_ofInt32(n));\n BigInteger.one = BigInteger_$ctor_Z524259A4(1);\n BigInteger.two = BigInteger_$ctor_Z524259A4(2);\n BigInteger.zero = BigInteger_$ctor_Z524259A4(0);\n})();\n\nexport function BigInteger_nat_Z67CCE57D(n) {\n if (BigNatModule_isSmall(n) ? (BigNatModule_getSmall(n) < BigInteger.smallLim) : false) {\n return BigInteger.smallPosTab[BigNatModule_getSmall(n)];\n }\n else {\n return n;\n }\n}\n\nexport function BigInteger_create_Z2BE94A1(s, n) {\n return BigInteger_$ctor_Z2BE94A1(s, BigInteger_nat_Z67CCE57D(n));\n}\n\nexport function BigInteger_posn_Z67CCE57D(n) {\n return BigInteger_$ctor_Z2BE94A1(1, BigInteger_nat_Z67CCE57D(n));\n}\n\nexport function BigInteger_negn_Z67CCE57D(n) {\n return BigInteger_$ctor_Z2BE94A1(-1, BigInteger_nat_Z67CCE57D(n));\n}\n\nexport function BigInteger__get_Sign(x) {\n if (BigInteger__get_IsZero(x)) {\n return 0;\n }\n else {\n return x.signInt | 0;\n }\n}\n\nexport function BigInteger__get_SignInt(x) {\n return x.signInt;\n}\n\nexport function BigInteger__get_V(x) {\n return x.v;\n}\n\nexport function BigInteger_op_Equality_56F059C0(x, y) {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 8;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 0) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 6;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 4;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 5;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 7;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else {\n pattern_matching_result = 9;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigNatModule_equal(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigNatModule_equal(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 2: {\n if (BigNatModule_isZero(BigInteger__get_V(x))) {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n else {\n return false;\n }\n }\n case 3: {\n if (BigNatModule_isZero(BigInteger__get_V(x))) {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n else {\n return false;\n }\n }\n case 4: {\n return true;\n }\n case 5: {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n case 6: {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n case 7: {\n return BigNatModule_isZero(BigInteger__get_V(x));\n }\n case 8: {\n return BigNatModule_isZero(BigInteger__get_V(x));\n }\n case 9: {\n throw (new Error(\"signs should be +/- 1 or 0\\\\nParameter name: x\"));\n }\n }\n}\n\nexport function BigInteger_op_Inequality_56F059C0(x, y) {\n return !BigInteger_op_Equality_56F059C0(x, y);\n}\n\nexport function BigInteger_op_LessThan_56F059C0(x, y) {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 8;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 0) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 6;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 4;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 5;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 7;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else {\n pattern_matching_result = 9;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigNatModule_lt(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigNatModule_lt(BigInteger__get_V(y), BigInteger__get_V(x));\n }\n case 2: {\n return false;\n }\n case 3: {\n if (!BigNatModule_isZero(BigInteger__get_V(x))) {\n return true;\n }\n else {\n return !BigNatModule_isZero(BigInteger__get_V(y));\n }\n }\n case 4: {\n return false;\n }\n case 5: {\n return !BigNatModule_isZero(BigInteger__get_V(y));\n }\n case 6: {\n return false;\n }\n case 7: {\n return false;\n }\n case 8: {\n return !BigNatModule_isZero(BigInteger__get_V(x));\n }\n case 9: {\n throw (new Error(\"signs should be +/- 1 or 0\\\\nParameter name: x\"));\n }\n }\n}\n\nexport function BigInteger_op_GreaterThan_56F059C0(x, y) {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 8;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 0) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 6;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 4;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 5;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 7;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else {\n pattern_matching_result = 9;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigNatModule_gt(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigNatModule_gt(BigInteger__get_V(y), BigInteger__get_V(x));\n }\n case 2: {\n if (!BigNatModule_isZero(BigInteger__get_V(x))) {\n return true;\n }\n else {\n return !BigNatModule_isZero(BigInteger__get_V(y));\n }\n }\n case 3: {\n return false;\n }\n case 4: {\n return false;\n }\n case 5: {\n return false;\n }\n case 6: {\n return !BigNatModule_isZero(BigInteger__get_V(y));\n }\n case 7: {\n return !BigNatModule_isZero(BigInteger__get_V(x));\n }\n case 8: {\n return false;\n }\n case 9: {\n throw (new Error(\"signs should be +/- 1 or 0\\\\nParameter name: x\"));\n }\n }\n}\n\nexport function BigInteger_compare_56F059C0(n, nn) {\n if (BigInteger_op_LessThan_56F059C0(n, nn)) {\n return -1;\n }\n else if (BigInteger_op_Equality_56F059C0(n, nn)) {\n return 0;\n }\n else {\n return 1;\n }\n}\n\nexport function BigInteger_hash_Z665282C2(z) {\n if (BigInteger__get_SignInt(z) === 0) {\n return 1;\n }\n else {\n return (BigInteger__get_SignInt(z) + BigNatModule_hash(BigInteger__get_V(z))) | 0;\n }\n}\n\nexport function BigInteger__get_StructuredDisplayString(x) {\n return toString(x);\n}\n\nexport function BigInteger_$ctor_Z524259A4(n) {\n if (n >= 0) {\n return BigInteger_$ctor_Z2BE94A1(1, BigInteger_nat_Z67CCE57D(BigNatModule_ofInt32(n)));\n }\n else if (n === -2147483648) {\n return BigInteger_$ctor_Z2BE94A1(-1, BigInteger_nat_Z67CCE57D(BigNatModule_ofInt64(op_UnaryNegation(fromInteger(n, false, 2)))));\n }\n else {\n return BigInteger_$ctor_Z2BE94A1(-1, BigInteger_nat_Z67CCE57D(BigNatModule_ofInt32(op_UnaryNegation_Int32(n))));\n }\n}\n\nexport function BigInteger_$ctor_Z524259C1(n) {\n if (compare(n, fromBits(0, 0, false)) >= 0) {\n return BigInteger_$ctor_Z2BE94A1(1, BigInteger_nat_Z67CCE57D(BigNatModule_ofInt64(n)));\n }\n else if (equals(n, fromBits(0, 2147483648, false))) {\n return BigInteger_$ctor_Z2BE94A1(-1, BigInteger_nat_Z67CCE57D(BigNatModule_add(BigNatModule_ofInt64(fromBits(4294967295, 2147483647, false)), BigNatModule_one)));\n }\n else {\n return BigInteger_$ctor_Z2BE94A1(-1, BigInteger_nat_Z67CCE57D(BigNatModule_ofInt64(op_UnaryNegation(n))));\n }\n}\n\nexport function BigInteger_get_One() {\n return BigInteger.one;\n}\n\nexport function BigInteger_get_Two() {\n return BigInteger.two;\n}\n\nexport function BigInteger_get_Zero() {\n return BigInteger.zero;\n}\n\nexport function BigInteger_op_UnaryNegation_Z665282C2(z) {\n const matchValue = BigInteger__get_SignInt(z) | 0;\n if (matchValue === 0) {\n return BigInteger_get_Zero();\n }\n else {\n return BigInteger_create_Z2BE94A1(op_UnaryNegation_Int32(matchValue), BigInteger__get_V(z));\n }\n}\n\nexport function BigInteger_Scale_Z320F31E(k, z) {\n if (BigInteger__get_SignInt(z) === 0) {\n return BigInteger_get_Zero();\n }\n else if (k < 0) {\n return BigInteger_create_Z2BE94A1(op_UnaryNegation_Int32(BigInteger__get_SignInt(z)), BigNatModule_scale(op_UnaryNegation_Int32(k), BigInteger__get_V(z)));\n }\n else {\n return BigInteger_create_Z2BE94A1(BigInteger__get_SignInt(z), BigNatModule_scale(k, BigInteger__get_V(z)));\n }\n}\n\nexport function BigInteger_subnn_6A57060(nx, ny) {\n if (BigNatModule_gte(nx, ny)) {\n return BigInteger_posn_Z67CCE57D(BigNatModule_sub(nx, ny));\n }\n else {\n return BigInteger_negn_Z67CCE57D(BigNatModule_sub(ny, nx));\n }\n}\n\nexport function BigInteger_addnn_6A57060(nx, ny) {\n return BigInteger_posn_Z67CCE57D(BigNatModule_add(nx, ny));\n}\n\nexport function BigInteger__get_IsZero(x) {\n if (BigInteger__get_SignInt(x) === 0) {\n return true;\n }\n else {\n return BigNatModule_isZero(BigInteger__get_V(x));\n }\n}\n\nexport function BigInteger__get_IsOne(x) {\n if (BigInteger__get_SignInt(x) === 1) {\n return BigNatModule_isOne(BigInteger__get_V(x));\n }\n else {\n return false;\n }\n}\n\nexport function BigInteger_op_Addition_56F059C0(x, y) {\n if (BigInteger__get_IsZero(y)) {\n return x;\n }\n else if (BigInteger__get_IsZero(x)) {\n return y;\n }\n else {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 4;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 4;\n }\n }\n else {\n pattern_matching_result = 4;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigInteger_addnn_6A57060(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigInteger_op_UnaryNegation_Z665282C2(BigInteger_addnn_6A57060(BigInteger__get_V(x), BigInteger__get_V(y)));\n }\n case 2: {\n return BigInteger_subnn_6A57060(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 3: {\n return BigInteger_subnn_6A57060(BigInteger__get_V(y), BigInteger__get_V(x));\n }\n case 4: {\n throw (new Error(\"signs should be +/- 1\\\\nParameter name: x\"));\n }\n }\n }\n}\n\nexport function BigInteger_op_Subtraction_56F059C0(x, y) {\n if (BigInteger__get_IsZero(y)) {\n return x;\n }\n else if (BigInteger__get_IsZero(x)) {\n return BigInteger_op_UnaryNegation_Z665282C2(y);\n }\n else {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 4;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 4;\n }\n }\n else {\n pattern_matching_result = 4;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigInteger_subnn_6A57060(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigInteger_subnn_6A57060(BigInteger__get_V(y), BigInteger__get_V(x));\n }\n case 2: {\n return BigInteger_addnn_6A57060(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 3: {\n return BigInteger_op_UnaryNegation_Z665282C2(BigInteger_addnn_6A57060(BigInteger__get_V(x), BigInteger__get_V(y)));\n }\n case 4: {\n throw (new Error(\"signs should be +/- 1\\\\nParameter name: x\"));\n }\n }\n }\n}\n\nexport function BigInteger_op_Multiply_56F059C0(x, y) {\n if (BigInteger__get_IsZero(x)) {\n return x;\n }\n else if (BigInteger__get_IsZero(y)) {\n return y;\n }\n else if (BigInteger__get_IsOne(x)) {\n return y;\n }\n else if (BigInteger__get_IsOne(y)) {\n return x;\n }\n else {\n const m = BigNatModule_mul(BigInteger__get_V(x), BigInteger__get_V(y));\n return BigInteger_create_Z2BE94A1(BigInteger__get_SignInt(x) * BigInteger__get_SignInt(y), m);\n }\n}\n\nexport function BigInteger_DivRem_56F059C0(x, y) {\n if (BigInteger__get_IsZero(y)) {\n throw (new Error());\n }\n if (BigInteger__get_IsZero(x)) {\n return [BigInteger_get_Zero(), BigInteger_get_Zero()];\n }\n else {\n const patternInput = BigNatModule_divmod(BigInteger__get_V(x), BigInteger__get_V(y));\n const r = patternInput[1];\n const d = patternInput[0];\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 4;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 4;\n }\n }\n else {\n pattern_matching_result = 4;\n }\n switch (pattern_matching_result) {\n case 0: {\n return [BigInteger_posn_Z67CCE57D(d), BigInteger_posn_Z67CCE57D(r)];\n }\n case 1: {\n return [BigInteger_posn_Z67CCE57D(d), BigInteger_negn_Z67CCE57D(r)];\n }\n case 2: {\n return [BigInteger_negn_Z67CCE57D(d), BigInteger_posn_Z67CCE57D(r)];\n }\n case 3: {\n return [BigInteger_negn_Z67CCE57D(d), BigInteger_negn_Z67CCE57D(r)];\n }\n case 4: {\n throw (new Error(\"signs should be +/- 1\\\\nParameter name: x\"));\n }\n }\n }\n}\n\nexport function BigInteger_op_Division_56F059C0(x, y) {\n return BigInteger_DivRem_56F059C0(x, y)[0];\n}\n\nexport function BigInteger_op_Modulus_56F059C0(x, y) {\n return BigInteger_DivRem_56F059C0(x, y)[1];\n}\n\nexport function BigInteger_op_RightShift_62E082A2(x, y) {\n return BigInteger_op_Division_56F059C0(x, BigInteger_Pow_62E082A2(BigInteger_get_Two(), y));\n}\n\nexport function BigInteger_op_LeftShift_62E082A2(x, y) {\n return BigInteger_op_Multiply_56F059C0(x, BigInteger_Pow_62E082A2(BigInteger_get_Two(), y));\n}\n\nexport function BigInteger_op_BitwiseAnd_56F059C0(x, y) {\n return BigInteger_posn_Z67CCE57D(BigNatModule_bitAnd(BigInteger__get_V(x), BigInteger__get_V(y)));\n}\n\nexport function BigInteger_op_BitwiseOr_56F059C0(x, y) {\n return BigInteger_posn_Z67CCE57D(BigNatModule_bitOr(BigInteger__get_V(x), BigInteger__get_V(y)));\n}\n\nexport function BigInteger_op_ExclusiveOr_56F059C0(x, y) {\n return BigInteger_posn_Z67CCE57D(BigNatModule_bitXor(BigInteger__get_V(x), BigInteger__get_V(y)));\n}\n\nexport function BigInteger_GreatestCommonDivisor_56F059C0(x, y) {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n if (matchValue[0] === 0) {\n if (matchValue[1] === 0) {\n return BigInteger_get_Zero();\n }\n else {\n return BigInteger_posn_Z67CCE57D(BigInteger__get_V(y));\n }\n }\n else if (matchValue[1] === 0) {\n return BigInteger_posn_Z67CCE57D(BigInteger__get_V(x));\n }\n else {\n return BigInteger_posn_Z67CCE57D(BigNatModule_hcf(BigInteger__get_V(x), BigInteger__get_V(y)));\n }\n}\n\nexport function BigInteger__get_IsNegative(x) {\n if (BigInteger__get_SignInt(x) === -1) {\n return !BigInteger__get_IsZero(x);\n }\n else {\n return false;\n }\n}\n\nexport function BigInteger__get_IsPositive(x) {\n if (BigInteger__get_SignInt(x) === 1) {\n return !BigInteger__get_IsZero(x);\n }\n else {\n return false;\n }\n}\n\nexport function BigInteger_Abs_Z665282C2(x) {\n if (BigInteger__get_SignInt(x) === -1) {\n return BigInteger_op_UnaryNegation_Z665282C2(x);\n }\n else {\n return x;\n }\n}\n\nexport function BigInteger_op_LessThanOrEqual_56F059C0(x, y) {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 6;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 0) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 8;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 4;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 7;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 5;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else {\n pattern_matching_result = 9;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigNatModule_lte(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigNatModule_lte(BigInteger__get_V(y), BigInteger__get_V(x));\n }\n case 2: {\n if (BigNatModule_isZero(BigInteger__get_V(x))) {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n else {\n return false;\n }\n }\n case 3: {\n return true;\n }\n case 4: {\n return true;\n }\n case 5: {\n return BigNatModule_isZero(BigInteger__get_V(x));\n }\n case 6: {\n return true;\n }\n case 7: {\n return true;\n }\n case 8: {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n case 9: {\n throw (new Error(\"signs should be +/- 1 or 0\\\\nParameter name: x\"));\n }\n }\n}\n\nexport function BigInteger_op_GreaterThanOrEqual_56F059C0(x, y) {\n const matchValue = [BigInteger__get_SignInt(x), BigInteger__get_SignInt(y)];\n let pattern_matching_result;\n if (matchValue[0] === -1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 1;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 6;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 3;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 0) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 8;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 4;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 7;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else if (matchValue[0] === 1) {\n if (matchValue[1] === -1) {\n pattern_matching_result = 2;\n }\n else if (matchValue[1] === 0) {\n pattern_matching_result = 5;\n }\n else if (matchValue[1] === 1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 9;\n }\n }\n else {\n pattern_matching_result = 9;\n }\n switch (pattern_matching_result) {\n case 0: {\n return BigNatModule_gte(BigInteger__get_V(x), BigInteger__get_V(y));\n }\n case 1: {\n return BigNatModule_gte(BigInteger__get_V(y), BigInteger__get_V(x));\n }\n case 2: {\n return true;\n }\n case 3: {\n if (BigNatModule_isZero(BigInteger__get_V(x))) {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n else {\n return false;\n }\n }\n case 4: {\n return true;\n }\n case 5: {\n return true;\n }\n case 6: {\n return BigNatModule_isZero(BigInteger__get_V(x));\n }\n case 7: {\n return BigNatModule_isZero(BigInteger__get_V(y));\n }\n case 8: {\n return true;\n }\n case 9: {\n throw (new Error(\"signs should be +/- 1 or 0\\\\nParameter name: x\"));\n }\n }\n}\n\nexport function BigInteger_Pow_62E082A2(x, y) {\n if (y < 0) {\n throw (new Error(\"y\"));\n }\n const matchValue = [BigInteger__get_IsZero(x), y];\n if (matchValue[0]) {\n if (matchValue[1] === 0) {\n return BigInteger_get_One();\n }\n else {\n return BigInteger_get_Zero();\n }\n }\n else {\n const yval = BigInteger_$ctor_Z524259A4(y);\n return BigInteger_create_Z2BE94A1(BigNatModule_isZero(BigNatModule_rem(BigInteger__get_V(yval), BigNatModule_two)) ? 1 : BigInteger__get_SignInt(x), BigNatModule_pow(BigInteger__get_V(x), BigInteger__get_V(yval)));\n }\n}\n\nexport function BigInteger__get_ToInt32(x) {\n if (BigInteger__get_IsZero(x)) {\n return 0;\n }\n else {\n const u = BigNatModule_toUInt32(BigInteger__get_V(x));\n if (u <= (2147483647 >>> 0)) {\n return (BigInteger__get_SignInt(x) * (~(~u))) | 0;\n }\n else if ((BigInteger__get_SignInt(x) === -1) ? (u === ((2147483647 + 1) >>> 0)) : false) {\n return -2147483648;\n }\n else {\n throw (new Error());\n }\n }\n}\n\nexport function BigInteger__get_ToUInt32(x) {\n if (BigInteger__get_IsZero(x)) {\n return 0;\n }\n else {\n return BigNatModule_toUInt32(BigInteger__get_V(x));\n }\n}\n\nexport function BigInteger__get_ToInt64(x) {\n if (BigInteger__get_IsZero(x)) {\n return fromBits(0, 0, false);\n }\n else {\n const u = BigNatModule_toUInt64(BigInteger__get_V(x));\n if (compare(u, fromValue(fromBits(4294967295, 2147483647, false), true)) <= 0) {\n return op_Multiply(fromInteger(BigInteger__get_SignInt(x), false, 2), fromValue(u, false));\n }\n else if ((BigInteger__get_SignInt(x) === -1) ? equals(u, fromValue(op_Addition(fromBits(4294967295, 2147483647, false), fromBits(1, 0, false)), true)) : false) {\n return fromBits(0, 2147483648, false);\n }\n else {\n throw (new Error());\n }\n }\n}\n\nexport function BigInteger__get_ToUInt64(x) {\n if (BigInteger__get_IsZero(x)) {\n return fromBits(0, 0, true);\n }\n else {\n return BigNatModule_toUInt64(BigInteger__get_V(x));\n }\n}\n\nexport function BigInteger__get_ToDouble(x) {\n const matchValue = BigInteger__get_SignInt(x) | 0;\n switch (matchValue) {\n case -1: {\n return -BigNatModule_toFloat(BigInteger__get_V(x));\n }\n case 0: {\n return 0;\n }\n case 1: {\n return BigNatModule_toFloat(BigInteger__get_V(x));\n }\n default: {\n throw (new Error(\"signs should be +/- 1 or 0\\\\nParameter name: x\"));\n }\n }\n}\n\nexport function BigInteger__get_ToSByte(x) {\n return (BigInteger__get_ToInt32(x) + 0x80 & 0xFF) - 0x80;\n}\n\nexport function BigInteger__get_ToByte(x) {\n return BigInteger__get_ToUInt32(x) & 0xFF;\n}\n\nexport function BigInteger__get_ToInt16(x) {\n return (BigInteger__get_ToInt32(x) + 0x8000 & 0xFFFF) - 0x8000;\n}\n\nexport function BigInteger__get_ToUInt16(x) {\n return BigInteger__get_ToUInt32(x) & 0xFFFF;\n}\n\nexport function BigInteger__get_ToSingle(x) {\n return BigInteger__get_ToDouble(x);\n}\n\nexport function BigInteger__get_ToDecimal(x) {\n return new Decimal(BigInteger__get_ToDouble(x));\n}\n\nexport function BigInteger_Parse_Z721C83C5(text) {\n if (text == null) {\n throw (new Error(\"text\"));\n }\n const text_1 = text.trim();\n const len = text_1.length | 0;\n if (len === 0) {\n throw (new Error());\n }\n const matchValue = [text_1[0], len];\n if (matchValue[0] === \"+\") {\n if (matchValue[1] === 1) {\n throw (new Error());\n }\n else {\n return BigInteger_posn_Z67CCE57D(BigNatModule_ofString(text_1.slice(1, (len - 1) + 1)));\n }\n }\n else if (matchValue[0] === \"-\") {\n if (matchValue[1] === 1) {\n throw (new Error());\n }\n else {\n return BigInteger_negn_Z67CCE57D(BigNatModule_ofString(text_1.slice(1, (len - 1) + 1)));\n }\n }\n else {\n return BigInteger_posn_Z67CCE57D(BigNatModule_ofString(text_1));\n }\n}\n\nexport function BigInteger__get_IsSmall(x) {\n if (BigInteger__get_IsZero(x)) {\n return true;\n }\n else {\n return BigNatModule_isSmall(BigInteger__get_V(x));\n }\n}\n\nexport function BigInteger_Factorial_Z665282C2(x) {\n if (BigInteger__get_IsNegative(x)) {\n throw (new Error(\"mustBeNonNegative\\\\nParameter name: x\"));\n }\n if (BigInteger__get_IsPositive(x)) {\n return BigInteger_posn_Z67CCE57D(BigNatModule_factorial(BigInteger__get_V(x)));\n }\n else {\n return BigInteger_get_One();\n }\n}\n\nexport function BigInteger_op_UnaryPlus_Z665282C2(n1) {\n return n1;\n}\n\nexport function BigInteger_FromInt64_Z524259C1(x) {\n return BigInteger_$ctor_Z524259C1(x);\n}\n\nexport function BigInteger_FromInt32_Z524259A4(x) {\n return BigInteger_$ctor_Z524259A4(x);\n}\n\n","import { BigInteger_op_Inequality_56F059C0, BigInteger_op_Equality_56F059C0, BigInteger_op_GreaterThanOrEqual_56F059C0, BigInteger_op_GreaterThan_56F059C0, BigInteger_op_LessThanOrEqual_56F059C0, BigInteger_op_LessThan_56F059C0, BigInteger_op_ExclusiveOr_56F059C0, BigInteger_op_BitwiseOr_56F059C0, BigInteger_op_BitwiseAnd_56F059C0, BigInteger_op_LeftShift_62E082A2, BigInteger_op_RightShift_62E082A2, BigInteger_op_UnaryPlus_Z665282C2, BigInteger_op_UnaryNegation_Z665282C2, BigInteger_op_Modulus_56F059C0, BigInteger_op_Division_56F059C0, BigInteger_op_Multiply_56F059C0, BigInteger_op_Subtraction_56F059C0, BigInteger_op_Addition_56F059C0, BigInteger__get_IsOne, BigInteger__get_IsZero, BigInteger__get_Sign, BigInteger__get_ToDecimal, BigInteger__get_ToDouble, BigInteger__get_ToSingle, BigInteger__get_ToUInt64, BigInteger__get_ToInt64, BigInteger__get_ToUInt32, BigInteger__get_ToInt32, BigInteger__get_ToUInt16, BigInteger__get_ToInt16, BigInteger__get_ToByte, BigInteger__get_ToSByte, BigInteger_$ctor_Z524259A4, BigInteger_$ctor_Z524259C1, BigInteger_get_Two, BigInteger_get_One, BigInteger_get_Zero, BigInteger_Abs_Z665282C2, BigInteger_Pow_62E082A2, BigInteger_GreatestCommonDivisor_56F059C0, BigInteger_DivRem_56F059C0, BigInteger_Parse_Z721C83C5, BigInteger } from \"./BigInt/z.js\";\nimport { fromInteger } from \"./Long.js\";\nimport { comparePrimitives, min, compare as compare_1, equals as equals_1, safeHash } from \"./Util.js\";\nimport { toString as toString_1 } from \"./Types.js\";\nimport { fold, empty, ofArrayWithTail, cons, toArray, head, skipWhile } from \"./List.js\";\nimport { fill, reverse } from \"./Array.js\";\n\nexport function isBigInt(x) {\n return x instanceof BigInteger;\n}\n\nexport function tryParse(str, res) {\n try {\n res.contents = BigInteger_Parse_Z721C83C5(str);\n return true;\n }\n catch (matchValue) {\n return false;\n }\n}\n\nexport function divRem(x, y, remainder) {\n const patternInput = BigInteger_DivRem_56F059C0(x, y);\n remainder.contents = patternInput[1];\n return patternInput[0];\n}\n\nexport function parse(arg00) {\n return BigInteger_Parse_Z721C83C5(arg00);\n}\n\nexport function greatestCommonDivisor(arg00, arg01) {\n return BigInteger_GreatestCommonDivisor_56F059C0(arg00, arg01);\n}\n\nexport function pow(arg00, arg01) {\n return BigInteger_Pow_62E082A2(arg00, arg01);\n}\n\nexport function abs(arg00) {\n return BigInteger_Abs_Z665282C2(arg00);\n}\n\nexport const zero = BigInteger_get_Zero();\n\nexport const one = BigInteger_get_One();\n\nexport const two = BigInteger_get_Two();\n\nexport function fromString(s) {\n return BigInteger_Parse_Z721C83C5(s);\n}\n\nexport function fromZero() {\n return BigInteger_get_Zero();\n}\n\nexport function fromOne() {\n return BigInteger_get_One();\n}\n\nexport function fromInt64(i) {\n return BigInteger_$ctor_Z524259C1(i);\n}\n\nexport function fromInt32(i) {\n if (i > 2147483647) {\n return BigInteger_$ctor_Z524259C1(fromInteger(i, false, 6));\n }\n else {\n return BigInteger_$ctor_Z524259A4(i);\n }\n}\n\nexport function toSByte(x) {\n return BigInteger__get_ToSByte(x);\n}\n\nexport function toByte(x) {\n return BigInteger__get_ToByte(x);\n}\n\nexport function toInt16(x) {\n return BigInteger__get_ToInt16(x);\n}\n\nexport function toUInt16(x) {\n return BigInteger__get_ToUInt16(x);\n}\n\nexport function toInt32(x) {\n return BigInteger__get_ToInt32(x);\n}\n\nexport function toUInt32(x) {\n return BigInteger__get_ToUInt32(x);\n}\n\nexport function toInt64(x) {\n return BigInteger__get_ToInt64(x);\n}\n\nexport function toUInt64(x) {\n return BigInteger__get_ToUInt64(x);\n}\n\nexport function toSingle(x) {\n return BigInteger__get_ToSingle(x);\n}\n\nexport function toDouble(x) {\n return BigInteger__get_ToDouble(x);\n}\n\nexport function toDecimal(x) {\n return BigInteger__get_ToDecimal(x);\n}\n\nexport function sign(x) {\n return BigInteger__get_Sign(x);\n}\n\nexport function isZero(x) {\n return BigInteger__get_IsZero(x);\n}\n\nexport function isOne(x) {\n return BigInteger__get_IsOne(x);\n}\n\nexport function hash(x) {\n return safeHash(x);\n}\n\nexport function compare(x, y) {\n return x.CompareTo(y);\n}\n\nexport function equals(x, y) {\n return equals_1(x, y);\n}\n\nexport function toString(x) {\n return toString_1(x);\n}\n\nexport const get_Zero = BigInteger_get_Zero();\n\nexport const get_One = BigInteger_get_One();\n\nexport function op_Addition(arg00, arg01) {\n return BigInteger_op_Addition_56F059C0(arg00, arg01);\n}\n\nexport function op_Subtraction(arg00, arg01) {\n return BigInteger_op_Subtraction_56F059C0(arg00, arg01);\n}\n\nexport function op_Multiply(arg00, arg01) {\n return BigInteger_op_Multiply_56F059C0(arg00, arg01);\n}\n\nexport function op_Division(arg00, arg01) {\n return BigInteger_op_Division_56F059C0(arg00, arg01);\n}\n\nexport function op_Modulus(arg00, arg01) {\n return BigInteger_op_Modulus_56F059C0(arg00, arg01);\n}\n\nexport function op_UnaryNegation(arg00) {\n return BigInteger_op_UnaryNegation_Z665282C2(arg00);\n}\n\nexport function op_UnaryPlus(arg00) {\n return BigInteger_op_UnaryPlus_Z665282C2(arg00);\n}\n\nexport function op_RightShift(arg00, arg01) {\n return BigInteger_op_RightShift_62E082A2(arg00, arg01);\n}\n\nexport function op_LeftShift(arg00, arg01) {\n return BigInteger_op_LeftShift_62E082A2(arg00, arg01);\n}\n\nexport function op_BitwiseAnd(arg00, arg01) {\n return BigInteger_op_BitwiseAnd_56F059C0(arg00, arg01);\n}\n\nexport function op_BitwiseOr(arg00, arg01) {\n return BigInteger_op_BitwiseOr_56F059C0(arg00, arg01);\n}\n\nexport function op_ExclusiveOr(arg00, arg01) {\n return BigInteger_op_ExclusiveOr_56F059C0(arg00, arg01);\n}\n\nexport function op_LessThan(arg00, arg01) {\n return BigInteger_op_LessThan_56F059C0(arg00, arg01);\n}\n\nexport function op_LessThanOrEqual(arg00, arg01) {\n return BigInteger_op_LessThanOrEqual_56F059C0(arg00, arg01);\n}\n\nexport function op_GreaterThan(arg00, arg01) {\n return BigInteger_op_GreaterThan_56F059C0(arg00, arg01);\n}\n\nexport function op_GreaterThanOrEqual(arg00, arg01) {\n return BigInteger_op_GreaterThanOrEqual_56F059C0(arg00, arg01);\n}\n\nexport function op_Equality(arg00, arg01) {\n return BigInteger_op_Equality_56F059C0(arg00, arg01);\n}\n\nexport function op_Inequality(arg00, arg01) {\n return BigInteger_op_Inequality_56F059C0(arg00, arg01);\n}\n\nfunction flipTwosComplement(currByte, lowBitFound) {\n const matchValue = [currByte, lowBitFound];\n if (matchValue[1]) {\n return [(currByte ^ 255) & 255, true];\n }\n else if (matchValue[0] === 0) {\n return [0, false];\n }\n else {\n return [(currByte ^ (254 << (new Int32Array([0, 1, 2, 3, 4, 5, 6, 7])).find((i) => ((currByte & (1 << i)) > 0)))) & 255, true];\n }\n}\n\nexport function toByteArray(value) {\n if (equals_1(value, zero)) {\n return new Uint8Array([0]);\n }\n else {\n const isPositive = compare_1(value, zero) > 0;\n const value_1 = isPositive ? value : BigInteger_op_Multiply_56F059C0(BigInteger_$ctor_Z524259A4(-1), value);\n const mask32 = fromInt64(fromInteger(4294967295, false, 6));\n const loop = (accumBytes_mut, consumeValue_mut, lowBitFound_mut) => {\n let value_6, value_8, value_9, value_10;\n loop:\n while (true) {\n const accumBytes = accumBytes_mut, consumeValue = consumeValue_mut, lowBitFound = lowBitFound_mut;\n if (compare_1(consumeValue, zero) <= 0) {\n const accumBytes_1 = isPositive ? skipWhile((b) => (b === 0), accumBytes) : skipWhile((b_1) => (b_1 === 255), accumBytes);\n const isHighBitOne = (head(accumBytes_1) & 128) !== 0;\n return reverse(toArray((isPositive ? isHighBitOne : false) ? cons(0, accumBytes_1) : (((!isPositive) ? (!isHighBitOne) : false) ? cons(255, accumBytes_1) : accumBytes_1)));\n }\n else {\n const currValue = toUInt32(BigInteger_op_BitwiseAnd_56F059C0(consumeValue, mask32));\n if (isPositive) {\n const b0 = currValue & 0xFF;\n let b1;\n const value_4 = currValue >>> 8;\n b1 = (value_4 & 0xFF);\n let b2;\n const value_5 = currValue >>> 16;\n b2 = (value_5 & 0xFF);\n accumBytes_mut = ofArrayWithTail([(value_6 = (currValue >>> 24), value_6 & 0xFF), b2, b1, b0], accumBytes);\n consumeValue_mut = BigInteger_op_RightShift_62E082A2(consumeValue, 32);\n lowBitFound_mut = false;\n continue loop;\n }\n else {\n const patternInput = flipTwosComplement(currValue & 0xFF, lowBitFound);\n const patternInput_1 = flipTwosComplement((value_8 = (currValue >>> 8), value_8 & 0xFF), patternInput[1]);\n const patternInput_2 = flipTwosComplement((value_9 = (currValue >>> 16), value_9 & 0xFF), patternInput_1[1]);\n const patternInput_3 = flipTwosComplement((value_10 = (currValue >>> 24), value_10 & 0xFF), patternInput_2[1]);\n accumBytes_mut = ofArrayWithTail([patternInput_3[0], patternInput_2[0], patternInput_1[0], patternInput[0]], accumBytes);\n consumeValue_mut = BigInteger_op_RightShift_62E082A2(consumeValue, 32);\n lowBitFound_mut = patternInput_3[1];\n continue loop;\n }\n }\n break;\n }\n };\n return loop(empty(), value_1, false);\n }\n}\n\nexport function fromByteArray(bytes) {\n if (bytes == null) {\n throw (new Error(\"bytes\"));\n }\n if (bytes.length === 0) {\n return zero;\n }\n else {\n const isPositive = (bytes[bytes.length - 1] & 128) === 0;\n const buffer = fill(new Uint8Array(4), 0, 4, 0);\n const loop = (accumUInt32_mut, currIndex_mut, bytesRemaining_mut, lowBitFound_mut) => {\n loop:\n while (true) {\n const accumUInt32 = accumUInt32_mut, currIndex = currIndex_mut, bytesRemaining = bytesRemaining_mut, lowBitFound = lowBitFound_mut;\n if (bytesRemaining === 0) {\n const value_2 = fold((acc, value) => BigInteger_op_Addition_56F059C0(BigInteger_op_LeftShift_62E082A2(acc, 32), fromInt64(fromInteger(value, false, 6))), zero, accumUInt32);\n if (isPositive) {\n return value_2;\n }\n else {\n return BigInteger_op_Multiply_56F059C0(BigInteger_$ctor_Z524259A4(-1), value_2);\n }\n }\n else {\n const bytesToProcess = min((x, y) => comparePrimitives(x, y), bytesRemaining, 4) | 0;\n for (let i_1 = 0; i_1 <= (bytesToProcess - 1); i_1++) {\n buffer[i_1] = bytes[currIndex + i_1];\n }\n if (isPositive) {\n fill(buffer, bytesToProcess, 4 - bytesToProcess, 0);\n accumUInt32_mut = cons((((((buffer[0] | ((buffer[1] << 8) >>> 0)) >>> 0) | ((buffer[2] << 16) >>> 0)) >>> 0) | ((buffer[3] << 24) >>> 0)) >>> 0, accumUInt32);\n currIndex_mut = (currIndex + bytesToProcess);\n bytesRemaining_mut = (bytesRemaining - bytesToProcess);\n lowBitFound_mut = false;\n continue loop;\n }\n else {\n fill(buffer, bytesToProcess, 4 - bytesToProcess, 255);\n const patternInput = flipTwosComplement(buffer[0], lowBitFound);\n const patternInput_1 = flipTwosComplement(buffer[1], patternInput[1]);\n const patternInput_2 = flipTwosComplement(buffer[2], patternInput_1[1]);\n const patternInput_3 = flipTwosComplement(buffer[3], patternInput_2[1]);\n accumUInt32_mut = cons((((((patternInput[0] | ((patternInput_1[0] << 8) >>> 0)) >>> 0) | ((patternInput_2[0] << 16) >>> 0)) >>> 0) | ((patternInput_3[0] << 24) >>> 0)) >>> 0, accumUInt32);\n currIndex_mut = (currIndex + bytesToProcess);\n bytesRemaining_mut = (bytesRemaining - bytesToProcess);\n lowBitFound_mut = patternInput_3[1];\n continue loop;\n }\n }\n break;\n }\n };\n return loop(empty(), 0, bytes.length, false);\n }\n}\n\n","export function create(pattern, options = 0) {\n // Supported RegexOptions\n // * IgnoreCase: 0x0001\n // * Multiline: 0x0002\n // * Singleline: 0x0010\n // * ECMAScript: 0x0100 (ignored)\n if ((options & ~(1 ^ 2 ^ 16 ^ 256)) !== 0) {\n throw new Error(\"RegexOptions only supports: IgnoreCase, Multiline, Singleline and ECMAScript\");\n }\n let flags = \"g\";\n flags += options & 1 ? \"i\" : \"\"; // 0x0001 RegexOptions.IgnoreCase\n flags += options & 2 ? \"m\" : \"\";\n flags += options & 16 ? \"s\" : \"\";\n return new RegExp(pattern, flags);\n}\n// From http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\nexport function escape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\nexport function unescape(str) {\n return str.replace(/\\\\([\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|])/g, \"$1\");\n}\nexport function isMatch(str, pattern, options = 0) {\n let reg;\n reg = str instanceof RegExp\n ? (reg = str, str = pattern, reg.lastIndex = options, reg)\n : reg = create(pattern, options);\n return reg.test(str);\n}\nexport function match(str, pattern, options = 0) {\n let reg;\n reg = str instanceof RegExp\n ? (reg = str, str = pattern, reg.lastIndex = options, reg)\n : reg = create(pattern, options);\n return reg.exec(str);\n}\nexport function matches(str, pattern, options = 0) {\n let reg;\n reg = str instanceof RegExp\n ? (reg = str, str = pattern, reg.lastIndex = options, reg)\n : reg = create(pattern, options);\n if (!reg.global) {\n throw new Error(\"Non-global RegExp\"); // Prevent infinite loop\n }\n let m = reg.exec(str);\n const matches = [];\n while (m !== null) {\n matches.push(m);\n m = reg.exec(str);\n }\n return matches;\n}\nexport function options(reg) {\n let options = 256; // ECMAScript\n options |= reg.ignoreCase ? 1 : 0;\n options |= reg.multiline ? 2 : 0;\n return options;\n}\nexport function replace(reg, input, replacement, limit, offset = 0) {\n function replacer() {\n let res = arguments[0];\n if (limit) {\n limit--;\n const match = [];\n const len = arguments.length;\n // arguments: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_function_as_a_parameter\n // * match: matched substring\n // * p1, p2, ...: nth capture group string\n // * offset: offset of matched substring\n // * string: whole string examined\n // * groups: named capturing groups\n // ONLY if regex contains a named capture group AND browser supports named groups\n // -> last element can be groups OR input string\n // -> check if last element is string\n const withGroups = typeof arguments[len - 1] !== \"string\";\n let pLast = withGroups ? len - 3 : len - 2;\n for (let i = 0; i < pLast; i++) {\n match.push(arguments[i]);\n }\n match.index = arguments[pLast++];\n match.input = arguments[pLast++];\n if (withGroups) {\n match.groups = arguments[pLast];\n }\n res = replacement(match);\n }\n return res;\n }\n if (typeof reg === \"string\") {\n const tmp = reg;\n reg = create(input, limit !== null && limit !== void 0 ? limit : 0);\n input = tmp;\n limit = undefined;\n }\n if (typeof replacement === \"function\") {\n limit = limit == null ? -1 : limit;\n return input.substring(0, offset) + input.substring(offset).replace(reg, replacer);\n }\n else {\n replacement =\n replacement\n // $0 doesn't work with JS regex, see #1155\n .replace(/\\$0/g, (_s) => \"$&\")\n // named groups in replacement are `${name}` in .Net, but `$` in JS (in regex: groups are `(?...)` in both)\n .replace(/\\${([^}]+)}/g, \"\\$<$1>\");\n if (limit != null) {\n let m;\n const sub1 = input.substring(offset);\n const _matches = matches(reg, sub1);\n const sub2 = matches.length > limit ? (m = _matches[limit - 1], sub1.substring(0, m.index + m[0].length)) : sub1;\n return input.substring(0, offset) + sub2.replace(reg, replacement)\n + input.substring(offset + sub2.length);\n }\n else {\n return input.replace(reg, replacement);\n }\n }\n}\nexport function split(reg, input, limit, offset = 0) {\n if (typeof reg === \"string\") {\n const tmp = reg;\n reg = create(input, limit !== null && limit !== void 0 ? limit : 0);\n input = tmp;\n limit = undefined;\n }\n input = input.substring(offset);\n return input.split(reg, limit);\n}\n","import { FSharpRef, Union } from \"../fable-library.3.2.1/Types.js\";\nimport { getUnionFields, getRecordField, makeRecord, fullName, makeUnion, name as name_2, union_type, string_type } from \"../fable-library.3.2.1/Reflection.js\";\nimport { Json, Json$reflection } from \"./Json.fs.js\";\nimport { map as map_3, choose, ofArray, tryFind as tryFind_2, toArray, length, tail as tail_1, head, isEmpty, empty, singleton } from \"../fable-library.3.2.1/List.js\";\nimport { toArray as toArray_1, map as map_4, collect, tryFind as tryFind_3, forAll, empty as empty_1, singleton as singleton_1, append, delay, toList } from \"../fable-library.3.2.1/Seq.js\";\nimport { value as value_87, some, map as map_1 } from \"../fable-library.3.2.1/Option.js\";\nimport { toArray as toArray_2, isEmpty as isEmpty_1, ofList as ofList_1, find, count, containsKey, toList as toList_1, tryFind, remove } from \"../fable-library.3.2.1/Map.js\";\nimport { toText, join, fromBase64String, printf, toFail, substring, endsWith } from \"../fable-library.3.2.1/String.js\";\nimport { parse } from \"../fable-library.3.2.1/Double.js\";\nimport { tryParse, parse as parse_1 } from \"../fable-library.3.2.1/Int32.js\";\nimport { toString as toString_2 } from \"../fable-library.3.2.1/Decimal.js\";\nimport Decimal from \"../fable-library.3.2.1/Decimal.js\";\nimport { toString, fromInteger, toNumber, tryParse as tryParse_1, fromInt, parse as parse_2, fromNumber } from \"../fable-library.3.2.1/Long.js\";\nimport { SimpleJson_stringify, SimpleJson_parseNative, SimpleJson_parse, SimpleJson_toString, SimpleJson_toPlainObject } from \"./SimpleJson.fs.js\";\nimport { toString as toString_1, fromInt32, parse as parse_3 } from \"../fable-library.3.2.1/BigInt.js\";\nimport { toString as toString_3, parse as parse_4 } from \"../fable-library.3.2.1/Date.js\";\nimport { parse as parse_5 } from \"../fable-library.3.2.1/DateOffset.js\";\nimport DateOffset from \"../fable-library.3.2.1/DateOffset.js\";\nimport { concat, mapIndexed, equalsWith, zip, map as map_2, tryFind as tryFind_1 } from \"../fable-library.3.2.1/Array.js\";\nimport { int32ToString, getEnumerator, structuralHash, safeHash, equals, compare } from \"../fable-library.3.2.1/Util.js\";\nimport { parse as parse_6 } from \"../fable-library.3.2.1/Guid.js\";\nimport { getBytesInt32, toInt64 } from \"../fable-library.3.2.1/BitConverter.js\";\nimport { ofList } from \"../fable-library.3.2.1/Set.js\";\nimport { TypeInfo } from \"./TypeInfo.fs.js\";\nimport { Dictionary } from \"../fable-library.3.2.1/MutableMap.js\";\nimport { addToSet, addToDict } from \"../fable-library.3.2.1/MapUtil.js\";\nimport { HashSet } from \"../fable-library.3.2.1/MutableSet.js\";\nimport { enumUnion, isPrimitive } from \"./TypeInfo.Converter.fs.js\";\nimport quote from \"./quote.js\";\n\nexport const Convert_insideBrowser = (new Function(\"try {return this===window;}catch(e){ return false;}\"))();\n\nfunction Convert_isDefined(value) {\n return !((value === undefined));\n}\n\nexport function Convert_usingFable3() {\n return true;\n}\n\nexport const Convert_isUsingFable3 = Convert_usingFable3();\n\nexport class Convert_InternalMap extends Union {\n constructor(tag, ...fields) {\n super();\n this.tag = (tag | 0);\n this.fields = fields;\n }\n cases() {\n return [\"MapEmpty\", \"MapOne\", \"MapNode\"];\n }\n}\n\nexport function Convert_InternalMap$reflection() {\n return union_type(\"Fable.SimpleJson.Convert.InternalMap\", [], Convert_InternalMap, () => [[], [[\"Item1\", string_type], [\"Item2\", Json$reflection()]], [[\"Item1\", string_type], [\"Item2\", Json$reflection()], [\"Item3\", Convert_InternalMap$reflection()], [\"Item4\", Convert_InternalMap$reflection()]]]);\n}\n\nexport function Convert_flattenMap(_arg1) {\n switch (_arg1.tag) {\n case 1: {\n return singleton([_arg1.fields[0], _arg1.fields[1]]);\n }\n case 2: {\n return toList(delay(() => append(Convert_flattenMap(_arg1.fields[2]), delay(() => append(Convert_flattenMap(_arg1.fields[3]), delay(() => singleton_1([_arg1.fields[0], _arg1.fields[1]])))))));\n }\n default: {\n return empty();\n }\n }\n}\n\nexport function Convert_$007CKeyValue$007C_$007C(key, map) {\n return map_1((value) => [key, value, remove(key, map)], tryFind(key, map));\n}\n\nexport function Convert_$007CNonArray$007C_$007C(_arg1) {\n if (_arg1.tag === 4) {\n return void 0;\n }\n else {\n return _arg1;\n }\n}\n\nexport function Convert_$007CMapEmpty$007C_$007C(json) {\n let pattern_matching_result;\n if (json.tag === 1) {\n if (json.fields[0] === \"MapEmpty\") {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return json;\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function Convert_$007CMapKey$007C_$007C(_arg1) {\n switch (_arg1.tag) {\n case 0: {\n return _arg1.fields[0].toString();\n }\n case 1: {\n return _arg1.fields[0];\n }\n default: {\n return void 0;\n }\n }\n}\n\nexport function Convert_$007CMapOne$007C_$007C(_arg1) {\n let pattern_matching_result, key, value;\n if (_arg1.tag === 4) {\n if (!isEmpty(_arg1.fields[0])) {\n if (head(_arg1.fields[0]).tag === 1) {\n if (head(_arg1.fields[0]).fields[0] === \"MapOne\") {\n if (!isEmpty(tail_1(_arg1.fields[0]))) {\n const activePatternResult6334 = Convert_$007CMapKey$007C_$007C(head(tail_1(_arg1.fields[0])));\n if (activePatternResult6334 != null) {\n if (!isEmpty(tail_1(tail_1(_arg1.fields[0])))) {\n if (isEmpty(tail_1(tail_1(tail_1(_arg1.fields[0]))))) {\n pattern_matching_result = 0;\n key = activePatternResult6334;\n value = head(tail_1(tail_1(_arg1.fields[0])));\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return [key, value];\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function Convert_$007CMapNode$007C_$007C(_arg1) {\n let pattern_matching_result, key, left, right, value;\n if (_arg1.tag === 4) {\n if (!isEmpty(_arg1.fields[0])) {\n if (head(_arg1.fields[0]).tag === 1) {\n if (head(_arg1.fields[0]).fields[0] === \"MapNode\") {\n if (!isEmpty(tail_1(_arg1.fields[0]))) {\n const activePatternResult6336 = Convert_$007CMapKey$007C_$007C(head(tail_1(_arg1.fields[0])));\n if (activePatternResult6336 != null) {\n if (!isEmpty(tail_1(tail_1(_arg1.fields[0])))) {\n if (!isEmpty(tail_1(tail_1(tail_1(_arg1.fields[0]))))) {\n if (!isEmpty(tail_1(tail_1(tail_1(tail_1(_arg1.fields[0])))))) {\n if (!isEmpty(tail_1(tail_1(tail_1(tail_1(tail_1(_arg1.fields[0]))))))) {\n if (head(tail_1(tail_1(tail_1(tail_1(tail_1(_arg1.fields[0])))))).tag === 0) {\n if (isEmpty(tail_1(tail_1(tail_1(tail_1(tail_1(tail_1(_arg1.fields[0])))))))) {\n pattern_matching_result = 0;\n key = activePatternResult6336;\n left = head(tail_1(tail_1(tail_1(_arg1.fields[0]))));\n right = head(tail_1(tail_1(tail_1(tail_1(_arg1.fields[0])))));\n value = head(tail_1(tail_1(_arg1.fields[0])));\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return [key, value, left, right];\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function Convert_generateMap(json) {\n if (Convert_$007CMapEmpty$007C_$007C(json) != null) {\n return new Convert_InternalMap(0);\n }\n else {\n const activePatternResult6339 = Convert_$007CMapOne$007C_$007C(json);\n if (activePatternResult6339 != null) {\n const key = activePatternResult6339[0];\n const value = activePatternResult6339[1];\n return new Convert_InternalMap(1, key, value);\n }\n else {\n const activePatternResult6338 = Convert_$007CMapNode$007C_$007C(json);\n if (activePatternResult6338 != null) {\n const key_1 = activePatternResult6338[0];\n const left = activePatternResult6338[2];\n const right = activePatternResult6338[3];\n const value_1 = activePatternResult6338[1];\n const matchValue = [Convert_generateMap(left), Convert_generateMap(right)];\n let pattern_matching_result, leftMap, rightMap;\n if (matchValue[0] != null) {\n if (matchValue[1] != null) {\n pattern_matching_result = 0;\n leftMap = matchValue[0];\n rightMap = matchValue[1];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return new Convert_InternalMap(2, key_1, value_1, leftMap, rightMap);\n }\n case 1: {\n return void 0;\n }\n }\n }\n else {\n return void 0;\n }\n }\n }\n}\n\nexport function Convert_flatteFable3Map(tree) {\n return toList(delay(() => {\n let matchValue, key, value;\n return append((matchValue = [tryFind(\"k\", tree), tryFind(\"v\", tree)], (matchValue[0] != null) ? ((matchValue[0].tag === 1) ? ((matchValue[1] != null) ? (key = matchValue[0].fields[0], (value = matchValue[1], singleton_1([key, value]))) : (void 0, empty_1())) : (void 0, empty_1())) : (void 0, empty_1())), delay(() => {\n let matchValue_1, left;\n return append((matchValue_1 = tryFind(\"left\", tree), (matchValue_1 != null) ? ((matchValue_1.tag === 5) ? (left = matchValue_1.fields[0], Convert_flatteFable3Map(left)) : (void 0, empty_1())) : (void 0, empty_1())), delay(() => {\n const matchValue_2 = tryFind(\"right\", tree);\n let pattern_matching_result, right;\n if (matchValue_2 != null) {\n if (matchValue_2.tag === 5) {\n pattern_matching_result = 0;\n right = matchValue_2.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return Convert_flatteFable3Map(right);\n }\n case 1: {\n return empty_1();\n }\n }\n }));\n }));\n }));\n}\n\nexport function Convert_flattenFable3Lists(linkedList) {\n return toList(delay(() => {\n let matchValue;\n return append((matchValue = tryFind(\"head\", linkedList), (matchValue == null) ? (void 0, empty_1()) : singleton_1(matchValue)), delay(() => {\n const matchValue_1 = tryFind(\"tail\", linkedList);\n let pattern_matching_result, tail;\n if (matchValue_1 != null) {\n if (matchValue_1.tag === 5) {\n pattern_matching_result = 0;\n tail = matchValue_1.fields[0];\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return Convert_flattenFable3Lists(tail);\n }\n case 1: {\n return empty_1();\n }\n }\n }));\n }));\n}\n\nexport function Convert_arrayLike(_arg1) {\n switch (_arg1.tag) {\n case 27: {\n return true;\n }\n case 25: {\n return true;\n }\n case 28: {\n return true;\n }\n case 29: {\n return true;\n }\n case 26: {\n return true;\n }\n case 32: {\n return true;\n }\n case 33: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport function Convert_isRecord(_arg1) {\n if (_arg1.tag === 36) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function Convert_unionOfRecords(_arg1) {\n if (_arg1.tag === 37) {\n return forAll((case$) => {\n if (case$.CaseTypes.length === 1) {\n return Convert_isRecord(case$.CaseTypes[0]);\n }\n else {\n return false;\n }\n }, _arg1.fields[0]()[0]);\n }\n else {\n return false;\n }\n}\n\nexport function Convert_optional(_arg1) {\n if (_arg1.tag === 24) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function Convert_isQuoted(input) {\n if (input.indexOf(\"\\\"\") === 0) {\n return endsWith(input, \"\\\"\");\n }\n else {\n return false;\n }\n}\n\nexport function Convert_betweenQuotes(input) {\n return (\"\\\"\" + input) + \"\\\"\";\n}\n\nexport function Convert_removeQuotes(input) {\n return substring(input, 1, input.length - 2);\n}\n\nexport function Convert_fromJsonAs(input_mut, typeInfo_mut) {\n let foundCase, foundCase_2, testExpr, values_8, tree_2, tree;\n Convert_fromJsonAs:\n while (true) {\n const input = input_mut, typeInfo = typeInfo_mut;\n const matchValue = [input, typeInfo];\n let pattern_matching_result, value_1;\n if (matchValue[0].tag === 0) {\n if (matchValue[1].tag === 9) {\n pattern_matching_result = 0;\n value_1 = matchValue[0].fields[0];\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else if (matchValue[0].tag === 1) {\n if (matchValue[1].tag === 9) {\n if (matchValue[0].fields[0].toLocaleLowerCase() === \"nan\") {\n pattern_matching_result = 1;\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n }\n else {\n pattern_matching_result = 2;\n }\n switch (pattern_matching_result) {\n case 0: {\n return value_1;\n }\n case 1: {\n return NaN;\n }\n case 2: {\n let pattern_matching_result_1, value_4, value_5;\n if (matchValue[0].tag === 1) {\n if (matchValue[1].tag === 9) {\n pattern_matching_result_1 = 0;\n value_4 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 8) {\n if (matchValue[0].fields[0].toLocaleLowerCase() === \"nan\") {\n pattern_matching_result_1 = 2;\n }\n else {\n pattern_matching_result_1 = 3;\n }\n }\n else {\n pattern_matching_result_1 = 3;\n }\n }\n else if (matchValue[0].tag === 0) {\n if (matchValue[1].tag === 8) {\n pattern_matching_result_1 = 1;\n value_5 = matchValue[0].fields[0];\n }\n else {\n pattern_matching_result_1 = 3;\n }\n }\n else {\n pattern_matching_result_1 = 3;\n }\n switch (pattern_matching_result_1) {\n case 0: {\n return parse(value_4);\n }\n case 1: {\n return value_5;\n }\n case 2: {\n return NaN;\n }\n case 3: {\n let pattern_matching_result_2, value_7, value_8, value_9, value_10, value_11, value_12, value_13, value_14, value_15, value_16, value_17, value_18, value_19, value_20, value_21, value_22, value_23, value_24, value_25, getlElemType, value_26, getElemType, value_27, getElemType_1, value_28, genericJson, value_29, value_30, value_31, value_32, value_33, value_34, value_35, value_36, value_37, value_38, getTypes, values, jsonValue_5, optionalTypeDelayed_5;\n if (matchValue[0].tag === 1) {\n if (matchValue[1].tag === 8) {\n pattern_matching_result_2 = 0;\n value_7 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 6) {\n pattern_matching_result_2 = 3;\n value_10 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 1) {\n pattern_matching_result_2 = 4;\n value_11 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n pattern_matching_result_2 = 6;\n value_13 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 10) {\n pattern_matching_result_2 = 8;\n value_15 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 11) {\n pattern_matching_result_2 = 10;\n value_17 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 3) {\n pattern_matching_result_2 = 13;\n value_20 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 4) {\n pattern_matching_result_2 = 15;\n value_22 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 5) {\n pattern_matching_result_2 = 17;\n value_24 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 35) {\n pattern_matching_result_2 = 19;\n getlElemType = matchValue[1].fields[0];\n value_26 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 27) {\n pattern_matching_result_2 = 21;\n getElemType_1 = matchValue[1].fields[0];\n value_28 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 20) {\n pattern_matching_result_2 = 24;\n genericJson = matchValue[0];\n }\n else if (matchValue[1].tag === 12) {\n pattern_matching_result_2 = 25;\n value_29 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 13) {\n pattern_matching_result_2 = 26;\n value_30 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 14) {\n pattern_matching_result_2 = 29;\n value_33 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 17) {\n pattern_matching_result_2 = 30;\n value_34 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 15) {\n pattern_matching_result_2 = 32;\n value_36 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 16) {\n pattern_matching_result_2 = 33;\n value_37 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 24) {\n if (!equals(matchValue[0], new Json(3))) {\n pattern_matching_result_2 = 37;\n jsonValue_5 = matchValue[0];\n optionalTypeDelayed_5 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else if (matchValue[0].tag === 0) {\n if (matchValue[1].tag === 6) {\n pattern_matching_result_2 = 1;\n value_8 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 1) {\n pattern_matching_result_2 = 5;\n value_12 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 2) {\n pattern_matching_result_2 = 7;\n value_14 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 10) {\n pattern_matching_result_2 = 9;\n value_16 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 11) {\n pattern_matching_result_2 = 11;\n value_18 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 3) {\n pattern_matching_result_2 = 12;\n value_19 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 4) {\n pattern_matching_result_2 = 14;\n value_21 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 5) {\n pattern_matching_result_2 = 16;\n value_23 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 18) {\n pattern_matching_result_2 = 18;\n value_25 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 35) {\n pattern_matching_result_2 = 20;\n getElemType = matchValue[1].fields[0];\n value_27 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 20) {\n pattern_matching_result_2 = 24;\n genericJson = matchValue[0];\n }\n else if (matchValue[1].tag === 13) {\n pattern_matching_result_2 = 27;\n value_31 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 14) {\n pattern_matching_result_2 = 28;\n value_32 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 17) {\n pattern_matching_result_2 = 31;\n value_35 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 16) {\n pattern_matching_result_2 = 34;\n value_38 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 24) {\n if (!equals(matchValue[0], new Json(3))) {\n pattern_matching_result_2 = 37;\n jsonValue_5 = matchValue[0];\n optionalTypeDelayed_5 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else if (matchValue[0].tag === 2) {\n if (matchValue[1].tag === 7) {\n pattern_matching_result_2 = 2;\n value_9 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 20) {\n pattern_matching_result_2 = 24;\n genericJson = matchValue[0];\n }\n else if (matchValue[1].tag === 24) {\n if (!equals(matchValue[0], new Json(3))) {\n pattern_matching_result_2 = 37;\n jsonValue_5 = matchValue[0];\n optionalTypeDelayed_5 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else if (matchValue[0].tag === 3) {\n if (matchValue[1].tag === 2) {\n pattern_matching_result_2 = 22;\n }\n else if (matchValue[1].tag === 0) {\n pattern_matching_result_2 = 23;\n }\n else if (matchValue[1].tag === 20) {\n pattern_matching_result_2 = 24;\n genericJson = matchValue[0];\n }\n else if (matchValue[1].tag === 24) {\n pattern_matching_result_2 = 36;\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else if (matchValue[0].tag === 5) {\n if (matchValue[1].tag === 20) {\n pattern_matching_result_2 = 24;\n genericJson = matchValue[0];\n }\n else if (matchValue[1].tag === 37) {\n pattern_matching_result_2 = 35;\n getTypes = matchValue[1].fields[0];\n values = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 24) {\n if (!equals(matchValue[0], new Json(3))) {\n pattern_matching_result_2 = 37;\n jsonValue_5 = matchValue[0];\n optionalTypeDelayed_5 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else if (matchValue[1].tag === 20) {\n pattern_matching_result_2 = 24;\n genericJson = matchValue[0];\n }\n else if (matchValue[1].tag === 24) {\n if (!equals(matchValue[0], new Json(3))) {\n pattern_matching_result_2 = 37;\n jsonValue_5 = matchValue[0];\n optionalTypeDelayed_5 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_2 = 38;\n }\n }\n else {\n pattern_matching_result_2 = 38;\n }\n switch (pattern_matching_result_2) {\n case 0: {\n return parse(value_7);\n }\n case 1: {\n return Math.floor(value_8);\n }\n case 2: {\n return value_9;\n }\n case 3: {\n return parse_1(value_10, 511, false, 32);\n }\n case 4: {\n return value_11;\n }\n case 5: {\n return String.fromCharCode(value_12);\n }\n case 6: {\n return value_13;\n }\n case 7: {\n return value_14.toString();\n }\n case 8: {\n return new Decimal(value_15);\n }\n case 9: {\n return new Decimal(value_16);\n }\n case 10: {\n return parse_1(value_17, 511, false, 16);\n }\n case 11: {\n return (value_18 + 0x8000 & 0xFFFF) - 0x8000;\n }\n case 12: {\n return value_19 & 0xFFFF;\n }\n case 13: {\n return parse_1(value_20, 511, true, 16);\n }\n case 14: {\n return value_21 >>> 0;\n }\n case 15: {\n return parse_1(value_22, 511, true, 32);\n }\n case 16: {\n return fromNumber(value_23, true);\n }\n case 17: {\n return parse_2(value_24, 511, true, 64);\n }\n case 18: {\n return Math.floor(value_25);\n }\n case 19: {\n const patternInput = getlElemType();\n const underlyingType = patternInput[0];\n const originalType = patternInput[1];\n switch (underlyingType.tag) {\n case 6: {\n let matchValue_1;\n let outArg = 0;\n matchValue_1 = [tryParse(value_26, 511, false, 32, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n if (matchValue_1[0]) {\n return matchValue_1[1];\n }\n else {\n const arg20 = name_2(originalType);\n return toFail(printf(\"The value \\u0027%s\\u0027 is not valid for enum of type \\u0027%s\\u0027\"))(value_26)(arg20);\n }\n }\n case 12: {\n let matchValue_2;\n let outArg_1 = fromInt(0);\n matchValue_2 = [tryParse_1(value_26, 511, false, 64, new FSharpRef(() => outArg_1, (v_1) => {\n outArg_1 = v_1;\n })), outArg_1];\n if (matchValue_2[0]) {\n return matchValue_2[1];\n }\n else {\n const arg20_1 = name_2(originalType);\n return toFail(printf(\"The value \\u0027%s\\u0027 is not valid for enum of type \\u0027%s\\u0027\"))(value_26)(arg20_1);\n }\n }\n default: {\n const arg20_2 = name_2(originalType);\n return toFail(printf(\"The value \\u0027%s\\u0027 cannot be converted to enum of type \\u0027%s\\u0027\"))(value_26)(arg20_2);\n }\n }\n }\n case 20: {\n const patternInput_1 = getElemType();\n return value_27;\n }\n case 21: {\n const elemType = getElemType_1();\n if (elemType.tag === 13) {\n if ((typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) ? true : Convert_insideBrowser) {\n return fromBase64String(value_28);\n }\n else {\n return Array.prototype.slice.call(Buffer.from(value_28, 'base64'));\n }\n }\n else {\n return toFail(printf(\"Cannot convert arbitrary string \\u0027%s\\u0027 to %A\"))(value_28)(elemType);\n }\n }\n case 22: {\n return null;\n }\n case 23: {\n return void 0;\n }\n case 24: {\n return SimpleJson_toPlainObject(genericJson);\n }\n case 25: {\n return parse_2(value_29, 511, false, 64);\n }\n case 26: {\n return parse_1(value_30, 511, true, 8);\n }\n case 27: {\n return value_31 & 0xFF;\n }\n case 28: {\n return (value_32 + 0x80 & 0xFF) - 0x80;\n }\n case 29: {\n return parse_1(value_33, 511, false, 8);\n }\n case 30: {\n return parse_3(value_34);\n }\n case 31: {\n return fromInt32(Math.floor(value_35));\n }\n case 32: {\n return parse_4(value_36);\n }\n case 33: {\n return parse_5(value_37);\n }\n case 34: {\n return DateOffset(toNumber(fromNumber(Math.floor(value_38), false)) * 1000, 0);\n }\n case 35: {\n const patternInput_2 = getTypes();\n const unionType = patternInput_2[1];\n const cases = patternInput_2[0];\n const matchValue_3 = toList_1(values);\n let pattern_matching_result_3, caseName, values_1, caseName_1, json;\n if (!isEmpty(matchValue_3)) {\n if (head(matchValue_3)[1].tag === 4) {\n if (isEmpty(tail_1(matchValue_3))) {\n pattern_matching_result_3 = 0;\n caseName = head(matchValue_3)[0];\n values_1 = head(matchValue_3)[1].fields[0];\n }\n else {\n pattern_matching_result_3 = 2;\n }\n }\n else {\n const activePatternResult6368 = Convert_$007CNonArray$007C_$007C(head(matchValue_3)[1]);\n if (activePatternResult6368 != null) {\n if (isEmpty(tail_1(matchValue_3))) {\n pattern_matching_result_3 = 1;\n caseName_1 = head(matchValue_3)[0];\n json = activePatternResult6368;\n }\n else {\n pattern_matching_result_3 = 2;\n }\n }\n else {\n pattern_matching_result_3 = 2;\n }\n }\n }\n else {\n pattern_matching_result_3 = 2;\n }\n switch (pattern_matching_result_3) {\n case 0: {\n const _arg1 = tryFind_1((case$) => (case$.CaseName === caseName), cases);\n if (_arg1 != null) {\n if (foundCase = _arg1, (foundCase.CaseTypes.length === 1) ? Convert_arrayLike(foundCase.CaseTypes[0]) : false) {\n const foundCase_1 = _arg1;\n return makeUnion(foundCase_1.Info, [Convert_fromJsonAs(new Json(4, values_1), foundCase_1.CaseTypes[0])]);\n }\n else {\n let pattern_matching_result_4, foundCase_3;\n if (_arg1 != null) {\n if (foundCase_2 = _arg1, (foundCase_2.CaseTypes.length === 1) ? Convert_optional(foundCase_2.CaseTypes[0]) : false) {\n pattern_matching_result_4 = 0;\n foundCase_3 = _arg1;\n }\n else {\n pattern_matching_result_4 = 1;\n }\n }\n else {\n pattern_matching_result_4 = 1;\n }\n switch (pattern_matching_result_4) {\n case 0: {\n return makeUnion(foundCase_3.Info, [Convert_fromJsonAs(new Json(4, values_1), foundCase_3.CaseTypes[0])]);\n }\n case 1: {\n if (_arg1 != null) {\n const foundCase_4 = _arg1;\n if (((foundCase_4.CaseTypes.length === 1) ? (!Convert_arrayLike(foundCase_4.CaseTypes[0])) : false) ? (foundCase_4.CaseTypes.length !== length(values_1)) : false) {\n const arg30_1 = length(values_1) | 0;\n const arg20_5 = foundCase_4.CaseTypes.length | 0;\n toFail(printf(\"Expected case \\u0027%s\\u0027 to have %d argument types but the JSON data only contained %d values\"))(foundCase_4.CaseName)(arg20_5)(arg30_1);\n }\n return makeUnion(foundCase_4.Info, map_2((tupledArg) => Convert_fromJsonAs(tupledArg[1], tupledArg[0]), zip(foundCase_4.CaseTypes, toArray(values_1))));\n }\n else {\n throw (new Error(\"Match failure\"));\n }\n }\n }\n }\n }\n else {\n const expectedCases = join(\", \", map_2((case$_1) => toText(printf(\" \\u0027%s\\u0027 \"))(case$_1.CaseName), cases));\n const arg20_4 = name_2(unionType);\n return toFail(printf(\"Case %s was not valid for type \\u0027%s\\u0027, expected one of the cases [%s]\"))(caseName)(arg20_4)(expectedCases);\n }\n }\n case 1: {\n const _arg2 = tryFind_1((case$_2) => (case$_2.CaseName === caseName_1), cases);\n let pattern_matching_result_5, caseInfo, caseName_2, caseType;\n if (_arg2 != null) {\n if (testExpr = _arg2.CaseTypes, (!equalsWith((x, y) => compare(x, y), testExpr, null)) ? (testExpr.length === 1) : false) {\n pattern_matching_result_5 = 0;\n caseInfo = _arg2.Info;\n caseName_2 = _arg2.CaseName;\n caseType = _arg2.CaseTypes[0];\n }\n else {\n pattern_matching_result_5 = 1;\n }\n }\n else {\n pattern_matching_result_5 = 1;\n }\n switch (pattern_matching_result_5) {\n case 0: {\n return makeUnion(caseInfo, [((input_1) => ((typeInfo_1) => Convert_fromJsonAs(input_1, typeInfo_1)))(json)(caseType)]);\n }\n case 1: {\n const expectedCases_1 = join(\", \", map_2((case$_3) => toText(printf(\" \\u0027%s\\u0027 \"))(case$_3.CaseName), cases));\n const arg20_7 = name_2(unionType);\n return toFail(printf(\"Case %s was not valid for type \\u0027%s\\u0027, expected one of the cases [%s]\"))(caseName_1)(arg20_7)(expectedCases_1);\n }\n }\n }\n case 2: {\n if ((containsKey(\"tag\", values) ? containsKey(\"fields\", values) : false) ? (count(values) === 2) : false) {\n const matchValue_4 = [tryFind(\"tag\", values), tryFind(\"fields\", values)];\n let pattern_matching_result_6, caseIndex, fieldValues;\n if (matchValue_4[0] != null) {\n if (matchValue_4[0].tag === 0) {\n if (matchValue_4[1] != null) {\n if (matchValue_4[1].tag === 4) {\n pattern_matching_result_6 = 0;\n caseIndex = matchValue_4[0].fields[0];\n fieldValues = matchValue_4[1].fields[0];\n }\n else {\n pattern_matching_result_6 = 1;\n }\n }\n else {\n pattern_matching_result_6 = 1;\n }\n }\n else {\n pattern_matching_result_6 = 1;\n }\n }\n else {\n pattern_matching_result_6 = 1;\n }\n switch (pattern_matching_result_6) {\n case 0: {\n const foundCase_5 = cases[~(~caseIndex)];\n return makeUnion(foundCase_5.Info, mapIndexed((index, value_44) => Convert_fromJsonAs(value_44, foundCase_5.CaseTypes[index]), toArray(fieldValues)));\n }\n case 1: {\n const arg20_8 = fullName(unionType);\n const arg10_10 = SimpleJson_toString(new Json(5, values));\n return toFail(printf(\"Could not deserialize JSON(%s) into type %s\"))(arg10_10)(arg20_8);\n }\n }\n }\n else if (Convert_unionOfRecords(typeInfo)) {\n const foundDiscriminatorKey = tryFind_2((keyword) => containsKey(keyword, values), ofArray([\"__typename\", \"$typename\", \"$type\"]));\n if (foundDiscriminatorKey != null) {\n const discriminatorValueJson = find(foundDiscriminatorKey, values);\n if (discriminatorValueJson.tag === 1) {\n const discriminatorValue = discriminatorValueJson.fields[0];\n const foundUnionCase = tryFind_3((case$_4) => (case$_4.CaseName.toUpperCase() === discriminatorValue.toUpperCase()), cases);\n if (foundUnionCase != null) {\n const case$_5 = foundUnionCase;\n return makeUnion(case$_5.Info, [Convert_fromJsonAs(new Json(5, values), case$_5.CaseTypes[0])]);\n }\n else {\n const arg10_12 = name_2(unionType);\n return toFail(printf(\"Union of records of type \\u0027%s\\u0027 does not have a matching case \\u0027%s\\u0027\"))(arg10_12)(discriminatorValue);\n }\n }\n else {\n const arg10_13 = name_2(unionType);\n return toFail(printf(\"Union of records of type \\u0027%s\\u0027 cannot be deserialized with the value of the discriminator key is not a string to match against a specific union case\"))(arg10_13);\n }\n }\n else {\n const arg10_11 = name_2(unionType);\n return toFail(printf(\"Could not serialize the JSON object into the union of records of type %s because the JSON did not contain a known discriminator. Expected \\u0027__typename\\u0027, \\u0027$typeName\\u0027 or \\u0027$type\\u0027\"))(arg10_11);\n }\n }\n else {\n const unexpectedJson = JSON.stringify(matchValue_3);\n const expectedType = JSON.stringify(cases);\n return toFail(printf(\"Expected JSON:\\n%s\\nto match the type\\n%s\"))(unexpectedJson)(expectedType);\n }\n }\n }\n }\n case 36: {\n return void 0;\n }\n case 37: {\n return ((arg0) => some(arg0))(Convert_fromJsonAs(jsonValue_5, optionalTypeDelayed_5()));\n }\n case 38: {\n let pattern_matching_result_7, value_45, value_46, dict, caseName_4, getTypes_2;\n if (matchValue[0].tag === 1) {\n if (matchValue[1].tag === 19) {\n pattern_matching_result_7 = 0;\n value_45 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 37) {\n if (Convert_isQuoted(matchValue[0].fields[0])) {\n pattern_matching_result_7 = 3;\n caseName_4 = matchValue[0].fields[0];\n getTypes_2 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_7 = 4;\n }\n }\n else {\n pattern_matching_result_7 = 4;\n }\n }\n else if (matchValue[0].tag === 0) {\n if (matchValue[1].tag === 12) {\n pattern_matching_result_7 = 1;\n value_46 = matchValue[0].fields[0];\n }\n else {\n pattern_matching_result_7 = 4;\n }\n }\n else if (matchValue[0].tag === 5) {\n if (matchValue[1].tag === 12) {\n pattern_matching_result_7 = 2;\n dict = matchValue[0].fields[0];\n }\n else {\n pattern_matching_result_7 = 4;\n }\n }\n else {\n pattern_matching_result_7 = 4;\n }\n switch (pattern_matching_result_7) {\n case 0: {\n return parse_6(value_45);\n }\n case 1: {\n return ((value_47) => fromInteger(value_47, false, 2))(~(~value_46));\n }\n case 2: {\n const get$ = (key) => tryFind(key, dict);\n const _arg3 = choose((x_1) => x_1, ofArray([get$(\"low\"), get$(\"high\"), get$(\"unsigned\")]));\n let pattern_matching_result_8, high, low;\n if (!isEmpty(_arg3)) {\n if (head(_arg3).tag === 0) {\n if (!isEmpty(tail_1(_arg3))) {\n if (head(tail_1(_arg3)).tag === 0) {\n if (!isEmpty(tail_1(tail_1(_arg3)))) {\n if (head(tail_1(tail_1(_arg3))).tag === 2) {\n if (isEmpty(tail_1(tail_1(tail_1(_arg3))))) {\n pattern_matching_result_8 = 0;\n high = head(tail_1(_arg3)).fields[0];\n low = head(_arg3).fields[0];\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n }\n else {\n pattern_matching_result_8 = 1;\n }\n switch (pattern_matching_result_8) {\n case 0: {\n return toInt64(concat([getBytesInt32(~(~low)), getBytesInt32(~(~high))], Uint8Array), 0);\n }\n case 1: {\n return toFail(printf(\"Unable to construct int64 from object literal { low: int, high: int, unsigned: bool }\"));\n }\n }\n }\n case 3: {\n const patternInput_3 = getTypes_2();\n const caseTypes = patternInput_3[0];\n const _arg4 = tryFind_1((case$_6) => (case$_6.CaseName === Convert_removeQuotes(caseName_4)), caseTypes);\n if (_arg4 == null) {\n const expectedCases_2 = join(\", \", map_2((case$_7) => toText(printf(\" \\u0027%s\\u0027 \"))(case$_7.CaseName), caseTypes));\n const arg20_11 = name_2(patternInput_3[1]);\n return toFail(printf(\"Case %s was not valid for type \\u0027%s\\u0027, expected one of the cases [%s]\"))(caseName_4)(arg20_11)(expectedCases_2);\n }\n else {\n return makeUnion(_arg4.Info, []);\n }\n }\n case 4: {\n let pattern_matching_result_9, caseName_5, getTypes_3, getFields, serializedRecord, caseValue, getTypes_4, elementTypeDelayed, values_4, elementTypeDelayed_1, values_5, elementTypeDelayed_2, linkedList, elementTypeDelayed_3, values_6, elementTypeDelayed_4, values_7, array_9, tupleTypesDelayed, dict_1, getTypes_5, getTypes_6, tuples, getTypes_7, tuples_1, dict_2, getTypes_8, getType, items, getTypes_9, map, getType_1;\n if (matchValue[0].tag === 1) {\n if (matchValue[1].tag === 37) {\n pattern_matching_result_9 = 0;\n caseName_5 = matchValue[0].fields[0];\n getTypes_3 = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 36) {\n pattern_matching_result_9 = 1;\n getFields = matchValue[1].fields[0];\n serializedRecord = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 21) {\n pattern_matching_result_9 = 15;\n getType_1 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_9 = 16;\n }\n }\n else if (matchValue[0].tag === 4) {\n if (matchValue[1].tag === 37) {\n pattern_matching_result_9 = 2;\n caseValue = matchValue[0].fields[0];\n getTypes_4 = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 27) {\n pattern_matching_result_9 = 3;\n elementTypeDelayed = matchValue[1].fields[0];\n values_4 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 25) {\n pattern_matching_result_9 = 4;\n elementTypeDelayed_1 = matchValue[1].fields[0];\n values_5 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 26) {\n pattern_matching_result_9 = 6;\n elementTypeDelayed_3 = matchValue[1].fields[0];\n values_6 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 28) {\n pattern_matching_result_9 = 7;\n elementTypeDelayed_4 = matchValue[1].fields[0];\n values_7 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 29) {\n pattern_matching_result_9 = 8;\n array_9 = matchValue[0].fields[0];\n tupleTypesDelayed = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 30) {\n pattern_matching_result_9 = 10;\n getTypes_6 = matchValue[1].fields[0];\n tuples = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 31) {\n pattern_matching_result_9 = 11;\n getTypes_7 = matchValue[1].fields[0];\n tuples_1 = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 33) {\n pattern_matching_result_9 = 13;\n getType = matchValue[1].fields[0];\n items = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 21) {\n pattern_matching_result_9 = 15;\n getType_1 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_9 = 16;\n }\n }\n else if (matchValue[0].tag === 5) {\n if (matchValue[1].tag === 25) {\n pattern_matching_result_9 = 5;\n elementTypeDelayed_2 = matchValue[1].fields[0];\n linkedList = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 36) {\n pattern_matching_result_9 = 9;\n dict_1 = matchValue[0].fields[0];\n getTypes_5 = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 31) {\n pattern_matching_result_9 = 12;\n dict_2 = matchValue[0].fields[0];\n getTypes_8 = matchValue[1].fields[0];\n }\n else if (matchValue[1].tag === 30) {\n pattern_matching_result_9 = 14;\n getTypes_9 = matchValue[1].fields[0];\n map = matchValue[0].fields[0];\n }\n else if (matchValue[1].tag === 21) {\n pattern_matching_result_9 = 15;\n getType_1 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_9 = 16;\n }\n }\n else if (matchValue[1].tag === 21) {\n pattern_matching_result_9 = 15;\n getType_1 = matchValue[1].fields[0];\n }\n else {\n pattern_matching_result_9 = 16;\n }\n switch (pattern_matching_result_9) {\n case 0: {\n const patternInput_4 = getTypes_3();\n const caseTypes_1 = patternInput_4[0];\n const _arg5 = tryFind_1((case$_8) => (case$_8.CaseName === caseName_5), caseTypes_1);\n if (_arg5 == null) {\n const expectedCases_3 = join(\", \", map_2((case$_9) => toText(printf(\" \\u0027%s\\u0027 \"))(case$_9.CaseName), caseTypes_1));\n const arg20_12 = name_2(patternInput_4[1]);\n return toFail(printf(\"Case %s was not valid for type \\u0027%s\\u0027, expected one of the cases [%s]\"))(caseName_5)(arg20_12)(expectedCases_3);\n }\n else {\n return makeUnion(_arg5.Info, []);\n }\n }\n case 1: {\n input_mut = SimpleJson_parse(serializedRecord);\n typeInfo_mut = typeInfo;\n continue Convert_fromJsonAs;\n }\n case 2: {\n const patternInput_5 = getTypes_4();\n const cases_1 = patternInput_5[0];\n let pattern_matching_result_10, caseName_6, caseName_8, values_3, otherwise_6;\n if (!isEmpty(caseValue)) {\n if (head(caseValue).tag === 1) {\n if (isEmpty(tail_1(caseValue))) {\n pattern_matching_result_10 = 0;\n caseName_6 = head(caseValue).fields[0];\n }\n else {\n pattern_matching_result_10 = 1;\n caseName_8 = head(caseValue).fields[0];\n values_3 = tail_1(caseValue);\n }\n }\n else {\n pattern_matching_result_10 = 2;\n otherwise_6 = caseValue;\n }\n }\n else {\n pattern_matching_result_10 = 2;\n otherwise_6 = caseValue;\n }\n switch (pattern_matching_result_10) {\n case 0: {\n const _arg6 = tryFind_1((case$_10) => (case$_10.CaseName === caseName_6), cases_1);\n if (_arg6 == null) {\n const expectedCases_4 = join(\", \", map_2((case$_11) => toText(printf(\" \\u0027%s\\u0027 \"))(case$_11.CaseName), cases_1));\n const arg20_13 = name_2(patternInput_5[1]);\n return toFail(printf(\"Case \\u0027%s\\u0027 was not valid for type \\u0027%s\\u0027, expected one of the cases [%s]\"))(caseName_6)(arg20_13)(expectedCases_4);\n }\n else {\n const caseName_7 = _arg6.CaseName;\n const caseInfoTypes = _arg6.CaseTypes;\n return makeUnion(_arg6.Info, []);\n }\n }\n case 1: {\n const _arg7 = tryFind_1((case$_12) => (case$_12.CaseName === caseName_8), cases_1);\n if (_arg7 != null) {\n const types = _arg7.CaseTypes;\n const foundCaseName = _arg7.CaseName;\n const caseInfo_4 = _arg7.Info;\n if (types.length !== length(values_3)) {\n toFail(printf(\"The number of union case parameters for \\u0027%s\\u0027 is different\"))(foundCaseName);\n }\n return makeUnion(caseInfo_4, map_2((tupledArg_1) => Convert_fromJsonAs(tupledArg_1[1], tupledArg_1[0]), zip(types, toArray(values_3))));\n }\n else {\n const expectedCases_5 = join(\", \", map_2((_arg1_1) => _arg1_1.CaseName, cases_1));\n return toFail(printf(\"Case %s was not valid, expected one of [%s]\"))(caseName_8)(expectedCases_5);\n }\n }\n case 2: {\n const unexpectedJson_1 = JSON.stringify(otherwise_6);\n const expectedType_1 = JSON.stringify(cases_1);\n return toFail(printf(\"Expected JSON:\\n%s\\nto match the type\\n%s\"))(unexpectedJson_1)(expectedType_1);\n }\n }\n }\n case 3: {\n const elementType = elementTypeDelayed();\n return toArray(map_3((value_51) => Convert_fromJsonAs(value_51, elementType), values_4));\n }\n case 4: {\n const elementType_1 = elementTypeDelayed_1();\n return map_3((value_53) => Convert_fromJsonAs(value_53, elementType_1), values_5);\n }\n case 5: {\n const elementType_2 = elementTypeDelayed_2();\n return map_3((value_55) => Convert_fromJsonAs(value_55, elementType_2), Convert_flattenFable3Lists(linkedList));\n }\n case 6: {\n const elementType_3 = elementTypeDelayed_3();\n return ofList(map_3((value_57) => Convert_fromJsonAs(value_57, elementType_3), values_6), {\n Compare: (x_2, y_1) => compare(x_2, y_1),\n });\n }\n case 7: {\n const elementType_4 = elementTypeDelayed_4();\n return map_3((value_59) => Convert_fromJsonAs(value_59, elementType_4), values_7);\n }\n case 8: {\n return map_2((tupledArg_2) => Convert_fromJsonAs(tupledArg_2[1], tupledArg_2[0]), zip(tupleTypesDelayed(), toArray(array_9)));\n }\n case 9: {\n const patternInput_6 = getTypes_5();\n const recordType = patternInput_6[1];\n const fields = patternInput_6[0];\n return makeRecord(recordType, (values_8 = toList_1(dict_1), map_2((_arg3_1) => {\n const fieldType = _arg3_1.FieldType;\n const fieldName = _arg3_1.FieldName;\n const _arg8 = tryFind_2((tupledArg_3) => (fieldName === tupledArg_3[0]), values_8);\n if (_arg8 == null) {\n if (fieldType.tag === 24) {\n return void 0;\n }\n else {\n let dictKeys;\n const arg10_27 = join(\", \", map_3((arg) => toText(printf(\"\\u0027%s\\u0027\"))(arg[0]), toList_1(dict_1)));\n dictKeys = toText(printf(\"[ %s ]\"))(arg10_27);\n let recordFields;\n const arg10_30 = join(\", \", map_2((_arg2_1) => {\n const name_1 = _arg2_1.FieldName;\n if (_arg2_1.FieldType.tag === 24) {\n return toText(printf(\"optional(\\u0027%s\\u0027)\"))(name_1);\n }\n else {\n return toText(printf(\"required(\\u0027%s\\u0027)\"))(name_1);\n }\n }, fields));\n recordFields = toText(printf(\"[ %s ]\"))(arg10_30);\n const arg30_6 = name_2(recordType);\n return toFail(printf(\"Could not find the required key \\u0027%s\\u0027 in the JSON object literal with keys %s to match with record type \\u0027%s\\u0027 that has fields %s\"))(fieldName)(dictKeys)(arg30_6)(recordFields);\n }\n }\n else {\n const key_2 = _arg8[0];\n return Convert_fromJsonAs(_arg8[1], fieldType);\n }\n }, fields)));\n }\n case 10: {\n const patternInput_7 = getTypes_6();\n const keyType = patternInput_7[0];\n const pairs = toList(delay(() => collect((keyValuePair) => {\n let a;\n return singleton_1(Convert_fromJsonAs(keyValuePair, new TypeInfo(29, (a = [keyType, patternInput_7[1]], () => a))));\n }, tuples)));\n switch (keyType.tag) {\n case 6:\n case 2:\n case 7: {\n return ofList_1(pairs);\n }\n default: {\n return ofList_1(pairs);\n }\n }\n }\n case 11: {\n const patternInput_8 = getTypes_7();\n const keyType_1 = patternInput_8[0];\n const pairs_1 = toList(delay(() => collect((keyValuePair_1) => singleton_1(Convert_fromJsonAs(keyValuePair_1, new TypeInfo(29, () => [keyType_1, patternInput_8[1]]))), tuples_1)));\n const output = (keyType_1.tag === 37) ? (new Dictionary([], {\n Equals: (x_3, y_2) => equals(x_3, y_2),\n GetHashCode: (x_3) => safeHash(x_3),\n })) : ((keyType_1.tag === 36) ? (new Dictionary([], {\n Equals: (x_4, y_3) => equals(x_4, y_3),\n GetHashCode: (x_4) => structuralHash(x_4),\n })) : (new Dictionary([], {\n Equals: (x_5, y_4) => equals(x_5, y_4),\n GetHashCode: (x_5) => structuralHash(x_5),\n })));\n const enumerator = getEnumerator(pairs_1);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n addToDict(output, forLoopVar[0], forLoopVar[1]);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return output;\n }\n case 12: {\n const patternInput_9 = getTypes_8();\n const keyType_2 = patternInput_9[0];\n const pairs_2 = map_3((tupledArg_4) => [Convert_fromJsonAs(new Json(1, tupledArg_4[0]), keyType_2), Convert_fromJsonAs(tupledArg_4[1], patternInput_9[1])], toList_1(dict_2));\n const output_1 = (keyType_2.tag === 37) ? (new Dictionary([], {\n Equals: (x_6, y_5) => equals(x_6, y_5),\n GetHashCode: (x_6) => safeHash(x_6),\n })) : ((keyType_2.tag === 36) ? (new Dictionary([], {\n Equals: (x_7, y_6) => equals(x_7, y_6),\n GetHashCode: (x_7) => structuralHash(x_7),\n })) : (new Dictionary([], {\n Equals: (x_8, y_7) => equals(x_8, y_7),\n GetHashCode: (x_8) => structuralHash(x_8),\n })));\n const enumerator_1 = getEnumerator(pairs_2);\n try {\n while (enumerator_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar_1 = enumerator_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n addToDict(output_1, forLoopVar_1[0], forLoopVar_1[1]);\n }\n }\n finally {\n enumerator_1.Dispose();\n }\n return output_1;\n }\n case 13: {\n const elemType_1 = getType();\n const hashset = (elemType_1.tag === 37) ? (new HashSet([], {\n Equals: (x_9, y_8) => equals(x_9, y_8),\n GetHashCode: (x_9) => safeHash(x_9),\n })) : ((elemType_1.tag === 36) ? (new HashSet([], {\n Equals: (x_10, y_9) => equals(x_10, y_9),\n GetHashCode: (x_10) => structuralHash(x_10),\n })) : (new HashSet([], {\n Equals: (x_11, y_10) => equals(x_11, y_10),\n GetHashCode: (x_11) => structuralHash(x_11),\n })));\n const enumerator_2 = getEnumerator(items);\n try {\n while (enumerator_2[\"System.Collections.IEnumerator.MoveNext\"]()) {\n void addToSet(Convert_fromJsonAs(enumerator_2[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), elemType_1), hashset);\n }\n }\n finally {\n enumerator_2.Dispose();\n }\n return hashset;\n }\n case 14: {\n const patternInput_10 = getTypes_9();\n const valueType_5 = patternInput_10[1];\n const keyType_3 = patternInput_10[0];\n const matchValue_5 = [tryFind(\"comparer\", map), tryFind(\"tree\", map)];\n let pattern_matching_result_11, comparer_1, tree_1;\n if (matchValue_5[0] != null) {\n if (matchValue_5[0].tag === 5) {\n if (matchValue_5[1] != null) {\n if (matchValue_5[1].tag === 4) {\n if (tree = matchValue_5[1].fields[0], isEmpty_1(matchValue_5[0].fields[0])) {\n pattern_matching_result_11 = 0;\n comparer_1 = matchValue_5[0].fields[0];\n tree_1 = matchValue_5[1].fields[0];\n }\n else {\n pattern_matching_result_11 = 1;\n }\n }\n else {\n pattern_matching_result_11 = 1;\n }\n }\n else {\n pattern_matching_result_11 = 1;\n }\n }\n else {\n pattern_matching_result_11 = 1;\n }\n }\n else {\n pattern_matching_result_11 = 1;\n }\n switch (pattern_matching_result_11) {\n case 0: {\n const matchValue_6 = Convert_generateMap(new Json(4, tree_1));\n if (matchValue_6 == null) {\n const inputJson = SimpleJson_toString(new Json(4, tree_1));\n return toFail(printf(\"Could not generate map from JSON\\n %s\"))(inputJson);\n }\n else {\n const pairs_3 = map_3((tupledArg_5) => {\n const key_6 = tupledArg_5[0];\n return [(!Convert_isQuoted(key_6)) ? Convert_fromJsonAs(new Json(1, key_6), keyType_3) : Convert_fromJsonAs(SimpleJson_parseNative(key_6), keyType_3), Convert_fromJsonAs(tupledArg_5[1], valueType_5)];\n }, Convert_flattenMap(matchValue_6));\n switch (keyType_3.tag) {\n case 6:\n case 2:\n case 7: {\n return ofList_1(pairs_3);\n }\n default: {\n return ofList_1(pairs_3);\n }\n }\n }\n }\n case 1: {\n let pattern_matching_result_12, comparer_3, tree_3;\n if (matchValue_5[0] != null) {\n if (matchValue_5[0].tag === 5) {\n if (matchValue_5[1] != null) {\n if (matchValue_5[1].tag === 5) {\n if (tree_2 = matchValue_5[1].fields[0], isEmpty_1(matchValue_5[0].fields[0])) {\n pattern_matching_result_12 = 0;\n comparer_3 = matchValue_5[0].fields[0];\n tree_3 = matchValue_5[1].fields[0];\n }\n else {\n pattern_matching_result_12 = 1;\n }\n }\n else {\n pattern_matching_result_12 = 1;\n }\n }\n else {\n pattern_matching_result_12 = 1;\n }\n }\n else {\n pattern_matching_result_12 = 1;\n }\n }\n else {\n pattern_matching_result_12 = 1;\n }\n switch (pattern_matching_result_12) {\n case 0: {\n input_mut = (new Json(5, ofList_1(Convert_flatteFable3Map(tree_3))));\n typeInfo_mut = typeInfo;\n continue Convert_fromJsonAs;\n }\n case 1: {\n const pairs_4 = map_3((tupledArg_6) => {\n const key_7 = tupledArg_6[0];\n return [(!Convert_isQuoted(key_7)) ? ((isPrimitive(keyType_3) ? true : enumUnion(keyType_3)) ? Convert_fromJsonAs(new Json(1, key_7), keyType_3) : Convert_fromJsonAs(SimpleJson_parseNative(key_7), keyType_3)) : Convert_fromJsonAs(SimpleJson_parseNative(key_7), keyType_3), Convert_fromJsonAs(tupledArg_6[1], valueType_5)];\n }, toList_1(map));\n switch (keyType_3.tag) {\n case 6:\n case 2:\n case 7: {\n return ofList_1(pairs_4);\n }\n default: {\n return ofList_1(pairs_4);\n }\n }\n }\n }\n }\n }\n }\n case 15: {\n const arg20_17 = fullName(getType_1());\n const arg10_33 = SimpleJson_toString(input);\n return toFail(printf(\"Cannot convert %s to %s\"))(arg10_33)(arg20_17);\n }\n case 16: {\n const arg20_18 = JSON.stringify(typeInfo);\n const arg10_34 = SimpleJson_toString(input);\n return toFail(printf(\"Cannot convert %s to %s\"))(arg10_34)(arg20_18);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n break;\n }\n}\n\nexport function Convert_fromJson(json, typeInfo) {\n return Convert_fromJsonAs(json, typeInfo);\n}\n\nexport const Convert_quoteText = quote;\n\nexport function Convert_serialize(value_mut, typeInfo_mut) {\n let copyOfStruct, copyOfStruct_1, copyOfStruct_2;\n Convert_serialize:\n while (true) {\n const value = value_mut, typeInfo = typeInfo_mut;\n switch (typeInfo.tag) {\n case 2: {\n const content = value;\n if (content == null) {\n return \"null\";\n }\n else {\n return Convert_quoteText(content);\n }\n }\n case 0: {\n return \"null\";\n }\n case 9:\n case 8: {\n if (Number.isNaN(value)) {\n return Convert_quoteText(\"NaN\");\n }\n else {\n return value.toString();\n }\n }\n case 1: {\n return Convert_quoteText(value);\n }\n case 13:\n case 14:\n case 3:\n case 4:\n case 11:\n case 35:\n case 18:\n case 6: {\n return int32ToString(value);\n }\n case 5:\n case 12: {\n return Convert_betweenQuotes(toString(value));\n }\n case 17: {\n return Convert_betweenQuotes(toString_1(value));\n }\n case 10: {\n return Convert_betweenQuotes(toString_2(value));\n }\n case 7: {\n if (value) {\n return \"true\";\n }\n else {\n return \"false\";\n }\n }\n case 19: {\n return Convert_betweenQuotes((copyOfStruct = value, copyOfStruct));\n }\n case 15: {\n return Convert_betweenQuotes((copyOfStruct_1 = value, toString_3(copyOfStruct_1, \"O\")));\n }\n case 16: {\n return Convert_betweenQuotes((copyOfStruct_2 = value, toString_3(copyOfStruct_2, \"O\")));\n }\n case 36: {\n return (\"{\" + join(\", \", map_2((field) => {\n const arg20 = Convert_serialize(getRecordField(value, field.PropertyInfo), field.FieldType);\n return toText(printf(\"\\\"%s\\\": %s\"))(field.FieldName)(arg20);\n }, typeInfo.fields[0]()[0]))) + \"}\";\n }\n case 32: {\n const elementType = typeInfo.fields[0]();\n return (\"[\" + join(\", \", map_4((element) => Convert_serialize(element, elementType), value))) + \"]\";\n }\n case 33: {\n const elementType_1 = typeInfo.fields[0]();\n return (\"[\" + join(\", \", map_4((element_1) => Convert_serialize(element_1, elementType_1), value))) + \"]\";\n }\n case 26: {\n const elementType_2 = typeInfo.fields[0]();\n return (\"[\" + join(\", \", map_4((element_2) => Convert_serialize(element_2, elementType_2), value))) + \"]\";\n }\n case 27: {\n const elementType_3 = typeInfo.fields[0]();\n return (\"[\" + join(\", \", map_2((element_3) => Convert_serialize(element_3, elementType_3), value))) + \"]\";\n }\n case 25: {\n const elementType_4 = typeInfo.fields[0]();\n return (\"[\" + join(\", \", map_3((element_4) => Convert_serialize(element_4, elementType_4), value))) + \"]\";\n }\n case 28: {\n const elementType_5 = typeInfo.fields[0]();\n return (\"[\" + join(\", \", map_2((element_5) => Convert_serialize(element_5, elementType_5), toArray_1(value)))) + \"]\";\n }\n case 24: {\n const matchValue = value;\n if (matchValue != null) {\n value_mut = value_87(matchValue);\n typeInfo_mut = typeInfo.fields[0]();\n continue Convert_serialize;\n }\n else {\n return \"null\";\n }\n }\n case 37: {\n const patternInput_1 = typeInfo.fields[0]();\n const patternInput_2 = getUnionFields(value, patternInput_1[1]);\n const usedCase = patternInput_2[0];\n const fields = patternInput_2[1];\n const caseTypes = patternInput_1[0].find((case$) => (case$.CaseName === name_2(usedCase))).CaseTypes;\n if (enumUnion(typeInfo) ? true : (caseTypes.length === 0)) {\n return Convert_betweenQuotes(name_2(usedCase));\n }\n else if (caseTypes.length === 1) {\n return (((\"{\" + Convert_betweenQuotes(name_2(usedCase))) + \": \") + Convert_serialize(fields[0], caseTypes[0])) + \"}\";\n }\n else {\n const serializedFields_1 = join(\", \", mapIndexed((index, caseType) => Convert_serialize(fields[index], caseType), caseTypes));\n return ((((\"{\" + Convert_betweenQuotes(name_2(usedCase))) + \": \") + \"[\") + serializedFields_1) + \"] }\";\n }\n }\n case 30: {\n const patternInput_3 = typeInfo.fields[0]();\n const keyType = patternInput_3[0];\n const serializedValues = join(\", \", map_2((tupledArg) => {\n const serializedKey = Convert_serialize(tupledArg[0], keyType);\n const serializedValue = Convert_serialize(tupledArg[1], patternInput_3[1]);\n if (isPrimitive(keyType) ? true : enumUnion(keyType)) {\n if (!Convert_isQuoted(serializedKey)) {\n return (Convert_quoteText(serializedKey) + \": \") + serializedValue;\n }\n else {\n return (serializedKey + \": \") + serializedValue;\n }\n }\n else {\n return (((\"[\" + serializedKey) + \", \") + serializedValue) + \"]\";\n }\n }, toArray_2(value)));\n if (isPrimitive(keyType) ? true : enumUnion(keyType)) {\n return (\"{\" + serializedValues) + \"}\";\n }\n else {\n return (\"[\" + serializedValues) + \"]\";\n }\n }\n case 31: {\n const patternInput_4 = typeInfo.fields[0]();\n const keyType_1 = patternInput_4[0];\n const serializedValues_1 = join(\", \", map_4((pair) => {\n const patternInput_5 = [pair[0], pair[1]];\n const serializedKey_1 = Convert_serialize(patternInput_5[0], keyType_1);\n const serializedValue_1 = Convert_serialize(patternInput_5[1], patternInput_4[1]);\n if (isPrimitive(keyType_1) ? true : enumUnion(keyType_1)) {\n if (!Convert_isQuoted(serializedKey_1)) {\n return (Convert_betweenQuotes(serializedKey_1) + \": \") + serializedValue_1;\n }\n else {\n return (serializedKey_1 + \": \") + serializedValue_1;\n }\n }\n else {\n return (((\"[\" + serializedKey_1) + \", \") + serializedValue_1) + \"]\";\n }\n }, value));\n if (isPrimitive(keyType_1) ? true : enumUnion(keyType_1)) {\n return (\"{\" + serializedValues_1) + \"}\";\n }\n else {\n return (\"[\" + serializedValues_1) + \"]\";\n }\n }\n case 29: {\n const tupleTypes = typeInfo.fields[0]();\n if (tupleTypes.length === 1) {\n return (\"[\" + Convert_serialize(value, tupleTypes[0])) + \"]\";\n }\n else {\n return (\"[\" + join(\", \", mapIndexed((index_1, element_6) => Convert_serialize(element_6, tupleTypes[index_1]), value))) + \"]\";\n }\n }\n case 20: {\n return SimpleJson_stringify(value);\n }\n case 21: {\n return SimpleJson_stringify(value);\n }\n default: {\n return \"null\";\n }\n }\n break;\n }\n}\n\nexport function Fable_SimpleJson_Json__Json_stringify_Static_4E60E31B(value) {\n if (Convert_isUsingFable3) {\n console.warn(some(\"It looks like you using the function Json.stringify from Fable.SimpleJson while also using Fable 3 (nagareyama). Please use Json.serialize instead which supports both Fable 3 and Fable 2.x\"));\n }\n return SimpleJson_stringify(value);\n}\n\n","import { combineHashCodes, compare, compareArrays, equalArrays, equals, sameConstructor, numberHash, structuralHash } from \"./Util.js\";\nexport function seqToString(self) {\n let count = 0;\n let str = \"[\";\n for (const x of self) {\n if (count === 0) {\n str += toString(x);\n }\n else if (count === 100) {\n str += \"; ...\";\n break;\n }\n else {\n str += \"; \" + toString(x);\n }\n count++;\n }\n return str + \"]\";\n}\nexport function toString(x, callStack = 0) {\n if (x != null && typeof x === \"object\") {\n if (typeof x.toString === \"function\") {\n return x.toString();\n }\n else if (Symbol.iterator in x) {\n return seqToString(x);\n }\n else { // TODO: Date?\n const cons = Object.getPrototypeOf(x).constructor;\n return cons === Object && callStack < 10\n // Same format as recordToString\n ? \"{ \" + Object.entries(x).map(([k, v]) => k + \" = \" + toString(v, callStack + 1)).join(\"\\n \") + \" }\"\n : cons.name;\n }\n }\n return String(x);\n}\nexport function unionToString(name, fields) {\n if (fields.length === 0) {\n return name;\n }\n else {\n let fieldStr = \"\";\n let withParens = true;\n if (fields.length === 1) {\n fieldStr = toString(fields[0]);\n withParens = fieldStr.indexOf(\" \") >= 0;\n }\n else {\n fieldStr = fields.map((x) => toString(x)).join(\", \");\n }\n return name + (withParens ? \" (\" : \" \") + fieldStr + (withParens ? \")\" : \"\");\n }\n}\nexport class Union {\n get name() {\n return this.cases()[this.tag];\n }\n toJSON() {\n return this.fields.length === 0 ? this.name : [this.name].concat(this.fields);\n }\n toString() {\n return unionToString(this.name, this.fields);\n }\n GetHashCode() {\n const hashes = this.fields.map((x) => structuralHash(x));\n hashes.splice(0, 0, numberHash(this.tag));\n return combineHashCodes(hashes);\n }\n Equals(other) {\n if (this === other) {\n return true;\n }\n else if (!sameConstructor(this, other)) {\n return false;\n }\n else if (this.tag === other.tag) {\n return equalArrays(this.fields, other.fields);\n }\n else {\n return false;\n }\n }\n CompareTo(other) {\n if (this === other) {\n return 0;\n }\n else if (!sameConstructor(this, other)) {\n return -1;\n }\n else if (this.tag === other.tag) {\n return compareArrays(this.fields, other.fields);\n }\n else {\n return this.tag < other.tag ? -1 : 1;\n }\n }\n}\nfunction recordToJSON(self) {\n const o = {};\n const keys = Object.keys(self);\n for (let i = 0; i < keys.length; i++) {\n o[keys[i]] = self[keys[i]];\n }\n return o;\n}\nfunction recordToString(self) {\n return \"{ \" + Object.entries(self).map(([k, v]) => k + \" = \" + toString(v)).join(\"\\n \") + \" }\";\n}\nfunction recordGetHashCode(self) {\n const hashes = Object.values(self).map((v) => structuralHash(v));\n return combineHashCodes(hashes);\n}\nfunction recordEquals(self, other) {\n if (self === other) {\n return true;\n }\n else if (!sameConstructor(self, other)) {\n return false;\n }\n else {\n const thisNames = Object.keys(self);\n for (let i = 0; i < thisNames.length; i++) {\n if (!equals(self[thisNames[i]], other[thisNames[i]])) {\n return false;\n }\n }\n return true;\n }\n}\nfunction recordCompareTo(self, other) {\n if (self === other) {\n return 0;\n }\n else if (!sameConstructor(self, other)) {\n return -1;\n }\n else {\n const thisNames = Object.keys(self);\n for (let i = 0; i < thisNames.length; i++) {\n const result = compare(self[thisNames[i]], other[thisNames[i]]);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n }\n}\nexport class Record {\n toJSON() { return recordToJSON(this); }\n toString() { return recordToString(this); }\n GetHashCode() { return recordGetHashCode(this); }\n Equals(other) { return recordEquals(this, other); }\n CompareTo(other) { return recordCompareTo(this, other); }\n}\nexport class FSharpRef {\n constructor(contentsOrGetter, setter) {\n if (typeof setter === \"function\") {\n this.getter = contentsOrGetter;\n this.setter = setter;\n }\n else {\n this.getter = () => contentsOrGetter;\n this.setter = (v) => { contentsOrGetter = v; };\n }\n }\n get contents() {\n return this.getter();\n }\n set contents(v) {\n this.setter(v);\n }\n}\n// EXCEPTIONS\n// Exception is intentionally not derived from Error, for performance reasons (see #2160)\nexport class Exception {\n constructor(message) {\n this.message = message;\n }\n}\nexport function isException(x) {\n return x instanceof Exception || x instanceof Error;\n}\nexport class FSharpException extends Exception {\n toJSON() { return recordToJSON(this); }\n toString() { return recordToString(this); }\n GetHashCode() { return recordGetHashCode(this); }\n Equals(other) { return recordEquals(this, other); }\n CompareTo(other) { return recordCompareTo(this, other); }\n}\nexport class MatchFailureException extends FSharpException {\n constructor(arg1, arg2, arg3) {\n super();\n this.arg1 = arg1;\n this.arg2 = arg2 | 0;\n this.arg3 = arg3 | 0;\n this.message = \"The match cases were incomplete\";\n }\n}\nexport class Attribute {\n}\n","import { toIterator, getEnumerator } from \"./Util.js\";\nimport { iterate, map, iterateIndexed, concat } from \"./Seq.js\";\nimport { FSharpRef } from \"./Types.js\";\nimport { class_type } from \"./Reflection.js\";\nimport { getItemFromDict, tryGetValue } from \"./MapUtil.js\";\nimport { some } from \"./Option.js\";\n\nexport class HashSet {\n constructor(items, comparer) {\n const this$ = new FSharpRef(null);\n this.comparer = comparer;\n this$.contents = this;\n this.hashMap = (new Map([]));\n this[\"init@8-2\"] = 1;\n const enumerator = getEnumerator(items);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n void HashSet__Add_2B595(this$.contents, enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n }\n finally {\n enumerator.Dispose();\n }\n }\n get [Symbol.toStringTag]() {\n return \"HashSet\";\n }\n toJSON(_key) {\n const this$ = this;\n return Array.from(this$);\n }\n [\"System.Collections.IEnumerable.GetEnumerator\"]() {\n const this$ = this;\n return getEnumerator(this$);\n }\n GetEnumerator() {\n const this$ = this;\n return getEnumerator(concat(this$.hashMap.values()));\n }\n [Symbol.iterator]() {\n return toIterator(this.GetEnumerator());\n }\n [\"System.Collections.Generic.ICollection`1.Add2B595\"](item) {\n const this$ = this;\n void HashSet__Add_2B595(this$, item);\n }\n [\"System.Collections.Generic.ICollection`1.Clear\"]() {\n const this$ = this;\n HashSet__Clear(this$);\n }\n [\"System.Collections.Generic.ICollection`1.Contains2B595\"](item) {\n const this$ = this;\n return HashSet__Contains_2B595(this$, item);\n }\n [\"System.Collections.Generic.ICollection`1.CopyToZ2E171D71\"](array, arrayIndex) {\n const this$ = this;\n iterateIndexed((i, e) => {\n array[arrayIndex + i] = e;\n }, this$);\n }\n [\"System.Collections.Generic.ICollection`1.get_Count\"]() {\n const this$ = this;\n return HashSet__get_Count(this$) | 0;\n }\n [\"System.Collections.Generic.ICollection`1.get_IsReadOnly\"]() {\n return false;\n }\n [\"System.Collections.Generic.ICollection`1.Remove2B595\"](item) {\n const this$ = this;\n return HashSet__Remove_2B595(this$, item);\n }\n get size() {\n const this$ = this;\n return HashSet__get_Count(this$) | 0;\n }\n add(k) {\n const this$ = this;\n void HashSet__Add_2B595(this$, k);\n return this$;\n }\n clear() {\n const this$ = this;\n HashSet__Clear(this$);\n }\n delete(k) {\n const this$ = this;\n return HashSet__Remove_2B595(this$, k);\n }\n has(k) {\n const this$ = this;\n return HashSet__Contains_2B595(this$, k);\n }\n keys() {\n const this$ = this;\n return map((x) => x, this$);\n }\n values() {\n const this$ = this;\n return map((x) => x, this$);\n }\n entries() {\n const this$ = this;\n return map((v) => [v, v], this$);\n }\n forEach(f, thisArg) {\n const this$ = this;\n iterate((x) => {\n f(x, x, this$);\n }, this$);\n }\n}\n\nexport function HashSet$reflection(gen0) {\n return class_type(\"Fable.Collections.HashSet\", [gen0], HashSet);\n}\n\nexport function HashSet_$ctor_Z6150332D(items, comparer) {\n return new HashSet(items, comparer);\n}\n\nfunction HashSet__TryFindIndex_2B595(this$, k) {\n const h = this$.comparer.GetHashCode(k) | 0;\n let matchValue;\n let outArg = null;\n matchValue = [tryGetValue(this$.hashMap, h, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return [true, h, matchValue[1].findIndex((v_1) => this$.comparer.Equals(k, v_1))];\n }\n else {\n return [false, h, -1];\n }\n}\n\nfunction HashSet__TryFind_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return some(getItemFromDict(this$.hashMap, matchValue[1])[matchValue[2]]);\n }\n case 1: {\n return void 0;\n }\n }\n}\n\nexport function HashSet__get_Comparer(this$) {\n return this$.comparer;\n}\n\nexport function HashSet__Clear(this$) {\n this$.hashMap.clear();\n}\n\nexport function HashSet__get_Count(this$) {\n let count = 0;\n let enumerator = getEnumerator(this$.hashMap.values());\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const items = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n count = ((count + items.length) | 0);\n }\n }\n finally {\n enumerator.Dispose();\n }\n return count | 0;\n}\n\nexport function HashSet__Add_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return false;\n }\n case 1: {\n if (matchValue[0]) {\n const value = void (getItemFromDict(this$.hashMap, matchValue[1]).push(k));\n return true;\n }\n else {\n this$.hashMap.set(matchValue[1], [k]);\n return true;\n }\n }\n }\n}\n\nexport function HashSet__Contains_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n return true;\n }\n case 1: {\n return false;\n }\n }\n}\n\nexport function HashSet__Remove_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let pattern_matching_result;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n pattern_matching_result = 0;\n }\n else {\n pattern_matching_result = 1;\n }\n }\n else {\n pattern_matching_result = 1;\n }\n switch (pattern_matching_result) {\n case 0: {\n getItemFromDict(this$.hashMap, matchValue[1]).splice(matchValue[2], 1);\n return true;\n }\n case 1: {\n return false;\n }\n }\n}\n\n","// Adapted from: https://github.com/dcodeIO/long.js/blob/master/src/long.js\n// Apache License 2.0: https://github.com/dcodeIO/long.js/blob/master/LICENSE\n/* tslint:disable */\nimport { symbol } from \"../Numeric.js\";\n/**\n * wasm optimizations, to do native i64 multiplication and divide\n */\nvar wasm = null;\ntry {\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\n ])), {}).exports;\n}\ncatch (e) {\n // no wasm support :(\n}\n/**\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\n * See the from* functions below for more convenient ways of constructing Longs.\n * @exports Long\n * @class A Long class for representing a 64 bit two's-complement integer value.\n * @param {number} low The low (signed) 32 bits of the long\n * @param {number} high The high (signed) 32 bits of the long\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @constructor\n */\nexport function Long(low, high, unsigned) {\n /**\n * The low 32 bits as a signed value.\n * @type {number}\n */\n this.low = low | 0;\n /**\n * The high 32 bits as a signed value.\n * @type {number}\n */\n this.high = high | 0;\n /**\n * Whether unsigned or not.\n * @type {boolean}\n */\n this.unsigned = !!unsigned;\n}\nLong.prototype.GetHashCode = function () {\n let h1 = this.unsigned ? 1 : 0;\n h1 = ((h1 << 5) + h1) ^ this.high;\n h1 = ((h1 << 5) + h1) ^ this.low;\n return h1;\n};\nLong.prototype.Equals = function (x) { return equals(this, x); };\nLong.prototype.CompareTo = function (x) { return compare(this, x); };\nLong.prototype.toString = function (radix) { return toString(this, radix); };\nLong.prototype.toJSON = function () { return toString(this); };\nLong.prototype[symbol] = function () {\n const x = this;\n return {\n multiply: y => multiply(x, y),\n toPrecision: sd => String(x) + (0).toPrecision(sd).substr(1),\n toExponential: dp => String(x) + (0).toExponential(dp).substr(1),\n toFixed: dp => String(x) + (0).toFixed(dp).substr(1),\n toHex: () => toString(x.unsigned ? x : fromBytes(toBytes(x), true), 16),\n };\n};\n// The internal representation of a long is the two given signed, 32-bit values.\n// We use 32-bit pieces because these are the size of integers on which\n// Javascript performs bit-operations. For operations like addition and\n// multiplication, we split each number into 16 bit pieces, which can easily be\n// multiplied within Javascript's floating-point representation without overflow\n// or change in sign.\n//\n// In the algorithms below, we frequently reduce the negative case to the\n// positive case by negating the input(s) and then post-processing the result.\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n// a positive number, it overflows back into a negative). Not handling this\n// case would often result in infinite recursion.\n//\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\n// methods on which they depend.\n/**\n * An indicator used to reliably determine if an object is a Long or not.\n * @type {boolean}\n * @const\n * @private\n */\nLong.prototype.__isLong__;\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\n/**\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n * @inner\n */\nexport function isLong(obj) {\n return (obj && obj[\"__isLong__\"]) === true;\n}\n/**\n * Tests if the specified object is a Long.\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n */\n// Long.isLong = isLong;\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @inner\n */\nvar INT_CACHE = {};\n/**\n * A cache of the Long representations of small unsigned integer values.\n * @type {!Object}\n * @inner\n */\nvar UINT_CACHE = {};\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromInt(value, unsigned) {\n var obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if (cache = (0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\n if (cache)\n UINT_CACHE[value] = obj;\n return obj;\n }\n else {\n value |= 0;\n if (cache = (-128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, value < 0 ? -1 : 0, false);\n if (cache)\n INT_CACHE[value] = obj;\n return obj;\n }\n}\n/**\n * Returns a Long representing the given 32 bit integer value.\n * @function\n * @param {number} value The 32 bit integer in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromInt = fromInt;\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromNumber(value, unsigned) {\n if (isNaN(value))\n return unsigned ? UZERO : ZERO;\n if (unsigned) {\n if (value < 0)\n return UZERO;\n if (value >= TWO_PWR_64_DBL)\n return MAX_UNSIGNED_VALUE;\n }\n else {\n if (value <= -TWO_PWR_63_DBL)\n return MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL)\n return MAX_VALUE;\n }\n if (value < 0)\n return negate(fromNumber(-value, unsigned));\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\n}\n/**\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\n * @function\n * @param {number} value The number in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromNumber = fromNumber;\n/**\n * @param {number} lowBits\n * @param {number} highBits\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n}\n/**\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\n * assumed to use 32 bits.\n * @function\n * @param {number} lowBits The low 32 bits\n * @param {number} highBits The high 32 bits\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromBits = fromBits;\n/**\n * @function\n * @param {number} base\n * @param {number} exponent\n * @returns {number}\n * @inner\n */\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\n/**\n * @param {string} str\n * @param {(boolean|number)=} unsigned\n * @param {number=} radix\n * @returns {!Long}\n * @inner\n */\nexport function fromString(str, unsigned, radix) {\n if (str.length === 0)\n throw Error('empty string');\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\n return ZERO;\n if (typeof unsigned === 'number') {\n // For goog.math.long compatibility\n radix = unsigned,\n unsigned = false;\n }\n else {\n unsigned = !!unsigned;\n }\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n var p = str.indexOf('-');\n if (p > 0)\n throw Error('interior hyphen');\n else if (p === 0) {\n return negate(fromString(str.substring(1), unsigned, radix));\n }\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 8));\n var result = ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i), value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = fromNumber(pow_dbl(radix, size));\n result = add(multiply(result, power), fromNumber(value));\n }\n else {\n result = multiply(result, radixToPower);\n result = add(result, fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n}\n/**\n * Returns a Long representation of the given string, written using the specified radix.\n * @function\n * @param {string} str The textual representation of the Long\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromString = fromString;\n/**\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromValue(val, unsigned) {\n if (typeof val === 'number')\n return fromNumber(val, unsigned);\n if (typeof val === 'string')\n return fromString(val, unsigned);\n // Throws for non-objects, converts non-instanceof Long:\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\n}\n/**\n * Converts the specified value to a Long using the appropriate from* function for its type.\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long}\n */\n// Long.fromValue = fromValue;\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\n// no runtime penalty for these.\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_16_DBL = 1 << 16;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_24_DBL = 1 << 24;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n/**\n * @type {!Long}\n * @const\n * @inner\n */\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n/**\n * @type {!Long}\n * @inner\n */\nexport var ZERO = fromInt(0);\n/**\n * Signed zero.\n * @type {!Long}\n */\n// Long.ZERO = ZERO;\n/**\n * @type {!Long}\n * @inner\n */\nexport var UZERO = fromInt(0, true);\n/**\n * Unsigned zero.\n * @type {!Long}\n */\n// Long.UZERO = UZERO;\n/**\n * @type {!Long}\n * @inner\n */\nexport var ONE = fromInt(1);\n/**\n * Signed one.\n * @type {!Long}\n */\n// Long.ONE = ONE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var UONE = fromInt(1, true);\n/**\n * Unsigned one.\n * @type {!Long}\n */\n// Long.UONE = UONE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var NEG_ONE = fromInt(-1);\n/**\n * Signed negative one.\n * @type {!Long}\n */\n// Long.NEG_ONE = NEG_ONE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var MAX_VALUE = fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0, false);\n/**\n * Maximum signed value.\n * @type {!Long}\n */\n// Long.MAX_VALUE = MAX_VALUE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF | 0, 0xFFFFFFFF | 0, true);\n/**\n * Maximum unsigned value.\n * @type {!Long}\n */\n// Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var MIN_VALUE = fromBits(0, 0x80000000 | 0, false);\n/**\n * Minimum signed value.\n * @type {!Long}\n */\n// Long.MIN_VALUE = MIN_VALUE;\n/**\n * @alias Long.prototype\n * @inner\n */\n// var LongPrototype = Long.prototype;\n/**\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\n * @this {!Long}\n * @returns {number}\n */\nexport function toInt($this) {\n return $this.unsigned ? $this.low >>> 0 : $this.low;\n}\n;\n/**\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\n * @this {!Long}\n * @returns {number}\n */\nexport function toNumber($this) {\n if ($this.unsigned)\n return (($this.high >>> 0) * TWO_PWR_32_DBL) + ($this.low >>> 0);\n return $this.high * TWO_PWR_32_DBL + ($this.low >>> 0);\n}\n;\n/**\n * Converts the Long to a string written in the specified radix.\n * @this {!Long}\n * @param {number=} radix Radix (2-36), defaults to 10\n * @returns {string}\n * @override\n * @throws {RangeError} If `radix` is out of range\n */\nexport function toString($this, radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n if (isZero($this))\n return '0';\n if (isNegative($this)) { // Unsigned Longs are never negative\n if (equals($this, MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = fromNumber(radix), div = divide($this, radixLong), rem1 = subtract(multiply(div, radixLong), $this);\n return toString(div, radix) + toInt(rem1).toString(radix);\n }\n else\n return '-' + toString(negate($this), radix);\n }\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 6), $this.unsigned), rem = $this;\n var result = '';\n while (true) {\n var remDiv = divide(rem, radixToPower), intval = toInt(subtract(rem, multiply(remDiv, radixToPower))) >>> 0, digits = intval.toString(radix);\n rem = remDiv;\n if (isZero(rem))\n return digits + result;\n else {\n while (digits.length < 6)\n digits = '0' + digits;\n result = '' + digits + result;\n }\n }\n}\n;\n/**\n * Gets the high 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed high bits\n */\nexport function getHighBits($this) {\n return $this.high;\n}\n;\n/**\n * Gets the high 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned high bits\n */\nexport function getHighBitsUnsigned($this) {\n return $this.high >>> 0;\n}\n;\n/**\n * Gets the low 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed low bits\n */\nexport function getLowBits($this) {\n return $this.low;\n}\n;\n/**\n * Gets the low 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned low bits\n */\nexport function getLowBitsUnsigned($this) {\n return $this.low >>> 0;\n}\n;\n/**\n * Gets the number of bits needed to represent the absolute value of this Long.\n * @this {!Long}\n * @returns {number}\n */\nexport function getNumBitsAbs($this) {\n if (isNegative($this)) // Unsigned Longs are never negative\n return equals($this, MIN_VALUE) ? 64 : getNumBitsAbs(negate($this));\n var val = $this.high != 0 ? $this.high : $this.low;\n for (var bit = 31; bit > 0; bit--)\n if ((val & (1 << bit)) != 0)\n break;\n return $this.high != 0 ? bit + 33 : bit + 1;\n}\n;\n/**\n * Tests if this Long's value equals zero.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isZero($this) {\n return $this.high === 0 && $this.low === 0;\n}\n;\n/**\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\n * @returns {boolean}\n */\n// LongPrototype.eqz = LongPrototype.isZero;\n/**\n * Tests if this Long's value is negative.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isNegative($this) {\n return !$this.unsigned && $this.high < 0;\n}\n;\n/**\n * Tests if this Long's value is positive.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isPositive($this) {\n return $this.unsigned || $this.high >= 0;\n}\n;\n/**\n * Tests if this Long's value is odd.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isOdd($this) {\n return ($this.low & 1) === 1;\n}\n;\n/**\n * Tests if this Long's value is even.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isEven($this) {\n return ($this.low & 1) === 0;\n}\n;\n/**\n * Tests if this Long's value equals the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function equals($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n if ($this.unsigned !== other.unsigned && ($this.high >>> 31) === 1 && (other.high >>> 31) === 1)\n return false;\n return $this.high === other.high && $this.low === other.low;\n}\n;\n/**\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.eq = LongPrototype.equals;\n/**\n * Tests if this Long's value differs from the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function notEquals($this, other) {\n return !equals($this, /* validates */ other);\n}\n;\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.neq = LongPrototype.notEquals;\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.ne = LongPrototype.notEquals;\n/**\n * Tests if this Long's value is less than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function lessThan($this, other) {\n return compare($this, /* validates */ other) < 0;\n}\n;\n/**\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.lt = LongPrototype.lessThan;\n/**\n * Tests if this Long's value is less than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function lessThanOrEqual($this, other) {\n return compare($this, /* validates */ other) <= 0;\n}\n;\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.lte = LongPrototype.lessThanOrEqual;\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.le = LongPrototype.lessThanOrEqual;\n/**\n * Tests if this Long's value is greater than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function greaterThan($this, other) {\n return compare($this, /* validates */ other) > 0;\n}\n;\n/**\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.gt = LongPrototype.greaterThan;\n/**\n * Tests if this Long's value is greater than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function greaterThanOrEqual($this, other) {\n return compare($this, /* validates */ other) >= 0;\n}\n;\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.gte = LongPrototype.greaterThanOrEqual;\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.ge = LongPrototype.greaterThanOrEqual;\n/**\n * Compares this Long's value with the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nexport function compare($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n if (equals($this, other))\n return 0;\n var thisNeg = isNegative($this), otherNeg = isNegative(other);\n if (thisNeg && !otherNeg)\n return -1;\n if (!thisNeg && otherNeg)\n return 1;\n // At this point the sign bits are the same\n if (!$this.unsigned)\n return isNegative(subtract($this, other)) ? -1 : 1;\n // Both are positive if at least one is unsigned\n return (other.high >>> 0) > ($this.high >>> 0) || (other.high === $this.high && (other.low >>> 0) > ($this.low >>> 0)) ? -1 : 1;\n}\n;\n/**\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\n// LongPrototype.comp = LongPrototype.compare;\n/**\n * Negates this Long's value.\n * @this {!Long}\n * @returns {!Long} Negated Long\n */\nexport function negate($this) {\n if (!$this.unsigned && equals($this, MIN_VALUE))\n return MIN_VALUE;\n return add(not($this), ONE);\n}\n;\n/**\n * Negates this Long's value. This is an alias of {@link Long#negate}.\n * @function\n * @returns {!Long} Negated Long\n */\n// LongPrototype.neg = LongPrototype.negate;\n/**\n * Returns the sum of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} addend Addend\n * @returns {!Long} Sum\n */\nexport function add($this, addend) {\n if (!isLong(addend))\n addend = fromValue(addend);\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n var a48 = $this.high >>> 16;\n var a32 = $this.high & 0xFFFF;\n var a16 = $this.low >>> 16;\n var a00 = $this.low & 0xFFFF;\n var b48 = addend.high >>> 16;\n var b32 = addend.high & 0xFFFF;\n var b16 = addend.low >>> 16;\n var b00 = addend.low & 0xFFFF;\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 + b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, $this.unsigned);\n}\n;\n/**\n * Returns the difference of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nexport function subtract($this, subtrahend) {\n if (!isLong(subtrahend))\n subtrahend = fromValue(subtrahend);\n return add($this, negate(subtrahend));\n}\n;\n/**\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\n * @function\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\n// LongPrototype.sub = LongPrototype.subtract;\n/**\n * Returns the product of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nexport function multiply($this, multiplier) {\n if (isZero($this))\n return $this.unsigned ? UZERO : ZERO;\n if (!isLong(multiplier))\n multiplier = fromValue(multiplier);\n // use wasm support if present\n if (wasm) {\n var low = wasm.mul($this.low, $this.high, multiplier.low, multiplier.high);\n return fromBits(low, wasm.get_high(), $this.unsigned);\n }\n if (isZero(multiplier))\n return $this.unsigned ? UZERO : ZERO;\n if (equals($this, MIN_VALUE))\n return isOdd(multiplier) ? MIN_VALUE : ZERO;\n if (equals(multiplier, MIN_VALUE))\n return isOdd($this) ? MIN_VALUE : ZERO;\n if (isNegative($this)) {\n if (isNegative(multiplier))\n return multiply(negate($this), negate(multiplier));\n else\n return negate(multiply(negate($this), multiplier));\n }\n else if (isNegative(multiplier))\n return negate(multiply($this, negate(multiplier)));\n // If both longs are small, use float multiplication\n if (lessThan($this, TWO_PWR_24) && lessThan(multiplier, TWO_PWR_24))\n return fromNumber(toNumber($this) * toNumber(multiplier), $this.unsigned);\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n var a48 = $this.high >>> 16;\n var a32 = $this.high & 0xFFFF;\n var a16 = $this.low >>> 16;\n var a00 = $this.low & 0xFFFF;\n var b48 = multiplier.high >>> 16;\n var b32 = multiplier.high & 0xFFFF;\n var b16 = multiplier.low >>> 16;\n var b00 = multiplier.low & 0xFFFF;\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, $this.unsigned);\n}\n;\n/**\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\n * @function\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\n// LongPrototype.mul = LongPrototype.multiply;\n/**\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\n * unsigned if this Long is unsigned.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nexport function divide($this, divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n if (isZero(divisor))\n throw Error('division by zero');\n // use wasm support if present\n if (wasm) {\n // guard against signed division overflow: the largest\n // negative number / -1 would be 1 larger than the largest\n // positive number, due to two's complement.\n if (!$this.unsigned &&\n $this.high === -0x80000000 &&\n divisor.low === -1 && divisor.high === -1) {\n // be consistent with non-wasm code path\n return $this;\n }\n var low = ($this.unsigned ? wasm.div_u : wasm.div_s)($this.low, $this.high, divisor.low, divisor.high);\n return fromBits(low, wasm.get_high(), $this.unsigned);\n }\n if (isZero($this))\n return $this.unsigned ? UZERO : ZERO;\n var approx, rem, res;\n if (!$this.unsigned) {\n // This section is only relevant for signed longs and is derived from the\n // closure library as a whole.\n if (equals($this, MIN_VALUE)) {\n if (equals(divisor, ONE) || equals(divisor, NEG_ONE))\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n else if (equals(divisor, MIN_VALUE))\n return ONE;\n else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = shiftRight($this, 1);\n approx = shiftLeft(divide(halfThis, divisor), 1);\n if (equals(approx, ZERO)) {\n return isNegative(divisor) ? ONE : NEG_ONE;\n }\n else {\n rem = subtract($this, multiply(divisor, approx));\n res = add(approx, divide(rem, divisor));\n return res;\n }\n }\n }\n else if (equals(divisor, MIN_VALUE))\n return $this.unsigned ? UZERO : ZERO;\n if (isNegative($this)) {\n if (isNegative(divisor))\n return divide(negate($this), negate(divisor));\n return negate(divide(negate($this), divisor));\n }\n else if (isNegative(divisor))\n return negate(divide($this, negate(divisor)));\n res = ZERO;\n }\n else {\n // The algorithm below has not been made for unsigned longs. It's therefore\n // required to take special care of the MSB prior to running it.\n if (!divisor.unsigned)\n divisor = toUnsigned(divisor);\n if (greaterThan(divisor, $this))\n return UZERO;\n if (greaterThan(divisor, shiftRightUnsigned($this, 1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\n return UONE;\n res = UZERO;\n }\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n rem = $this;\n while (greaterThanOrEqual(rem, divisor)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n approx = Math.max(1, Math.floor(toNumber(rem) / toNumber(divisor)));\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2), delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48), \n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n approxRes = fromNumber(approx), approxRem = multiply(approxRes, divisor);\n while (isNegative(approxRem) || greaterThan(approxRem, rem)) {\n approx -= delta;\n approxRes = fromNumber(approx, $this.unsigned);\n approxRem = multiply(approxRes, divisor);\n }\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (isZero(approxRes))\n approxRes = ONE;\n res = add(res, approxRes);\n rem = subtract(rem, approxRem);\n }\n return res;\n}\n;\n/**\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\n// LongPrototype.div = LongPrototype.divide;\n/**\n * Returns this Long modulo the specified.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nexport function modulo($this, divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n // use wasm support if present\n if (wasm) {\n var low = ($this.unsigned ? wasm.rem_u : wasm.rem_s)($this.low, $this.high, divisor.low, divisor.high);\n return fromBits(low, wasm.get_high(), $this.unsigned);\n }\n return subtract($this, multiply(divide($this, divisor), divisor));\n}\n;\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\n// LongPrototype.mod = LongPrototype.modulo;\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\n// LongPrototype.rem = LongPrototype.modulo;\n/**\n * Returns the bitwise NOT of this Long.\n * @this {!Long}\n * @returns {!Long}\n */\nexport function not($this) {\n return fromBits(~$this.low, ~$this.high, $this.unsigned);\n}\n;\n/**\n * Returns the bitwise AND of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nexport function and($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits($this.low & other.low, $this.high & other.high, $this.unsigned);\n}\n;\n/**\n * Returns the bitwise OR of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nexport function or($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits($this.low | other.low, $this.high | other.high, $this.unsigned);\n}\n;\n/**\n * Returns the bitwise XOR of this Long and the given one.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nexport function xor($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits($this.low ^ other.low, $this.high ^ other.high, $this.unsigned);\n}\n;\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nexport function shiftLeft($this, numBits) {\n if (isLong(numBits))\n numBits = toInt(numBits);\n if ((numBits &= 63) === 0)\n return $this;\n else if (numBits < 32)\n return fromBits($this.low << numBits, ($this.high << numBits) | ($this.low >>> (32 - numBits)), $this.unsigned);\n else\n return fromBits(0, $this.low << (numBits - 32), $this.unsigned);\n}\n;\n/**\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shl = LongPrototype.shiftLeft;\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nexport function shiftRight($this, numBits) {\n if (isLong(numBits))\n numBits = toInt(numBits);\n if ((numBits &= 63) === 0)\n return $this;\n else if (numBits < 32)\n return fromBits(($this.low >>> numBits) | ($this.high << (32 - numBits)), $this.high >> numBits, $this.unsigned);\n else\n return fromBits($this.high >> (numBits - 32), $this.high >= 0 ? 0 : -1, $this.unsigned);\n}\n;\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shr = LongPrototype.shiftRight;\n/**\n * Returns this Long with bits logically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nexport function shiftRightUnsigned($this, numBits) {\n if (isLong(numBits))\n numBits = toInt(numBits);\n numBits &= 63;\n if (numBits === 0)\n return $this;\n else {\n var high = $this.high;\n if (numBits < 32) {\n var low = $this.low;\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, $this.unsigned);\n }\n else if (numBits === 32)\n return fromBits(high, 0, $this.unsigned);\n else\n return fromBits(high >>> (numBits - 32), 0, $this.unsigned);\n }\n}\n;\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shru = LongPrototype.shiftRightUnsigned;\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n/**\n * Returns this Long with bits rotated to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nexport const rotateLeft = function rotateLeft(numBits) {\n var b;\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n if (numBits === 32)\n return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.low << numBits) | (this.high >>> b)), ((this.high << numBits) | (this.low >>> b)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.high << numBits) | (this.low >>> b)), ((this.low << numBits) | (this.high >>> b)), this.unsigned);\n};\n/**\n * Returns this Long with bits rotated to the left by the given amount. This is an alias of {@link Long#rotateLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\n// LongPrototype.rotl = LongPrototype.rotateLeft;\n/**\n * Returns this Long with bits rotated to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nexport const rotateRight = function rotateRight(numBits) {\n var b;\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n if (numBits === 32)\n return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.high << b) | (this.low >>> numBits)), ((this.low << b) | (this.high >>> numBits)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.low << b) | (this.high >>> numBits)), ((this.high << b) | (this.low >>> numBits)), this.unsigned);\n};\n/**\n * Returns this Long with bits rotated to the right by the given amount. This is an alias of {@link Long#rotateRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\n// LongPrototype.rotr = LongPrototype.rotateRight;\n/**\n * Converts this Long to signed.\n * @this {!Long}\n * @returns {!Long} Signed long\n */\nexport function toSigned($this) {\n if (!$this.unsigned)\n return $this;\n return fromBits($this.low, $this.high, false);\n}\n;\n/**\n * Converts this Long to unsigned.\n * @this {!Long}\n * @returns {!Long} Unsigned long\n */\nexport function toUnsigned($this) {\n if ($this.unsigned)\n return $this;\n return fromBits($this.low, $this.high, true);\n}\n;\n/**\n * Converts this Long to its byte representation.\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @this {!Long}\n * @returns {!Array.} Byte representation\n */\nexport function toBytes($this, le) {\n return le ? toBytesLE($this) : toBytesBE($this);\n}\n;\n/**\n * Converts this Long to its little endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Little endian byte representation\n */\nexport function toBytesLE($this) {\n var hi = $this.high, lo = $this.low;\n return [\n lo & 0xff,\n lo >>> 8 & 0xff,\n lo >>> 16 & 0xff,\n lo >>> 24,\n hi & 0xff,\n hi >>> 8 & 0xff,\n hi >>> 16 & 0xff,\n hi >>> 24\n ];\n}\n;\n/**\n * Converts this Long to its big endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Big endian byte representation\n */\nexport function toBytesBE($this) {\n var hi = $this.high, lo = $this.low;\n return [\n hi >>> 24,\n hi >>> 16 & 0xff,\n hi >>> 8 & 0xff,\n hi & 0xff,\n lo >>> 24,\n lo >>> 16 & 0xff,\n lo >>> 8 & 0xff,\n lo & 0xff\n ];\n}\n;\n/**\n * Creates a Long from its byte representation.\n * @param {!Array.} bytes Byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @returns {Long} The corresponding Long value\n */\nexport function fromBytes(bytes, unsigned, le) {\n return le ? fromBytesLE(bytes, unsigned) : fromBytesBE(bytes, unsigned);\n}\n;\n/**\n * Creates a Long from its little endian byte representation.\n * @param {!Array.} bytes Little endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nexport function fromBytesLE(bytes, unsigned) {\n return new Long(bytes[0] |\n bytes[1] << 8 |\n bytes[2] << 16 |\n bytes[3] << 24, bytes[4] |\n bytes[5] << 8 |\n bytes[6] << 16 |\n bytes[7] << 24, unsigned);\n}\n;\n/**\n * Creates a Long from its big endian byte representation.\n * @param {!Array.} bytes Big endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nexport function fromBytesBE(bytes, unsigned) {\n return new Long(bytes[4] << 24 |\n bytes[5] << 16 |\n bytes[6] << 8 |\n bytes[7], bytes[0] << 24 |\n bytes[1] << 16 |\n bytes[2] << 8 |\n bytes[3], unsigned);\n}\n;\n","import { isValid } from \"./Int32.js\";\nimport * as LongLib from \"./lib/long.js\";\nexport default LongLib.Long;\nexport const get_Zero = LongLib.ZERO;\nexport const get_One = LongLib.ONE;\nexport const op_Addition = LongLib.add;\nexport const op_Subtraction = LongLib.subtract;\nexport const op_Multiply = LongLib.multiply;\nexport const op_Division = LongLib.divide;\nexport const op_Modulus = LongLib.modulo;\nexport const op_UnaryNegation = LongLib.negate;\nexport const op_LeftShift = LongLib.shiftLeft;\nexport const op_RightShift = LongLib.shiftRight;\nexport const op_RightShiftUnsigned = LongLib.shiftRightUnsigned;\nexport const op_BitwiseAnd = LongLib.and;\nexport const op_BitwiseOr = LongLib.or;\nexport const op_ExclusiveOr = LongLib.xor;\nexport const op_LogicalNot = LongLib.not;\nexport const op_LessThan = LongLib.lessThan;\nexport const op_LessThanOrEqual = LongLib.lessThanOrEqual;\nexport const op_GreaterThan = LongLib.greaterThan;\nexport const op_GreaterThanOrEqual = LongLib.greaterThanOrEqual;\nexport const op_Equality = LongLib.equals;\nexport const op_Inequality = LongLib.notEquals;\nexport const equals = LongLib.equals;\nexport const compare = LongLib.compare;\nexport const fromInt = LongLib.fromInt;\nexport const fromBits = LongLib.fromBits;\nexport const fromBytes = LongLib.fromBytes;\nexport const fromNumber = LongLib.fromNumber;\nexport const fromString = LongLib.fromString;\nexport const fromValue = LongLib.fromValue;\nexport const toInt = LongLib.toInt;\nexport const toBytes = LongLib.toBytes;\nexport const toNumber = LongLib.toNumber;\nexport const toString = LongLib.toString;\nexport const getLowBits = LongLib.getLowBits;\nexport const getHighBits = LongLib.getHighBits;\nexport const getLowBitsUnsigned = LongLib.getLowBitsUnsigned;\nexport const getHighBitsUnsigned = LongLib.getHighBitsUnsigned;\nfunction getMaxValue(unsigned, radix, isNegative) {\n switch (radix) {\n case 2: return unsigned ?\n \"1111111111111111111111111111111111111111111111111111111111111111\" :\n (isNegative ? \"1000000000000000000000000000000000000000000000000000000000000000\"\n : \"111111111111111111111111111111111111111111111111111111111111111\");\n case 8: return unsigned ?\n \"1777777777777777777777\" :\n (isNegative ? \"1000000000000000000000\" : \"777777777777777777777\");\n case 10: return unsigned ?\n \"18446744073709551615\" :\n (isNegative ? \"9223372036854775808\" : \"9223372036854775807\");\n case 16: return unsigned ?\n \"FFFFFFFFFFFFFFFF\" :\n (isNegative ? \"8000000000000000\" : \"7FFFFFFFFFFFFFFF\");\n default: throw new Error(\"Invalid radix.\");\n }\n}\nexport function abs(x) {\n if (!x.unsigned && LongLib.isNegative(x)) {\n return op_UnaryNegation(x);\n }\n else {\n return x;\n }\n}\nexport function fromInteger(value, unsigned, kind) {\n let x = value;\n let xh = 0;\n switch (kind) {\n case 0:\n x = value << 24 >> 24;\n xh = x;\n break;\n case 4:\n x = value << 24 >>> 24;\n break;\n case 1:\n x = value << 16 >> 16;\n xh = x;\n break;\n case 5:\n x = value << 16 >>> 16;\n break;\n case 2:\n x = value >> 0;\n xh = x;\n break;\n case 6:\n x = value >>> 0;\n break;\n }\n return LongLib.fromBits(x, xh >> 31, unsigned);\n}\nexport function parse(str, style, unsigned, _bitsize, radix) {\n const res = isValid(str, style, radix);\n if (res != null) {\n const lessOrEqual = (x, y) => {\n const len = Math.max(x.length, y.length);\n return x.padStart(len, \"0\") <= y.padStart(len, \"0\");\n };\n const isNegative = res.sign === \"-\";\n const maxValue = getMaxValue(unsigned || res.radix !== 10, res.radix, isNegative);\n if (lessOrEqual(res.digits.toUpperCase(), maxValue)) {\n str = isNegative ? res.sign + res.digits : res.digits;\n return LongLib.fromString(str, unsigned, res.radix);\n }\n }\n throw new Error(\"Input string was not in a correct format.\");\n}\nexport function tryParse(str, style, unsigned, bitsize, defValue) {\n try {\n defValue.contents = parse(str, style, unsigned, bitsize);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexport function unixEpochMillisecondsToTicks(ms, offset) {\n return op_Multiply(op_Addition(op_Addition(LongLib.fromNumber(ms), 62135596800000), offset), 10000);\n}\nexport function ticksToUnixEpochMilliseconds(ticks) {\n return LongLib.toNumber(op_Subtraction(op_Division(ticks, 10000), 62135596800000));\n}\n// export function makeRangeStepFunction(step: Long, last: Long, unsigned: boolean) {\n// const stepComparedWithZero = LongLib.compare(step, unsigned ? LongLib.UZERO : LongLib.ZERO);\n// if (stepComparedWithZero === 0) {\n// throw new Error(\"The step of a range cannot be zero\");\n// }\n// const stepGreaterThanZero = stepComparedWithZero > 0;\n// return (x: Long) => {\n// const comparedWithLast = LongLib.compare(x, last);\n// if ((stepGreaterThanZero && comparedWithLast <= 0)\n// || (!stepGreaterThanZero && comparedWithLast >= 0)) {\n// return [x, op_Addition(x, step)];\n// } else {\n// return undefined;\n// }\n// };\n// }\n","import { compare, equals, structuralHash } from \"./Util.js\";\n// Using a class here for better compatibility with TS files importing Some\nexport class Some {\n constructor(value) {\n this.value = value;\n }\n toJSON() {\n return this.value;\n }\n // Don't add \"Some\" for consistency with erased options\n toString() {\n return String(this.value);\n }\n GetHashCode() {\n return structuralHash(this.value);\n }\n Equals(other) {\n if (other == null) {\n return false;\n }\n else {\n return equals(this.value, other instanceof Some ? other.value : other);\n }\n }\n CompareTo(other) {\n if (other == null) {\n return 1;\n }\n else {\n return compare(this.value, other instanceof Some ? other.value : other);\n }\n }\n}\nexport function some(x) {\n return x == null || x instanceof Some ? new Some(x) : x;\n}\nexport function value(x) {\n if (x == null) {\n throw new Error(\"Option has no value\");\n }\n else {\n return x instanceof Some ? x.value : x;\n }\n}\nexport function ofNullable(x) {\n // This will fail with unit probably, an alternative would be:\n // return x === null ? undefined : (x === undefined ? new Some(x) : x);\n return x == null ? undefined : x;\n}\nexport function toNullable(x) {\n return x == null ? null : value(x);\n}\nexport function flatten(x) {\n return x == null ? undefined : value(x);\n}\nexport function toArray(opt) {\n return (opt == null) ? [] : [value(opt)];\n}\nexport function defaultArg(opt, defaultValue) {\n return (opt != null) ? value(opt) : defaultValue;\n}\nexport function defaultArgWith(opt, defThunk) {\n return (opt != null) ? value(opt) : defThunk();\n}\nexport function filter(predicate, opt) {\n return (opt != null) ? (predicate(value(opt)) ? opt : undefined) : opt;\n}\nexport function map(mapping, opt) {\n return (opt != null) ? some(mapping(value(opt))) : undefined;\n}\nexport function map2(mapping, opt1, opt2) {\n return (opt1 != null && opt2 != null) ? mapping(value(opt1), value(opt2)) : undefined;\n}\nexport function map3(mapping, opt1, opt2, opt3) {\n return (opt1 != null && opt2 != null && opt3 != null) ? mapping(value(opt1), value(opt2), value(opt3)) : undefined;\n}\nexport function bind(binder, opt) {\n return opt != null ? binder(value(opt)) : undefined;\n}\nexport function tryOp(op, arg) {\n try {\n return some(op(arg));\n }\n catch (_a) {\n return undefined;\n }\n}\n","import { FSharpRef } from \"./Types.js\";\nexport function tryParse(str, defValue) {\n // TODO: test if value is valid and in range\n if (str != null && /\\S/.test(str)) {\n const v = +str.replace(\"_\", \"\");\n if (!Number.isNaN(v)) {\n defValue.contents = v;\n return true;\n }\n }\n return false;\n}\nexport function parse(str) {\n const defValue = new FSharpRef(0);\n if (tryParse(str, defValue)) {\n return defValue.contents;\n }\n else {\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\n// JS Number.isFinite function evals false for NaN\nexport function isInfinity(x) {\n return x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY;\n}\n","import { compare, physicalHash, equals, structuralHash } from \"./Util.js\";\n\nexport function HashIdentity_FromFunctions(hash, eq) {\n return {\n Equals(x, y) {\n return eq(x, y);\n },\n GetHashCode(x_1) {\n return hash(x_1);\n },\n };\n}\n\nexport function HashIdentity_Structural() {\n return HashIdentity_FromFunctions((obj) => structuralHash(obj), (e1, e2) => equals(e1, e2));\n}\n\nexport function HashIdentity_Reference() {\n return HashIdentity_FromFunctions((obj) => physicalHash(obj), (e1, e2) => (e1 === e2));\n}\n\nexport function ComparisonIdentity_FromFunction(comparer) {\n return {\n Compare(x, y) {\n return comparer(x, y);\n },\n };\n}\n\nexport function ComparisonIdentity_Structural() {\n return ComparisonIdentity_FromFunction((e1, e2) => compare(e1, e2));\n}\n\n","import { structuralHash, equals } from \"./Util.js\";\nimport { HashIdentity_Structural, ComparisonIdentity_Structural } from \"./FSharp.Collections.js\";\nimport { StringBuilder__Append_Z721C83C5 } from \"./System.Text.js\";\n\nexport const LanguagePrimitives_GenericEqualityComparer = {\n [\"System.Collections.IEqualityComparer.Equals541DA560\"](x, y) {\n return equals(x, y);\n },\n [\"System.Collections.IEqualityComparer.GetHashCode4E60E31B\"](x_1) {\n return structuralHash(x_1);\n },\n};\n\nexport const LanguagePrimitives_GenericEqualityERComparer = {\n [\"System.Collections.IEqualityComparer.Equals541DA560\"](x, y) {\n return equals(x, y);\n },\n [\"System.Collections.IEqualityComparer.GetHashCode4E60E31B\"](x_1) {\n return structuralHash(x_1);\n },\n};\n\nexport function LanguagePrimitives_FastGenericComparer() {\n return ComparisonIdentity_Structural();\n}\n\nexport function LanguagePrimitives_FastGenericComparerFromTable() {\n return ComparisonIdentity_Structural();\n}\n\nexport function LanguagePrimitives_FastGenericEqualityComparer() {\n return HashIdentity_Structural();\n}\n\nexport function LanguagePrimitives_FastGenericEqualityComparerFromTable() {\n return HashIdentity_Structural();\n}\n\nexport function Operators_Failure(message) {\n return new Error(message);\n}\n\nexport function Operators_FailurePattern(exn) {\n return exn.message;\n}\n\nexport function Operators_NullArg(x) {\n throw (new Error(x));\n}\n\nexport function Operators_Using(resource, action) {\n try {\n return action(resource);\n }\n finally {\n if (equals(resource, null)) {\n }\n else {\n resource.Dispose();\n }\n }\n}\n\nexport function Operators_Lock(_lockObj, action) {\n return action();\n}\n\nexport function ExtraTopLevelOperators_LazyPattern(input) {\n return input.Value;\n}\n\nexport function PrintfModule_PrintFormatToStringBuilderThen(continuation, builder, format) {\n return format.cont((s) => {\n void StringBuilder__Append_Z721C83C5(builder, s);\n return continuation();\n });\n}\n\nexport function PrintfModule_PrintFormatToStringBuilder(builder, format) {\n return PrintfModule_PrintFormatToStringBuilderThen(() => {\n }, builder, format);\n}\n\n","import { value as value_2, defaultArg, some } from \"./Option.js\";\nimport { min as min_1, compare, getEnumerator, comparePrimitives, max as max_1 } from \"./Util.js\";\n\nexport function Helpers_allocateArrayFromCons(cons, len) {\n if ((typeof cons) === \"function\") {\n return new cons(len);\n }\n else {\n return new Array(len);\n }\n}\n\nfunction indexNotFound() {\n throw (new Error(\"An index satisfying the predicate was not found in the collection.\"));\n}\n\nfunction differentLengths() {\n throw (new Error(\"Arrays had different lengths\"));\n}\n\nexport function append(array1, array2, cons) {\n const len1 = array1.length | 0;\n const len2 = array2.length | 0;\n const newArray = Helpers_allocateArrayFromCons(cons, len1 + len2);\n for (let i = 0; i <= (len1 - 1); i++) {\n newArray[i] = array1[i];\n }\n for (let i_1 = 0; i_1 <= (len2 - 1); i_1++) {\n newArray[i_1 + len1] = array2[i_1];\n }\n return newArray;\n}\n\nexport function filter(predicate, array) {\n return array.filter(predicate);\n}\n\nexport function fill(target, targetIndex, count, value) {\n const start = targetIndex | 0;\n return target.fill(value, start, (start + count));\n}\n\nexport function getSubArray(array, start, count) {\n const start_1 = start | 0;\n return array.slice(start_1, (start_1 + count));\n}\n\nexport function last(array) {\n if (array.length === 0) {\n throw (new Error(\"The input array was empty\\\\nParameter name: array\"));\n }\n return array[array.length - 1];\n}\n\nexport function tryLast(array) {\n if (array.length === 0) {\n return void 0;\n }\n else {\n return some(array[array.length - 1]);\n }\n}\n\nexport function mapIndexed(f, source, cons) {\n const len = source.length | 0;\n const target = Helpers_allocateArrayFromCons(cons, len);\n for (let i = 0; i <= (len - 1); i++) {\n target[i] = f(i, source[i]);\n }\n return target;\n}\n\nexport function map(f, source, cons) {\n const len = source.length | 0;\n const target = Helpers_allocateArrayFromCons(cons, len);\n for (let i = 0; i <= (len - 1); i++) {\n target[i] = f(source[i]);\n }\n return target;\n}\n\nexport function mapIndexed2(f, source1, source2, cons) {\n if (source1.length !== source2.length) {\n throw (new Error(\"Arrays had different lengths\"));\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n result[i] = f(i, source1[i], source2[i]);\n }\n return result;\n}\n\nexport function map2(f, source1, source2, cons) {\n if (source1.length !== source2.length) {\n throw (new Error(\"Arrays had different lengths\"));\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n result[i] = f(source1[i], source2[i]);\n }\n return result;\n}\n\nexport function mapIndexed3(f, source1, source2, source3, cons) {\n if ((source1.length !== source2.length) ? true : (source2.length !== source3.length)) {\n throw (new Error(\"Arrays had different lengths\"));\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n result[i] = f(i, source1[i], source2[i], source3[i]);\n }\n return result;\n}\n\nexport function map3(f, source1, source2, source3, cons) {\n if ((source1.length !== source2.length) ? true : (source2.length !== source3.length)) {\n throw (new Error(\"Arrays had different lengths\"));\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n result[i] = f(source1[i], source2[i], source3[i]);\n }\n return result;\n}\n\nexport function mapFold(mapping, state, array, cons) {\n const matchValue = array.length | 0;\n if (matchValue === 0) {\n return [[], state];\n }\n else {\n let acc = state;\n const res = Helpers_allocateArrayFromCons(cons, matchValue);\n for (let i = 0; i <= (array.length - 1); i++) {\n const patternInput = mapping(acc, array[i]);\n res[i] = patternInput[0];\n acc = patternInput[1];\n }\n return [res, acc];\n }\n}\n\nexport function mapFoldBack(mapping, array, state, cons) {\n const matchValue = array.length | 0;\n if (matchValue === 0) {\n return [[], state];\n }\n else {\n let acc = state;\n const res = Helpers_allocateArrayFromCons(cons, matchValue);\n for (let i = array.length - 1; i >= 0; i--) {\n const patternInput = mapping(array[i], acc);\n res[i] = patternInput[0];\n acc = patternInput[1];\n }\n return [res, acc];\n }\n}\n\nexport function indexed(source) {\n const len = source.length | 0;\n const target = new Array(len);\n for (let i = 0; i <= (len - 1); i++) {\n target[i] = [i, source[i]];\n }\n return target;\n}\n\nexport function truncate(count, array) {\n const count_1 = max_1((x, y) => comparePrimitives(x, y), 0, count) | 0;\n const start = 0;\n return array.slice(start, (start + count_1));\n}\n\nexport function concat(arrays, cons) {\n const arrays_1 = Array.isArray(arrays) ? arrays : (Array.from(arrays));\n const matchValue = arrays_1.length | 0;\n switch (matchValue) {\n case 0: {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n case 1: {\n return arrays_1[0];\n }\n default: {\n let totalIdx = 0;\n let totalLength = 0;\n for (let idx = 0; idx <= (arrays_1.length - 1); idx++) {\n const arr_1 = arrays_1[idx];\n totalLength = ((totalLength + arr_1.length) | 0);\n }\n const result = Helpers_allocateArrayFromCons(cons, totalLength);\n for (let idx_1 = 0; idx_1 <= (arrays_1.length - 1); idx_1++) {\n const arr_2 = arrays_1[idx_1];\n for (let j = 0; j <= (arr_2.length - 1); j++) {\n result[totalIdx] = arr_2[j];\n totalIdx = ((totalIdx + 1) | 0);\n }\n }\n return result;\n }\n }\n}\n\nexport function collect(mapping, array, cons) {\n return concat(map(mapping, array, null), cons);\n}\n\nexport function where(predicate, array) {\n return array.filter(predicate);\n}\n\nexport function contains(value, array, eq) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i >= array.length) {\n return false;\n }\n else if (eq.Equals(value, array[i])) {\n return true;\n }\n else {\n i_mut = (i + 1);\n continue loop;\n }\n break;\n }\n };\n return loop(0);\n}\n\nexport function empty(cons) {\n return Helpers_allocateArrayFromCons(cons, 0);\n}\n\nexport function singleton(value, cons) {\n const ar = Helpers_allocateArrayFromCons(cons, 1);\n ar[0] = value;\n return ar;\n}\n\nexport function initialize(count, initializer, cons) {\n if (count < 0) {\n throw (new Error(\"The input must be non-negative\\\\nParameter name: count\"));\n }\n const result = Helpers_allocateArrayFromCons(cons, count);\n for (let i = 0; i <= (count - 1); i++) {\n result[i] = initializer(i);\n }\n return result;\n}\n\nexport function pairwise(array) {\n if (array.length < 2) {\n return [];\n }\n else {\n const count = (array.length - 1) | 0;\n const result = new Array(count);\n for (let i = 0; i <= (count - 1); i++) {\n result[i] = [array[i], array[i + 1]];\n }\n return result;\n }\n}\n\nexport function replicate(count, initial, cons) {\n if (count < 0) {\n throw (new Error(\"The input must be non-negative\\\\nParameter name: count\"));\n }\n const result = Helpers_allocateArrayFromCons(cons, count);\n for (let i = 0; i <= (result.length - 1); i++) {\n result[i] = initial;\n }\n return result;\n}\n\nexport function copy(array) {\n return array.slice();\n}\n\nexport function reverse(array) {\n const array_2 = array.slice();\n return array_2.reverse();\n}\n\nexport function scan(folder, state, array, cons) {\n const res = Helpers_allocateArrayFromCons(cons, array.length + 1);\n res[0] = state;\n for (let i = 0; i <= (array.length - 1); i++) {\n res[i + 1] = folder(res[i], array[i]);\n }\n return res;\n}\n\nexport function scanBack(folder, array, state, cons) {\n const res = Helpers_allocateArrayFromCons(cons, array.length + 1);\n res[array.length] = state;\n for (let i = array.length - 1; i >= 0; i--) {\n res[i] = folder(array[i], res[i + 1]);\n }\n return res;\n}\n\nexport function skip(count, array, cons) {\n if (count > array.length) {\n throw (new Error(\"count is greater than array length\\\\nParameter name: count\"));\n }\n if (count === array.length) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const count_1 = ((count < 0) ? 0 : count) | 0;\n return array.slice(count_1);\n }\n}\n\nexport function skipWhile(predicate, array, cons) {\n let count = 0;\n while ((count < array.length) ? predicate(array[count]) : false) {\n count = ((count + 1) | 0);\n }\n if (count === array.length) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const count_1 = count | 0;\n return array.slice(count_1);\n }\n}\n\nexport function take(count, array, cons) {\n if (count < 0) {\n throw (new Error(\"The input must be non-negative\\\\nParameter name: count\"));\n }\n if (count > array.length) {\n throw (new Error(\"count is greater than array length\\\\nParameter name: count\"));\n }\n if (count === 0) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const start = 0;\n return array.slice(start, (start + count));\n }\n}\n\nexport function takeWhile(predicate, array, cons) {\n let count = 0;\n while ((count < array.length) ? predicate(array[count]) : false) {\n count = ((count + 1) | 0);\n }\n if (count === 0) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const start = 0;\n const count_1 = count | 0;\n return array.slice(start, (start + count_1));\n }\n}\n\nexport function addInPlace(x, array) {\n void (array.push(x));\n}\n\nexport function addRangeInPlace(range, array) {\n const enumerator = getEnumerator(range);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n addInPlace(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), array);\n }\n }\n finally {\n enumerator.Dispose();\n }\n}\n\nexport function insertRangeInPlace(index, range, array) {\n let index_1;\n let i = index;\n const enumerator = getEnumerator(range);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n void (index_1 = (i | 0), array.splice(index_1, 0, x));\n i = ((i + 1) | 0);\n }\n }\n finally {\n enumerator.Dispose();\n }\n}\n\nexport function removeInPlace(item_1, array) {\n const i = array.indexOf(item_1, 0);\n if (i > -1) {\n void (array.splice(i, 1));\n return true;\n }\n else {\n return false;\n }\n}\n\nexport function removeAllInPlace(predicate, array) {\n const countRemoveAll = (count) => {\n const i = array.findIndex(predicate);\n if (i > -1) {\n void (array.splice(i, 1));\n return (countRemoveAll(count) + 1) | 0;\n }\n else {\n return count | 0;\n }\n };\n return countRemoveAll(0) | 0;\n}\n\nexport function copyTo(source, sourceIndex, target, targetIndex, count) {\n const diff = (targetIndex - sourceIndex) | 0;\n for (let i = sourceIndex; i <= ((sourceIndex + count) - 1); i++) {\n target[i + diff] = source[i];\n }\n}\n\nexport function copyToTypedArray(source, sourceIndex, target, targetIndex, count) {\n try {\n target.set(source.subarray(sourceIndex, sourceIndex + count), targetIndex);\n }\n catch (matchValue) {\n copyTo(source, sourceIndex, target, targetIndex, count);\n }\n}\n\nexport function indexOf(array, item_1, start, count) {\n const start_1 = defaultArg(start, 0) | 0;\n const i = array.indexOf(item_1, start_1);\n if ((count != null) ? (i >= (start_1 + value_2(count))) : false) {\n return -1;\n }\n else {\n return i | 0;\n }\n}\n\nexport function partition(f, source, cons) {\n const len = source.length | 0;\n const res1 = Helpers_allocateArrayFromCons(cons, len);\n const res2 = Helpers_allocateArrayFromCons(cons, len);\n let iTrue = 0;\n let iFalse = 0;\n for (let i = 0; i <= (len - 1); i++) {\n if (f(source[i])) {\n res1[iTrue] = source[i];\n iTrue = ((iTrue + 1) | 0);\n }\n else {\n res2[iFalse] = source[i];\n iFalse = ((iFalse + 1) | 0);\n }\n }\n return [truncate(iTrue, res1), truncate(iFalse, res2)];\n}\n\nexport function find(predicate, array) {\n const matchValue = array.find(predicate);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_2(matchValue);\n }\n}\n\nexport function tryFind(predicate, array) {\n return array.find(predicate);\n}\n\nexport function findIndex(predicate, array) {\n const matchValue = array.findIndex(predicate);\n if (matchValue > -1) {\n return matchValue | 0;\n }\n else {\n return indexNotFound() | 0;\n }\n}\n\nexport function tryFindIndex(predicate, array) {\n const matchValue = array.findIndex(predicate);\n if (matchValue > -1) {\n return matchValue;\n }\n else {\n return void 0;\n }\n}\n\nexport function pick(chooser, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i >= array.length) {\n return indexNotFound();\n }\n else {\n const matchValue = chooser(array[i]);\n if (matchValue != null) {\n return value_2(matchValue);\n }\n else {\n i_mut = (i + 1);\n continue loop;\n }\n }\n break;\n }\n };\n return loop(0);\n}\n\nexport function tryPick(chooser, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i >= array.length) {\n return void 0;\n }\n else {\n const matchValue = chooser(array[i]);\n if (matchValue == null) {\n i_mut = (i + 1);\n continue loop;\n }\n else {\n return matchValue;\n }\n }\n break;\n }\n };\n return loop(0);\n}\n\nexport function findBack(predicate, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i < 0) {\n return indexNotFound();\n }\n else if (predicate(array[i])) {\n return array[i];\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1);\n}\n\nexport function tryFindBack(predicate, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i < 0) {\n return void 0;\n }\n else if (predicate(array[i])) {\n return some(array[i]);\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1);\n}\n\nexport function findLastIndex(predicate, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i < 0) {\n return -1;\n }\n else if (predicate(array[i])) {\n return i | 0;\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1) | 0;\n}\n\nexport function findIndexBack(predicate, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i < 0) {\n return indexNotFound() | 0;\n }\n else if (predicate(array[i])) {\n return i | 0;\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1) | 0;\n}\n\nexport function tryFindIndexBack(predicate, array) {\n const loop = (i_mut) => {\n loop:\n while (true) {\n const i = i_mut;\n if (i < 0) {\n return void 0;\n }\n else if (predicate(array[i])) {\n return i;\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1);\n}\n\nexport function choose(chooser, array, cons) {\n const res = [];\n for (let i = 0; i <= (array.length - 1); i++) {\n const matchValue = chooser(array[i]);\n if (matchValue != null) {\n const y = value_2(matchValue);\n void (res.push(y));\n }\n }\n if ((typeof cons) === \"function\") {\n return map((x) => x, res, cons);\n }\n else {\n return res;\n }\n}\n\nexport function foldIndexed(folder, state, array) {\n return array.reduce(((delegateArg0, delegateArg1, delegateArg2) => folder(delegateArg2, delegateArg0, delegateArg1)), state);\n}\n\nexport function fold(folder, state, array) {\n return array.reduce(((delegateArg0, delegateArg1) => folder(delegateArg0, delegateArg1)), state);\n}\n\nexport function iterate(action, array) {\n for (let i = 0; i <= (array.length - 1); i++) {\n action(array[i]);\n }\n}\n\nexport function iterateIndexed(action, array) {\n for (let i = 0; i <= (array.length - 1); i++) {\n action(i, array[i]);\n }\n}\n\nexport function iterate2(action, array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n for (let i = 0; i <= (array1.length - 1); i++) {\n action(array1[i], array2[i]);\n }\n}\n\nexport function iterateIndexed2(action, array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n for (let i = 0; i <= (array1.length - 1); i++) {\n action(i, array1[i], array2[i]);\n }\n}\n\nexport function isEmpty(array) {\n return array.length === 0;\n}\n\nexport function forAll(predicate, array) {\n return array.every(predicate);\n}\n\nexport function permute(f, array) {\n const size = array.length | 0;\n const res = array.slice();\n const checkFlags = new Array(size);\n iterateIndexed((i, x) => {\n const j = f(i) | 0;\n if ((j < 0) ? true : (j >= size)) {\n throw (new Error(\"Not a valid permutation\"));\n }\n res[j] = x;\n checkFlags[j] = 1;\n }, array);\n if (!(checkFlags.every(((y) => (1 === y))))) {\n throw (new Error(\"Not a valid permutation\"));\n }\n return res;\n}\n\nexport function setSlice(target, lower, upper, source) {\n const lower_1 = defaultArg(lower, 0) | 0;\n const upper_1 = defaultArg(upper, 0) | 0;\n const length = (((upper_1 > 0) ? upper_1 : (target.length - 1)) - lower_1) | 0;\n for (let i = 0; i <= length; i++) {\n target[i + lower_1] = source[i];\n }\n}\n\nexport function sortInPlaceBy(projection, xs, comparer) {\n xs.sort(((x, y) => comparer.Compare(projection(x), projection(y))));\n}\n\nexport function sortInPlace(xs, comparer) {\n xs.sort(((x, y) => comparer.Compare(x, y)));\n}\n\nexport function sort(xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort(((x, y) => comparer.Compare(x, y)));\n return xs_1;\n}\n\nexport function sortBy(projection, xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort(((x, y) => comparer.Compare(projection(x), projection(y))));\n return xs_1;\n}\n\nexport function sortDescending(xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort(((x, y) => (comparer.Compare(x, y) * -1)));\n return xs_1;\n}\n\nexport function sortByDescending(projection, xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort(((x, y) => (comparer.Compare(projection(x), projection(y)) * -1)));\n return xs_1;\n}\n\nexport function sortWith(comparer, xs) {\n const comparer_1 = comparer;\n const xs_1 = xs.slice();\n xs_1.sort(comparer_1);\n return xs_1;\n}\n\nexport function allPairs(xs, ys) {\n const len1 = xs.length | 0;\n const len2 = ys.length | 0;\n const res = new Array((len1 * len2));\n for (let i = 0; i <= (xs.length - 1); i++) {\n for (let j = 0; j <= (ys.length - 1); j++) {\n res[(i * len2) + j] = [xs[i], ys[j]];\n }\n }\n return res;\n}\n\nexport function unfold(generator, state) {\n const res = [];\n const loop = (state_1_mut) => {\n loop:\n while (true) {\n const state_1 = state_1_mut;\n const matchValue = generator(state_1);\n if (matchValue != null) {\n const x = matchValue[0];\n const s = matchValue[1];\n void (res.push(x));\n state_1_mut = s;\n continue loop;\n }\n break;\n }\n };\n loop(state);\n return res;\n}\n\nexport function unzip(array) {\n const len = array.length | 0;\n const res1 = new Array(len);\n const res2 = new Array(len);\n iterateIndexed((i, tupledArg) => {\n res1[i] = tupledArg[0];\n res2[i] = tupledArg[1];\n }, array);\n return [res1, res2];\n}\n\nexport function unzip3(array) {\n const len = array.length | 0;\n const res1 = new Array(len);\n const res2 = new Array(len);\n const res3 = new Array(len);\n iterateIndexed((i, tupledArg) => {\n res1[i] = tupledArg[0];\n res2[i] = tupledArg[1];\n res3[i] = tupledArg[2];\n }, array);\n return [res1, res2, res3];\n}\n\nexport function zip(array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n const result = new Array(array1.length);\n for (let i = 0; i <= (array1.length - 1); i++) {\n result[i] = [array1[i], array2[i]];\n }\n return result;\n}\n\nexport function zip3(array1, array2, array3) {\n if ((array1.length !== array2.length) ? true : (array2.length !== array3.length)) {\n differentLengths();\n }\n const result = new Array(array1.length);\n for (let i = 0; i <= (array1.length - 1); i++) {\n result[i] = [array1[i], array2[i], array3[i]];\n }\n return result;\n}\n\nexport function chunkBySize(chunkSize, array) {\n if (chunkSize < 1) {\n throw (new Error(\"The input must be positive.\\\\nParameter name: size\"));\n }\n if (array.length === 0) {\n return [[]];\n }\n else {\n const result = [];\n for (let x = 0; x <= ((~(~Math.ceil(array.length / chunkSize))) - 1); x++) {\n let slice;\n const start_1 = (x * chunkSize) | 0;\n slice = (array.slice(start_1, (start_1 + chunkSize)));\n void (result.push(slice));\n }\n return result;\n }\n}\n\nexport function splitAt(index, array) {\n let start;\n if (index < 0) {\n throw (new Error(\"The input must be non-negative\\\\nParameter name: index\"));\n }\n if (index > array.length) {\n throw (new Error(\"The input sequence has an insufficient number of elements.\\\\nParameter name: index\"));\n }\n return [(start = 0, array.slice(start, (start + index))), array.slice(index)];\n}\n\nexport function compareWith(comparer, array1, array2) {\n if (array1 == null) {\n if (array2 == null) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (array2 == null) {\n return 1;\n }\n else {\n let i = 0;\n let result = 0;\n const length1 = array1.length | 0;\n const length2 = array2.length | 0;\n if (length1 > length2) {\n return 1;\n }\n else if (length1 < length2) {\n return -1;\n }\n else {\n while ((i < length1) ? (result === 0) : false) {\n result = (comparer(array1[i], array2[i]) | 0);\n i = ((i + 1) | 0);\n }\n return result | 0;\n }\n }\n}\n\nexport function equalsWith(comparer, array1, array2) {\n return compareWith((e1, e2) => compare(e1, e2), array1, array2) === 0;\n}\n\nexport function exactlyOne(array) {\n if (array.length === 1) {\n return array[0];\n }\n else if (array.length === 0) {\n throw (new Error(\"The input sequence was empty\\\\nParameter name: array\"));\n }\n else {\n throw (new Error(\"Input array too long\\\\nParameter name: array\"));\n }\n}\n\nexport function tryExactlyOne(array) {\n if (array.length === 1) {\n return some(array[0]);\n }\n else {\n return void 0;\n }\n}\n\nexport function head(array) {\n if (array.length === 0) {\n throw (new Error(\"The input array was empty\\\\nParameter name: array\"));\n }\n else {\n return array[0];\n }\n}\n\nexport function tryHead(array) {\n if (array.length === 0) {\n return void 0;\n }\n else {\n return some(array[0]);\n }\n}\n\nexport function tail(array) {\n if (array.length === 0) {\n throw (new Error(\"Not enough elements\\\\nParameter name: array\"));\n }\n return array.slice(1);\n}\n\nexport function item(index, array) {\n return array[index];\n}\n\nexport function tryItem(index, array) {\n if ((index < 0) ? true : (index >= array.length)) {\n return void 0;\n }\n else {\n return some(array[index]);\n }\n}\n\nexport function foldBackIndexed(folder, array, state) {\n return array.reduceRight(((delegateArg0, delegateArg1, delegateArg2) => folder(delegateArg2, delegateArg1, delegateArg0)), state);\n}\n\nexport function foldBack(folder, array, state) {\n return array.reduceRight(((delegateArg0, delegateArg1) => folder(delegateArg1, delegateArg0)), state);\n}\n\nexport function foldIndexed2(folder, state, array1, array2) {\n let acc = state;\n if (array1.length !== array2.length) {\n throw (new Error(\"Arrays have different lengths\"));\n }\n for (let i = 0; i <= (array1.length - 1); i++) {\n acc = folder(i, acc, array1[i], array2[i]);\n }\n return acc;\n}\n\nexport function fold2(folder, state, array1, array2) {\n return foldIndexed2((_arg1, acc, x, y) => folder(acc, x, y), state, array1, array2);\n}\n\nexport function foldBackIndexed2(folder, array1, array2, state) {\n let acc = state;\n if (array1.length !== array2.length) {\n differentLengths();\n }\n const size = array1.length | 0;\n for (let i = 1; i <= size; i++) {\n acc = folder(i - 1, array1[size - i], array2[size - i], acc);\n }\n return acc;\n}\n\nexport function foldBack2(f, array1, array2, state) {\n return foldBackIndexed2((_arg1, x, y, acc) => f(x, y, acc), array1, array2, state);\n}\n\nexport function reduce(reduction, array) {\n if (array.length === 0) {\n throw (new Error(\"The input array was empty\"));\n }\n const reduction_1 = reduction;\n return array.reduce(reduction_1);\n}\n\nexport function reduceBack(reduction, array) {\n if (array.length === 0) {\n throw (new Error(\"The input array was empty\"));\n }\n const reduction_1 = reduction;\n return array.reduceRight(reduction_1);\n}\n\nexport function forAll2(predicate, array1, array2) {\n return fold2((acc, x, y) => (acc ? predicate(x, y) : false), true, array1, array2);\n}\n\nexport function existsOffset(predicate_mut, array_mut, index_mut) {\n existsOffset:\n while (true) {\n const predicate = predicate_mut, array = array_mut, index = index_mut;\n if (index === array.length) {\n return false;\n }\n else if (predicate(array[index])) {\n return true;\n }\n else {\n predicate_mut = predicate;\n array_mut = array;\n index_mut = (index + 1);\n continue existsOffset;\n }\n break;\n }\n}\n\nexport function exists(predicate, array) {\n return existsOffset(predicate, array, 0);\n}\n\nexport function existsOffset2(predicate_mut, array1_mut, array2_mut, index_mut) {\n existsOffset2:\n while (true) {\n const predicate = predicate_mut, array1 = array1_mut, array2 = array2_mut, index = index_mut;\n if (index === array1.length) {\n return false;\n }\n else if (predicate(array1[index], array2[index])) {\n return true;\n }\n else {\n predicate_mut = predicate;\n array1_mut = array1;\n array2_mut = array2;\n index_mut = (index + 1);\n continue existsOffset2;\n }\n break;\n }\n}\n\nexport function exists2(predicate, array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n return existsOffset2(predicate, array1, array2, 0);\n}\n\nexport function sum(array, adder) {\n let acc = adder.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n acc = adder.Add(acc, array[i]);\n }\n return acc;\n}\n\nexport function sumBy(projection, array, adder) {\n let acc = adder.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n acc = adder.Add(acc, projection(array[i]));\n }\n return acc;\n}\n\nexport function maxBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? y : x), xs);\n}\n\nexport function max(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? y : x), xs);\n}\n\nexport function minBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? x : y), xs);\n}\n\nexport function min(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? x : y), xs);\n}\n\nexport function average(array, averager) {\n if (array.length === 0) {\n throw (new Error(\"The input array was empty\\\\nParameter name: array\"));\n }\n let total = averager.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n total = averager.Add(total, array[i]);\n }\n return averager.DivideByInt(total, array.length);\n}\n\nexport function averageBy(projection, array, averager) {\n if (array.length === 0) {\n throw (new Error(\"The input array was empty\\\\nParameter name: array\"));\n }\n let total = averager.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n total = averager.Add(total, projection(array[i]));\n }\n return averager.DivideByInt(total, array.length);\n}\n\nexport function windowed(windowSize, source) {\n if (windowSize <= 0) {\n throw (new Error(\"windowSize must be positive\"));\n }\n let res;\n const len = max_1((x, y) => comparePrimitives(x, y), 0, source.length - windowSize) | 0;\n res = (new Array(len));\n for (let i = windowSize; i <= source.length; i++) {\n res[i - windowSize] = source.slice(i - windowSize, (i - 1) + 1);\n }\n return res;\n}\n\nexport function splitInto(chunks, array) {\n if (chunks < 1) {\n throw (new Error(\"The input must be positive.\\\\nParameter name: chunks\"));\n }\n if (array.length === 0) {\n return [[]];\n }\n else {\n const result = [];\n const chunks_1 = min_1((x, y) => comparePrimitives(x, y), chunks, array.length) | 0;\n const minChunkSize = (~(~(array.length / chunks_1))) | 0;\n const chunksWithExtraItem = (array.length % chunks_1) | 0;\n for (let i = 0; i <= (chunks_1 - 1); i++) {\n const chunkSize = ((i < chunksWithExtraItem) ? (minChunkSize + 1) : minChunkSize) | 0;\n let slice;\n const start_1 = ((i * minChunkSize) + min_1((x_1, y_1) => comparePrimitives(x_1, y_1), chunksWithExtraItem, i)) | 0;\n slice = (array.slice(start_1, (start_1 + chunkSize)));\n void (result.push(slice));\n }\n return result;\n }\n}\n\nexport function transpose(arrays, cons) {\n const arrays_1 = Array.isArray(arrays) ? arrays : (Array.from(arrays));\n const len = arrays_1.length | 0;\n if (len === 0) {\n return new Array(0);\n }\n else {\n const lenInner = arrays_1[0].length | 0;\n if (!forAll((a) => (a.length === lenInner), arrays_1)) {\n differentLengths();\n }\n const result = new Array(lenInner);\n for (let i = 0; i <= (lenInner - 1); i++) {\n result[i] = Helpers_allocateArrayFromCons(cons, len);\n for (let j = 0; j <= (len - 1); j++) {\n result[i][j] = arrays_1[j][i];\n }\n }\n return result;\n }\n}\n\n"],"sourceRoot":""}