diff --git a/applications/samples/api/openapi.yaml b/applications/samples/api/openapi.yaml index ac78581f..3332cd2b 100644 --- a/applications/samples/api/openapi.yaml +++ b/applications/samples/api/openapi.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: "3.0.3" info: title: CloudHarness Sample API version: 0.1.0 @@ -27,7 +27,7 @@ paths: operationId: error summary: test sentry is working x-openapi-router-controller: samples.controllers.test_controller - + /ping: get: tags: diff --git a/applications/samples/backend/requirements.txt b/applications/samples/backend/requirements.txt index b3db72c8..a5ddff35 100644 --- a/applications/samples/backend/requirements.txt +++ b/applications/samples/backend/requirements.txt @@ -1,5 +1,4 @@ connexion[swagger-ui]==2.14.2 -swagger-ui-bundle >= 0.0.2 python_dateutil >= 2.6.0 setuptools >= 21.0.0 Flask<3.0.0 diff --git a/applications/samples/backend/samples/controllers/resource_controller.py b/applications/samples/backend/samples/controllers/resource_controller.py index 3204708b..4f17d3da 100644 --- a/applications/samples/backend/samples/controllers/resource_controller.py +++ b/applications/samples/backend/samples/controllers/resource_controller.py @@ -23,9 +23,9 @@ def create_sample_resource(sample_resource=None): # noqa: E501 return "Payload is not of type SampleResource", 400 # Create a file inside the nfs - with open("/mnt/myvolume/myfile", "w") as f: + with open("/tmp/myvolume/myfile", "w") as f: print("test", file=f) - + return resource_service.create_sample_resource(sample_resource), 201 diff --git a/applications/samples/backend/samples/encoder.py b/applications/samples/backend/samples/encoder.py index fe2c3b18..ce94c8c8 100644 --- a/applications/samples/backend/samples/encoder.py +++ b/applications/samples/backend/samples/encoder.py @@ -1,8 +1,6 @@ +from connexion.apps.flask_app import FlaskJSONEncoder -import six - -from samples.models.base_model_ import Model -from flask.json import FlaskJSONEncoder +from samples.models.base_model import Model class JSONEncoder(FlaskJSONEncoder): @@ -11,7 +9,7 @@ class JSONEncoder(FlaskJSONEncoder): def default(self, o): if isinstance(o, Model): dikt = {} - for attr, _ in six.iteritems(o.openapi_types): + for attr in o.openapi_types: value = getattr(o, attr) if value is None and not self.include_nulls: continue diff --git a/applications/samples/backend/samples/models/__init__.py b/applications/samples/backend/samples/models/__init__.py index 4034deb6..94617398 100644 --- a/applications/samples/backend/samples/models/__init__.py +++ b/applications/samples/backend/samples/models/__init__.py @@ -1,7 +1,4 @@ -# coding: utf-8 - # flake8: noqa -from __future__ import absolute_import # import models into model package from samples.models.inline_response202 import InlineResponse202 from samples.models.inline_response202_task import InlineResponse202Task diff --git a/applications/samples/backend/samples/models/base_model.py b/applications/samples/backend/samples/models/base_model.py new file mode 100644 index 00000000..30bbbb63 --- /dev/null +++ b/applications/samples/backend/samples/models/base_model.py @@ -0,0 +1,68 @@ +import pprint + +import typing + +from samples import util + +T = typing.TypeVar('T') + + +class Model: + # openapiTypes: The key is attribute name and the + # value is attribute type. + openapi_types: typing.Dict[str, type] = {} + + # attributeMap: The key is attribute name and the + # value is json key in definition. + attribute_map: typing.Dict[str, str] = {} + + @classmethod + def from_dict(cls: typing.Type[T], dikt) -> T: + """Returns the dict as a model""" + return util.deserialize_model(dikt, cls) + + def to_dict(self): + """Returns the model properties as a dict + + :rtype: dict + """ + result = {} + + for attr in self.openapi_types: + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model + + :rtype: str + """ + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/applications/samples/backend/samples/models/inline_response202.py b/applications/samples/backend/samples/models/inline_response202.py index b6d2a3ca..e98cb00e 100644 --- a/applications/samples/backend/samples/models/inline_response202.py +++ b/applications/samples/backend/samples/models/inline_response202.py @@ -1,11 +1,8 @@ -# coding: utf-8 - -from __future__ import absolute_import from datetime import date, datetime # noqa: F401 from typing import List, Dict # noqa: F401 -from samples.models.base_model_ import Model +from samples.models.base_model import Model from samples.models.inline_response202_task import InlineResponse202Task from samples import util @@ -45,7 +42,7 @@ def from_dict(cls, dikt) -> 'InlineResponse202': return util.deserialize_model(dikt, cls) @property - def task(self): + def task(self) -> InlineResponse202Task: """Gets the task of this InlineResponse202. @@ -55,7 +52,7 @@ def task(self): return self._task @task.setter - def task(self, task): + def task(self, task: InlineResponse202Task): """Sets the task of this InlineResponse202. diff --git a/applications/samples/backend/samples/models/inline_response202_task.py b/applications/samples/backend/samples/models/inline_response202_task.py index e9a53b7f..2c4af7a0 100644 --- a/applications/samples/backend/samples/models/inline_response202_task.py +++ b/applications/samples/backend/samples/models/inline_response202_task.py @@ -1,11 +1,8 @@ -# coding: utf-8 - -from __future__ import absolute_import from datetime import date, datetime # noqa: F401 from typing import List, Dict # noqa: F401 -from samples.models.base_model_ import Model +from samples.models.base_model import Model from samples import util @@ -48,7 +45,7 @@ def from_dict(cls, dikt) -> 'InlineResponse202Task': return util.deserialize_model(dikt, cls) @property - def href(self): + def href(self) -> str: """Gets the href of this InlineResponse202Task. the url where to check the operation status # noqa: E501 @@ -59,7 +56,7 @@ def href(self): return self._href @href.setter - def href(self, href): + def href(self, href: str): """Sets the href of this InlineResponse202Task. the url where to check the operation status # noqa: E501 @@ -71,7 +68,7 @@ def href(self, href): self._href = href @property - def name(self): + def name(self) -> str: """Gets the name of this InlineResponse202Task. @@ -81,7 +78,7 @@ def name(self): return self._name @name.setter - def name(self, name): + def name(self, name: str): """Sets the name of this InlineResponse202Task. diff --git a/applications/samples/backend/samples/models/sample_resource.py b/applications/samples/backend/samples/models/sample_resource.py index 1deca853..d5477452 100644 --- a/applications/samples/backend/samples/models/sample_resource.py +++ b/applications/samples/backend/samples/models/sample_resource.py @@ -1,11 +1,8 @@ -# coding: utf-8 - -from __future__ import absolute_import from datetime import date, datetime # noqa: F401 from typing import List, Dict # noqa: F401 -from samples.models.base_model_ import Model +from samples.models.base_model import Model from samples import util @@ -53,7 +50,7 @@ def from_dict(cls, dikt) -> 'SampleResource': return util.deserialize_model(dikt, cls) @property - def a(self): + def a(self) -> float: """Gets the a of this SampleResource. # noqa: E501 @@ -64,7 +61,7 @@ def a(self): return self._a @a.setter - def a(self, a): + def a(self, a: float): """Sets the a of this SampleResource. # noqa: E501 @@ -78,7 +75,7 @@ def a(self, a): self._a = a @property - def b(self): + def b(self) -> float: """Gets the b of this SampleResource. # noqa: E501 @@ -89,7 +86,7 @@ def b(self): return self._b @b.setter - def b(self, b): + def b(self, b: float): """Sets the b of this SampleResource. # noqa: E501 @@ -101,7 +98,7 @@ def b(self, b): self._b = b @property - def id(self): + def id(self) -> float: """Gets the id of this SampleResource. # noqa: E501 @@ -112,7 +109,7 @@ def id(self): return self._id @id.setter - def id(self, id): + def id(self, id: float): """Sets the id of this SampleResource. # noqa: E501 diff --git a/applications/samples/backend/samples/openapi/openapi.yaml b/applications/samples/backend/samples/openapi/openapi.yaml index 4e63db55..6a875771 100644 --- a/applications/samples/backend/samples/openapi/openapi.yaml +++ b/applications/samples/backend/samples/openapi/openapi.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.0.3 info: contact: email: cloudharness@metacell.us diff --git a/applications/samples/backend/samples/typing_utils.py b/applications/samples/backend/samples/typing_utils.py index 0563f81f..74e3c913 100644 --- a/applications/samples/backend/samples/typing_utils.py +++ b/applications/samples/backend/samples/typing_utils.py @@ -1,5 +1,3 @@ -# coding: utf-8 - import sys if sys.version_info < (3, 7): diff --git a/applications/samples/backend/samples/util.py b/applications/samples/backend/samples/util.py index 96a83499..5b241814 100644 --- a/applications/samples/backend/samples/util.py +++ b/applications/samples/backend/samples/util.py @@ -1,6 +1,5 @@ import datetime -import six import typing from samples import typing_utils @@ -16,7 +15,7 @@ def _deserialize(data, klass): if data is None: return None - if klass in six.integer_types or klass in (float, str, bool, bytearray): + if klass in (int, float, str, bool, bytearray): return _deserialize_primitive(data, klass) elif klass == object: return _deserialize_object(data) @@ -45,7 +44,7 @@ def _deserialize_primitive(data, klass): try: value = klass(data) except UnicodeEncodeError: - value = six.u(data) + value = data except TypeError: value = data return value @@ -110,7 +109,7 @@ def deserialize_model(data, klass): if not instance.openapi_types: return data - for attr, attr_type in six.iteritems(instance.openapi_types): + for attr, attr_type in instance.openapi_types.items(): if data is not None \ and instance.attribute_map[attr] in data \ and isinstance(data, (list, dict)): @@ -145,4 +144,4 @@ def _deserialize_dict(data, boxed_type): :rtype: dict """ return {k: _deserialize(v, boxed_type) - for k, v in six.iteritems(data)} + for k, v in data.items() } diff --git a/applications/samples/backend/setup.py b/applications/samples/backend/setup.py index 471cf86b..16908eb6 100644 --- a/applications/samples/backend/setup.py +++ b/applications/samples/backend/setup.py @@ -15,7 +15,6 @@ REQUIRES = [ "connexion>=2.0.2", - "swagger-ui-bundle>=0.0.2", "python_dateutil>=2.6.0", "pyjwt>=2.6.0", "cloudharness" diff --git a/applications/samples/backend/tox.ini b/applications/samples/backend/tox.ini index df3f1773..5d5ecced 100644 --- a/applications/samples/backend/tox.ini +++ b/applications/samples/backend/tox.ini @@ -5,7 +5,7 @@ skipsdist=True [testenv] deps=-r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt - {toxinidir} + {toxinidir} commands= pytest --cov=samples diff --git a/applications/samples/backend/www/assets/index-Cyl2oP5E.css b/applications/samples/backend/www/assets/index-Cyl2oP5E.css new file mode 100644 index 00000000..aef4555b --- /dev/null +++ b/applications/samples/backend/www/assets/index-Cyl2oP5E.css @@ -0,0 +1 @@ +body{text-align:center;background-color:"#eeeeee";font-family:Roboto,Helvetica,sans-serif} diff --git a/applications/samples/backend/www/assets/index-DtmKuX2X.js b/applications/samples/backend/www/assets/index-DtmKuX2X.js new file mode 100644 index 00000000..19bf27f5 --- /dev/null +++ b/applications/samples/backend/www/assets/index-DtmKuX2X.js @@ -0,0 +1,209 @@ +(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const y of document.querySelectorAll('link[rel="modulepreload"]'))v(y);new MutationObserver(y=>{for(const S of y)if(S.type==="childList")for(const f of S.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&v(f)}).observe(document,{childList:!0,subtree:!0});function p(y){const S={};return y.integrity&&(S.integrity=y.integrity),y.referrerPolicy&&(S.referrerPolicy=y.referrerPolicy),y.crossOrigin==="use-credentials"?S.credentials="include":y.crossOrigin==="anonymous"?S.credentials="omit":S.credentials="same-origin",S}function v(y){if(y.ep)return;y.ep=!0;const S=p(y);fetch(y.href,S)}})();function cA(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var SE={exports:{}},Uh={},EE={exports:{}},hf={exports:{}};hf.exports;(function(l,s){/** + * @license React + * react.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var p="18.3.1",v=Symbol.for("react.element"),y=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),z=Symbol.for("react.provider"),U=Symbol.for("react.context"),M=Symbol.for("react.forward_ref"),F=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),$=Symbol.for("react.memo"),B=Symbol.for("react.lazy"),ce=Symbol.for("react.offscreen"),Je=Symbol.iterator,Ye="@@iterator";function Ce(d){if(d===null||typeof d!="object")return null;var g=Je&&d[Je]||d[Ye];return typeof g=="function"?g:null}var ne={current:null},Ke={transition:null},de={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},Fe={current:null},ge={},Gt=null;function Cn(d){Gt=d}ge.setExtraStackFrame=function(d){Gt=d},ge.getCurrentStack=null,ge.getStackAddendum=function(){var d="";Gt&&(d+=Gt);var g=ge.getCurrentStack;return g&&(d+=g()||""),d};var Rt=!1,rt=!1,Fn=!1,xe=!1,Ve=!1,yt={ReactCurrentDispatcher:ne,ReactCurrentBatchConfig:Ke,ReactCurrentOwner:Fe};yt.ReactDebugCurrentFrame=ge,yt.ReactCurrentActQueue=de;function gt(d){{for(var g=arguments.length,D=new Array(g>1?g-1:0),O=1;O1?g-1:0),O=1;O1){for(var et=Array(Ie),tt=0;tt1){for(var ut=Array(tt),pt=0;pt is not supported and will be removed in a future major release. Did you mean to render instead?")),g.Provider},set:function(Z){g.Provider=Z}},_currentValue:{get:function(){return g._currentValue},set:function(Z){g._currentValue=Z}},_currentValue2:{get:function(){return g._currentValue2},set:function(Z){g._currentValue2=Z}},_threadCount:{get:function(){return g._threadCount},set:function(Z){g._threadCount=Z}},Consumer:{get:function(){return D||(D=!0,be("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),g.Consumer}},displayName:{get:function(){return g.displayName},set:function(Z){P||(gt("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",Z),P=!0)}}}),g.Consumer=le}return g._currentRenderer=null,g._currentRenderer2=null,g}var ia=-1,Ma=0,oa=1,Pr=2;function Sr(d){if(d._status===ia){var g=d._result,D=g();if(D.then(function(le){if(d._status===Ma||d._status===ia){var Z=d;Z._status=oa,Z._result=le}},function(le){if(d._status===Ma||d._status===ia){var Z=d;Z._status=Pr,Z._result=le}}),d._status===ia){var O=d;O._status=Ma,O._result=D}}if(d._status===oa){var P=d._result;return P===void 0&&be(`lazy: Expected the result of a dynamic import() call. Instead received: %s + +Your code should look like: + const MyComponent = lazy(() => import('./MyComponent')) + +Did you accidentally put curly braces around the import?`,P),"default"in P||be(`lazy: Expected the result of a dynamic import() call. Instead received: %s + +Your code should look like: + const MyComponent = lazy(() => import('./MyComponent'))`,P),P.default}else throw d._result}function b(d){var g={_status:ia,_result:d},D={$$typeof:B,_payload:g,_init:Sr};{var O,P;Object.defineProperties(D,{defaultProps:{configurable:!0,get:function(){return O},set:function(le){be("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),O=le,Object.defineProperty(D,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return P},set:function(le){be("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),P=le,Object.defineProperty(D,"propTypes",{enumerable:!0})}}})}return D}function j(d){d!=null&&d.$$typeof===$?be("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof d!="function"?be("forwardRef requires a render function but was given %s.",d===null?"null":typeof d):d.length!==0&&d.length!==2&&be("forwardRef render functions accept exactly two parameters: props and ref. %s",d.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),d!=null&&(d.defaultProps!=null||d.propTypes!=null)&&be("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");var g={$$typeof:M,render:d};{var D;Object.defineProperty(g,"displayName",{enumerable:!1,configurable:!0,get:function(){return D},set:function(O){D=O,!d.name&&!d.displayName&&(d.displayName=O)}})}return g}var G;G=Symbol.for("react.module.reference");function oe(d){return!!(typeof d=="string"||typeof d=="function"||d===S||d===N||Ve||d===f||d===F||d===ee||xe||d===ce||Rt||rt||Fn||typeof d=="object"&&d!==null&&(d.$$typeof===B||d.$$typeof===$||d.$$typeof===z||d.$$typeof===U||d.$$typeof===M||d.$$typeof===G||d.getModuleId!==void 0))}function Ae(d,g){oe(d)||be("memo: The first argument must be a component. Instead received: %s",d===null?"null":typeof d);var D={$$typeof:$,type:d,compare:g===void 0?null:g};{var O;Object.defineProperty(D,"displayName",{enumerable:!1,configurable:!0,get:function(){return O},set:function(P){O=P,!d.name&&!d.displayName&&(d.displayName=P)}})}return D}function fe(){var d=ne.current;return d===null&&be(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`),d}function Te(d){var g=fe();if(d._context!==void 0){var D=d._context;D.Consumer===d?be("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):D.Provider===d&&be("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return g.useContext(d)}function Se(d){var g=fe();return g.useState(d)}function ct(d,g,D){var O=fe();return O.useReducer(d,g,D)}function we(d){var g=fe();return g.useRef(d)}function st(d,g){var D=fe();return D.useEffect(d,g)}function un(d,g){var D=fe();return D.useInsertionEffect(d,g)}function Er(d,g){var D=fe();return D.useLayoutEffect(d,g)}function Rr(d,g){var D=fe();return D.useCallback(d,g)}function Vt(d,g){var D=fe();return D.useMemo(d,g)}function vi(d,g,D){var O=fe();return O.useImperativeHandle(d,g,D)}function Ji(d,g){{var D=fe();return D.useDebugValue(d,g)}}function nu(){var d=fe();return d.useTransition()}function ua(d){var g=fe();return g.useDeferredValue(d)}function _e(){var d=fe();return d.useId()}function hi(d,g,D){var O=fe();return O.useSyncExternalStore(d,g,D)}var Ua=0,ru,au,iu,ou,uu,lu,su;function Jl(){}Jl.__reactDisabledLog=!0;function Cf(){{if(Ua===0){ru=console.log,au=console.info,iu=console.warn,ou=console.error,uu=console.group,lu=console.groupCollapsed,su=console.groupEnd;var d={configurable:!0,enumerable:!0,value:Jl,writable:!0};Object.defineProperties(console,{info:d,log:d,warn:d,error:d,group:d,groupCollapsed:d,groupEnd:d})}Ua++}}function cu(){{if(Ua--,Ua===0){var d={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Ht({},d,{value:ru}),info:Ht({},d,{value:au}),warn:Ht({},d,{value:iu}),error:Ht({},d,{value:ou}),group:Ht({},d,{value:uu}),groupCollapsed:Ht({},d,{value:lu}),groupEnd:Ht({},d,{value:su})})}Ua<0&&be("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var mi=yt.ReactCurrentDispatcher,or;function Na(d,g,D){{if(or===void 0)try{throw Error()}catch(P){var O=P.stack.trim().match(/\n( *(at )?)/);or=O&&O[1]||""}return` +`+or+d}}var ka=!1,Zi;{var fu=typeof WeakMap=="function"?WeakMap:Map;Zi=new fu}function Zl(d,g){if(!d||ka)return"";{var D=Zi.get(d);if(D!==void 0)return D}var O;ka=!0;var P=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var le;le=mi.current,mi.current=null,Cf();try{if(g){var Z=function(){throw Error()};if(Object.defineProperty(Z.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Z,[])}catch(Be){O=Be}Reflect.construct(d,[],Z)}else{try{Z.call()}catch(Be){O=Be}d.call(Z.prototype)}}else{try{throw Error()}catch(Be){O=Be}d()}}catch(Be){if(Be&&O&&typeof Be.stack=="string"){for(var pe=Be.stack.split(` +`),Le=O.stack.split(` +`),Ie=pe.length-1,et=Le.length-1;Ie>=1&&et>=0&&pe[Ie]!==Le[et];)et--;for(;Ie>=1&&et>=0;Ie--,et--)if(pe[Ie]!==Le[et]){if(Ie!==1||et!==1)do if(Ie--,et--,et<0||pe[Ie]!==Le[et]){var tt=` +`+pe[Ie].replace(" at new "," at ");return d.displayName&&tt.includes("")&&(tt=tt.replace("",d.displayName)),typeof d=="function"&&Zi.set(d,tt),tt}while(Ie>=1&&et>=0);break}}}finally{ka=!1,mi.current=le,cu(),Error.prepareStackTrace=P}var ut=d?d.displayName||d.name:"",pt=ut?Na(ut):"";return typeof d=="function"&&Zi.set(d,pt),pt}function du(d,g,D){return Zl(d,!1)}function Tf(d){var g=d.prototype;return!!(g&&g.isReactComponent)}function za(d,g,D){if(d==null)return"";if(typeof d=="function")return Zl(d,Tf(d));if(typeof d=="string")return Na(d);switch(d){case F:return Na("Suspense");case ee:return Na("SuspenseList")}if(typeof d=="object")switch(d.$$typeof){case M:return du(d.render);case $:return za(d.type,g,D);case B:{var O=d,P=O._payload,le=O._init;try{return za(le(P),g,D)}catch{}}}return""}var es={},pu=yt.ReactDebugCurrentFrame;function eo(d){if(d){var g=d._owner,D=za(d.type,d._source,g?g.type:null);pu.setExtraStackFrame(D)}else pu.setExtraStackFrame(null)}function ts(d,g,D,O,P){{var le=Function.call.bind(gr);for(var Z in d)if(le(d,Z)){var pe=void 0;try{if(typeof d[Z]!="function"){var Le=Error((O||"React class")+": "+D+" type `"+Z+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof d[Z]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Le.name="Invariant Violation",Le}pe=d[Z](g,Z,O,D,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Ie){pe=Ie}pe&&!(pe instanceof Error)&&(eo(P),be("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",O||"React class",D,Z,typeof pe),eo(null)),pe instanceof Error&&!(pe.message in es)&&(es[pe.message]=!0,eo(P),be("Failed %s type: %s",D,pe.message),eo(null))}}}function ze(d){if(d){var g=d._owner,D=za(d.type,d._source,g?g.type:null);Cn(D)}else Cn(null)}var vu;vu=!1;function hu(){if(Fe.current){var d=Dn(Fe.current.type);if(d)return` + +Check the render method of \``+d+"`."}return""}function ye(d){if(d!==void 0){var g=d.fileName.replace(/^.*[\\\/]/,""),D=d.lineNumber;return` + +Check your code at `+g+":"+D+"."}return""}function ns(d){return d!=null?ye(d.__source):""}var ln={};function yi(d){var g=hu();if(!g){var D=typeof d=="string"?d:d.displayName||d.name;D&&(g=` + +Check the top-level render call using <`+D+">.")}return g}function Fa(d,g){if(!(!d._store||d._store.validated||d.key!=null)){d._store.validated=!0;var D=yi(g);if(!ln[D]){ln[D]=!0;var O="";d&&d._owner&&d._owner!==Fe.current&&(O=" It was passed a child from "+Dn(d._owner.type)+"."),ze(d),be('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',D,O),ze(null)}}}function rs(d,g){if(typeof d=="object"){if(Ct(d))for(var D=0;D",P=" Did you accidentally export a JSX literal instead of a component?"):Z=typeof d,be("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Z,P)}var pe=re.apply(this,arguments);if(pe==null)return pe;if(O)for(var Le=2;Le10&>("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),O._updatedFibers.clear()}}}var to=!1,gi=null;function is(d){if(gi===null)try{var g=("require"+Math.random()).slice(0,7),D=l&&l[g];gi=D.call(l,"timers").setImmediate}catch{gi=function(P){to===!1&&(to=!0,typeof MessageChannel>"u"&&be("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var le=new MessageChannel;le.port1.onmessage=P,le.port2.postMessage(void 0)}}return gi(d)}var Ha=0,os=!1;function us(d){{var g=Ha;Ha++,de.current===null&&(de.current=[]);var D=de.isBatchingLegacy,O;try{if(de.isBatchingLegacy=!0,O=d(),!D&&de.didScheduleLegacyUpdate){var P=de.current;P!==null&&(de.didScheduleLegacyUpdate=!1,ro(P))}}catch(ut){throw la(g),ut}finally{de.isBatchingLegacy=D}if(O!==null&&typeof O=="object"&&typeof O.then=="function"){var le=O,Z=!1,pe={then:function(ut,pt){Z=!0,le.then(function(Be){la(g),Ha===0?no(Be,ut,pt):ut(Be)},function(Be){la(g),pt(Be)})}};return!os&&typeof Promise<"u"&&Promise.resolve().then(function(){}).then(function(){Z||(os=!0,be("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),pe}else{var Le=O;if(la(g),Ha===0){var Ie=de.current;Ie!==null&&(ro(Ie),de.current=null);var et={then:function(ut,pt){de.current===null?(de.current=[],no(Le,ut,pt)):ut(Le)}};return et}else{var tt={then:function(ut,pt){ut(Le)}};return tt}}}}function la(d){d!==Ha-1&&be("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),Ha=d}function no(d,g,D){{var O=de.current;if(O!==null)try{ro(O),is(function(){O.length===0?(de.current=null,g(d)):no(d,g,D)})}catch(P){D(P)}else g(d)}}var ja=!1;function ro(d){if(!ja){ja=!0;var g=0;try{for(;g1?j-1:0),oe=1;oe=1&&st>=0&&Se[we]!==ct[st];)st--;for(;we>=1&&st>=0;we--,st--)if(Se[we]!==ct[st]){if(we!==1||st!==1)do if(we--,st--,st<0||Se[we]!==ct[st]){var un=` +`+Se[we].replace(" at new "," at ");return b.displayName&&un.includes("")&&(un=un.replace("",b.displayName)),typeof b=="function"&&xn.set(b,un),un}while(we>=1&&st>=0);break}}}finally{Wt=!1,mr.current=fe,Vr(),Error.prepareStackTrace=Ae}var Er=b?b.displayName||b.name:"",Rr=Er?tr(Er):"";return typeof b=="function"&&xn.set(b,Rr),Rr}function Ct(b,j,G){return Vn(b,!1)}function an(b){var j=b.prototype;return!!(j&&j.isReactComponent)}function jt(b,j,G){if(b==null)return"";if(typeof b=="function")return Vn(b,an(b));if(typeof b=="string")return tr(b);switch(b){case U:return tr("Suspense");case M:return tr("SuspenseList")}if(typeof b=="object")switch(b.$$typeof){case z:return Ct(b.render);case F:return jt(b.type,j,G);case ee:{var oe=b,Ae=oe._payload,fe=oe._init;try{return jt(fe(Ae),j,G)}catch{}}}return""}var wt=Object.prototype.hasOwnProperty,Ot={},Bn=Ye.ReactDebugCurrentFrame;function nr(b){if(b){var j=b._owner,G=jt(b.type,b._source,j?j.type:null);Bn.setExtraStackFrame(G)}else Bn.setExtraStackFrame(null)}function Dn(b,j,G,oe,Ae){{var fe=Function.call.bind(wt);for(var Te in b)if(fe(b,Te)){var Se=void 0;try{if(typeof b[Te]!="function"){var ct=Error((oe||"React class")+": "+G+" type `"+Te+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof b[Te]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ct.name="Invariant Violation",ct}Se=b[Te](j,Te,oe,G,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(we){Se=we}Se&&!(Se instanceof Error)&&(nr(Ae),Ce("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",oe||"React class",G,Te,typeof Se),nr(null)),Se instanceof Error&&!(Se.message in Ot)&&(Ot[Se.message]=!0,nr(Ae),Ce("Failed %s type: %s",G,Se.message),nr(null))}}}var gr=Array.isArray;function rr(b){return gr(b)}function hn(b){{var j=typeof Symbol=="function"&&Symbol.toStringTag,G=j&&b[Symbol.toStringTag]||b.constructor.name||"Object";return G}}function ar(b){try{return on(b),!1}catch{return!0}}function on(b){return""+b}function Pn(b){if(ar(b))return Ce("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",hn(b)),on(b)}var bt=Ye.ReactCurrentOwner,ir={key:!0,ref:!0,__self:!0,__source:!0},ra,aa,q;q={};function re(b){if(wt.call(b,"ref")){var j=Object.getOwnPropertyDescriptor(b,"ref").get;if(j&&j.isReactWarning)return!1}return b.ref!==void 0}function De(b){if(wt.call(b,"key")){var j=Object.getOwnPropertyDescriptor(b,"key").get;if(j&&j.isReactWarning)return!1}return b.key!==void 0}function qe(b,j){if(typeof b.ref=="string"&&bt.current&&j&&bt.current.stateNode!==j){var G=xe(bt.current.type);q[G]||(Ce('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',xe(bt.current.type),b.ref),q[G]=!0)}}function Ge(b,j){{var G=function(){ra||(ra=!0,Ce("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",j))};G.isReactWarning=!0,Object.defineProperty(b,"key",{get:G,configurable:!0})}}function _t(b,j){{var G=function(){aa||(aa=!0,Ce("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",j))};G.isReactWarning=!0,Object.defineProperty(b,"ref",{get:G,configurable:!0})}}var St=function(b,j,G,oe,Ae,fe,Te){var Se={$$typeof:s,type:b,key:j,ref:G,props:Te,_owner:fe};return Se._store={},Object.defineProperty(Se._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(Se,"_self",{configurable:!1,enumerable:!1,writable:!1,value:oe}),Object.defineProperty(Se,"_source",{configurable:!1,enumerable:!1,writable:!1,value:Ae}),Object.freeze&&(Object.freeze(Se.props),Object.freeze(Se)),Se};function wn(b,j,G,oe,Ae){{var fe,Te={},Se=null,ct=null;G!==void 0&&(Pn(G),Se=""+G),De(j)&&(Pn(j.key),Se=""+j.key),re(j)&&(ct=j.ref,qe(j,Ae));for(fe in j)wt.call(j,fe)&&!ir.hasOwnProperty(fe)&&(Te[fe]=j[fe]);if(b&&b.defaultProps){var we=b.defaultProps;for(fe in we)Te[fe]===void 0&&(Te[fe]=we[fe])}if(Se||ct){var st=typeof b=="function"?b.displayName||b.name||"Unknown":b;Se&&Ge(Te,st),ct&&_t(Te,st)}return St(b,Se,ct,Ae,oe,bt.current,Te)}}var Ze=Ye.ReactCurrentOwner,$n=Ye.ReactDebugCurrentFrame;function it(b){if(b){var j=b._owner,G=jt(b.type,b._source,j?j.type:null);$n.setExtraStackFrame(G)}else $n.setExtraStackFrame(null)}var ot;ot=!1;function Br(b){return typeof b=="object"&&b!==null&&b.$$typeof===s}function br(){{if(Ze.current){var b=xe(Ze.current.type);if(b)return` + +Check the render method of \``+b+"`."}return""}}function fi(b){{if(b!==void 0){var j=b.fileName.replace(/^.*[\\\/]/,""),G=b.lineNumber;return` + +Check your code at `+j+":"+G+"."}return""}}var Ki={};function tu(b){{var j=br();if(!j){var G=typeof b=="string"?b:b.displayName||b.name;G&&(j=` + +Check the top-level render call using <`+G+">.")}return j}}function di(b,j){{if(!b._store||b._store.validated||b.key!=null)return;b._store.validated=!0;var G=tu(j);if(Ki[G])return;Ki[G]=!0;var oe="";b&&b._owner&&b._owner!==Ze.current&&(oe=" It was passed a child from "+xe(b._owner.type)+"."),it(b),Ce('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',G,oe),it(null)}}function pi(b,j){{if(typeof b!="object")return;if(rr(b))for(var G=0;G",Se=" Did you accidentally export a JSX literal instead of a component?"):we=typeof b,Ce("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",we,Se)}var st=wn(b,j,G,Ae,fe);if(st==null)return st;if(Te){var un=j.children;if(un!==void 0)if(oe)if(rr(un)){for(var Er=0;Er0?"{key: someKey, "+Vt.join(": ..., ")+": ...}":"{key: someKey}";if(!oa[Rr+vi]){var Ji=Vt.length>0?"{"+Vt.join(": ..., ")+": ...}":"{}";Ce(`A props object containing a "key" prop is being spread into JSX: + let props = %s; + <%s {...props} /> +React keys must be passed directly to JSX without using spread: + let props = %s; + <%s key={someKey} {...props} />`,vi,Rr,Ji,Rr),oa[Rr+vi]=!0}}return b===v?Ma(st):ia(st),st}}var Sr=Pr;Uh.Fragment=v,Uh.jsxDEV=Sr})();SE.exports=Uh;var kn=SE.exports,Nh={},RE={exports:{}},Zn={},CE={exports:{}},TE={};(function(l){/** + * @license React + * scheduler.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var s=!1,p=!1,v=5;function y(q,re){var De=q.length;q.push(re),N(q,re,De)}function S(q){return q.length===0?null:q[0]}function f(q){if(q.length===0)return null;var re=q[0],De=q.pop();return De!==re&&(q[0]=De,z(q,De,0)),re}function N(q,re,De){for(var qe=De;qe>0;){var Ge=qe-1>>>1,_t=q[Ge];if(U(_t,re)>0)q[Ge]=re,q[qe]=_t,qe=Ge;else return}}function z(q,re,De){for(var qe=De,Ge=q.length,_t=Ge>>>1;qe<_t;){var St=(qe+1)*2-1,wn=q[St],Ze=St+1,$n=q[Ze];if(U(wn,re)<0)ZeDe&&(!q||nr()));){var qe=xe.callback;if(typeof qe=="function"){xe.callback=null,Ve=xe.priorityLevel;var Ge=xe.expirationTime<=De,_t=qe(Ge);De=l.unstable_now(),typeof _t=="function"?xe.callback=_t:xe===S(Rt)&&f(Rt),hr(De)}else f(Rt);xe=S(Rt)}if(xe!==null)return!0;var St=S(rt);return St!==null&&bt(Ht,St.startTime-De),!1}function Vr(q,re){switch(q){case M:case F:case ee:case $:case B:break;default:q=ee}var De=Ve;Ve=q;try{return re()}finally{Ve=De}}function mr(q){var re;switch(Ve){case M:case F:case ee:re=ee;break;default:re=Ve;break}var De=Ve;Ve=re;try{return q()}finally{Ve=De}}function yr(q){var re=Ve;return function(){var De=Ve;Ve=re;try{return q.apply(this,arguments)}finally{Ve=De}}}function tr(q,re,De){var qe=l.unstable_now(),Ge;if(typeof De=="object"&&De!==null){var _t=De.delay;typeof _t=="number"&&_t>0?Ge=qe+_t:Ge=qe}else Ge=qe;var St;switch(q){case M:St=de;break;case F:St=Fe;break;case B:St=Cn;break;case $:St=Gt;break;case ee:default:St=ge;break}var wn=Ge+St,Ze={id:Fn++,callback:re,priorityLevel:q,startTime:Ge,expirationTime:wn,sortIndex:-1};return Ge>qe?(Ze.sortIndex=Ge,y(rt,Ze),S(Rt)===null&&Ze===S(rt)&&(be?ir():be=!0,bt(Ht,Ge-qe))):(Ze.sortIndex=wn,y(Rt,Ze),!gt&&!yt&&(gt=!0,Pn(Tn))),Ze}function Wt(){}function xn(){!gt&&!yt&&(gt=!0,Pn(Tn))}function jn(){return S(Rt)}function Vn(q){q.callback=null}function Ct(){return Ve}var an=!1,jt=null,wt=-1,Ot=v,Bn=-1;function nr(){var q=l.unstable_now()-Bn;return!(q125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");return}q>0?Ot=Math.floor(1e3/q):Ot=v}var rr=function(){if(jt!==null){var q=l.unstable_now();Bn=q;var re=!0,De=!0;try{De=jt(re,q)}finally{De?hn():(an=!1,jt=null)}}else an=!1},hn;if(typeof er=="function")hn=function(){er(rr)};else if(typeof MessageChannel<"u"){var ar=new MessageChannel,on=ar.port2;ar.port1.onmessage=rr,hn=function(){on.postMessage(null)}}else hn=function(){It(rr,0)};function Pn(q){jt=q,an||(an=!0,hn())}function bt(q,re){wt=It(function(){q(l.unstable_now())},re)}function ir(){jr(wt),wt=-1}var ra=Dn,aa=null;l.unstable_IdlePriority=B,l.unstable_ImmediatePriority=M,l.unstable_LowPriority=$,l.unstable_NormalPriority=ee,l.unstable_Profiling=aa,l.unstable_UserBlockingPriority=F,l.unstable_cancelCallback=Vn,l.unstable_continueExecution=xn,l.unstable_forceFrameRate=gr,l.unstable_getCurrentPriorityLevel=Ct,l.unstable_getFirstCallbackNode=jn,l.unstable_next=mr,l.unstable_pauseExecution=Wt,l.unstable_requestPaint=ra,l.unstable_runWithPriority=Vr,l.unstable_scheduleCallback=tr,l.unstable_shouldYield=nr,l.unstable_wrapCallback=yr,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)})()})(TE);CE.exports=TE;var pA=CE.exports;/** + * @license React + * react-dom.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var l=Qi,s=pA,p=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,v=!1;function y(e){v=e}function S(e){if(!v){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r2&&(e[0]==="o"||e[0]==="O")&&(e[1]==="n"||e[1]==="N")}function wn(e,t,n,r){if(n!==null&&n.type===ar)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":{if(r)return!1;if(n!==null)return!n.acceptsBooleans;var a=e.toLowerCase().slice(0,5);return a!=="data-"&&a!=="aria-"}default:return!1}}function Ze(e,t,n,r){if(t===null||typeof t>"u"||wn(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case bt:return!t;case ir:return t===!1;case ra:return isNaN(t);case aa:return isNaN(t)||t<1}return!1}function $n(e){return ot.hasOwnProperty(e)?ot[e]:null}function it(e,t,n,r,a,i,o){this.acceptsBooleans=t===Pn||t===bt||t===ir,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var ot={},Br=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];Br.forEach(function(e){ot[e]=new it(e,ar,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0],n=e[1];ot[t]=new it(t,on,!1,n,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){ot[e]=new it(e,Pn,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ot[e]=new it(e,Pn,!1,e,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(e){ot[e]=new it(e,bt,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){ot[e]=new it(e,bt,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){ot[e]=new it(e,ir,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){ot[e]=new it(e,aa,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){ot[e]=new it(e,ra,!1,e.toLowerCase(),null,!1,!1)});var br=/[\-\:]([a-z])/g,fi=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(e){var t=e.replace(br,fi);ot[t]=new it(t,on,!1,e,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(e){var t=e.replace(br,fi);ot[t]=new it(t,on,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(br,fi);ot[t]=new it(t,on,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){ot[e]=new it(e,on,!1,e.toLowerCase(),null,!1,!1)});var Ki="xlinkHref";ot[Ki]=new it("xlinkHref",on,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){ot[e]=new it(e,on,!1,e.toLowerCase(),null,!0,!0)});var tu=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,di=!1;function pi(e){!di&&tu.test(e)&&(di=!0,f("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(e)))}function ia(e,t,n,r){if(r.mustUseProperty){var a=r.propertyName;return e[a]}else{Bn(n,t),r.sanitizeURL&&pi(""+n);var i=r.attributeName,o=null;if(r.type===ir){if(e.hasAttribute(i)){var u=e.getAttribute(i);return u===""?!0:Ze(t,n,r,!1)?u:u===""+n?n:u}}else if(e.hasAttribute(i)){if(Ze(t,n,r,!1))return e.getAttribute(i);if(r.type===bt)return n;o=e.getAttribute(i)}return Ze(t,n,r,!1)?o===null?n:o:o===""+n?n:o}}function Ma(e,t,n,r){{if(!_t(t))return;if(!e.hasAttribute(t))return n===void 0?void 0:null;var a=e.getAttribute(t);return Bn(n,t),a===""+n?n:a}}function oa(e,t,n,r){var a=$n(t);if(!St(t,a,r)){if(Ze(t,n,a,r)&&(n=null),r||a===null){if(_t(t)){var i=t;n===null?e.removeAttribute(i):(Bn(n,t),e.setAttribute(i,""+n))}return}var o=a.mustUseProperty;if(o){var u=a.propertyName;if(n===null){var c=a.type;e[u]=c===bt?!1:""}else e[u]=n;return}var h=a.attributeName,m=a.attributeNamespace;if(n===null)e.removeAttribute(h);else{var R=a.type,E;R===bt||R===ir&&n===!0?E="":(Bn(n,h),E=""+n,a.sanitizeURL&&pi(E.toString())),m?e.setAttributeNS(m,h,E):e.setAttribute(h,E)}}}var Pr=Symbol.for("react.element"),Sr=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),G=Symbol.for("react.profiler"),oe=Symbol.for("react.provider"),Ae=Symbol.for("react.context"),fe=Symbol.for("react.forward_ref"),Te=Symbol.for("react.suspense"),Se=Symbol.for("react.suspense_list"),ct=Symbol.for("react.memo"),we=Symbol.for("react.lazy"),st=Symbol.for("react.scope"),un=Symbol.for("react.debug_trace_mode"),Er=Symbol.for("react.offscreen"),Rr=Symbol.for("react.legacy_hidden"),Vt=Symbol.for("react.cache"),vi=Symbol.for("react.tracing_marker"),Ji=Symbol.iterator,nu="@@iterator";function ua(e){if(e===null||typeof e!="object")return null;var t=Ji&&e[Ji]||e[nu];return typeof t=="function"?t:null}var _e=Object.assign,hi=0,Ua,ru,au,iu,ou,uu,lu;function su(){}su.__reactDisabledLog=!0;function Jl(){{if(hi===0){Ua=console.log,ru=console.info,au=console.warn,iu=console.error,ou=console.group,uu=console.groupCollapsed,lu=console.groupEnd;var e={configurable:!0,enumerable:!0,value:su,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}hi++}}function Cf(){{if(hi--,hi===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:_e({},e,{value:Ua}),info:_e({},e,{value:ru}),warn:_e({},e,{value:au}),error:_e({},e,{value:iu}),group:_e({},e,{value:ou}),groupCollapsed:_e({},e,{value:uu}),groupEnd:_e({},e,{value:lu})})}hi<0&&f("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var cu=p.ReactCurrentDispatcher,mi;function or(e,t,n){{if(mi===void 0)try{throw Error()}catch(a){var r=a.stack.trim().match(/\n( *(at )?)/);mi=r&&r[1]||""}return` +`+mi+e}}var Na=!1,ka;{var Zi=typeof WeakMap=="function"?WeakMap:Map;ka=new Zi}function fu(e,t){if(!e||Na)return"";{var n=ka.get(e);if(n!==void 0)return n}var r;Na=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var i;i=cu.current,cu.current=null,Jl();try{if(t){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(w){r=w}Reflect.construct(e,[],o)}else{try{o.call()}catch(w){r=w}e.call(o.prototype)}}else{try{throw Error()}catch(w){r=w}e()}}catch(w){if(w&&r&&typeof w.stack=="string"){for(var u=w.stack.split(` +`),c=r.stack.split(` +`),h=u.length-1,m=c.length-1;h>=1&&m>=0&&u[h]!==c[m];)m--;for(;h>=1&&m>=0;h--,m--)if(u[h]!==c[m]){if(h!==1||m!==1)do if(h--,m--,m<0||u[h]!==c[m]){var R=` +`+u[h].replace(" at new "," at ");return e.displayName&&R.includes("")&&(R=R.replace("",e.displayName)),typeof e=="function"&&ka.set(e,R),R}while(h>=1&&m>=0);break}}}finally{Na=!1,cu.current=i,Cf(),Error.prepareStackTrace=a}var E=e?e.displayName||e.name:"",x=E?or(E):"";return typeof e=="function"&&ka.set(e,x),x}function Zl(e,t,n){return fu(e,!0)}function du(e,t,n){return fu(e,!1)}function Tf(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function za(e,t,n){if(e==null)return"";if(typeof e=="function")return fu(e,Tf(e));if(typeof e=="string")return or(e);switch(e){case Te:return or("Suspense");case Se:return or("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case fe:return du(e.render);case ct:return za(e.type,t,n);case we:{var r=e,a=r._payload,i=r._init;try{return za(i(a),t,n)}catch{}}}return""}function es(e){switch(e._debugOwner&&e._debugOwner.type,e._debugSource,e.tag){case $:return or(e.type);case Gt:return or("Lazy");case de:return or("Suspense");case rt:return or("SuspenseList");case z:case M:case ge:return du(e.type);case ne:return du(e.type.render);case U:return Zl(e.type);default:return""}}function pu(e){try{var t="",n=e;do t+=es(n),n=n.return;while(n);return t}catch(r){return` +Error generating stack: `+r.message+` +`+r.stack}}function eo(e,t,n){var r=e.displayName;if(r)return r;var a=t.displayName||t.name||"";return a!==""?n+"("+a+")":n}function ts(e){return e.displayName||"Context"}function ze(e){if(e==null)return null;if(typeof e.tag=="number"&&f("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case b:return"Fragment";case Sr:return"Portal";case G:return"Profiler";case j:return"StrictMode";case Te:return"Suspense";case Se:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ae:var t=e;return ts(t)+".Consumer";case oe:var n=e;return ts(n._context)+".Provider";case fe:return eo(e,e.render,"ForwardRef");case ct:var r=e.displayName||null;return r!==null?r:ze(e.type)||"Memo";case we:{var a=e,i=a._payload,o=a._init;try{return ze(o(i))}catch{return null}}}return null}function vu(e,t,n){var r=t.displayName||t.name||"";return e.displayName||(r!==""?n+"("+r+")":n)}function hu(e){return e.displayName||"Context"}function ye(e){var t=e.tag,n=e.type;switch(t){case yt:return"Cache";case Ye:var r=n;return hu(r)+".Consumer";case Ce:var a=n;return hu(a._context)+".Provider";case Rt:return"DehydratedFragment";case ne:return vu(n,n.render,"ForwardRef");case ce:return"Fragment";case $:return n;case ee:return"Portal";case F:return"Root";case B:return"Text";case Gt:return ze(n);case Je:return n===j?"StrictMode":"Mode";case xe:return"Offscreen";case Ke:return"Profiler";case Fn:return"Scope";case de:return"Suspense";case rt:return"SuspenseList";case gt:return"TracingMarker";case U:case z:case Cn:case M:case Fe:case ge:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;break}return null}var ns=p.ReactDebugCurrentFrame,ln=null,yi=!1;function Fa(){{if(ln===null)return null;var e=ln._debugOwner;if(e!==null&&typeof e<"u")return ye(e)}return null}function rs(){return ln===null?"":pu(ln)}function Bt(){ns.getCurrentStack=null,ln=null,yi=!1}function ft(e){ns.getCurrentStack=e===null?null:rs,ln=e,yi=!1}function as(){return ln}function Yn(e){yi=e}function On(e){return""+e}function $r(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return hn(e),e;default:return""}}var xf={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function to(e,t){xf[t.type]||t.onChange||t.onInput||t.readOnly||t.disabled||t.value==null||f("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."),t.onChange||t.readOnly||t.disabled||t.checked==null||f("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}function gi(e){var t=e.type,n=e.nodeName;return n&&n.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function is(e){return e._valueTracker}function Ha(e){e._valueTracker=null}function os(e){var t="";return e&&(gi(e)?t=e.checked?"true":"false":t=e.value),t}function us(e){var t=gi(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);hn(e[t]);var r=""+e[t];if(!(e.hasOwnProperty(t)||typeof n>"u"||typeof n.get!="function"||typeof n.set!="function")){var a=n.get,i=n.set;Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(u){hn(u),r=""+u,i.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable});var o={getValue:function(){return r},setValue:function(u){hn(u),r=""+u},stopTracking:function(){Ha(e),delete e[t]}};return o}}function la(e){is(e)||(e._valueTracker=us(e))}function no(e){if(!e)return!1;var t=is(e);if(!t)return!0;var n=t.getValue(),r=os(e);return r!==n?(t.setValue(r),!0):!1}function ja(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var ro=!1,ls=!1,ss=!1,cs=!1;function fs(e){var t=e.type==="checkbox"||e.type==="radio";return t?e.checked!=null:e.value!=null}function d(e,t){var n=e,r=t.checked,a=_e({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??n._wrapperState.initialChecked});return a}function g(e,t){to("input",t),t.checked!==void 0&&t.defaultChecked!==void 0&&!ls&&(f("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Fa()||"A component",t.type),ls=!0),t.value!==void 0&&t.defaultValue!==void 0&&!ro&&(f("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Fa()||"A component",t.type),ro=!0);var n=e,r=t.defaultValue==null?"":t.defaultValue;n._wrapperState={initialChecked:t.checked!=null?t.checked:t.defaultChecked,initialValue:$r(t.value!=null?t.value:r),controlled:fs(t)}}function D(e,t){var n=e,r=t.checked;r!=null&&oa(n,"checked",r,!1)}function O(e,t){var n=e;{var r=fs(t);!n._wrapperState.controlled&&r&&!cs&&(f("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),cs=!0),n._wrapperState.controlled&&!r&&!ss&&(f("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),ss=!0)}D(e,t);var a=$r(t.value),i=t.type;if(a!=null)i==="number"?(a===0&&n.value===""||n.value!=a)&&(n.value=On(a)):n.value!==On(a)&&(n.value=On(a));else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}t.hasOwnProperty("value")?pe(n,t.type,a):t.hasOwnProperty("defaultValue")&&pe(n,t.type,$r(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(n.defaultChecked=!!t.defaultChecked)}function P(e,t,n){var r=e;if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var a=t.type,i=a==="submit"||a==="reset";if(i&&(t.value===void 0||t.value===null))return;var o=On(r._wrapperState.initialValue);n||o!==r.value&&(r.value=o),r.defaultValue=o}var u=r.name;u!==""&&(r.name=""),r.defaultChecked=!r.defaultChecked,r.defaultChecked=!!r._wrapperState.initialChecked,u!==""&&(r.name=u)}function le(e,t){var n=e;O(n,t),Z(n,t)}function Z(e,t){var n=t.name;if(t.type==="radio"&&n!=null){for(var r=e;r.parentNode;)r=r.parentNode;Bn(n,"name");for(var a=r.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),i=0;i.")))}):t.dangerouslySetInnerHTML!=null&&(et||(et=!0,f("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.")))),t.selected!=null&&!Le&&(f("Use the `defaultValue` or `value` props on must be a scalar value if `multiple` is false.%s",n,ao())}}}}function sa(e,t,n,r){var a=e.options;if(t){for(var i=n,o={},u=0;u.");var r=_e({},t,{value:void 0,defaultValue:void 0,children:On(n._wrapperState.initialValue)});return r}function Xh(e,t){var n=e;to("textarea",t),t.value!==void 0&&t.defaultValue!==void 0&&!Qh&&(f("%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://reactjs.org/link/controlled-components",Fa()||"A component"),Qh=!0);var r=t.value;if(r==null){var a=t.children,i=t.defaultValue;if(a!=null){f("Use the `defaultValue` or `value` props instead of setting children on