diff --git a/content-plan/linkedin-blog-content.md b/content-plan/linkedin-blog-content.md index af6abe5..fa78d3a 100644 --- a/content-plan/linkedin-blog-content.md +++ b/content-plan/linkedin-blog-content.md @@ -40,7 +40,7 @@ Detailed tutorials for specific formatting needs. |---|--------|-------|------|----------------|-------------| | 9 | [x] | How to Add Italic Text to LinkedIn Posts | `/italic-text-linkedin` | linkedin italic text | Guide to adding italic formatting using Unicode characters and markdown conversion | | 10 | [x] | LinkedIn Bullet Points: How to Format Lists That Stand Out | `/linkedin-bullet-points` | linkedin bullet points | Tutorial on creating clean, readable bullet point lists in LinkedIn posts | -| 11 | ⬜ | How to Add Line Breaks in LinkedIn Posts | `/linkedin-line-breaks` | linkedin line breaks | Solving the common frustration of LinkedIn removing line breaks and how to preserve formatting | +| 11 | [x] | How to Add Line Breaks in LinkedIn Posts | `/linkedin-line-breaks` | linkedin line breaks | Solving the common frustration of LinkedIn removing line breaks and how to preserve formatting | | 12 | ⬜ | LinkedIn Strikethrough Text: Is It Possible? | `/linkedin-strikethrough-text` | linkedin strikethrough | Exploring strikethrough options on LinkedIn and Unicode workarounds | | 13 | ⬜ | How to Use Emojis Effectively in LinkedIn Posts | `/linkedin-emoji-guide` | linkedin emojis | Strategic guide to using emojis for visual hierarchy and engagement without looking unprofessional | | 14 | ⬜ | LinkedIn Underline Text: Your Options Explained | `/linkedin-underline-text` | linkedin underline text | Explaining why underline isn't natively supported and alternative approaches | diff --git a/dist/assets/index-qMt1e6AE.js b/dist/assets/index-CyaFLndh.js similarity index 86% rename from dist/assets/index-qMt1e6AE.js rename to dist/assets/index-CyaFLndh.js index fac202f..ffec4b7 100644 --- a/dist/assets/index-qMt1e6AE.js +++ b/dist/assets/index-CyaFLndh.js @@ -6,7 +6,7 @@ var Nx=Object.defineProperty;var Lx=(e,t,n)=>t in e?Nx(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var wo=Symbol.for("react.element"),Rx=Symbol.for("react.portal"),Ox=Symbol.for("react.fragment"),Dx=Symbol.for("react.strict_mode"),Px=Symbol.for("react.profiler"),Mx=Symbol.for("react.provider"),Bx=Symbol.for("react.context"),Fx=Symbol.for("react.forward_ref"),Ux=Symbol.for("react.suspense"),jx=Symbol.for("react.memo"),Hx=Symbol.for("react.lazy"),Ah=Symbol.iterator;function zx(e){return e===null||typeof e!="object"?null:(e=Ah&&e[Ah]||e["@@iterator"],typeof e=="function"?e:null)}var Y0={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},V0=Object.assign,q0={};function Qi(e,t,n){this.props=e,this.context=t,this.refs=q0,this.updater=n||Y0}Qi.prototype.isReactComponent={};Qi.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Qi.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function G0(){}G0.prototype=Qi.prototype;function Wd(e,t,n){this.props=e,this.context=t,this.refs=q0,this.updater=n||Y0}var Yd=Wd.prototype=new G0;Yd.constructor=Wd;V0(Yd,Qi.prototype);Yd.isPureReactComponent=!0;var Nh=Array.isArray,Q0=Object.prototype.hasOwnProperty,Vd={current:null},K0={key:!0,ref:!0,__self:!0,__source:!0};function X0(e,t,n){var r,i={},a=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(a=""+t.key),t)Q0.call(t,r)&&!K0.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1t in e?Nx(e,t,{enumerable:!0,config `+lu+e}var uu=!1;function cu(e,t){if(!e||uu)return"";uu=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&typeof u.stack=="string"){for(var i=u.stack.split(` `),a=r.stack.split(` `),o=i.length-1,s=a.length-1;1<=o&&0<=s&&i[o]!==a[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==a[s]){if(o!==1||s!==1)do if(o--,s--,0>s||i[o]!==a[s]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{uu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Sa(e):""}function aT(e){switch(e.tag){case 5:return Sa(e.type);case 16:return Sa("Lazy");case 13:return Sa("Suspense");case 19:return Sa("SuspenseList");case 0:case 2:case 15:return e=cu(e.type,!1),e;case 11:return e=cu(e.type.render,!1),e;case 1:return e=cu(e.type,!0),e;default:return""}}function bc(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case mi:return"Fragment";case pi:return"Portal";case mc:return"Profiler";case Xd:return"StrictMode";case gc:return"Suspense";case yc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ag:return(e.displayName||"Context")+".Consumer";case ig:return(e._context.displayName||"Context")+".Provider";case Jd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Zd:return t=e.displayName||null,t!==null?t:bc(e.type)||"Memo";case tr:t=e._payload,e=e._init;try{return bc(e(t))}catch{}}return null}function oT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return bc(t);case 8:return t===Xd?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function xr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function sg(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function sT(e){var t=sg(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Yo(e){e._valueTracker||(e._valueTracker=sT(e))}function lg(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=sg(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ms(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}}function Ec(e,t){var n=t.checked;return De({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ph(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=xr(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ug(e,t){t=t.checked,t!=null&&Kd(e,"checked",t,!1)}function xc(e,t){ug(e,t);var n=xr(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Tc(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tc(e,t.type,xr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Mh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Tc(e,t,n){(t!=="number"||Ms(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var _a=Array.isArray;function Si(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Vo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ja(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Oa={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},lT=["Webkit","ms","Moz","O"];Object.keys(Oa).forEach(function(e){lT.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Oa[t]=Oa[e]})});function hg(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Oa.hasOwnProperty(e)&&Oa[e]?(""+t).trim():t+"px"}function pg(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=hg(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var uT=De({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vc(e,t){if(t){if(uT[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(z(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(z(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(z(61))}if(t.style!=null&&typeof t.style!="object")throw Error(z(62))}}function Ic(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Cc=null;function ef(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Sc=null,_i=null,Ai=null;function Uh(e){if(e=Io(e)){if(typeof Sc!="function")throw Error(z(280));var t=e.stateNode;t&&(t=Cl(t),Sc(e.stateNode,e.type,t))}}function mg(e){_i?Ai?Ai.push(e):Ai=[e]:_i=e}function gg(){if(_i){var e=_i,t=Ai;if(Ai=_i=null,Uh(e),t)for(e=0;e>>=0,e===0?32:31-(xT(e)/TT|0)|0}var qo=64,Go=4194304;function Aa(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function js(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~i;s!==0?r=Aa(s):(a&=o,a!==0&&(r=Aa(a)))}else o=n&~i,o!==0?r=Aa(o):a!==0&&(r=Aa(a));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function ko(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-an(t),e[t]=n}function IT(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Pa),Gh=" ",Qh=!1;function Mg(e,t){switch(e){case"keyup":return ZT.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bg(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var gi=!1;function tw(e,t){switch(e){case"compositionend":return Bg(t);case"keypress":return t.which!==32?null:(Qh=!0,Gh);case"textInput":return e=t.data,e===Gh&&Qh?null:e;default:return null}}function nw(e,t){if(gi)return e==="compositionend"||!uf&&Mg(e,t)?(e=Dg(),ys=of=or=null,gi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Zh(n)}}function Hg(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Hg(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function zg(){for(var e=window,t=Ms();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ms(e.document)}return t}function cf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function dw(e){var t=zg(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Hg(n.ownerDocument.documentElement,n)){if(r!==null&&cf(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=ep(n,a);var o=ep(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,yi=null,Oc=null,Ba=null,Dc=!1;function tp(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dc||yi==null||yi!==Ms(r)||(r=yi,"selectionStart"in r&&cf(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ba&&io(Ba,r)||(Ba=r,r=$s(Oc,"onSelect"),0xi||(e.current=jc[xi],jc[xi]=null,xi--)}function ke(e,t){xi++,jc[xi]=e.current,e.current=t}var Tr={},tt=vr(Tr),gt=vr(!1),qr=Tr;function Hi(e,t){var n=e.type.contextTypes;if(!n)return Tr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function yt(e){return e=e.childContextTypes,e!=null}function Ys(){Se(gt),Se(tt)}function lp(e,t,n){if(tt.current!==Tr)throw Error(z(168));ke(tt,t),ke(gt,n)}function Xg(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(z(108,oT(e)||"Unknown",i));return De({},n,r)}function Vs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tr,qr=tt.current,ke(tt,e),ke(gt,gt.current),!0}function up(e,t,n){var r=e.stateNode;if(!r)throw Error(z(169));n?(e=Xg(e,t,qr),r.__reactInternalMemoizedMergedChildContext=e,Se(gt),Se(tt),ke(tt,e)):Se(gt),ke(gt,n)}var An=null,Sl=!1,vu=!1;function Jg(e){An===null?An=[e]:An.push(e)}function kw(e){Sl=!0,Jg(e)}function Ir(){if(!vu&&An!==null){vu=!0;var e=0,t=Ee;try{var n=An;for(Ee=1;e>=o,i-=o,Ln=1<<32-an(t)+i|n<j?(Q=B,B=null):Q=B.sibling;var _=m(g,B,E[j],N);if(_===null){B===null&&(B=Q);break}e&&B&&_.alternate===null&&t(g,B),b=a(_,b,j),S===null?O=_:S.sibling=_,S=_,B=Q}if(j===E.length)return n(g,B),Ne&&Dr(g,j),O;if(B===null){for(;jj?(Q=B,B=null):Q=B.sibling;var V=m(g,B,_.value,N);if(V===null){B===null&&(B=Q);break}e&&B&&V.alternate===null&&t(g,B),b=a(V,b,j),S===null?O=V:S.sibling=V,S=V,B=Q}if(_.done)return n(g,B),Ne&&Dr(g,j),O;if(B===null){for(;!_.done;j++,_=E.next())_=f(g,_.value,N),_!==null&&(b=a(_,b,j),S===null?O=_:S.sibling=_,S=_);return Ne&&Dr(g,j),O}for(B=r(g,B);!_.done;j++,_=E.next())_=p(B,g,j,_.value,N),_!==null&&(e&&_.alternate!==null&&B.delete(_.key===null?j:_.key),b=a(_,b,j),S===null?O=_:S.sibling=_,S=_);return e&&B.forEach(function(U){return t(g,U)}),Ne&&Dr(g,j),O}function C(g,b,E,N){if(typeof E=="object"&&E!==null&&E.type===mi&&E.key===null&&(E=E.props.children),typeof E=="object"&&E!==null){switch(E.$$typeof){case Wo:e:{for(var O=E.key,S=b;S!==null;){if(S.key===O){if(O=E.type,O===mi){if(S.tag===7){n(g,S.sibling),b=i(S,E.props.children),b.return=g,g=b;break e}}else if(S.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===tr&&fp(O)===S.type){n(g,S.sibling),b=i(S,E.props),b.ref=ma(g,S,E),b.return=g,g=b;break e}n(g,S);break}else t(g,S);S=S.sibling}E.type===mi?(b=Yr(E.props.children,g.mode,N,E.key),b.return=g,g=b):(N=Is(E.type,E.key,E.props,null,g.mode,N),N.ref=ma(g,b,E),N.return=g,g=N)}return o(g);case pi:e:{for(S=E.key;b!==null;){if(b.key===S)if(b.tag===4&&b.stateNode.containerInfo===E.containerInfo&&b.stateNode.implementation===E.implementation){n(g,b.sibling),b=i(b,E.children||[]),b.return=g,g=b;break e}else{n(g,b);break}else t(g,b);b=b.sibling}b=Ru(E,g.mode,N),b.return=g,g=b}return o(g);case tr:return S=E._init,C(g,b,S(E._payload),N)}if(_a(E))return y(g,b,E,N);if(ca(E))return x(g,b,E,N);ts(g,E)}return typeof E=="string"&&E!==""||typeof E=="number"?(E=""+E,b!==null&&b.tag===6?(n(g,b.sibling),b=i(b,E),b.return=g,g=b):(n(g,b),b=Lu(E,g.mode,N),b.return=g,g=b),o(g)):n(g,b)}return C}var $i=ny(!0),ry=ny(!1),Qs=vr(null),Ks=null,ki=null,pf=null;function mf(){pf=ki=Ks=null}function gf(e){var t=Qs.current;Se(Qs),e._currentValue=t}function $c(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Li(e,t){Ks=e,pf=ki=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(mt=!0),e.firstContext=null)}function $t(e){var t=e._currentValue;if(pf!==e)if(e={context:e,memoizedValue:t,next:null},ki===null){if(Ks===null)throw Error(z(308));ki=e,Ks.dependencies={lanes:0,firstContext:e}}else ki=ki.next=e;return t}var Ur=null;function yf(e){Ur===null?Ur=[e]:Ur.push(e)}function iy(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,yf(t)):(n.next=i.next,i.next=n),t.interleaved=n,Fn(e,r)}function Fn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var nr=!1;function bf(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ay(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function On(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function hr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,ge&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Fn(e,n)}return i=r.interleaved,i===null?(t.next=t,yf(r)):(t.next=i.next,i.next=t),r.interleaved=t,Fn(e,n)}function Es(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nf(e,n)}}function hp(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xs(e,t,n,r){var i=e.updateQueue;nr=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?a=u:o.next=u,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==o&&(s===null?d.firstBaseUpdate=u:s.next=u,d.lastBaseUpdate=l))}if(a!==null){var f=i.baseState;o=0,d=u=l=null,s=a;do{var m=s.lane,p=s.eventTime;if((r&m)===m){d!==null&&(d=d.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var y=e,x=s;switch(m=t,p=n,x.tag){case 1:if(y=x.payload,typeof y=="function"){f=y.call(p,f,m);break e}f=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=x.payload,m=typeof y=="function"?y.call(p,f,m):y,m==null)break e;f=De({},f,m);break e;case 2:nr=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=i.effects,m===null?i.effects=[s]:m.push(s))}else p={eventTime:p,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(u=d=p,l=f):d=d.next=p,o|=m;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=u,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Kr|=o,e.lanes=o,e.memoizedState=f}}function pp(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Cu.transition;Cu.transition={};try{e(!1),t()}finally{Ee=n,Cu.transition=r}}function wy(){return Wt().memoizedState}function Sw(e,t,n){var r=mr(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ky(e))vy(t,n);else if(n=iy(e,t,n,r),n!==null){var i=st();on(n,e,r,i),Iy(n,t,r)}}function _w(e,t,n){var r=mr(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ky(e))vy(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,ln(s,o)){var l=t.interleaved;l===null?(i.next=i,yf(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=iy(e,t,i,r),n!==null&&(i=st(),on(n,e,r,i),Iy(n,t,r))}}function ky(e){var t=e.alternate;return e===Re||t!==null&&t===Re}function vy(e,t){Fa=Zs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Iy(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nf(e,n)}}var el={readContext:$t,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useInsertionEffect:Xe,useLayoutEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useMutableSource:Xe,useSyncExternalStore:Xe,useId:Xe,unstable_isNewReconciler:!1},Aw={readContext:$t,useCallback:function(e,t){return gn().memoizedState=[e,t===void 0?null:t],e},useContext:$t,useEffect:gp,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ts(4194308,4,yy.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ts(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ts(4,2,e,t)},useMemo:function(e,t){var n=gn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=gn();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Sw.bind(null,Re,e),[r.memoizedState,e]},useRef:function(e){var t=gn();return e={current:e},t.memoizedState=e},useState:mp,useDebugValue:Cf,useDeferredValue:function(e){return gn().memoizedState=e},useTransition:function(){var e=mp(!1),t=e[0];return e=Cw.bind(null,e[1]),gn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Re,i=gn();if(Ne){if(n===void 0)throw Error(z(407));n=n()}else{if(n=t(),qe===null)throw Error(z(349));Qr&30||uy(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,gp(dy.bind(null,r,a,e),[e]),r.flags|=2048,ho(9,cy.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=gn(),t=qe.identifierPrefix;if(Ne){var n=Rn,r=Ln;n=(r&~(1<<32-an(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=co++,0")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{uu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Sa(e):""}function aT(e){switch(e.tag){case 5:return Sa(e.type);case 16:return Sa("Lazy");case 13:return Sa("Suspense");case 19:return Sa("SuspenseList");case 0:case 2:case 15:return e=cu(e.type,!1),e;case 11:return e=cu(e.type.render,!1),e;case 1:return e=cu(e.type,!0),e;default:return""}}function bc(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case mi:return"Fragment";case pi:return"Portal";case mc:return"Profiler";case Xd:return"StrictMode";case gc:return"Suspense";case yc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ag:return(e.displayName||"Context")+".Consumer";case ig:return(e._context.displayName||"Context")+".Provider";case Jd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Zd:return t=e.displayName||null,t!==null?t:bc(e.type)||"Memo";case tr:t=e._payload,e=e._init;try{return bc(e(t))}catch{}}return null}function oT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return bc(t);case 8:return t===Xd?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function xr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function sg(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function sT(e){var t=sg(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Yo(e){e._valueTracker||(e._valueTracker=sT(e))}function lg(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=sg(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ms(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}}function Ec(e,t){var n=t.checked;return De({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ph(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=xr(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ug(e,t){t=t.checked,t!=null&&Kd(e,"checked",t,!1)}function xc(e,t){ug(e,t);var n=xr(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Tc(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tc(e,t.type,xr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Mh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Tc(e,t,n){(t!=="number"||Ms(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var _a=Array.isArray;function Si(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Vo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ja(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Oa={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},lT=["Webkit","ms","Moz","O"];Object.keys(Oa).forEach(function(e){lT.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Oa[t]=Oa[e]})});function hg(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Oa.hasOwnProperty(e)&&Oa[e]?(""+t).trim():t+"px"}function pg(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=hg(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var uT=De({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vc(e,t){if(t){if(uT[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(z(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(z(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(z(61))}if(t.style!=null&&typeof t.style!="object")throw Error(z(62))}}function Ic(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Cc=null;function ef(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Sc=null,_i=null,Ai=null;function Uh(e){if(e=Io(e)){if(typeof Sc!="function")throw Error(z(280));var t=e.stateNode;t&&(t=Cl(t),Sc(e.stateNode,e.type,t))}}function mg(e){_i?Ai?Ai.push(e):Ai=[e]:_i=e}function gg(){if(_i){var e=_i,t=Ai;if(Ai=_i=null,Uh(e),t)for(e=0;e>>=0,e===0?32:31-(xT(e)/TT|0)|0}var qo=64,Go=4194304;function Aa(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function js(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~i;s!==0?r=Aa(s):(a&=o,a!==0&&(r=Aa(a)))}else o=n&~i,o!==0?r=Aa(o):a!==0&&(r=Aa(a));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function wo(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-an(t),e[t]=n}function IT(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Pa),Gh=" ",Qh=!1;function Mg(e,t){switch(e){case"keyup":return ZT.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bg(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var gi=!1;function tk(e,t){switch(e){case"compositionend":return Bg(t);case"keypress":return t.which!==32?null:(Qh=!0,Gh);case"textInput":return e=t.data,e===Gh&&Qh?null:e;default:return null}}function nk(e,t){if(gi)return e==="compositionend"||!uf&&Mg(e,t)?(e=Dg(),ys=of=or=null,gi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Zh(n)}}function Hg(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Hg(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function zg(){for(var e=window,t=Ms();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ms(e.document)}return t}function cf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function dk(e){var t=zg(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Hg(n.ownerDocument.documentElement,n)){if(r!==null&&cf(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=ep(n,a);var o=ep(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,yi=null,Oc=null,Ba=null,Dc=!1;function tp(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dc||yi==null||yi!==Ms(r)||(r=yi,"selectionStart"in r&&cf(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ba&&io(Ba,r)||(Ba=r,r=$s(Oc,"onSelect"),0xi||(e.current=jc[xi],jc[xi]=null,xi--)}function we(e,t){xi++,jc[xi]=e.current,e.current=t}var Tr={},tt=vr(Tr),gt=vr(!1),qr=Tr;function Hi(e,t){var n=e.type.contextTypes;if(!n)return Tr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function yt(e){return e=e.childContextTypes,e!=null}function Ys(){Se(gt),Se(tt)}function lp(e,t,n){if(tt.current!==Tr)throw Error(z(168));we(tt,t),we(gt,n)}function Xg(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(z(108,oT(e)||"Unknown",i));return De({},n,r)}function Vs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tr,qr=tt.current,we(tt,e),we(gt,gt.current),!0}function up(e,t,n){var r=e.stateNode;if(!r)throw Error(z(169));n?(e=Xg(e,t,qr),r.__reactInternalMemoizedMergedChildContext=e,Se(gt),Se(tt),we(tt,e)):Se(gt),we(gt,n)}var An=null,Sl=!1,vu=!1;function Jg(e){An===null?An=[e]:An.push(e)}function wk(e){Sl=!0,Jg(e)}function Ir(){if(!vu&&An!==null){vu=!0;var e=0,t=Ee;try{var n=An;for(Ee=1;e>=o,i-=o,Ln=1<<32-an(t)+i|n<j?(Q=B,B=null):Q=B.sibling;var _=m(g,B,E[j],N);if(_===null){B===null&&(B=Q);break}e&&B&&_.alternate===null&&t(g,B),b=a(_,b,j),S===null?O=_:S.sibling=_,S=_,B=Q}if(j===E.length)return n(g,B),Ne&&Dr(g,j),O;if(B===null){for(;jj?(Q=B,B=null):Q=B.sibling;var V=m(g,B,_.value,N);if(V===null){B===null&&(B=Q);break}e&&B&&V.alternate===null&&t(g,B),b=a(V,b,j),S===null?O=V:S.sibling=V,S=V,B=Q}if(_.done)return n(g,B),Ne&&Dr(g,j),O;if(B===null){for(;!_.done;j++,_=E.next())_=f(g,_.value,N),_!==null&&(b=a(_,b,j),S===null?O=_:S.sibling=_,S=_);return Ne&&Dr(g,j),O}for(B=r(g,B);!_.done;j++,_=E.next())_=p(B,g,j,_.value,N),_!==null&&(e&&_.alternate!==null&&B.delete(_.key===null?j:_.key),b=a(_,b,j),S===null?O=_:S.sibling=_,S=_);return e&&B.forEach(function(U){return t(g,U)}),Ne&&Dr(g,j),O}function C(g,b,E,N){if(typeof E=="object"&&E!==null&&E.type===mi&&E.key===null&&(E=E.props.children),typeof E=="object"&&E!==null){switch(E.$$typeof){case Wo:e:{for(var O=E.key,S=b;S!==null;){if(S.key===O){if(O=E.type,O===mi){if(S.tag===7){n(g,S.sibling),b=i(S,E.props.children),b.return=g,g=b;break e}}else if(S.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===tr&&fp(O)===S.type){n(g,S.sibling),b=i(S,E.props),b.ref=ma(g,S,E),b.return=g,g=b;break e}n(g,S);break}else t(g,S);S=S.sibling}E.type===mi?(b=Yr(E.props.children,g.mode,N,E.key),b.return=g,g=b):(N=Is(E.type,E.key,E.props,null,g.mode,N),N.ref=ma(g,b,E),N.return=g,g=N)}return o(g);case pi:e:{for(S=E.key;b!==null;){if(b.key===S)if(b.tag===4&&b.stateNode.containerInfo===E.containerInfo&&b.stateNode.implementation===E.implementation){n(g,b.sibling),b=i(b,E.children||[]),b.return=g,g=b;break e}else{n(g,b);break}else t(g,b);b=b.sibling}b=Ru(E,g.mode,N),b.return=g,g=b}return o(g);case tr:return S=E._init,C(g,b,S(E._payload),N)}if(_a(E))return y(g,b,E,N);if(ca(E))return x(g,b,E,N);ts(g,E)}return typeof E=="string"&&E!==""||typeof E=="number"?(E=""+E,b!==null&&b.tag===6?(n(g,b.sibling),b=i(b,E),b.return=g,g=b):(n(g,b),b=Lu(E,g.mode,N),b.return=g,g=b),o(g)):n(g,b)}return C}var $i=ny(!0),ry=ny(!1),Qs=vr(null),Ks=null,wi=null,pf=null;function mf(){pf=wi=Ks=null}function gf(e){var t=Qs.current;Se(Qs),e._currentValue=t}function $c(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Li(e,t){Ks=e,pf=wi=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(mt=!0),e.firstContext=null)}function $t(e){var t=e._currentValue;if(pf!==e)if(e={context:e,memoizedValue:t,next:null},wi===null){if(Ks===null)throw Error(z(308));wi=e,Ks.dependencies={lanes:0,firstContext:e}}else wi=wi.next=e;return t}var Ur=null;function yf(e){Ur===null?Ur=[e]:Ur.push(e)}function iy(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,yf(t)):(n.next=i.next,i.next=n),t.interleaved=n,Fn(e,r)}function Fn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var nr=!1;function bf(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ay(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function On(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function hr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,ge&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Fn(e,n)}return i=r.interleaved,i===null?(t.next=t,yf(r)):(t.next=i.next,i.next=t),r.interleaved=t,Fn(e,n)}function Es(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nf(e,n)}}function hp(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xs(e,t,n,r){var i=e.updateQueue;nr=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?a=u:o.next=u,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==o&&(s===null?d.firstBaseUpdate=u:s.next=u,d.lastBaseUpdate=l))}if(a!==null){var f=i.baseState;o=0,d=u=l=null,s=a;do{var m=s.lane,p=s.eventTime;if((r&m)===m){d!==null&&(d=d.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var y=e,x=s;switch(m=t,p=n,x.tag){case 1:if(y=x.payload,typeof y=="function"){f=y.call(p,f,m);break e}f=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=x.payload,m=typeof y=="function"?y.call(p,f,m):y,m==null)break e;f=De({},f,m);break e;case 2:nr=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=i.effects,m===null?i.effects=[s]:m.push(s))}else p={eventTime:p,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(u=d=p,l=f):d=d.next=p,o|=m;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=u,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Kr|=o,e.lanes=o,e.memoizedState=f}}function pp(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Cu.transition;Cu.transition={};try{e(!1),t()}finally{Ee=n,Cu.transition=r}}function ky(){return Wt().memoizedState}function Sk(e,t,n){var r=mr(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},wy(e))vy(t,n);else if(n=iy(e,t,n,r),n!==null){var i=st();on(n,e,r,i),Iy(n,t,r)}}function _k(e,t,n){var r=mr(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(wy(e))vy(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,ln(s,o)){var l=t.interleaved;l===null?(i.next=i,yf(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=iy(e,t,i,r),n!==null&&(i=st(),on(n,e,r,i),Iy(n,t,r))}}function wy(e){var t=e.alternate;return e===Re||t!==null&&t===Re}function vy(e,t){Fa=Zs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Iy(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nf(e,n)}}var el={readContext:$t,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useInsertionEffect:Xe,useLayoutEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useMutableSource:Xe,useSyncExternalStore:Xe,useId:Xe,unstable_isNewReconciler:!1},Ak={readContext:$t,useCallback:function(e,t){return gn().memoizedState=[e,t===void 0?null:t],e},useContext:$t,useEffect:gp,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ts(4194308,4,yy.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ts(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ts(4,2,e,t)},useMemo:function(e,t){var n=gn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=gn();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Sk.bind(null,Re,e),[r.memoizedState,e]},useRef:function(e){var t=gn();return e={current:e},t.memoizedState=e},useState:mp,useDebugValue:Cf,useDeferredValue:function(e){return gn().memoizedState=e},useTransition:function(){var e=mp(!1),t=e[0];return e=Ck.bind(null,e[1]),gn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Re,i=gn();if(Ne){if(n===void 0)throw Error(z(407));n=n()}else{if(n=t(),qe===null)throw Error(z(349));Qr&30||uy(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,gp(dy.bind(null,r,a,e),[e]),r.flags|=2048,ho(9,cy.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=gn(),t=qe.identifierPrefix;if(Ne){var n=Rn,r=Ln;n=(r&~(1<<32-an(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=co++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[En]=t,e[so]=r,Py(e,t,!1,!1),t.stateNode=e;e:{switch(o=Ic(n,r),n){case"dialog":Ie("cancel",e),Ie("close",e),i=r;break;case"iframe":case"object":case"embed":Ie("load",e),i=r;break;case"video":case"audio":for(i=0;iVi&&(t.flags|=128,r=!0,ga(a,!1),t.lanes=4194304)}else{if(!r)if(e=Js(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ga(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Ne)return Je(t),null}else 2*Me()-a.renderingStartTime>Vi&&n!==1073741824&&(t.flags|=128,r=!0,ga(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(n=a.last,n!==null?n.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Me(),t.sibling=null,n=Le.current,ke(Le,r?n&1|2:n&1),t):(Je(t),null);case 22:case 23:return Rf(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?vt&1073741824&&(Je(t),t.subtreeFlags&6&&(t.flags|=8192)):Je(t),null;case 24:return null;case 25:return null}throw Error(z(156,t.tag))}function Bw(e,t){switch(ff(t),t.tag){case 1:return yt(t.type)&&Ys(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wi(),Se(gt),Se(tt),Tf(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return xf(t),null;case 13:if(Se(Le),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(z(340));zi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Se(Le),null;case 4:return Wi(),null;case 10:return gf(t.type._context),null;case 22:case 23:return Rf(),null;case 24:return null;default:return null}}var rs=!1,Ze=!1,Fw=typeof WeakSet=="function"?WeakSet:Set,K=null;function vi(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Pe(e,t,r)}else n.current=null}function Jc(e,t,n){try{n()}catch(r){Pe(e,t,r)}}var Sp=!1;function Uw(e,t){if(Pc=Hs,e=zg(),cf(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var o=0,s=-1,l=-1,u=0,d=0,f=e,m=null;t:for(;;){for(var p;f!==n||i!==0&&f.nodeType!==3||(s=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)m=f,f=p;for(;;){if(f===e)break t;if(m===n&&++u===i&&(s=o),m===a&&++d===r&&(l=o),(p=f.nextSibling)!==null)break;f=m,m=f.parentNode}f=p}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Mc={focusedElem:e,selectionRange:n},Hs=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var x=y.memoizedProps,C=y.memoizedState,g=t.stateNode,b=g.getSnapshotBeforeUpdate(t.elementType===t.type?x:en(t.type,x),C);g.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var E=t.stateNode.containerInfo;E.nodeType===1?E.textContent="":E.nodeType===9&&E.documentElement&&E.removeChild(E.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(z(163))}}catch(N){Pe(t,t.return,N)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return y=Sp,Sp=!1,y}function Ua(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&Jc(t,n,a)}i=i.next}while(i!==r)}}function Nl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Zc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Fy(e){var t=e.alternate;t!==null&&(e.alternate=null,Fy(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[En],delete t[so],delete t[Uc],delete t[Tw],delete t[ww])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Uy(e){return e.tag===5||e.tag===3||e.tag===4}function _p(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Uy(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ed(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ws));else if(r!==4&&(e=e.child,e!==null))for(ed(e,t,n),e=e.sibling;e!==null;)ed(e,t,n),e=e.sibling}function td(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(td(e,t,n),e=e.sibling;e!==null;)td(e,t,n),e=e.sibling}var Ge=null,tn=!1;function Qn(e,t,n){for(n=n.child;n!==null;)jy(e,t,n),n=n.sibling}function jy(e,t,n){if(xn&&typeof xn.onCommitFiberUnmount=="function")try{xn.onCommitFiberUnmount(wl,n)}catch{}switch(n.tag){case 5:Ze||vi(n,t);case 6:var r=Ge,i=tn;Ge=null,Qn(e,t,n),Ge=r,tn=i,Ge!==null&&(tn?(e=Ge,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ge.removeChild(n.stateNode));break;case 18:Ge!==null&&(tn?(e=Ge,n=n.stateNode,e.nodeType===8?ku(e.parentNode,n):e.nodeType===1&&ku(e,n),no(e)):ku(Ge,n.stateNode));break;case 4:r=Ge,i=tn,Ge=n.stateNode.containerInfo,tn=!0,Qn(e,t,n),Ge=r,tn=i;break;case 0:case 11:case 14:case 15:if(!Ze&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&Jc(n,t,o),i=i.next}while(i!==r)}Qn(e,t,n);break;case 1:if(!Ze&&(vi(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Pe(n,t,s)}Qn(e,t,n);break;case 21:Qn(e,t,n);break;case 22:n.mode&1?(Ze=(r=Ze)||n.memoizedState!==null,Qn(e,t,n),Ze=r):Qn(e,t,n);break;default:Qn(e,t,n)}}function Ap(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Fw),t.forEach(function(r){var i=Gw.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Xt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~a}if(r=i,r=Me()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Hw(r/1960))-r,10e?16:e,sr===null)var r=!1;else{if(e=sr,sr=null,rl=0,ge&6)throw Error(z(331));var i=ge;for(ge|=4,K=e.current;K!==null;){var a=K,o=a.child;if(K.flags&16){var s=a.deletions;if(s!==null){for(var l=0;lMe()-Nf?Wr(e,0):Af|=n),bt(e,t)}function Gy(e,t){t===0&&(e.mode&1?(t=Go,Go<<=1,!(Go&130023424)&&(Go=4194304)):t=1);var n=st();e=Fn(e,t),e!==null&&(ko(e,t,n),bt(e,n))}function qw(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Gy(e,n)}function Gw(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(z(314))}r!==null&&r.delete(t),Gy(e,n)}var Qy;Qy=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||gt.current)mt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return mt=!1,Pw(e,t,n);mt=!!(e.flags&131072)}else mt=!1,Ne&&t.flags&1048576&&Zg(t,Gs,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ws(e,t),e=t.pendingProps;var i=Hi(t,tt.current);Li(t,n),i=kf(null,t,r,e,i,n);var a=vf();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,yt(r)?(a=!0,Vs(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,bf(t),i.updater=Al,t.stateNode=i,i._reactInternals=t,Yc(t,r,e,n),t=Gc(null,t,r,!0,a,n)):(t.tag=0,Ne&&a&&df(t),it(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ws(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=Kw(r),e=en(r,e),i){case 0:t=qc(null,t,r,e,n);break e;case 1:t=vp(null,t,r,e,n);break e;case 11:t=wp(null,t,r,e,n);break e;case 14:t=kp(null,t,r,en(r.type,e),n);break e}throw Error(z(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),qc(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),vp(e,t,r,i,n);case 3:e:{if(Ry(t),e===null)throw Error(z(387));r=t.pendingProps,a=t.memoizedState,i=a.element,ay(e,t),Xs(t,r,null,n);var o=t.memoizedState;if(r=o.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=Yi(Error(z(423)),t),t=Ip(e,t,r,n,i);break e}else if(r!==i){i=Yi(Error(z(424)),t),t=Ip(e,t,r,n,i);break e}else for(It=fr(t.stateNode.containerInfo.firstChild),Ct=t,Ne=!0,nn=null,n=ry(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zi(),r===i){t=Un(e,t,n);break e}it(e,t,r,n)}t=t.child}return t;case 5:return oy(t),e===null&&zc(t),r=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,Bc(r,i)?o=null:a!==null&&Bc(r,a)&&(t.flags|=32),Ly(e,t),it(e,t,o,n),t.child;case 6:return e===null&&zc(t),null;case 13:return Oy(e,t,n);case 4:return Ef(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=$i(t,null,r,n):it(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),wp(e,t,r,i,n);case 7:return it(e,t,t.pendingProps,n),t.child;case 8:return it(e,t,t.pendingProps.children,n),t.child;case 12:return it(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,ke(Qs,r._currentValue),r._currentValue=o,a!==null)if(ln(a.value,o)){if(a.children===i.children&&!gt.current){t=Un(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var s=a.dependencies;if(s!==null){o=a.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(a.tag===1){l=On(-1,n&-n),l.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),$c(a.return,n,t),s.lanes|=n;break}l=l.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(z(341));o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),$c(o,n,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}it(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Li(t,n),i=$t(i),r=r(i),t.flags|=1,it(e,t,r,n),t.child;case 14:return r=t.type,i=en(r,t.pendingProps),i=en(r.type,i),kp(e,t,r,i,n);case 15:return Ay(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),ws(e,t),t.tag=1,yt(r)?(e=!0,Vs(t)):e=!1,Li(t,n),Cy(t,r,i),Yc(t,r,i,n),Gc(null,t,r,!0,e,n);case 19:return Dy(e,t,n);case 22:return Ny(e,t,n)}throw Error(z(156,t.tag))};function Ky(e,t){return kg(e,t)}function Qw(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function jt(e,t,n,r){return new Qw(e,t,n,r)}function Df(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Kw(e){if(typeof e=="function")return Df(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Jd)return 11;if(e===Zd)return 14}return 2}function gr(e,t){var n=e.alternate;return n===null?(n=jt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Is(e,t,n,r,i,a){var o=2;if(r=e,typeof e=="function")Df(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case mi:return Yr(n.children,i,a,t);case Xd:o=8,i|=8;break;case mc:return e=jt(12,n,t,i|2),e.elementType=mc,e.lanes=a,e;case gc:return e=jt(13,n,t,i),e.elementType=gc,e.lanes=a,e;case yc:return e=jt(19,n,t,i),e.elementType=yc,e.lanes=a,e;case og:return Rl(n,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ig:o=10;break e;case ag:o=9;break e;case Jd:o=11;break e;case Zd:o=14;break e;case tr:o=16,r=null;break e}throw Error(z(130,e==null?e:typeof e,""))}return t=jt(o,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function Yr(e,t,n,r){return e=jt(7,e,r,t),e.lanes=n,e}function Rl(e,t,n,r){return e=jt(22,e,r,t),e.elementType=og,e.lanes=n,e.stateNode={isHidden:!1},e}function Lu(e,t,n){return e=jt(6,e,null,t),e.lanes=n,e}function Ru(e,t,n){return t=jt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xw(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=fu(0),this.expirationTimes=fu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fu(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Pf(e,t,n,r,i,a,o,s,l){return e=new Xw(e,t,n,s,l),t===1?(t=1,a===!0&&(t|=8)):t=0,a=jt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},bf(a),e}function Jw(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e1)}catch(e){console.error(e)}}e1(),eg.exports=Nt;var t1=eg.exports;const rk=ri(t1);var Bp=t1;hc.createRoot=Bp.createRoot,hc.hydrateRoot=Bp.hydrateRoot;/** +`+a.stack}return{value:e,source:t,stack:i,digest:null}}function Au(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Vc(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Rk=typeof WeakMap=="function"?WeakMap:Map;function Sy(e,t,n){n=On(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){nl||(nl=!0,nd=r),Vc(e,t)},n}function _y(e,t,n){n=On(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){Vc(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch=="function"&&(n.callback=function(){Vc(e,t),typeof r!="function"&&(pr===null?pr=new Set([this]):pr.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Ep(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Rk;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=Vk.bind(null,e,t,n),t.then(e,e))}function xp(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Tp(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=On(-1,1),t.tag=2,hr(n,t,1))),n.lanes|=1),e)}var Ok=zn.ReactCurrentOwner,mt=!1;function it(e,t,n,r){t.child=e===null?ry(t,null,n,r):$i(t,e.child,n,r)}function kp(e,t,n,r,i){n=n.render;var a=t.ref;return Li(t,i),r=wf(e,t,n,r,a,i),n=vf(),e!==null&&!mt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Un(e,t,i)):(Ne&&n&&df(t),t.flags|=1,it(e,t,r,i),t.child)}function wp(e,t,n,r,i){if(e===null){var a=n.type;return typeof a=="function"&&!Df(a)&&a.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=a,Ay(e,t,a,r,i)):(e=Is(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!(e.lanes&i)){var o=a.memoizedProps;if(n=n.compare,n=n!==null?n:io,n(o,r)&&e.ref===t.ref)return Un(e,t,i)}return t.flags|=1,e=gr(a,r),e.ref=t.ref,e.return=t,t.child=e}function Ay(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(io(a,r)&&e.ref===t.ref)if(mt=!1,t.pendingProps=r=a,(e.lanes&i)!==0)e.flags&131072&&(mt=!0);else return t.lanes=e.lanes,Un(e,t,i)}return qc(e,t,n,r,i)}function Ny(e,t,n){var r=t.pendingProps,i=r.children,a=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},we(Ii,vt),vt|=n;else{if(!(n&1073741824))return e=a!==null?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,we(Ii,vt),vt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=a!==null?a.baseLanes:n,we(Ii,vt),vt|=r}else a!==null?(r=a.baseLanes|n,t.memoizedState=null):r=n,we(Ii,vt),vt|=r;return it(e,t,i,n),t.child}function Ly(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function qc(e,t,n,r,i){var a=yt(n)?qr:tt.current;return a=Hi(t,a),Li(t,i),n=wf(e,t,n,r,a,i),r=vf(),e!==null&&!mt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Un(e,t,i)):(Ne&&r&&df(t),t.flags|=1,it(e,t,n,i),t.child)}function vp(e,t,n,r,i){if(yt(n)){var a=!0;Vs(t)}else a=!1;if(Li(t,i),t.stateNode===null)ks(e,t),Cy(t,n,r),Yc(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,s=t.memoizedProps;o.props=s;var l=o.context,u=n.contextType;typeof u=="object"&&u!==null?u=$t(u):(u=yt(n)?qr:tt.current,u=Hi(t,u));var d=n.getDerivedStateFromProps,f=typeof d=="function"||typeof o.getSnapshotBeforeUpdate=="function";f||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(s!==r||l!==u)&&bp(t,o,r,u),nr=!1;var m=t.memoizedState;o.state=m,Xs(t,r,o,i),l=t.memoizedState,s!==r||m!==l||gt.current||nr?(typeof d=="function"&&(Wc(t,n,d,r),l=t.memoizedState),(s=nr||yp(t,n,s,r,m,l,u))?(f||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=u,r=s):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ay(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:en(t.type,s),o.props=u,f=t.pendingProps,m=o.context,l=n.contextType,typeof l=="object"&&l!==null?l=$t(l):(l=yt(n)?qr:tt.current,l=Hi(t,l));var p=n.getDerivedStateFromProps;(d=typeof p=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(s!==f||m!==l)&&bp(t,o,r,l),nr=!1,m=t.memoizedState,o.state=m,Xs(t,r,o,i);var y=t.memoizedState;s!==f||m!==y||gt.current||nr?(typeof p=="function"&&(Wc(t,n,p,r),y=t.memoizedState),(u=nr||yp(t,n,u,r,m,y,l)||!1)?(d||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,y,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,y,l)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=y),o.props=r,o.state=y,o.context=l,r=u):(typeof o.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return Gc(e,t,n,r,a,i)}function Gc(e,t,n,r,i,a){Ly(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return i&&up(t,n,!1),Un(e,t,a);r=t.stateNode,Ok.current=t;var s=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=$i(t,e.child,null,a),t.child=$i(t,null,s,a)):it(e,t,s,a),t.memoizedState=r.state,i&&up(t,n,!0),t.child}function Ry(e){var t=e.stateNode;t.pendingContext?lp(e,t.pendingContext,t.pendingContext!==t.context):t.context&&lp(e,t.context,!1),Ef(e,t.containerInfo)}function Ip(e,t,n,r,i){return zi(),hf(i),t.flags|=256,it(e,t,n,r),t.child}var Qc={dehydrated:null,treeContext:null,retryLane:0};function Kc(e){return{baseLanes:e,cachePool:null,transitions:null}}function Oy(e,t,n){var r=t.pendingProps,i=Le.current,a=!1,o=(t.flags&128)!==0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(i&2)!==0),s?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),we(Le,i&1),e===null)return zc(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,a?(r=t.mode,a=t.child,o={mode:"hidden",children:o},!(r&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=Rl(o,r,0,null),e=Yr(e,r,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Kc(n),t.memoizedState=Qc,e):Sf(t,o));if(i=e.memoizedState,i!==null&&(s=i.dehydrated,s!==null))return Dk(e,t,o,r,s,i,n);if(a){a=r.fallback,o=t.mode,i=e.child,s=i.sibling;var l={mode:"hidden",children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=gr(i,l),r.subtreeFlags=i.subtreeFlags&14680064),s!==null?a=gr(s,a):(a=Yr(a,o,n,null),a.flags|=2),a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,o=e.child.memoizedState,o=o===null?Kc(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=e.childLanes&~n,t.memoizedState=Qc,r}return a=e.child,e=a.sibling,r=gr(a,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Sf(e,t){return t=Rl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ns(e,t,n,r){return r!==null&&hf(r),$i(t,e.child,null,n),e=Sf(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Dk(e,t,n,r,i,a,o){if(n)return t.flags&256?(t.flags&=-257,r=Au(Error(z(422))),ns(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(a=r.fallback,i=t.mode,r=Rl({mode:"visible",children:r.children},i,0,null),a=Yr(a,i,o,null),a.flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,t.mode&1&&$i(t,e.child,null,o),t.child.memoizedState=Kc(o),t.memoizedState=Qc,a);if(!(t.mode&1))return ns(e,t,o,null);if(i.data==="$!"){if(r=i.nextSibling&&i.nextSibling.dataset,r)var s=r.dgst;return r=s,a=Error(z(419)),r=Au(a,r,void 0),ns(e,t,o,r)}if(s=(o&e.childLanes)!==0,mt||s){if(r=qe,r!==null){switch(o&-o){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(r.suspendedLanes|o)?0:i,i!==0&&i!==a.retryLane&&(a.retryLane=i,Fn(e,i),on(r,e,i,-1))}return Of(),r=Au(Error(z(421))),ns(e,t,o,r)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=qk.bind(null,e),i._reactRetry=t,null):(e=a.treeContext,It=fr(i.nextSibling),Ct=t,Ne=!0,nn=null,e!==null&&(Mt[Bt++]=Ln,Mt[Bt++]=Rn,Mt[Bt++]=Gr,Ln=e.id,Rn=e.overflow,Gr=t),t=Sf(t,r.children),t.flags|=4096,t)}function Cp(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),$c(e.return,t,n)}function Nu(e,t,n,r,i){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=i)}function Dy(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;if(it(e,t,r.children,n),r=Le.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Cp(e,n,t);else if(e.tag===19)Cp(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(we(Le,r),!(t.mode&1))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&Js(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Nu(t,!1,i,n,a);break;case"backwards":for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Js(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Nu(t,!0,n,null,a);break;case"together":Nu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ks(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Un(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Kr|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(z(153));if(t.child!==null){for(e=t.child,n=gr(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=gr(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Pk(e,t,n){switch(t.tag){case 3:Ry(t),zi();break;case 5:oy(t);break;case 1:yt(t.type)&&Vs(t);break;case 4:Ef(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;we(Qs,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(we(Le,Le.current&1),t.flags|=128,null):n&t.child.childLanes?Oy(e,t,n):(we(Le,Le.current&1),e=Un(e,t,n),e!==null?e.sibling:null);we(Le,Le.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Dy(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),we(Le,Le.current),r)break;return null;case 22:case 23:return t.lanes=0,Ny(e,t,n)}return Un(e,t,n)}var Py,Xc,My,By;Py=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Xc=function(){};My=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,jr(Tn.current);var a=null;switch(n){case"input":i=Ec(e,i),r=Ec(e,r),a=[];break;case"select":i=De({},i,{value:void 0}),r=De({},r,{value:void 0}),a=[];break;case"textarea":i=kc(e,i),r=kc(e,r),a=[];break;default:typeof i.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Ws)}vc(n,r);var o;n=null;for(u in i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null)if(u==="style"){var s=i[u];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(Xa.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in r){var l=r[u];if(s=i!=null?i[u]:void 0,r.hasOwnProperty(u)&&l!==s&&(l!=null||s!=null))if(u==="style")if(s){for(o in s)!s.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in l)l.hasOwnProperty(o)&&s[o]!==l[o]&&(n||(n={}),n[o]=l[o])}else n||(a||(a=[]),a.push(u,n)),n=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,s=s?s.__html:void 0,l!=null&&s!==l&&(a=a||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(a=a||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(Xa.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&Ie("scroll",e),a||s===l||(a=[])):(a=a||[]).push(u,l))}n&&(a=a||[]).push("style",n);var u=a;(t.updateQueue=u)&&(t.flags|=4)}};By=function(e,t,n,r){n!==r&&(t.flags|=4)};function ga(e,t){if(!Ne)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Je(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Mk(e,t,n){var r=t.pendingProps;switch(ff(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Je(t),null;case 1:return yt(t.type)&&Ys(),Je(t),null;case 3:return r=t.stateNode,Wi(),Se(gt),Se(tt),Tf(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(es(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,nn!==null&&(ad(nn),nn=null))),Xc(e,t),Je(t),null;case 5:xf(t);var i=jr(uo.current);if(n=t.type,e!==null&&t.stateNode!=null)My(e,t,n,r,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(z(166));return Je(t),null}if(e=jr(Tn.current),es(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[En]=t,r[so]=a,e=(t.mode&1)!==0,n){case"dialog":Ie("cancel",r),Ie("close",r);break;case"iframe":case"object":case"embed":Ie("load",r);break;case"video":case"audio":for(i=0;i<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[En]=t,e[so]=r,Py(e,t,!1,!1),t.stateNode=e;e:{switch(o=Ic(n,r),n){case"dialog":Ie("cancel",e),Ie("close",e),i=r;break;case"iframe":case"object":case"embed":Ie("load",e),i=r;break;case"video":case"audio":for(i=0;iVi&&(t.flags|=128,r=!0,ga(a,!1),t.lanes=4194304)}else{if(!r)if(e=Js(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ga(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Ne)return Je(t),null}else 2*Me()-a.renderingStartTime>Vi&&n!==1073741824&&(t.flags|=128,r=!0,ga(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(n=a.last,n!==null?n.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Me(),t.sibling=null,n=Le.current,we(Le,r?n&1|2:n&1),t):(Je(t),null);case 22:case 23:return Rf(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?vt&1073741824&&(Je(t),t.subtreeFlags&6&&(t.flags|=8192)):Je(t),null;case 24:return null;case 25:return null}throw Error(z(156,t.tag))}function Bk(e,t){switch(ff(t),t.tag){case 1:return yt(t.type)&&Ys(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wi(),Se(gt),Se(tt),Tf(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return xf(t),null;case 13:if(Se(Le),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(z(340));zi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Se(Le),null;case 4:return Wi(),null;case 10:return gf(t.type._context),null;case 22:case 23:return Rf(),null;case 24:return null;default:return null}}var rs=!1,Ze=!1,Fk=typeof WeakSet=="function"?WeakSet:Set,K=null;function vi(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Pe(e,t,r)}else n.current=null}function Jc(e,t,n){try{n()}catch(r){Pe(e,t,r)}}var Sp=!1;function Uk(e,t){if(Pc=Hs,e=zg(),cf(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var o=0,s=-1,l=-1,u=0,d=0,f=e,m=null;t:for(;;){for(var p;f!==n||i!==0&&f.nodeType!==3||(s=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)m=f,f=p;for(;;){if(f===e)break t;if(m===n&&++u===i&&(s=o),m===a&&++d===r&&(l=o),(p=f.nextSibling)!==null)break;f=m,m=f.parentNode}f=p}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Mc={focusedElem:e,selectionRange:n},Hs=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var x=y.memoizedProps,C=y.memoizedState,g=t.stateNode,b=g.getSnapshotBeforeUpdate(t.elementType===t.type?x:en(t.type,x),C);g.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var E=t.stateNode.containerInfo;E.nodeType===1?E.textContent="":E.nodeType===9&&E.documentElement&&E.removeChild(E.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(z(163))}}catch(N){Pe(t,t.return,N)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return y=Sp,Sp=!1,y}function Ua(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&Jc(t,n,a)}i=i.next}while(i!==r)}}function Nl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Zc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Fy(e){var t=e.alternate;t!==null&&(e.alternate=null,Fy(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[En],delete t[so],delete t[Uc],delete t[Tk],delete t[kk])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Uy(e){return e.tag===5||e.tag===3||e.tag===4}function _p(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Uy(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ed(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ws));else if(r!==4&&(e=e.child,e!==null))for(ed(e,t,n),e=e.sibling;e!==null;)ed(e,t,n),e=e.sibling}function td(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(td(e,t,n),e=e.sibling;e!==null;)td(e,t,n),e=e.sibling}var Ge=null,tn=!1;function Qn(e,t,n){for(n=n.child;n!==null;)jy(e,t,n),n=n.sibling}function jy(e,t,n){if(xn&&typeof xn.onCommitFiberUnmount=="function")try{xn.onCommitFiberUnmount(kl,n)}catch{}switch(n.tag){case 5:Ze||vi(n,t);case 6:var r=Ge,i=tn;Ge=null,Qn(e,t,n),Ge=r,tn=i,Ge!==null&&(tn?(e=Ge,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ge.removeChild(n.stateNode));break;case 18:Ge!==null&&(tn?(e=Ge,n=n.stateNode,e.nodeType===8?wu(e.parentNode,n):e.nodeType===1&&wu(e,n),no(e)):wu(Ge,n.stateNode));break;case 4:r=Ge,i=tn,Ge=n.stateNode.containerInfo,tn=!0,Qn(e,t,n),Ge=r,tn=i;break;case 0:case 11:case 14:case 15:if(!Ze&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&Jc(n,t,o),i=i.next}while(i!==r)}Qn(e,t,n);break;case 1:if(!Ze&&(vi(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Pe(n,t,s)}Qn(e,t,n);break;case 21:Qn(e,t,n);break;case 22:n.mode&1?(Ze=(r=Ze)||n.memoizedState!==null,Qn(e,t,n),Ze=r):Qn(e,t,n);break;default:Qn(e,t,n)}}function Ap(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Fk),t.forEach(function(r){var i=Gk.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Xt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~a}if(r=i,r=Me()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Hk(r/1960))-r,10e?16:e,sr===null)var r=!1;else{if(e=sr,sr=null,rl=0,ge&6)throw Error(z(331));var i=ge;for(ge|=4,K=e.current;K!==null;){var a=K,o=a.child;if(K.flags&16){var s=a.deletions;if(s!==null){for(var l=0;lMe()-Nf?Wr(e,0):Af|=n),bt(e,t)}function Gy(e,t){t===0&&(e.mode&1?(t=Go,Go<<=1,!(Go&130023424)&&(Go=4194304)):t=1);var n=st();e=Fn(e,t),e!==null&&(wo(e,t,n),bt(e,n))}function qk(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Gy(e,n)}function Gk(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(z(314))}r!==null&&r.delete(t),Gy(e,n)}var Qy;Qy=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||gt.current)mt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return mt=!1,Pk(e,t,n);mt=!!(e.flags&131072)}else mt=!1,Ne&&t.flags&1048576&&Zg(t,Gs,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ks(e,t),e=t.pendingProps;var i=Hi(t,tt.current);Li(t,n),i=wf(null,t,r,e,i,n);var a=vf();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,yt(r)?(a=!0,Vs(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,bf(t),i.updater=Al,t.stateNode=i,i._reactInternals=t,Yc(t,r,e,n),t=Gc(null,t,r,!0,a,n)):(t.tag=0,Ne&&a&&df(t),it(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ks(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=Kk(r),e=en(r,e),i){case 0:t=qc(null,t,r,e,n);break e;case 1:t=vp(null,t,r,e,n);break e;case 11:t=kp(null,t,r,e,n);break e;case 14:t=wp(null,t,r,en(r.type,e),n);break e}throw Error(z(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),qc(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),vp(e,t,r,i,n);case 3:e:{if(Ry(t),e===null)throw Error(z(387));r=t.pendingProps,a=t.memoizedState,i=a.element,ay(e,t),Xs(t,r,null,n);var o=t.memoizedState;if(r=o.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=Yi(Error(z(423)),t),t=Ip(e,t,r,n,i);break e}else if(r!==i){i=Yi(Error(z(424)),t),t=Ip(e,t,r,n,i);break e}else for(It=fr(t.stateNode.containerInfo.firstChild),Ct=t,Ne=!0,nn=null,n=ry(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zi(),r===i){t=Un(e,t,n);break e}it(e,t,r,n)}t=t.child}return t;case 5:return oy(t),e===null&&zc(t),r=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,Bc(r,i)?o=null:a!==null&&Bc(r,a)&&(t.flags|=32),Ly(e,t),it(e,t,o,n),t.child;case 6:return e===null&&zc(t),null;case 13:return Oy(e,t,n);case 4:return Ef(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=$i(t,null,r,n):it(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),kp(e,t,r,i,n);case 7:return it(e,t,t.pendingProps,n),t.child;case 8:return it(e,t,t.pendingProps.children,n),t.child;case 12:return it(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,we(Qs,r._currentValue),r._currentValue=o,a!==null)if(ln(a.value,o)){if(a.children===i.children&&!gt.current){t=Un(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var s=a.dependencies;if(s!==null){o=a.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(a.tag===1){l=On(-1,n&-n),l.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),$c(a.return,n,t),s.lanes|=n;break}l=l.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(z(341));o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),$c(o,n,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}it(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Li(t,n),i=$t(i),r=r(i),t.flags|=1,it(e,t,r,n),t.child;case 14:return r=t.type,i=en(r,t.pendingProps),i=en(r.type,i),wp(e,t,r,i,n);case 15:return Ay(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:en(r,i),ks(e,t),t.tag=1,yt(r)?(e=!0,Vs(t)):e=!1,Li(t,n),Cy(t,r,i),Yc(t,r,i,n),Gc(null,t,r,!0,e,n);case 19:return Dy(e,t,n);case 22:return Ny(e,t,n)}throw Error(z(156,t.tag))};function Ky(e,t){return wg(e,t)}function Qk(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function jt(e,t,n,r){return new Qk(e,t,n,r)}function Df(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Kk(e){if(typeof e=="function")return Df(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Jd)return 11;if(e===Zd)return 14}return 2}function gr(e,t){var n=e.alternate;return n===null?(n=jt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Is(e,t,n,r,i,a){var o=2;if(r=e,typeof e=="function")Df(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case mi:return Yr(n.children,i,a,t);case Xd:o=8,i|=8;break;case mc:return e=jt(12,n,t,i|2),e.elementType=mc,e.lanes=a,e;case gc:return e=jt(13,n,t,i),e.elementType=gc,e.lanes=a,e;case yc:return e=jt(19,n,t,i),e.elementType=yc,e.lanes=a,e;case og:return Rl(n,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ig:o=10;break e;case ag:o=9;break e;case Jd:o=11;break e;case Zd:o=14;break e;case tr:o=16,r=null;break e}throw Error(z(130,e==null?e:typeof e,""))}return t=jt(o,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function Yr(e,t,n,r){return e=jt(7,e,r,t),e.lanes=n,e}function Rl(e,t,n,r){return e=jt(22,e,r,t),e.elementType=og,e.lanes=n,e.stateNode={isHidden:!1},e}function Lu(e,t,n){return e=jt(6,e,null,t),e.lanes=n,e}function Ru(e,t,n){return t=jt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xk(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=fu(0),this.expirationTimes=fu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fu(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Pf(e,t,n,r,i,a,o,s,l){return e=new Xk(e,t,n,s,l),t===1?(t=1,a===!0&&(t|=8)):t=0,a=jt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},bf(a),e}function Jk(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e1)}catch(e){console.error(e)}}e1(),eg.exports=Nt;var t1=eg.exports;const rw=ri(t1);var Bp=t1;hc.createRoot=Bp.createRoot,hc.hydrateRoot=Bp.hydrateRoot;/** * react-router v7.12.0 * * Copyright (c) Remix Software Inc. @@ -46,9 +46,9 @@ Error generating stack: `+a.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */var Fp="popstate";function ik(e={}){function t(r,i){let{pathname:a,search:o,hash:s}=r.location;return od("",{pathname:a,search:o,hash:s},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:mo(i)}return ok(t,n,null,e)}function Oe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function un(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function ak(){return Math.random().toString(36).substring(2,10)}function Up(e,t){return{usr:e.state,key:e.key,idx:t}}function od(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Ji(t):t,state:n,key:t&&t.key||r||ak()}}function mo({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function Ji(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function ok(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s="POP",l=null,u=d();u==null&&(u=0,o.replaceState({...o.state,idx:u},""));function d(){return(o.state||{idx:null}).idx}function f(){s="POP";let C=d(),g=C==null?null:C-u;u=C,l&&l({action:s,location:x.location,delta:g})}function m(C,g){s="PUSH";let b=od(x.location,C,g);u=d()+1;let E=Up(b,u),N=x.createHref(b);try{o.pushState(E,"",N)}catch(O){if(O instanceof DOMException&&O.name==="DataCloneError")throw O;i.location.assign(N)}a&&l&&l({action:s,location:x.location,delta:1})}function p(C,g){s="REPLACE";let b=od(x.location,C,g);u=d();let E=Up(b,u),N=x.createHref(b);o.replaceState(E,"",N),a&&l&&l({action:s,location:x.location,delta:0})}function y(C){return sk(C)}let x={get action(){return s},get location(){return e(i,o)},listen(C){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Fp,f),l=C,()=>{i.removeEventListener(Fp,f),l=null}},createHref(C){return t(i,C)},createURL:y,encodeLocation(C){let g=y(C);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:m,replace:p,go(C){return o.go(C)}};return x}function sk(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),Oe(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:mo(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function n1(e,t,n="/"){return lk(e,t,n,!1)}function lk(e,t,n,r){let i=typeof t=="string"?Ji(t):t,a=jn(i.pathname||"/",n);if(a==null)return null;let o=r1(e);uk(o);let s=null;for(let l=0;s==null&&l{let d={relativePath:u===void 0?o.path||"":u,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};if(d.relativePath.startsWith("/")){if(!d.relativePath.startsWith(r)&&l)return;Oe(d.relativePath.startsWith(r),`Absolute route path "${d.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(r.length)}let f=Dn([r,d.relativePath]),m=n.concat(d);o.children&&o.children.length>0&&(Oe(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${f}".`),r1(o.children,t,m,f,l)),!(o.path==null&&!o.index)&&t.push({path:f,score:gk(f,o.index),routesMeta:m})};return e.forEach((o,s)=>{var l;if(o.path===""||!((l=o.path)!=null&&l.includes("?")))a(o,s);else for(let u of i1(o.path))a(o,s,!0,u)}),t}function i1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return i?[a,""]:[a];let o=i1(r.join("/")),s=[];return s.push(...o.map(l=>l===""?a:[a,l].join("/"))),i&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function uk(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:yk(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var ck=/^:[\w-]+$/,dk=3,fk=2,hk=1,pk=10,mk=-2,jp=e=>e==="*";function gk(e,t){let n=e.split("/"),r=n.length;return n.some(jp)&&(r+=mk),t&&(r+=fk),n.filter(i=>!jp(i)).reduce((i,a)=>i+(ck.test(a)?dk:a===""?hk:pk),r)}function yk(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function bk(e,t,n=!1){let{routesMeta:r}=e,i={},a="/",o=[];for(let s=0;s{if(d==="*"){let y=s[m]||"";o=a.slice(0,a.length-y.length).replace(/(.)\/+$/,"$1")}const p=s[m];return f&&!p?u[d]=void 0:u[d]=(p||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function Ek(e,t=!1,n=!0){un(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function xk(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return un(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function jn(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}var a1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Tk=e=>a1.test(e);function wk(e,t="/"){let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Ji(e):e,a;if(n)if(Tk(n))a=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),un(!1,`Pathnames cannot have embedded double slashes - normalizing ${o} -> ${n}`)}n.startsWith("/")?a=Hp(n.substring(1),"/"):a=Hp(n,t)}else a=t;return{pathname:a,search:Ik(r),hash:Ck(i)}}function Hp(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Ou(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function kk(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function o1(e){let t=kk(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function s1(e,t,n,r=!1){let i;typeof e=="string"?i=Ji(e):(i={...e},Oe(!i.pathname||!i.pathname.includes("?"),Ou("?","pathname","search",i)),Oe(!i.pathname||!i.pathname.includes("#"),Ou("#","pathname","hash",i)),Oe(!i.search||!i.search.includes("#"),Ou("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,s;if(o==null)s=n;else{let f=t.length-1;if(!r&&o.startsWith("..")){let m=o.split("/");for(;m[0]==="..";)m.shift(),f-=1;i.pathname=m.join("/")}s=f>=0?t[f]:"/"}let l=wk(i,s),u=o&&o!=="/"&&o.endsWith("/"),d=(a||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||d)&&(l.pathname+="/"),l}var Dn=e=>e.join("/").replace(/\/\/+/g,"/"),vk=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ik=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Ck=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Sk=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function _k(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Ak(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var l1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function u1(e,t){let n=e;if(typeof n!="string"||!a1.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(l1)try{let a=new URL(window.location.href),o=n.startsWith("//")?new URL(a.protocol+n):new URL(n),s=jn(o.pathname,t);o.origin===a.origin&&s!=null?n=s+o.search+o.hash:i=!0}catch{un(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var c1=["POST","PUT","PATCH","DELETE"];new Set(c1);var Nk=["GET",...c1];new Set(Nk);var Zi=A.createContext(null);Zi.displayName="DataRouter";var Bl=A.createContext(null);Bl.displayName="DataRouterState";var Lk=A.createContext(!1),d1=A.createContext({isTransitioning:!1});d1.displayName="ViewTransition";var Rk=A.createContext(new Map);Rk.displayName="Fetchers";var Ok=A.createContext(null);Ok.displayName="Await";var Yt=A.createContext(null);Yt.displayName="Navigation";var So=A.createContext(null);So.displayName="Location";var wn=A.createContext({outlet:null,matches:[],isDataRoute:!1});wn.displayName="Route";var Uf=A.createContext(null);Uf.displayName="RouteError";var f1="REACT_ROUTER_ERROR",Dk="REDIRECT",Pk="ROUTE_ERROR_RESPONSE";function Mk(e){if(e.startsWith(`${f1}:${Dk}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Bk(e){if(e.startsWith(`${f1}:${Pk}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Sk(t.status,t.statusText,t.data)}catch{}}function Fk(e,{relative:t}={}){Oe(_o(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=A.useContext(Yt),{hash:i,pathname:a,search:o}=Ao(e,{relative:t}),s=a;return n!=="/"&&(s=a==="/"?n:Dn([n,a])),r.createHref({pathname:s,search:o,hash:i})}function _o(){return A.useContext(So)!=null}function Cr(){return Oe(_o(),"useLocation() may be used only in the context of a component."),A.useContext(So).location}var h1="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function p1(e){A.useContext(Yt).static||A.useLayoutEffect(e)}function m1(){let{isDataRoute:e}=A.useContext(wn);return e?Xk():Uk()}function Uk(){Oe(_o(),"useNavigate() may be used only in the context of a component.");let e=A.useContext(Zi),{basename:t,navigator:n}=A.useContext(Yt),{matches:r}=A.useContext(wn),{pathname:i}=Cr(),a=JSON.stringify(o1(r)),o=A.useRef(!1);return p1(()=>{o.current=!0}),A.useCallback((l,u={})=>{if(un(o.current,h1),!o.current)return;if(typeof l=="number"){n.go(l);return}let d=s1(l,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Dn([t,d.pathname])),(u.replace?n.replace:n.push)(d,u.state,u)},[t,n,a,i,e])}A.createContext(null);function g1(){let{matches:e}=A.useContext(wn),t=e[e.length-1];return t?t.params:{}}function Ao(e,{relative:t}={}){let{matches:n}=A.useContext(wn),{pathname:r}=Cr(),i=JSON.stringify(o1(n));return A.useMemo(()=>s1(e,JSON.parse(i),r,t==="path"),[e,i,r,t])}function jk(e,t){return y1(e,t)}function y1(e,t,n,r,i){var b;Oe(_o(),"useRoutes() may be used only in the context of a component.");let{navigator:a}=A.useContext(Yt),{matches:o}=A.useContext(wn),s=o[o.length-1],l=s?s.params:{},u=s?s.pathname:"/",d=s?s.pathnameBase:"/",f=s&&s.route;{let E=f&&f.path||"";E1(u,!f||E.endsWith("*")||E.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${u}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + */var Fp="popstate";function iw(e={}){function t(r,i){let{pathname:a,search:o,hash:s}=r.location;return od("",{pathname:a,search:o,hash:s},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:mo(i)}return ow(t,n,null,e)}function Oe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function un(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function aw(){return Math.random().toString(36).substring(2,10)}function Up(e,t){return{usr:e.state,key:e.key,idx:t}}function od(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Ji(t):t,state:n,key:t&&t.key||r||aw()}}function mo({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function Ji(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function ow(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s="POP",l=null,u=d();u==null&&(u=0,o.replaceState({...o.state,idx:u},""));function d(){return(o.state||{idx:null}).idx}function f(){s="POP";let C=d(),g=C==null?null:C-u;u=C,l&&l({action:s,location:x.location,delta:g})}function m(C,g){s="PUSH";let b=od(x.location,C,g);u=d()+1;let E=Up(b,u),N=x.createHref(b);try{o.pushState(E,"",N)}catch(O){if(O instanceof DOMException&&O.name==="DataCloneError")throw O;i.location.assign(N)}a&&l&&l({action:s,location:x.location,delta:1})}function p(C,g){s="REPLACE";let b=od(x.location,C,g);u=d();let E=Up(b,u),N=x.createHref(b);o.replaceState(E,"",N),a&&l&&l({action:s,location:x.location,delta:0})}function y(C){return sw(C)}let x={get action(){return s},get location(){return e(i,o)},listen(C){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Fp,f),l=C,()=>{i.removeEventListener(Fp,f),l=null}},createHref(C){return t(i,C)},createURL:y,encodeLocation(C){let g=y(C);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:m,replace:p,go(C){return o.go(C)}};return x}function sw(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),Oe(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:mo(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function n1(e,t,n="/"){return lw(e,t,n,!1)}function lw(e,t,n,r){let i=typeof t=="string"?Ji(t):t,a=jn(i.pathname||"/",n);if(a==null)return null;let o=r1(e);uw(o);let s=null;for(let l=0;s==null&&l{let d={relativePath:u===void 0?o.path||"":u,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};if(d.relativePath.startsWith("/")){if(!d.relativePath.startsWith(r)&&l)return;Oe(d.relativePath.startsWith(r),`Absolute route path "${d.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(r.length)}let f=Dn([r,d.relativePath]),m=n.concat(d);o.children&&o.children.length>0&&(Oe(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${f}".`),r1(o.children,t,m,f,l)),!(o.path==null&&!o.index)&&t.push({path:f,score:gw(f,o.index),routesMeta:m})};return e.forEach((o,s)=>{var l;if(o.path===""||!((l=o.path)!=null&&l.includes("?")))a(o,s);else for(let u of i1(o.path))a(o,s,!0,u)}),t}function i1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return i?[a,""]:[a];let o=i1(r.join("/")),s=[];return s.push(...o.map(l=>l===""?a:[a,l].join("/"))),i&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function uw(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:yw(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var cw=/^:[\w-]+$/,dw=3,fw=2,hw=1,pw=10,mw=-2,jp=e=>e==="*";function gw(e,t){let n=e.split("/"),r=n.length;return n.some(jp)&&(r+=mw),t&&(r+=fw),n.filter(i=>!jp(i)).reduce((i,a)=>i+(cw.test(a)?dw:a===""?hw:pw),r)}function yw(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function bw(e,t,n=!1){let{routesMeta:r}=e,i={},a="/",o=[];for(let s=0;s{if(d==="*"){let y=s[m]||"";o=a.slice(0,a.length-y.length).replace(/(.)\/+$/,"$1")}const p=s[m];return f&&!p?u[d]=void 0:u[d]=(p||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function Ew(e,t=!1,n=!0){un(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function xw(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return un(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function jn(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}var a1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Tw=e=>a1.test(e);function kw(e,t="/"){let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Ji(e):e,a;if(n)if(Tw(n))a=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),un(!1,`Pathnames cannot have embedded double slashes - normalizing ${o} -> ${n}`)}n.startsWith("/")?a=Hp(n.substring(1),"/"):a=Hp(n,t)}else a=t;return{pathname:a,search:Iw(r),hash:Cw(i)}}function Hp(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Ou(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function ww(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function o1(e){let t=ww(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function s1(e,t,n,r=!1){let i;typeof e=="string"?i=Ji(e):(i={...e},Oe(!i.pathname||!i.pathname.includes("?"),Ou("?","pathname","search",i)),Oe(!i.pathname||!i.pathname.includes("#"),Ou("#","pathname","hash",i)),Oe(!i.search||!i.search.includes("#"),Ou("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,s;if(o==null)s=n;else{let f=t.length-1;if(!r&&o.startsWith("..")){let m=o.split("/");for(;m[0]==="..";)m.shift(),f-=1;i.pathname=m.join("/")}s=f>=0?t[f]:"/"}let l=kw(i,s),u=o&&o!=="/"&&o.endsWith("/"),d=(a||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||d)&&(l.pathname+="/"),l}var Dn=e=>e.join("/").replace(/\/\/+/g,"/"),vw=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Iw=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Cw=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Sw=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function _w(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Aw(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var l1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function u1(e,t){let n=e;if(typeof n!="string"||!a1.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(l1)try{let a=new URL(window.location.href),o=n.startsWith("//")?new URL(a.protocol+n):new URL(n),s=jn(o.pathname,t);o.origin===a.origin&&s!=null?n=s+o.search+o.hash:i=!0}catch{un(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var c1=["POST","PUT","PATCH","DELETE"];new Set(c1);var Nw=["GET",...c1];new Set(Nw);var Zi=A.createContext(null);Zi.displayName="DataRouter";var Bl=A.createContext(null);Bl.displayName="DataRouterState";var Lw=A.createContext(!1),d1=A.createContext({isTransitioning:!1});d1.displayName="ViewTransition";var Rw=A.createContext(new Map);Rw.displayName="Fetchers";var Ow=A.createContext(null);Ow.displayName="Await";var Yt=A.createContext(null);Yt.displayName="Navigation";var So=A.createContext(null);So.displayName="Location";var kn=A.createContext({outlet:null,matches:[],isDataRoute:!1});kn.displayName="Route";var Uf=A.createContext(null);Uf.displayName="RouteError";var f1="REACT_ROUTER_ERROR",Dw="REDIRECT",Pw="ROUTE_ERROR_RESPONSE";function Mw(e){if(e.startsWith(`${f1}:${Dw}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Bw(e){if(e.startsWith(`${f1}:${Pw}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Sw(t.status,t.statusText,t.data)}catch{}}function Fw(e,{relative:t}={}){Oe(_o(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=A.useContext(Yt),{hash:i,pathname:a,search:o}=Ao(e,{relative:t}),s=a;return n!=="/"&&(s=a==="/"?n:Dn([n,a])),r.createHref({pathname:s,search:o,hash:i})}function _o(){return A.useContext(So)!=null}function Cr(){return Oe(_o(),"useLocation() may be used only in the context of a component."),A.useContext(So).location}var h1="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function p1(e){A.useContext(Yt).static||A.useLayoutEffect(e)}function m1(){let{isDataRoute:e}=A.useContext(kn);return e?Xw():Uw()}function Uw(){Oe(_o(),"useNavigate() may be used only in the context of a component.");let e=A.useContext(Zi),{basename:t,navigator:n}=A.useContext(Yt),{matches:r}=A.useContext(kn),{pathname:i}=Cr(),a=JSON.stringify(o1(r)),o=A.useRef(!1);return p1(()=>{o.current=!0}),A.useCallback((l,u={})=>{if(un(o.current,h1),!o.current)return;if(typeof l=="number"){n.go(l);return}let d=s1(l,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Dn([t,d.pathname])),(u.replace?n.replace:n.push)(d,u.state,u)},[t,n,a,i,e])}A.createContext(null);function g1(){let{matches:e}=A.useContext(kn),t=e[e.length-1];return t?t.params:{}}function Ao(e,{relative:t}={}){let{matches:n}=A.useContext(kn),{pathname:r}=Cr(),i=JSON.stringify(o1(n));return A.useMemo(()=>s1(e,JSON.parse(i),r,t==="path"),[e,i,r,t])}function jw(e,t){return y1(e,t)}function y1(e,t,n,r,i){var b;Oe(_o(),"useRoutes() may be used only in the context of a component.");let{navigator:a}=A.useContext(Yt),{matches:o}=A.useContext(kn),s=o[o.length-1],l=s?s.params:{},u=s?s.pathname:"/",d=s?s.pathnameBase:"/",f=s&&s.route;{let E=f&&f.path||"";E1(u,!f||E.endsWith("*")||E.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${u}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. -Please change the parent to .`)}let m=Cr(),p;if(t){let E=typeof t=="string"?Ji(t):t;Oe(d==="/"||((b=E.pathname)==null?void 0:b.startsWith(d)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${d}" but pathname "${E.pathname}" was given in the \`location\` prop.`),p=E}else p=m;let y=p.pathname||"/",x=y;if(d!=="/"){let E=d.replace(/^\//,"").split("/");x="/"+y.replace(/^\//,"").split("/").slice(E.length).join("/")}let C=n1(e,{pathname:x});un(f||C!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),un(C==null||C[C.length-1].route.element!==void 0||C[C.length-1].route.Component!==void 0||C[C.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let g=Yk(C&&C.map(E=>Object.assign({},E,{params:Object.assign({},l,E.params),pathname:Dn([d,a.encodeLocation?a.encodeLocation(E.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?d:Dn([d,a.encodeLocation?a.encodeLocation(E.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathnameBase])})),o,n,r,i);return t&&g?A.createElement(So.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...p},navigationType:"POP"}},g):g}function Hk(){let e=Kk(),t=_k(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:r},a={padding:"2px 4px",backgroundColor:r},o=null;return console.error("Error handled by React Router default ErrorBoundary:",e),o=A.createElement(A.Fragment,null,A.createElement("p",null,"💿 Hey developer 👋"),A.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",A.createElement("code",{style:a},"ErrorBoundary")," or"," ",A.createElement("code",{style:a},"errorElement")," prop on your route.")),A.createElement(A.Fragment,null,A.createElement("h2",null,"Unexpected Application Error!"),A.createElement("h3",{style:{fontStyle:"italic"}},t),n?A.createElement("pre",{style:i},n):null,o)}var zk=A.createElement(Hk,null),b1=class extends A.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=Bk(e.digest);n&&(e=n)}let t=e!==void 0?A.createElement(wn.Provider,{value:this.props.routeContext},A.createElement(Uf.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?A.createElement($k,{error:e},t):t}};b1.contextType=Lk;var Du=new WeakMap;function $k({children:e,error:t}){let{basename:n}=A.useContext(Yt);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let r=Mk(t.digest);if(r){let i=Du.get(t);if(i)throw i;let a=u1(r.location,n);if(l1&&!Du.get(t))if(a.isExternal||r.reloadDocument)window.location.href=a.absoluteURL||a.to;else{const o=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:r.replace}));throw Du.set(t,o),o}return A.createElement("meta",{httpEquiv:"refresh",content:`0;url=${a.absoluteURL||a.to}`})}}return e}function Wk({routeContext:e,match:t,children:n}){let r=A.useContext(Zi);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),A.createElement(wn.Provider,{value:e},n)}function Yk(e,t=[],n=null,r=null,i=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,o=n==null?void 0:n.errors;if(o!=null){let d=a.findIndex(f=>f.route.id&&(o==null?void 0:o[f.route.id])!==void 0);Oe(d>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,d+1))}let s=!1,l=-1;if(n)for(let d=0;d=0?a=a.slice(0,l+1):a=[a[0]];break}}}let u=n&&r?(d,f)=>{var m,p;r(d,{location:n.location,params:((p=(m=n.matches)==null?void 0:m[0])==null?void 0:p.params)??{},unstable_pattern:Ak(n.matches),errorInfo:f})}:void 0;return a.reduceRight((d,f,m)=>{let p,y=!1,x=null,C=null;n&&(p=o&&f.route.id?o[f.route.id]:void 0,x=f.route.errorElement||zk,s&&(l<0&&m===0?(E1("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),y=!0,C=null):l===m&&(y=!0,C=f.route.hydrateFallbackElement||null)));let g=t.concat(a.slice(0,m+1)),b=()=>{let E;return p?E=x:y?E=C:f.route.Component?E=A.createElement(f.route.Component,null):f.route.element?E=f.route.element:E=d,A.createElement(Wk,{match:f,routeContext:{outlet:d,matches:g,isDataRoute:n!=null},children:E})};return n&&(f.route.ErrorBoundary||f.route.errorElement||m===0)?A.createElement(b1,{location:n.location,revalidation:n.revalidation,component:x,error:p,children:b(),routeContext:{outlet:null,matches:g,isDataRoute:!0},onError:u}):b()},null)}function jf(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Vk(e){let t=A.useContext(Zi);return Oe(t,jf(e)),t}function qk(e){let t=A.useContext(Bl);return Oe(t,jf(e)),t}function Gk(e){let t=A.useContext(wn);return Oe(t,jf(e)),t}function Hf(e){let t=Gk(e),n=t.matches[t.matches.length-1];return Oe(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Qk(){return Hf("useRouteId")}function Kk(){var r;let e=A.useContext(Uf),t=qk("useRouteError"),n=Hf("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function Xk(){let{router:e}=Vk("useNavigate"),t=Hf("useNavigate"),n=A.useRef(!1);return p1(()=>{n.current=!0}),A.useCallback(async(i,a={})=>{un(n.current,h1),n.current&&(typeof i=="number"?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...a}))},[e,t])}var zp={};function E1(e,t,n){!t&&!zp[e]&&(zp[e]=!0,un(!1,n))}A.memo(Jk);function Jk({routes:e,future:t,state:n,onError:r}){return y1(e,void 0,n,r,t)}function La(e){Oe(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Zk({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:i,static:a=!1,unstable_useTransitions:o}){Oe(!_o(),"You cannot render a inside another . You should never have more than one in your app.");let s=e.replace(/^\/*/,"/"),l=A.useMemo(()=>({basename:s,navigator:i,static:a,unstable_useTransitions:o,future:{}}),[s,i,a,o]);typeof n=="string"&&(n=Ji(n));let{pathname:u="/",search:d="",hash:f="",state:m=null,key:p="default"}=n,y=A.useMemo(()=>{let x=jn(u,s);return x==null?null:{location:{pathname:x,search:d,hash:f,state:m,key:p},navigationType:r}},[s,u,d,f,m,p,r]);return un(y!=null,` is not able to match the URL "${u}${d}${f}" because it does not start with the basename, so the won't render anything.`),y==null?null:A.createElement(Yt.Provider,{value:l},A.createElement(So.Provider,{children:t,value:y}))}function e2({children:e,location:t}){return jk(sd(e),t)}function sd(e,t=[]){let n=[];return A.Children.forEach(e,(r,i)=>{if(!A.isValidElement(r))return;let a=[...t,i];if(r.type===A.Fragment){n.push.apply(n,sd(r.props.children,a));return}Oe(r.type===La,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),Oe(!r.props.index||!r.props.children,"An index route cannot have child routes.");let o={id:r.props.id||a.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=sd(r.props.children,a)),n.push(o)}),n}var Cs="get",Ss="application/x-www-form-urlencoded";function Fl(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function t2(e){return Fl(e)&&e.tagName.toLowerCase()==="button"}function n2(e){return Fl(e)&&e.tagName.toLowerCase()==="form"}function r2(e){return Fl(e)&&e.tagName.toLowerCase()==="input"}function i2(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function a2(e,t){return e.button===0&&(!t||t==="_self")&&!i2(e)}var os=null;function o2(){if(os===null)try{new FormData(document.createElement("form"),0),os=!1}catch{os=!0}return os}var s2=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Pu(e){return e!=null&&!s2.has(e)?(un(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Ss}"`),null):e}function l2(e,t){let n,r,i,a,o;if(n2(e)){let s=e.getAttribute("action");r=s?jn(s,t):null,n=e.getAttribute("method")||Cs,i=Pu(e.getAttribute("enctype"))||Ss,a=new FormData(e)}else if(t2(e)||r2(e)&&(e.type==="submit"||e.type==="image")){let s=e.form;if(s==null)throw new Error('Cannot submit a

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
+
linkedin-formatter
linkedin-tools
bold-text

Enjoyed this article?

Share it with your network

Share:

Related Articles

How to Add Line Breaks in LinkedIn Posts
Formatting6 min read

How to Add Line Breaks in LinkedIn Posts

Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

February 12, 2026Read
LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
-
\ No newline at end of file + \ No newline at end of file diff --git a/dist/blog/bold-text-linkedin-desktop-mobile/index.html b/dist/blog/bold-text-linkedin-desktop-mobile/index.html index 91ab3ca..d91ebb2 100644 --- a/dist/blog/bold-text-linkedin-desktop-mobile/index.html +++ b/dist/blog/bold-text-linkedin-desktop-mobile/index.html @@ -39,7 +39,7 @@ - - + - +
LinkedIn Formatting

How to Bold Text on LinkedIn (Desktop & Mobile)

The MarkdownToLinkedIn TeamJanuary 17, 20266 min read
Share:
How to Bold Text on LinkedIn (Desktop & Mobile)

Ever wonder how people make their LinkedIn posts pop with bold text? You're not alone. In a sea of over a billion users, getting your content noticed is a real challenge. Good formatting isn't just about looking nice; it's about making your message clear, scannable, and engaging.

So, how do you do it? Can you just hit CTRL+B? The short answer is no, but don't worry. It's still simple to do, and this guide will show you exactly how to bold text on LinkedIn, whether you're on your computer or your phone.

@@ -169,4 +169,4 @@

linkedin
formatting
bold text

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Make Text Bold in LinkedIn Posts Without Special Tools
LinkedIn Formatting5 min read

How to Make Text Bold in LinkedIn Posts Without Special Tools

Want to make your LinkedIn posts stand out? Learn how to make text bold on LinkedIn without any special tools. This guide covers the manual Unicode method and more.

January 14, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/bold-text-linkedin-posts/index.html b/dist/blog/bold-text-linkedin-posts/index.html index 0bd6f4e..95afceb 100644 --- a/dist/blog/bold-text-linkedin-posts/index.html +++ b/dist/blog/bold-text-linkedin-posts/index.html @@ -39,7 +39,7 @@ - - + @@ -157,4 +157,4 @@

How to Bold Your LinkedIn Text & Format Posts Properly - Expandi

linkedin
formatting
bold text
how-to

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/boost-linkedin-engagement/index.html b/dist/blog/boost-linkedin-engagement/index.html index f56ead8..a22c212 100644 --- a/dist/blog/boost-linkedin-engagement/index.html +++ b/dist/blog/boost-linkedin-engagement/index.html @@ -39,7 +39,7 @@ - - + @@ -181,7 +181,7 @@

By combining these five strategies, you'll be well on your way to creating content that not only resonates with your audience but also satisfies the LinkedIn algorithm. The key is to be consistent, authentic, and strategic.

Ready to create your next high-engagement post? Try our free LinkedIn text formatter to apply these formatting principles with ease.

References

-

[1] Cook, Jodie. "The LinkedIn Update That Will Crush Your Reach Unless You Adapt Fast." Forbes, 5 Dec. 2025, https://www.forbes.com/sites/jodiecook/2025/12/05/the-linkedin-update-that-will-crush-your-reach-unless-you-adapt-fast/.

engagement
linkedin
growth
tips

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
+

[1] Cook, Jodie. "The LinkedIn Update That Will Crush Your Reach Unless You Adapt Fast." Forbes, 5 Dec. 2025, https://www.forbes.com/sites/jodiecook/2025/12/05/the-linkedin-update-that-will-crush-your-reach-unless-you-adapt-fast/.

engagement
linkedin
growth
tips

Enjoyed this article?

Share it with your network

Share:

Related Articles

How to Add Line Breaks in LinkedIn Posts
Formatting6 min read

How to Add Line Breaks in LinkedIn Posts

Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

February 12, 2026Read
LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/category/formatting/index.html b/dist/blog/category/formatting/index.html new file mode 100644 index 0000000..5829a05 --- /dev/null +++ b/dist/blog/category/formatting/index.html @@ -0,0 +1,108 @@ + + + + + Formatting Articles | Markdown to LinkedIn Blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Formatting

1 article

Browse all articles about formatting. Tips, guides, and insights to help you create better LinkedIn content.

How to Add Line Breaks in LinkedIn Posts
Formatting6 min read

How to Add Line Breaks in LinkedIn Posts

Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

February 12, 2026Read
+ + +
\ No newline at end of file diff --git a/dist/blog/category/linkedin-formatting/index.html b/dist/blog/category/linkedin-formatting/index.html index 5d3ad8b..f8a0edd 100644 --- a/dist/blog/category/linkedin-formatting/index.html +++ b/dist/blog/category/linkedin-formatting/index.html @@ -39,7 +39,7 @@ - - + - +

Linkedin Formatting

8 articles

Browse all articles about linkedin formatting. Tips, guides, and insights to help you create better LinkedIn content.

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
How to Make Text Bold in LinkedIn Posts Without Special Tools
LinkedIn Formatting5 min read

How to Make Text Bold in LinkedIn Posts Without Special Tools

Want to make your LinkedIn posts stand out? Learn how to make text bold on LinkedIn without any special tools. This guide covers the manual Unicode method and more.

January 14, 2026Read
How to Bold Text in a LinkedIn Post: Step-by-Step Tutorial
LinkedIn Formatting10 min read

How to Bold Text in a LinkedIn Post: Step-by-Step Tutorial

Learn three different methods to make your text bold in LinkedIn posts. This step-by-step guide covers Unicode tools, the LinkedIn Article editor, and copy-pasting from other editors, complete with pros and cons for each.

December 13, 2025Read
LinkedIn Formatting Guide: Everything You Need to Know in 2025
LinkedIn Formatting8 min read

LinkedIn Formatting Guide: Everything You Need to Know in 2025

The definitive guide to LinkedIn formatting in 2025. Learn about character limits, post types, text formatting, the algorithm, and best practices to make your content stand out and drive engagement.

December 11, 2025Read
How to Bold Text in LinkedIn Posts (3 Easy Methods)
LinkedIn Formatting5 min read

How to Bold Text in LinkedIn Posts (3 Easy Methods)

Learn three simple methods to make your text bold in LinkedIn posts. This guide covers Unicode generators, copy-paste techniques, and dedicated formatting tools to help your content stand out.

December 9, 2025Read
LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts
LinkedIn Formatting7 min read

LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts

The definitive guide to formatting your LinkedIn posts for maximum impact. Learn how to use bold, italics, lists, and our LinkedIn text formatter to make your content stand out.

December 9, 2025Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/category/linkedin-marketing/index.html b/dist/blog/category/linkedin-marketing/index.html index ba46f1c..7570cb3 100644 --- a/dist/blog/category/linkedin-marketing/index.html +++ b/dist/blog/category/linkedin-marketing/index.html @@ -39,7 +39,7 @@ - - + - +

Linkedin Marketing

1 article

Browse all articles about linkedin marketing. Tips, guides, and insights to help you create better LinkedIn content.

LinkedIn Formatting Guide: Everything You Need to Know in 2025
LinkedIn Marketing9 min read

LinkedIn Formatting Guide: Everything You Need to Know in 2025

The most comprehensive guide to LinkedIn formatting in 2025. Learn how to use bold, italics, and other styles to make your posts stand out, plus what to avoid for maximum reach and accessibility.

December 10, 2025Read
-
\ No newline at end of file + \ No newline at end of file diff --git a/dist/blog/category/linkedin-tips/index.html b/dist/blog/category/linkedin-tips/index.html index afdcbc1..f9c624a 100644 --- a/dist/blog/category/linkedin-tips/index.html +++ b/dist/blog/category/linkedin-tips/index.html @@ -39,7 +39,7 @@ - - + @@ -81,7 +81,10 @@

Linkedin Tips

1 article

Browse all articles about linkedin tips. Tips, guides, and insights to help you create better LinkedIn content.

LinkedIn Post Formatting: Best Practices for 2025
LinkedIn Tips6 min read

LinkedIn Post Formatting: Best Practices for 2025

Tired of your LinkedIn posts getting ignored? It's not just what you say; it's how you say it. Learn the essential LinkedIn post formatting best practices for 2025 to stop the scroll, boost engagement, and make your content impossible to ignore.

December 16, 2025Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/category/reference/index.html b/dist/blog/category/reference/index.html index 8c3037d..e7f4741 100644 --- a/dist/blog/category/reference/index.html +++ b/dist/blog/category/reference/index.html @@ -39,7 +39,7 @@ - - + - +

Reference

1 article

Browse all articles about reference. Tips, guides, and insights to help you create better LinkedIn content.

The Ultimate Guide to LinkedIn Character Limits in 2025
Reference4 min read

The Ultimate Guide to LinkedIn Character Limits in 2025

Our comprehensive guide to all LinkedIn character limits for 2025. Maximize the impact of your posts, profile, and messages by understanding the exact limits.

December 31, 2024Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/category/strategy/index.html b/dist/blog/category/strategy/index.html index 7f629ca..9eb57e9 100644 --- a/dist/blog/category/strategy/index.html +++ b/dist/blog/category/strategy/index.html @@ -39,7 +39,7 @@ - - + @@ -81,7 +81,10 @@

Strategy

1 article

Browse all articles about strategy. Tips, guides, and insights to help you create better LinkedIn content.

5 Proven Strategies to Boost Your LinkedIn Post Engagement
Strategy6 min read

5 Proven Strategies to Boost Your LinkedIn Post Engagement

Discover the data-backed strategies that top LinkedIn creators use to consistently get high engagement on their posts.

January 9, 2025Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/category/tools/index.html b/dist/blog/category/tools/index.html index 9508636..5015b6f 100644 --- a/dist/blog/category/tools/index.html +++ b/dist/blog/category/tools/index.html @@ -39,7 +39,7 @@ - - + @@ -81,7 +81,10 @@

Tools

1 article

Browse all articles about tools. Tips, guides, and insights to help you create better LinkedIn content.

Bold LinkedIn Text Generator: Free Online Tool
Tools3 min read

Bold LinkedIn Text Generator: Free Online Tool

Need to make your LinkedIn posts stand out? Use our free Bold LinkedIn Text Generator to instantly convert your text to bold, italics, and more. No more copy-pasting from weird websites.

December 15, 2025Read
- \ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/category/tutorials/index.html b/dist/blog/category/tutorials/index.html index d9773bf..693e091 100644 --- a/dist/blog/category/tutorials/index.html +++ b/dist/blog/category/tutorials/index.html @@ -39,7 +39,7 @@ - - + @@ -81,7 +81,10 @@

Tutorials

1 article

Browse all articles about tutorials. Tips, guides, and insights to help you create better LinkedIn content.

Markdown Basics Every Content Creator Should Know in 2025
Tutorials4 min read

Markdown Basics Every Content Creator Should Know in 2025

Learn the essential Markdown syntax that will speed up your content creation workflow across all platforms, from your blog to your LinkedIn posts.

January 4, 2025Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/how-to-bold-text-linkedin-post/index.html b/dist/blog/how-to-bold-text-linkedin-post/index.html index a385397..7ce9af1 100644 --- a/dist/blog/how-to-bold-text-linkedin-post/index.html +++ b/dist/blog/how-to-bold-text-linkedin-post/index.html @@ -39,7 +39,7 @@ - - + @@ -227,4 +227,4 @@

References

[4] Espirian, J. (2019, December 11). How to use bold & italics on LinkedIn – and why you perhaps shouldn't. https://www.linkedin.com/pulse/how-use-bold-italics-linkedin-why-you-perhaps-john-espirian

linkedin
bold text
formatting
tutorial

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/images/linkedin-line-breaks-cover.png b/dist/blog/images/linkedin-line-breaks-cover.png new file mode 100644 index 0000000..f15ff4d Binary files /dev/null and b/dist/blog/images/linkedin-line-breaks-cover.png differ diff --git a/dist/blog/images/plain-text-reset-method.png b/dist/blog/images/plain-text-reset-method.png new file mode 100644 index 0000000..9775e97 Binary files /dev/null and b/dist/blog/images/plain-text-reset-method.png differ diff --git a/dist/blog/index.html b/dist/blog/index.html index 461dc09..d00bc91 100644 --- a/dist/blog/index.html +++ b/dist/blog/index.html @@ -39,7 +39,7 @@ - - + @@ -81,7 +81,10 @@
LinkedIn Content Tips & Guides

The Blog

Master LinkedIn content creation with our expert tips, formatting guides, and strategies for maximum engagement.

LinkedIn Bullet Points: How to Format Lists That Stand Out
Featured
LinkedIn FormattingJanuary 26, 20265 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

linkedin
formatting
bullet points
Read Article
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
How to Make Text Bold in LinkedIn Posts Without Special Tools
LinkedIn Formatting5 min read

How to Make Text Bold in LinkedIn Posts Without Special Tools

Want to make your LinkedIn posts stand out? Learn how to make text bold on LinkedIn without any special tools. This guide covers the manual Unicode method and more.

January 14, 2026Read
LinkedIn Post Formatting: Best Practices for 2025
LinkedIn Tips6 min read

LinkedIn Post Formatting: Best Practices for 2025

Tired of your LinkedIn posts getting ignored? It's not just what you say; it's how you say it. Learn the essential LinkedIn post formatting best practices for 2025 to stop the scroll, boost engagement, and make your content impossible to ignore.

December 16, 2025Read
Bold LinkedIn Text Generator: Free Online Tool
Tools3 min read

Bold LinkedIn Text Generator: Free Online Tool

Need to make your LinkedIn posts stand out? Use our free Bold LinkedIn Text Generator to instantly convert your text to bold, italics, and more. No more copy-pasting from weird websites.

December 15, 2025Read
How to Bold Text in a LinkedIn Post: Step-by-Step Tutorial
LinkedIn Formatting10 min read

How to Bold Text in a LinkedIn Post: Step-by-Step Tutorial

Learn three different methods to make your text bold in LinkedIn posts. This step-by-step guide covers Unicode tools, the LinkedIn Article editor, and copy-pasting from other editors, complete with pros and cons for each.

December 13, 2025Read
LinkedIn Formatting Guide: Everything You Need to Know in 2025
LinkedIn Formatting8 min read

LinkedIn Formatting Guide: Everything You Need to Know in 2025

The definitive guide to LinkedIn formatting in 2025. Learn about character limits, post types, text formatting, the algorithm, and best practices to make your content stand out and drive engagement.

December 11, 2025Read
LinkedIn Formatting Guide: Everything You Need to Know in 2025
LinkedIn Marketing9 min read

LinkedIn Formatting Guide: Everything You Need to Know in 2025

The most comprehensive guide to LinkedIn formatting in 2025. Learn how to use bold, italics, and other styles to make your posts stand out, plus what to avoid for maximum reach and accessibility.

December 10, 2025Read
How to Bold Text in LinkedIn Posts (3 Easy Methods)
LinkedIn Formatting5 min read

How to Bold Text in LinkedIn Posts (3 Easy Methods)

Learn three simple methods to make your text bold in LinkedIn posts. This guide covers Unicode generators, copy-paste techniques, and dedicated formatting tools to help your content stand out.

December 9, 2025Read
LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts
LinkedIn Formatting7 min read

LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts

The definitive guide to formatting your LinkedIn posts for maximum impact. Learn how to use bold, italics, lists, and our LinkedIn text formatter to make your content stand out.

December 9, 2025Read
5 Proven Strategies to Boost Your LinkedIn Post Engagement
Strategy6 min read

5 Proven Strategies to Boost Your LinkedIn Post Engagement

Discover the data-backed strategies that top LinkedIn creators use to consistently get high engagement on their posts.

January 9, 2025Read
Markdown Basics Every Content Creator Should Know in 2025
Tutorials4 min read

Markdown Basics Every Content Creator Should Know in 2025

Learn the essential Markdown syntax that will speed up your content creation workflow across all platforms, from your blog to your LinkedIn posts.

January 4, 2025Read
The Ultimate Guide to LinkedIn Character Limits in 2025
Reference4 min read

The Ultimate Guide to LinkedIn Character Limits in 2025

Our comprehensive guide to all LinkedIn character limits for 2025. Maximize the impact of your posts, profile, and messages by understanding the exact limits.

December 31, 2024Read

Get LinkedIn Tips in Your Inbox

Join our newsletter for weekly tips on creating engaging LinkedIn content, formatting tricks, and growth strategies.

+ ">1
How to Add Line Breaks in LinkedIn Posts
Featured
FormattingFebruary 12, 20266 min read

How to Add Line Breaks in LinkedIn Posts

Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

linkedin-formatting
line-breaks
content-creation
Read Article
LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
How to Make Text Bold in LinkedIn Posts Without Special Tools
LinkedIn Formatting5 min read

How to Make Text Bold in LinkedIn Posts Without Special Tools

Want to make your LinkedIn posts stand out? Learn how to make text bold on LinkedIn without any special tools. This guide covers the manual Unicode method and more.

January 14, 2026Read
LinkedIn Post Formatting: Best Practices for 2025
LinkedIn Tips6 min read

LinkedIn Post Formatting: Best Practices for 2025

Tired of your LinkedIn posts getting ignored? It's not just what you say; it's how you say it. Learn the essential LinkedIn post formatting best practices for 2025 to stop the scroll, boost engagement, and make your content impossible to ignore.

December 16, 2025Read
Bold LinkedIn Text Generator: Free Online Tool
Tools3 min read

Bold LinkedIn Text Generator: Free Online Tool

Need to make your LinkedIn posts stand out? Use our free Bold LinkedIn Text Generator to instantly convert your text to bold, italics, and more. No more copy-pasting from weird websites.

December 15, 2025Read
How to Bold Text in a LinkedIn Post: Step-by-Step Tutorial
LinkedIn Formatting10 min read

How to Bold Text in a LinkedIn Post: Step-by-Step Tutorial

Learn three different methods to make your text bold in LinkedIn posts. This step-by-step guide covers Unicode tools, the LinkedIn Article editor, and copy-pasting from other editors, complete with pros and cons for each.

December 13, 2025Read
LinkedIn Formatting Guide: Everything You Need to Know in 2025
LinkedIn Formatting8 min read

LinkedIn Formatting Guide: Everything You Need to Know in 2025

The definitive guide to LinkedIn formatting in 2025. Learn about character limits, post types, text formatting, the algorithm, and best practices to make your content stand out and drive engagement.

December 11, 2025Read
LinkedIn Formatting Guide: Everything You Need to Know in 2025
LinkedIn Marketing9 min read

LinkedIn Formatting Guide: Everything You Need to Know in 2025

The most comprehensive guide to LinkedIn formatting in 2025. Learn how to use bold, italics, and other styles to make your posts stand out, plus what to avoid for maximum reach and accessibility.

December 10, 2025Read
How to Bold Text in LinkedIn Posts (3 Easy Methods)
LinkedIn Formatting5 min read

How to Bold Text in LinkedIn Posts (3 Easy Methods)

Learn three simple methods to make your text bold in LinkedIn posts. This guide covers Unicode generators, copy-paste techniques, and dedicated formatting tools to help your content stand out.

December 9, 2025Read
LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts
LinkedIn Formatting7 min read

LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts

The definitive guide to formatting your LinkedIn posts for maximum impact. Learn how to use bold, italics, lists, and our LinkedIn text formatter to make your content stand out.

December 9, 2025Read
5 Proven Strategies to Boost Your LinkedIn Post Engagement
Strategy6 min read

5 Proven Strategies to Boost Your LinkedIn Post Engagement

Discover the data-backed strategies that top LinkedIn creators use to consistently get high engagement on their posts.

January 9, 2025Read
Markdown Basics Every Content Creator Should Know in 2025
Tutorials4 min read

Markdown Basics Every Content Creator Should Know in 2025

Learn the essential Markdown syntax that will speed up your content creation workflow across all platforms, from your blog to your LinkedIn posts.

January 4, 2025Read
The Ultimate Guide to LinkedIn Character Limits in 2025
Reference4 min read

The Ultimate Guide to LinkedIn Character Limits in 2025

Our comprehensive guide to all LinkedIn character limits for 2025. Maximize the impact of your posts, profile, and messages by understanding the exact limits.

December 31, 2024Read

Get LinkedIn Tips in Your Inbox

Join our newsletter for weekly tips on creating engaging LinkedIn content, formatting tricks, and growth strategies.

-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/italic-text-linkedin/index.html b/dist/blog/italic-text-linkedin/index.html index 4823278..8617b39 100644 --- a/dist/blog/italic-text-linkedin/index.html +++ b/dist/blog/italic-text-linkedin/index.html @@ -39,7 +39,7 @@ - - + - +
LinkedIn Formatting

How to Add Italic Text to LinkedIn Posts

The MarkdownToLinkedIn TeamJanuary 19, 20265 min read
Share:
How to Add Italic Text to LinkedIn Posts

You want to add a bit of emphasis. Maybe you're sharing a powerful quote, a personal thought, or just want to make a specific word pop. But you look at the LinkedIn post editor, and there's no italic button. Nothing.

So how are people doing it? Is there a secret menu? Nope. Just a simple trick.

@@ -154,4 +154,4 @@

Resources

linkedin
formatting
italic text

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
How to Make Text Bold in LinkedIn Posts Without Special Tools
LinkedIn Formatting5 min read

How to Make Text Bold in LinkedIn Posts Without Special Tools

Want to make your LinkedIn posts stand out? Learn how to make text bold on LinkedIn without any special tools. This guide covers the manual Unicode method and more.

January 14, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/linkedin-bullet-points/index.html b/dist/blog/linkedin-bullet-points/index.html index 6eef1df..758ff54 100644 --- a/dist/blog/linkedin-bullet-points/index.html +++ b/dist/blog/linkedin-bullet-points/index.html @@ -39,7 +39,7 @@ - - + - +
LinkedIn Formatting

LinkedIn Bullet Points: How to Format Lists That Stand Out

The MarkdownToLinkedIn TeamJanuary 26, 20265 min read
Share:
LinkedIn Bullet Points: How to Format Lists That Stand Out

Your LinkedIn post is packed with great ideas. But it looks like a solid wall of text. Nobody's reading it.

What's the secret to getting people to stop scrolling and actually read your content? It's not just about what you say; it's about how you present it. Using bullet points is one of the easiest ways to make your posts more readable and professional.

@@ -162,4 +162,4 @@

linkedin
formatting
bullet points
lists

Enjoyed this article?

Share it with your network

Share:

Related Articles

How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
How to Make Text Bold in LinkedIn Posts Without Special Tools
LinkedIn Formatting5 min read

How to Make Text Bold in LinkedIn Posts Without Special Tools

Want to make your LinkedIn posts stand out? Learn how to make text bold on LinkedIn without any special tools. This guide covers the manual Unicode method and more.

January 14, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/linkedin-character-limit-guide/index.html b/dist/blog/linkedin-character-limit-guide/index.html index 6bcf4b9..d8c03f2 100644 --- a/dist/blog/linkedin-character-limit-guide/index.html +++ b/dist/blog/linkedin-character-limit-guide/index.html @@ -39,7 +39,7 @@ - - + @@ -147,7 +147,7 @@

By understanding and respecting these character limits, you can craft more effective and engaging content across the entire LinkedIn platform. To make this process easier, our free LinkedIn text formatter includes a real-time character counter to help you stay within the limits as you write.

References

-

[1] TestFeed. "The Ultimate Guide to LinkedIn Character Limits in 2025." TestFeed Blog, 9 May 2025, https://testfeed.ai/blog/linkedin-character-limits/.

linkedin
character-limit
strategy
guide

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
+

[1] TestFeed. "The Ultimate Guide to LinkedIn Character Limits in 2025." TestFeed Blog, 9 May 2025, https://testfeed.ai/blog/linkedin-character-limits/.

linkedin
character-limit
strategy
guide

Enjoyed this article?

Share it with your network

Share:

Related Articles

How to Add Line Breaks in LinkedIn Posts
Formatting6 min read

How to Add Line Breaks in LinkedIn Posts

Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

February 12, 2026Read
LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/linkedin-formatting-guide-2025/index.html b/dist/blog/linkedin-formatting-guide-2025/index.html index e3871ab..ac72215 100644 --- a/dist/blog/linkedin-formatting-guide-2025/index.html +++ b/dist/blog/linkedin-formatting-guide-2025/index.html @@ -39,7 +39,7 @@ - - + @@ -209,4 +209,4 @@

Alistair Croll - Why fake boldface is bad for LinkedIn posts

linkedin
formatting
guide
seo
best practices

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/linkedin-formatting-guide/index.html b/dist/blog/linkedin-formatting-guide/index.html index 5c55124..fa5992c 100644 --- a/dist/blog/linkedin-formatting-guide/index.html +++ b/dist/blog/linkedin-formatting-guide/index.html @@ -39,7 +39,7 @@ - - + - +
LinkedIn Marketing

LinkedIn Formatting Guide: Everything You Need to Know in 2025

Manus AIDecember 10, 20259 min read
Share:
LinkedIn Formatting Guide: Everything You Need to Know in 2025

TL;DR: LinkedIn Formatting Quick Reference

@@ -258,7 +258,7 @@

References

The ONLY Guide to LinkedIn Post Formatting | LH2 [4] How to use bold & italics on LinkedIn – and why you perhaps shouldn't [5] 42 LinkedIn limits in 2025 [+3 tips to bypass them] -[6] Best Linkedin Post Length in 2025, Why 1200 to 1800...

linkedin
formatting
seo
marketing

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
+[6] Best Linkedin Post Length in 2025, Why 1200 to 1800...

linkedin
formatting
seo
marketing

Enjoyed this article?

Share it with your network

Share:

Related Articles

How to Add Line Breaks in LinkedIn Posts
Formatting6 min read

How to Add Line Breaks in LinkedIn Posts

Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

February 12, 2026Read
LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
-
\ No newline at end of file +
\ No newline at end of file diff --git a/dist/blog/linkedin-line-breaks/index.html b/dist/blog/linkedin-line-breaks/index.html new file mode 100644 index 0000000..4dd12af --- /dev/null +++ b/dist/blog/linkedin-line-breaks/index.html @@ -0,0 +1,176 @@ + + + + + How to Add Line Breaks in LinkedIn Posts | Markdown to LinkedIn Blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Formatting

How to Add Line Breaks in LinkedIn Posts

The MarkdownToLinkedIn TeamFebruary 12, 20266 min read
Share:
How to Add Line Breaks in LinkedIn Posts

You’ve crafted the perfect LinkedIn post. The hook is sharp, the points are clear, and the spacing is just right. You hit “Post,” and then it happens. Your beautiful, readable post collapses into a dense, unreadable wall of text.

+

Sound familiar? It’s one of the most common and frustrating quirks of the platform. Your carefully placed line breaks vanish, leaving your message a jumbled mess. But don’t worry, it’s not your fault. And there are ways to fix it for good.

+

This guide explains exactly why LinkedIn eats your line breaks and shows you how to stop it from happening.

+

TL;DR: How to Fix LinkedIn Line Breaks

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ProblemSolution
Line breaks disappear after postingLinkedIn has a rendering bug, often caused by hidden formatting from other apps.
The Quick FixCopy your text, paste it into a plain text editor (like Notepad or TextEdit), then copy it again and paste it back into LinkedIn.
The Prevention MethodWrite posts directly in LinkedIn or use a clean Markdown editor. Avoid copy-pasting from Word, Google Docs, or Notion.
The Mobile FixSometimes, editing and adding line breaks directly within the LinkedIn mobile app works more reliably than desktop.
+

Why Does LinkedIn Remove Line Breaks?

+

It feels like a simple problem, but the cause is surprisingly technical. LinkedIn doesn’t store your posts as plain text. Instead, it uses a rich text format that includes hidden formatting data. This is what allows for bold and italic text using Unicode characters. However, this system is also fragile.

+

Here’s what’s happening behind the scenes:

+
    +
  1. +

    Copy-Paste Contamination: When you copy text from applications like Microsoft Word, Google Docs, Notion, or even an email client, you’re also copying invisible formatting code. This includes things like non-breaking spaces and soft returns. When you paste this into LinkedIn, the platform tries to interpret this hidden code and often gets it wrong, stripping out your intended line breaks.

    +
  2. +
  3. +

    Inconsistent Editors: LinkedIn uses different text editors across its platform (desktop, mobile app, and even different versions for different users). Content saved in one editor can be rendered differently in another, causing the formatting to break.

    +
  4. +
  5. +

    The Rendering Bug: At its core, this is a long-standing rendering bug. The platform sometimes fails to correctly interpret its own rich text data, especially when it contains mixed formatting like emojis, bullet points, and bold text. The result is a collapsed block of text.

    +
  6. +
+

The Most Reliable Fix: The Plain Text Reset

+

This method works almost every time because it strips out all the invisible formatting that confuses LinkedIn. It's a simple, three-step process.

+

The Plain Text Reset Method
The Plain Text Reset Method

+
    +
  1. +

    Copy Your Text: Take the text from your LinkedIn post draft (or the published post you want to fix).

    +
  2. +
  3. +

    Paste into a Plain Text Editor: Open a basic text editor. On Windows, use Notepad. On a Mac, use TextEdit (make sure to switch it to plain text mode by selecting "Format" > "Make Plain Text"). Paste your content here. This step instantly removes all the hidden code.

    +
  4. +
  5. +

    Copy and Paste Back to LinkedIn: Now, copy the clean text from Notepad or TextEdit and paste it back into your LinkedIn post. Your line breaks should now be preserved when you publish.

    +
  6. +
+

It's an extra step, but it's the most dependable way to ensure your formatting stays exactly as you want it.

+

Other Solutions and Workarounds

+

If the plain text reset doesn’t work, or if you’re looking for other options, here are a couple of other tricks people have found success with.

+
    +
  • +

    Edit on the Mobile App: Several users report that the LinkedIn mobile app is better at preserving line breaks. If your post is getting jumbled on desktop, try editing it on your phone. Manually deleting and re-adding the line breaks in the app can sometimes force the formatting to stick.

    +
  • +
  • +

    The Invisible Character Trick: This is a more technical workaround. You can copy an invisible Unicode character (like a zero-width space) and paste it onto the empty lines between your paragraphs. This can sometimes trick LinkedIn into recognizing the space. However, this isn’t a recommended long-term solution as it can cause issues with screen readers and accessibility.

    +
  • +
+

How to Prevent Line Break Issues from Happening

+

Fixing the problem is good. Avoiding it altogether is better. Here are some best practices to keep your posts clean from the start.

+
    +
  • +

    Write Directly in LinkedIn: The most straightforward way to avoid formatting issues is to compose your posts directly in LinkedIn’s post editor. This ensures there’s no external formatting to cause problems.

    +
  • +
  • +

    Use a Markdown Editor: If you prefer to write your content outside of LinkedIn, use a clean Markdown editor. Markdown is a lightweight language that doesn’t use hidden formatting, so you can copy and paste from it without issues. Plus, tools like our own Markdown to LinkedIn Converter are designed to produce clean, perfectly formatted text for the platform.

    +
  • +
  • +

    Be Careful with Bullets: An incorrect bullet format is a common trigger for the line break bug. Always put a space after the hyphen or asterisk. For example, use - Your point instead of -Your point.

    +
  • +
  • +

    Keep Formatting Simple: Avoid mixing too many different formatting styles in one post. Heavy use of emojis, different bullet styles, and bold text all at once can increase the chances of the rendering bug appearing.

    +
  • +
+

Formatting Is Credibility

+

A well-formatted post isn’t just about aesthetics; it’s about readability and professionalism. Walls of text are intimidating and get skipped. White space makes your content inviting and easy to digest, especially for the majority of users who are scrolling on mobile devices.

+

By understanding why line breaks disappear and how to fix them, you can take control of your content’s presentation and make sure your message is always seen the way you intended.

+

Resources

+
linkedin-formatting
line-breaks
content-creation

Enjoyed this article?

Share it with your network

Share:

Related Articles

LinkedIn Bullet Points: How to Format Lists That Stand Out
LinkedIn Formatting5 min read

LinkedIn Bullet Points: How to Format Lists That Stand Out

Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

January 26, 2026Read
How to Add Italic Text to LinkedIn Posts
LinkedIn Formatting5 min read

How to Add Italic Text to LinkedIn Posts

Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

January 19, 2026Read
How to Bold Text on LinkedIn (Desktop & Mobile)
LinkedIn Formatting6 min read

How to Bold Text on LinkedIn (Desktop & Mobile)

Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

January 17, 2026Read
+ + +
\ No newline at end of file diff --git a/dist/blog/linkedin-post-formatting-best-practices/index.html b/dist/blog/linkedin-post-formatting-best-practices/index.html index 2498cb9..ee6141d 100644 --- a/dist/blog/linkedin-post-formatting-best-practices/index.html +++ b/dist/blog/linkedin-post-formatting-best-practices/index.html @@ -39,7 +39,7 @@ - - + @@ -168,7 +168,7 @@

Cleverly: 9+ LinkedIn Post Formatting Tips to Boost Engagement
  • Reply.io: The ONLY Guide to LinkedIn Post Formatting That Gets Noticed
  • SalesRobot: 42 LinkedIn limits in 2025
  • -
    linkedin
    formatting
    best-practices
    engagement

    Enjoyed this article?

    Share it with your network

    Share:

    Related Articles

    LinkedIn Bullet Points: How to Format Lists That Stand Out
    LinkedIn Formatting5 min read

    LinkedIn Bullet Points: How to Format Lists That Stand Out

    Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

    January 26, 2026Read
    How to Add Italic Text to LinkedIn Posts
    LinkedIn Formatting5 min read

    How to Add Italic Text to LinkedIn Posts

    Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

    January 19, 2026Read
    How to Bold Text on LinkedIn (Desktop & Mobile)
    LinkedIn Formatting6 min read

    How to Bold Text on LinkedIn (Desktop & Mobile)

    Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

    January 17, 2026Read
    +
    linkedin
    formatting
    best-practices
    engagement

    Enjoyed this article?

    Share it with your network

    Share:

    Related Articles

    How to Add Line Breaks in LinkedIn Posts
    Formatting6 min read

    How to Add Line Breaks in LinkedIn Posts

    Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

    February 12, 2026Read
    LinkedIn Bullet Points: How to Format Lists That Stand Out
    LinkedIn Formatting5 min read

    LinkedIn Bullet Points: How to Format Lists That Stand Out

    Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

    January 26, 2026Read
    How to Add Italic Text to LinkedIn Posts
    LinkedIn Formatting5 min read

    How to Add Italic Text to LinkedIn Posts

    Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

    January 19, 2026Read
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/dist/blog/linkedin-text-formatter/index.html b/dist/blog/linkedin-text-formatter/index.html index 847a4a8..70872a4 100644 --- a/dist/blog/linkedin-text-formatter/index.html +++ b/dist/blog/linkedin-text-formatter/index.html @@ -39,7 +39,7 @@ - - + - +
    LinkedIn Formatting

    LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts

    MarkdownToLinkedIn.comDecember 9, 2025Updated December 10, 20257 min read
    Share:
    LinkedIn Text Formatter: The Complete Guide to Formatting Your Posts

    LinkedIn gets over two million new posts every day [1]. That's a lot of noise to cut through. You might have the best insights in your industry, but if your posts look like boring walls of text, people will scroll right past them. A good LinkedIn text formatter can change that. It helps you turn plain text into posts that actually get noticed.

    This guide covers everything you need to know about formatting LinkedIn posts. I'll show you how text formatting actually works behind the scenes, which styles work best, and how to set up a simple workflow to make your posts look professional. Whether you're a developer who already knows Markdown or just someone who wants better engagement, this will help.

    @@ -171,4 +171,4 @@

    References

    [6] Digital Blacksmiths, "Best Linkedin Post Length in 2025, Why 1200 to 1800 Characters is The Sweet Spot," September 10, 2025. [Online]. Available: https://digitalblacksmiths.io/best-linkedin-post-length-1200-to-1800-characters/

    linkedin
    formatting
    text formatter
    guide

    Enjoyed this article?

    Share it with your network

    Share:

    Related Articles

    LinkedIn Bullet Points: How to Format Lists That Stand Out
    LinkedIn Formatting5 min read

    LinkedIn Bullet Points: How to Format Lists That Stand Out

    Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

    January 26, 2026Read
    How to Add Italic Text to LinkedIn Posts
    LinkedIn Formatting5 min read

    How to Add Italic Text to LinkedIn Posts

    Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

    January 19, 2026Read
    How to Bold Text on LinkedIn (Desktop & Mobile)
    LinkedIn Formatting6 min read

    How to Bold Text on LinkedIn (Desktop & Mobile)

    Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

    January 17, 2026Read
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/dist/blog/make-text-bold-linkedin/index.html b/dist/blog/make-text-bold-linkedin/index.html index 75fca98..e71dd1f 100644 --- a/dist/blog/make-text-bold-linkedin/index.html +++ b/dist/blog/make-text-bold-linkedin/index.html @@ -39,7 +39,7 @@ - - + @@ -160,4 +160,4 @@

    linkedin-formatting
    bold-text
    unicode

    Enjoyed this article?

    Share it with your network

    Share:

    Related Articles

    LinkedIn Bullet Points: How to Format Lists That Stand Out
    LinkedIn Formatting5 min read

    LinkedIn Bullet Points: How to Format Lists That Stand Out

    Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

    January 26, 2026Read
    How to Add Italic Text to LinkedIn Posts
    LinkedIn Formatting5 min read

    How to Add Italic Text to LinkedIn Posts

    Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

    January 19, 2026Read
    How to Bold Text on LinkedIn (Desktop & Mobile)
    LinkedIn Formatting6 min read

    How to Bold Text on LinkedIn (Desktop & Mobile)

    Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

    January 17, 2026Read
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/dist/blog/markdown-basics-for-content-creators/index.html b/dist/blog/markdown-basics-for-content-creators/index.html index 3d78b95..c2ecd94 100644 --- a/dist/blog/markdown-basics-for-content-creators/index.html +++ b/dist/blog/markdown-basics-for-content-creators/index.html @@ -39,7 +39,7 @@ - - + - +
    Tutorials

    Markdown Basics Every Content Creator Should Know in 2025

    John PribeshJanuary 4, 2025Updated December 8, 20254 min read
    Share:
    Markdown Basics Every Content Creator Should Know in 2025

    Quick Reference: Essential Markdown Syntax

    @@ -154,7 +154,7 @@

    Practice the Basics: Open a new file and practice the essential syntax covered in this guide.
  • Adopt a Markdown-First Workflow: Start by writing your next blog post, social media update, or even your daily notes in Markdown. The more you use it, the more natural it will become.
  • -

    By investing a small amount of time to learn the fundamentals of Markdown, you will unlock a more efficient, flexible, and powerful content creation process. It's a skill that will pay dividends across every platform you write for.

    markdown
    writing
    beginner
    productivity

    Enjoyed this article?

    Share it with your network

    Share:

    Related Articles

    LinkedIn Bullet Points: How to Format Lists That Stand Out
    LinkedIn Formatting5 min read

    LinkedIn Bullet Points: How to Format Lists That Stand Out

    Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

    January 26, 2026Read
    How to Add Italic Text to LinkedIn Posts
    LinkedIn Formatting5 min read

    How to Add Italic Text to LinkedIn Posts

    Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

    January 19, 2026Read
    How to Bold Text on LinkedIn (Desktop & Mobile)
    LinkedIn Formatting6 min read

    How to Bold Text on LinkedIn (Desktop & Mobile)

    Want to make your LinkedIn posts stand out? Learn how to bold text on both desktop and mobile with this step-by-step guide. We cover the best tools and practices.

    January 17, 2026Read
    +

    By investing a small amount of time to learn the fundamentals of Markdown, you will unlock a more efficient, flexible, and powerful content creation process. It's a skill that will pay dividends across every platform you write for.

    markdown
    writing
    beginner
    productivity

    Enjoyed this article?

    Share it with your network

    Share:

    Related Articles

    How to Add Line Breaks in LinkedIn Posts
    Formatting6 min read

    How to Add Line Breaks in LinkedIn Posts

    Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted.

    February 12, 2026Read
    LinkedIn Bullet Points: How to Format Lists That Stand Out
    LinkedIn Formatting5 min read

    LinkedIn Bullet Points: How to Format Lists That Stand Out

    Tired of your LinkedIn posts looking like a wall of text? This guide shows you how to use bullet points to make your content scannable, engaging, and professional.

    January 26, 2026Read
    How to Add Italic Text to LinkedIn Posts
    LinkedIn Formatting5 min read

    How to Add Italic Text to LinkedIn Posts

    Want to add emphasis or personality to your LinkedIn posts? This guide shows you exactly how to use italic text on LinkedIn, the right way.

    January 19, 2026Read
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index f6c2ba5..ed0dbf7 100644 --- a/dist/index.html +++ b/dist/index.html @@ -108,7 +108,7 @@ src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8339222522293295" crossorigin="anonymous" > - + diff --git a/dist/sitemap.xml b/dist/sitemap.xml index 0ee4100..5a8d416 100644 --- a/dist/sitemap.xml +++ b/dist/sitemap.xml @@ -2,13 +2,13 @@ https://markdowntolinkedin.com - 2026-01-27 + 2026-02-13 weekly 1.0 https://markdowntolinkedin.com/blog - 2026-01-27 + 2026-02-13 daily 0.9 @@ -72,6 +72,12 @@ monthly 0.8 + + https://markdowntolinkedin.com/blog/linkedin-line-breaks + 2026-02-13 + monthly + 0.8 + https://markdowntolinkedin.com/blog/linkedin-post-formatting-best-practices 2025-12-17 @@ -126,6 +132,12 @@ weekly 0.7 + + https://markdowntolinkedin.com/blog/category/formatting + 2026-02-13 + weekly + 0.7 + https://markdowntolinkedin.com/blog/category/linkedin-tips 2025-12-17 diff --git a/generate_cover.py b/generate_cover.py new file mode 100644 index 0000000..5cc613b --- /dev/null +++ b/generate_cover.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import os +from google import genai +from google.genai import types + +# Initialize the client +client = genai.Client(api_key=os.environ.get('GEMINI_API_KEY')) + +# Generate cover image +prompt = """Create a professional blog post cover image for an article titled "How to Add Line Breaks in LinkedIn Posts". + +The image should show: +- A split-screen comparison: left side showing messy, collapsed text (wall of text), right side showing well-formatted text with proper line breaks and white space +- Use LinkedIn's brand colors (blue #0A66C2) as accent colors +- Modern, clean design with a professional look +- Include visual elements like text blocks, spacing indicators, or formatting symbols +- The image should convey the problem (collapsed text) and solution (proper formatting) +- Make it eye-catching and suitable for a blog header +- Landscape orientation, suitable for 1200x630px social media sharing + +Style: Modern, professional, clean, with good contrast and readability.""" + +response = client.models.generate_content( + model='gemini-3-pro-image-preview', + contents=prompt +) + +# Save the image +if response.candidates and response.candidates[0].content.parts: + for part in response.candidates[0].content.parts: + if hasattr(part, 'inline_data') and part.inline_data: + image_data = part.inline_data.data + output_path = '/home/ubuntu/markdowntolinkedin/public/blog/images/linkedin-line-breaks-cover.png' + with open(output_path, 'wb') as f: + f.write(image_data) + print(f"Cover image saved to {output_path}") + break +else: + print("No image generated") diff --git a/generate_infographic.py b/generate_infographic.py new file mode 100644 index 0000000..a982e7c --- /dev/null +++ b/generate_infographic.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +import os +from google import genai +from google.genai import types + +# Initialize the client +client = genai.Client(api_key=os.environ.get('GEMINI_API_KEY')) + +# Generate infographic +prompt = """Create a clean, professional infographic showing "The Plain Text Reset Method" for fixing LinkedIn line breaks. + +The infographic should show a 3-step process: +1. Copy your text from LinkedIn +2. Paste into a plain text editor (show icons for Notepad/TextEdit) +3. Copy again and paste back to LinkedIn + +Visual elements: +- Use arrows or numbered steps to show the flow +- Include simple icons representing: LinkedIn logo, text editor, and copy/paste actions +- Use LinkedIn's blue (#0A66C2) as the primary accent color +- Clean, modern design with plenty of white space +- Easy to read at a glance +- Professional and instructional style +- Portrait or square orientation + +Style: Clean, professional, instructional, with clear visual hierarchy and easy-to-follow steps.""" + +response = client.models.generate_content( + model='gemini-3-pro-image-preview', + contents=prompt +) + +# Save the image +if response.candidates and response.candidates[0].content.parts: + for part in response.candidates[0].content.parts: + if hasattr(part, 'inline_data') and part.inline_data: + image_data = part.inline_data.data + output_path = '/home/ubuntu/markdowntolinkedin/public/blog/images/plain-text-reset-method.png' + with open(output_path, 'wb') as f: + f.write(image_data) + print(f"Infographic saved to {output_path}") + break +else: + print("No image generated") diff --git a/public/blog/images/linkedin-line-breaks-cover.png b/public/blog/images/linkedin-line-breaks-cover.png new file mode 100644 index 0000000..f15ff4d Binary files /dev/null and b/public/blog/images/linkedin-line-breaks-cover.png differ diff --git a/public/blog/images/plain-text-reset-method.png b/public/blog/images/plain-text-reset-method.png new file mode 100644 index 0000000..9775e97 Binary files /dev/null and b/public/blog/images/plain-text-reset-method.png differ diff --git a/research-line-breaks.md b/research-line-breaks.md new file mode 100644 index 0000000..55cb705 --- /dev/null +++ b/research-line-breaks.md @@ -0,0 +1,119 @@ +# Research Notes: LinkedIn Line Breaks + +## Key Findings + +### The Problem +- LinkedIn sometimes removes line breaks and collapses well-formatted text into a single block +- This happens inconsistently across different devices, browsers, and user accounts +- Users report this issue in About sections, posts, and comments +- It's a rendering/formatting issue, not a user mistake + +### Root Causes (from Václav Šulista article, Jan 2026) + +1. **Mixed formatting systems**: Using emojis as headers, Unicode bold, different bullet symbols, and manual line breaks creates interpretation conflicts + +2. **Copy-paste contamination**: Text from Word, Google Docs, Notion, or AI tools carries invisible characters (non-breaking spaces, soft returns) that accumulate and override paragraph separation + +3. **Incorrect bullet syntax**: Missing space after hyphen (e.g., `-Item` instead of `- Item`) can cause LinkedIn to merge entire section + +4. **Multiple LinkedIn editors**: LinkedIn runs multiple versions of editors in parallel; content saved in one may render differently in another + +### Solutions Found + +#### Fix Method (Plain Text Reset) +1. Copy entire About section +2. Paste into plain-text editor (Notepad, Apple Notes in plain mode) +3. Copy again from plain text editor +4. Paste back into LinkedIn +5. Reapply spacing, headings, bullets carefully +6. Ensure empty lines before/after section headers +7. Save and refresh + +#### Prevention Best Practices +- Leave one empty line before and after section headers +- Use one bullet style consistently +- Always include space after hyphens +- Avoid heavy formatting inside bullet points +- Perform major edits on desktop, not mobile +- Limit repeated copy-paste cycles from external tools + +#### Mobile App Fix (from Reddit) +- Some users report that editing through mobile app preserves line breaks better +- Input line spaces manually through mobile app + +#### Unicode Character Workaround (from Reddit) +- Add invisible Unicode character (zero-width or similar): "⠀" +- Add spaces until cursor naturally moves to next line + +#### Technical Methods +- Use `\n` for line breaks in API/automation contexts +- Use series of hyphens as section separators + +### Additional Context +- LinkedIn uses rich text with embedded formatting metadata (not plain text) +- Platform may interpret spacing/paragraph breaks differently across devices/browsers +- Same content can appear formatted for one viewer, broken for another +- Desktop vs mobile formatting often differs + +### Sources +- Václav Šulista LinkedIn article (Jan 8, 2026) +- Reddit r/linkedin discussions (Nov-Dec 2025) +- Various LinkedIn posts and community discussions + + +## Best Practices for Line Breaks (from Reply.io, July 2025) + +### Why Line Breaks Matter +- Long paragraphs = scroll past +- White space = engagement magnet +- Each paragraph should be a single thought or idea +- Gives the eye somewhere to rest +- Keeps people reading + +### Optimal Formatting +- Break text into short paragraphs +- Use line breaks often +- Keep paragraphs to 1-2 sentences max (8-15 words ideal) +- One sentence. Enter. Another sentence. Enter again. +- Mix short and long sentences for rhythm + +### Visual Hierarchy Tips +- Front-load your hook (first 1-3 lines before "see more" cutoff) +- Use bullet points and dashes to break up ideas +- Add visual anchors (emojis, ALL CAPS sparingly) +- Make content skimmable +- End with clear CTA or strong statement + +### Common Mistakes to Avoid +- Wall of text (huge paragraphs with no breaks) +- No structure or flow +- Over-formatting (too many emojis, caps, bullets) +- Weak opening line +- Not previewing on both desktop and mobile + +### Key Stats +- Over 2 million LinkedIn posts appear daily +- First 3 lines crucial (LinkedIn truncates posts) +- Mobile formatting differs from desktop +- Well-structured posts get significantly more engagement + +## Additional Insights + +### Platform Behavior +- LinkedIn uses rich text with embedded formatting metadata +- Not plain text storage +- Different browsers/devices/editor versions interpret spacing differently +- Same content can appear formatted for one viewer, broken for another +- Desktop vs mobile rendering inconsistencies + +### Character Limits +- Posts: 3,000 characters maximum +- Comments: 1,250 characters +- About section: 2,600 characters +- Headlines: 220 characters + +### Engagement Impact +- Posts with proper formatting get up to 3x more engagement +- White space improves readability dramatically +- Line breaks essential for mobile users (80% of LinkedIn traffic) +- Proper structure helps with algorithm visibility diff --git a/src/content/blog/linkedin-line-breaks.md b/src/content/blog/linkedin-line-breaks.md new file mode 100644 index 0000000..f040af1 --- /dev/null +++ b/src/content/blog/linkedin-line-breaks.md @@ -0,0 +1,85 @@ +--- +title: "How to Add Line Breaks in LinkedIn Posts" +date: "2026-02-13" +lastUpdated: "2026-02-13" +category: "Formatting" +tags: + - linkedin-formatting + - line-breaks + - content-creation +excerpt: "Tired of LinkedIn eating your line breaks? Learn why it happens and how to fix it for good. This guide covers the causes and provides simple solutions to keep your posts perfectly formatted." +coverImage: "/blog/images/linkedin-line-breaks-cover.png" +author: "The MarkdownToLinkedIn Team" +--- + +You’ve crafted the perfect LinkedIn post. The hook is sharp, the points are clear, and the spacing is just right. You hit “Post,” and then it happens. Your beautiful, readable post collapses into a dense, unreadable wall of text. + +Sound familiar? It’s one of the most common and frustrating quirks of the platform. Your carefully placed line breaks vanish, leaving your message a jumbled mess. But don’t worry, it’s not your fault. And there are ways to fix it for good. + +This guide explains exactly why LinkedIn eats your line breaks and shows you how to stop it from happening. + +## TL;DR: How to Fix LinkedIn Line Breaks + +| Problem | Solution | +|---|---| +| **Line breaks disappear after posting** | LinkedIn has a rendering bug, often caused by hidden formatting from other apps. | +| **The Quick Fix** | Copy your text, paste it into a plain text editor (like Notepad or TextEdit), then copy it again and paste it back into LinkedIn. | +| **The Prevention Method** | Write posts directly in LinkedIn or use a clean Markdown editor. Avoid copy-pasting from Word, Google Docs, or Notion. | +| **The Mobile Fix** | Sometimes, editing and adding line breaks directly within the LinkedIn mobile app works more reliably than desktop. | + +## Why Does LinkedIn Remove Line Breaks? + +It feels like a simple problem, but the cause is surprisingly technical. LinkedIn doesn’t store your posts as plain text. Instead, it uses a rich text format that includes hidden formatting data. This is what allows for bold and italic text using Unicode characters. However, this system is also fragile. + +Here’s what’s happening behind the scenes: + +1. **Copy-Paste Contamination**: When you copy text from applications like Microsoft Word, Google Docs, Notion, or even an email client, you’re also copying invisible formatting code. This includes things like non-breaking spaces and soft returns. When you paste this into LinkedIn, the platform tries to interpret this hidden code and often gets it wrong, stripping out your intended line breaks. + +2. **Inconsistent Editors**: LinkedIn uses different text editors across its platform (desktop, mobile app, and even different versions for different users). Content saved in one editor can be rendered differently in another, causing the formatting to break. + +3. **The Rendering Bug**: At its core, this is a long-standing rendering bug. The platform sometimes fails to correctly interpret its own rich text data, especially when it contains mixed formatting like emojis, bullet points, and bold text. The result is a collapsed block of text. + +## The Most Reliable Fix: The Plain Text Reset + +This method works almost every time because it strips out all the invisible formatting that confuses LinkedIn. It's a simple, three-step process. + +![The Plain Text Reset Method](/blog/images/plain-text-reset-method.png) + +1. **Copy Your Text**: Take the text from your LinkedIn post draft (or the published post you want to fix). + +2. **Paste into a Plain Text Editor**: Open a basic text editor. On Windows, use **Notepad**. On a Mac, use **TextEdit** (make sure to switch it to plain text mode by selecting "Format" > "Make Plain Text"). Paste your content here. This step instantly removes all the hidden code. + +3. **Copy and Paste Back to LinkedIn**: Now, copy the clean text from Notepad or TextEdit and paste it back into your LinkedIn post. Your line breaks should now be preserved when you publish. + +It's an extra step, but it's the most dependable way to ensure your formatting stays exactly as you want it. + +## Other Solutions and Workarounds + +If the plain text reset doesn’t work, or if you’re looking for other options, here are a couple of other tricks people have found success with. + +* **Edit on the Mobile App**: Several users report that the LinkedIn mobile app is better at preserving line breaks. If your post is getting jumbled on desktop, try editing it on your phone. Manually deleting and re-adding the line breaks in the app can sometimes force the formatting to stick. + +* **The Invisible Character Trick**: This is a more technical workaround. You can copy an invisible Unicode character (like a zero-width space) and paste it onto the empty lines between your paragraphs. This can sometimes trick LinkedIn into recognizing the space. However, this isn’t a recommended long-term solution as it can cause issues with screen readers and accessibility. + +## How to Prevent Line Break Issues from Happening + +Fixing the problem is good. Avoiding it altogether is better. Here are some best practices to keep your posts clean from the start. + +* **Write Directly in LinkedIn**: The most straightforward way to avoid formatting issues is to compose your posts directly in LinkedIn’s post editor. This ensures there’s no external formatting to cause problems. + +* **Use a Markdown Editor**: If you prefer to write your content outside of LinkedIn, use a clean Markdown editor. Markdown is a lightweight language that doesn’t use hidden formatting, so you can copy and paste from it without issues. Plus, tools like our own **[Markdown to LinkedIn Converter](/)** are designed to produce clean, perfectly formatted text for the platform. + +* **Be Careful with Bullets**: An incorrect bullet format is a common trigger for the line break bug. Always put a space after the hyphen or asterisk. For example, use `- Your point` instead of `-Your point`. + +* **Keep Formatting Simple**: Avoid mixing too many different formatting styles in one post. Heavy use of emojis, different bullet styles, and bold text all at once can increase the chances of the rendering bug appearing. + +## Formatting Is Credibility + +A well-formatted post isn’t just about aesthetics; it’s about readability and professionalism. Walls of text are intimidating and get skipped. White space makes your content inviting and easy to digest, especially for the majority of users who are scrolling on mobile devices. + +By understanding why line breaks disappear and how to fix them, you can take control of your content’s presentation and make sure your message is always seen the way you intended. + +## Resources + +- [Why Your LinkedIn “About” Section Sometimes Collapses Into One Block of Text](https://www.linkedin.com/pulse/why-your-linkedin-section-sometimes-collapses-one-block-sulista-kmsxe) +- [The ONLY Guide to LinkedIn Post Formatting That Gets Noticed](https://reply.io/blog/linkedin-post-formatting/)